AEB-57: fix Babylon loader update
This commit is contained in:
BIN
frontend/.gitignore
vendored
BIN
frontend/.gitignore
vendored
Binary file not shown.
@@ -11,9 +11,10 @@ import {
|
||||
Color4,
|
||||
AbstractMesh,
|
||||
Nullable,
|
||||
SceneLoader
|
||||
ImportMeshAsync
|
||||
} from '@babylonjs/core'
|
||||
import '@babylonjs/loaders'
|
||||
|
||||
import LoadingSpinner from '../ui/LoadingSpinner'
|
||||
|
||||
|
||||
@@ -59,6 +60,12 @@ const ModelViewer: React.FC<ModelViewerProps> = ({
|
||||
const engine = new Engine(canvas, true)
|
||||
engineRef.current = engine
|
||||
|
||||
engine.runRenderLoop(() => {
|
||||
if (!isDisposedRef.current && sceneRef.current) {
|
||||
sceneRef.current.render()
|
||||
}
|
||||
})
|
||||
|
||||
const scene = new Scene(engine)
|
||||
sceneRef.current = scene
|
||||
|
||||
@@ -88,12 +95,6 @@ const ModelViewer: React.FC<ModelViewerProps> = ({
|
||||
fillLight.intensity = 0.3
|
||||
fillLight.diffuse = new Color3(0.8, 0.8, 1)
|
||||
|
||||
engine.runRenderLoop(() => {
|
||||
if (!isDisposedRef.current) {
|
||||
scene.render()
|
||||
}
|
||||
})
|
||||
|
||||
const handleResize = () => {
|
||||
if (!isDisposedRef.current) {
|
||||
engine.resize()
|
||||
@@ -125,6 +126,9 @@ const ModelViewer: React.FC<ModelViewerProps> = ({
|
||||
return
|
||||
}
|
||||
|
||||
const oldMeshes = sceneRef.current.meshes.slice();
|
||||
oldMeshes.forEach(m => m.dispose());
|
||||
|
||||
setIsLoading(true)
|
||||
setLoadingProgress(0)
|
||||
setShowModel(false)
|
||||
@@ -142,12 +146,7 @@ const ModelViewer: React.FC<ModelViewerProps> = ({
|
||||
}, 100)
|
||||
|
||||
try {
|
||||
const result = await SceneLoader.ImportMeshAsync(
|
||||
'',
|
||||
modelPath,
|
||||
'',
|
||||
sceneRef.current
|
||||
)
|
||||
const result = await ImportMeshAsync(modelPath, sceneRef.current)
|
||||
|
||||
clearInterval(progressInterval)
|
||||
setLoadingProgress(100)
|
||||
@@ -196,7 +195,8 @@ const ModelViewer: React.FC<ModelViewerProps> = ({
|
||||
}
|
||||
}
|
||||
|
||||
loadModel()
|
||||
// Загрузка модлеи начинается после появления спиннера
|
||||
requestIdleCallback(() => loadModel(), { timeout: 50 })
|
||||
}, [modelPath, onError, onModelLoaded])
|
||||
|
||||
return (
|
||||
|
||||
17
frontend/tailwind.config.js
Normal file
17
frontend/tailwind.config.js
Normal file
@@ -0,0 +1,17 @@
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
module.exports = {
|
||||
content: [
|
||||
'./app/**/*.{js,ts,jsx,tsx}',
|
||||
'./components/**/*.{js,ts,jsx,tsx}',
|
||||
'./lib/**/*.{js,ts,jsx,tsx}',
|
||||
'./services/**/*.{js,ts,jsx,tsx}',
|
||||
],
|
||||
safelist: [],
|
||||
blocklist: [
|
||||
'./public/**/*',
|
||||
'./data/**/*',
|
||||
'!./assets/big-models/**/*'
|
||||
],
|
||||
theme: { extend: {} },
|
||||
plugins: [],
|
||||
};
|
||||
Reference in New Issue
Block a user