python-cad-tools 0.1.0rc1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- python_cad_tools/__init__.py +10 -0
- python_cad_tools/_locking.py +63 -0
- python_cad_tools/_project_loader.py +273 -0
- python_cad_tools/_project_state.py +65 -0
- python_cad_tools/_scaffold.py +66 -0
- python_cad_tools/_transaction.py +208 -0
- python_cad_tools/_viewer_static/app.webmanifest +18 -0
- python_cad_tools/_viewer_static/asset-manifest.json +1 -0
- python_cad_tools/_viewer_static/assets/animationGroup-Sd34ntWg.js +1 -0
- python_cad_tools/_viewer_static/assets/bakedVertexAnimation-Cd_pRdrn.js +316 -0
- python_cad_tools/_viewer_static/assets/basisTextureLoader-DWgvS_1G.js +1 -0
- python_cad_tools/_viewer_static/assets/brdfTextureTools-CWGiG1W2.js +2 -0
- python_cad_tools/_viewer_static/assets/bumpFragment-CWULheF1.js +127 -0
- python_cad_tools/_viewer_static/assets/bumpVertex-DqzFZayE.js +6 -0
- python_cad_tools/_viewer_static/assets/bumpVertexDeclaration-C5EFyTio.js +6 -0
- python_cad_tools/_viewer_static/assets/clipPlaneFragment-BXRtt4jj.js +46 -0
- python_cad_tools/_viewer_static/assets/clipPlaneVertex-B_VhD1oQ.js +37 -0
- python_cad_tools/_viewer_static/assets/cubemapToSphericalPolynomial-DRpaukza.js +1 -0
- python_cad_tools/_viewer_static/assets/dds-Dkb2Cx2N.js +1 -0
- python_cad_tools/_viewer_static/assets/dds.pure-DtvJsKvY.js +1 -0
- python_cad_tools/_viewer_static/assets/ddsTextureLoader-H78xux1g.js +1 -0
- python_cad_tools/_viewer_static/assets/default.fragment-oSQ-tWhe.js +469 -0
- python_cad_tools/_viewer_static/assets/default.vertex-DhFjw_Da.js +209 -0
- python_cad_tools/_viewer_static/assets/defaultUboDeclaration-BMDHNppx.js +5 -0
- python_cad_tools/_viewer_static/assets/dumpTools-BaNZPjUX.js +2 -0
- python_cad_tools/_viewer_static/assets/envTextureLoader-V0YnLcIM.js +1 -0
- python_cad_tools/_viewer_static/assets/exrTextureLoader-CjGyIK3x.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphApplyForceBlock-CW5nuobR.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphApplyImpulseBlock-LFqYIkhj.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphArrayIndexBlock-BMOHUbBm.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphBezierCurveEasingBlock-knmTiuEk.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphBinaryOperationBlock-DFLuCAKJ.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphBranchBlock-BJRHMXMo.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphCachedOperationBlock-Dng-6jE0.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphCancelDelayBlock-CgbK3CQZ.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphCodeExecutionBlock-8zMtq9tg.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphConditionalDataBlock-BiLr2rkI.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphConsoleLogBlock-J1vcCtNP.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphConstantBlock-CFb5nuaV.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphContextBlock-DAeGVzhC.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphCounterBlock-lZlAQiJd.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphDataSwitchBlock-BIzvmbVy.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphDebounceBlock-DvNuMVwy.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphDebugBlock-Dymd2VEE.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphDoNBlock-v68aoNLH.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphEasingBlock-CTnGv92q.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphFlipFlopBlock-DXsO0Chw.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphForLoopBlock-CPpe9T75.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphFunctionReferenceBlock-DjDev4Pq.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphGLTFDataProvider-GIYCz4AQ.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphGetAngularVelocityBlock-BStkOVeL.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphGetAssetBlock-Eiqoivbz.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphGetLinearVelocityBlock-B0cpV5ws.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphGetPhysicsMassPropertiesBlock-B-H64yaI.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphGetPropertyBlock-CUyOsPw0.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphGetSoundVolumeBlock-C0FjrsUz.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphGetVariableBlock-O4597zBl.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphIndexOfBlock-E00Z3KXM.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphInterpolationBlock-DnkA9MNH.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphIsKeyPressedBlock-DDfeuAyf.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphIsSoundPlayingBlock-DMXg8jdM.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphJsonPointerParserBlock-OmCorK0y.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphKeyDownEventBlock-RuVtj6g2.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphKeyUpEventBlock-DO4pAfHi.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphKeyboardEventBlock-Bx3pAzzh.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphMathBlocks-7W1XYOC8.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphMathCombineExtractBlocks-a4f0Kv6e.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphMatrixMathBlocks-C5Z-y1Au.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphMeshPickEventBlock-D4m-I4CS.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphMultiGateBlock-BISVSMw6.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPauseAnimationBlock-BYP2Z-HG.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPauseSoundBlock-Drh1EeW6.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPhysicsCollisionEventBlock-BoziAQ75.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPlayAnimationBlock-Clry-68M.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPlaySoundBlock-LbBVxGBE.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPointerDownEventBlock-DIVXCSHh.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPointerMoveEventBlock-BNNOzY2W.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPointerOutEventBlock-B8f2dOFT.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPointerOverEventBlock-CQr8LCee.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPointerUpEventBlock-DMg_iEHl.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphReceiveCustomEventBlock-B8GJm9Ai.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSceneReadyEventBlock-Dcdb29K2.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSceneTickEventBlock-BLE5p4mi.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSendCustomEventBlock-BMzDItQ5.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSequenceBlock-DRURovjn.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSetAngularVelocityBlock-Ba8dhkLM.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSetDelayBlock-CnQR--Gn.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSetLinearVelocityBlock-Dm1r3vkh.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSetPhysicsMotionTypeBlock-BNtMLimi.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSetPropertyBlock-C-uv2jhP.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSetSoundVolumeBlock-D9LDx3lg.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSetVariableBlock-DszzRB5X.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSoundEndedEventBlock-DeTDSudb.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphStopAnimationBlock-DWuwoFWr.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphStopSoundBlock-DEnj2cQw.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSwitchBlock-zs8Fp9ky.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphThrottleBlock-BYAKUQXd.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphTransformCoordinatesSystemBlock-DYP54m5P.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphTypeToTypeBlocks-vFwn79bS.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphUnaryOperationBlock-CaRh4Ef0.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphVectorMathBlocks-BEIhMs-A.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphWaitAllBlock-DFbELP_j.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphWhileLoopBlock-C1OKQ-_F.js +1 -0
- python_cad_tools/_viewer_static/assets/fogFragment-DtDlQBnz.js +25 -0
- python_cad_tools/_viewer_static/assets/gaussianSplatting-Cfigjb15.js +242 -0
- python_cad_tools/_viewer_static/assets/gaussianSplatting-DIn8R8oF.js +296 -0
- python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-BxeRJ2k-.js +38 -0
- python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-DNDmvRs-.js +37 -0
- python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-D92z5jYn.js +86 -0
- python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-DSWfFnKQ.js +86 -0
- python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-DBQE2gDk.js +12 -0
- python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-qwx5ntqJ.js +17 -0
- python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-CP2kd3jU.js +30 -0
- python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-Dr-fEg_W.js +19 -0
- python_cad_tools/_viewer_static/assets/geometry.fragment-CsJIm2H0.js +242 -0
- python_cad_tools/_viewer_static/assets/geometry.fragment-Dph3muZt.js +262 -0
- python_cad_tools/_viewer_static/assets/geometry.vertex-BXGMTA_J.js +212 -0
- python_cad_tools/_viewer_static/assets/geometry.vertex-Bm9Wg3Gi.js +214 -0
- python_cad_tools/_viewer_static/assets/glowBlurPostProcess.fragment-BJSwKIJD.js +7 -0
- python_cad_tools/_viewer_static/assets/glowMapGeneration.fragment-DcyS1cTF.js +63 -0
- python_cad_tools/_viewer_static/assets/glowMapGeneration.vertex-BGq1Fakj.js +75 -0
- python_cad_tools/_viewer_static/assets/glowMapMerge.fragment-DxcneU_F.js +25 -0
- python_cad_tools/_viewer_static/assets/glowMapMerge.vertex-DaJJKqMV.js +8 -0
- python_cad_tools/_viewer_static/assets/harmonicsFunctions-DzJcvNWG.js +16 -0
- python_cad_tools/_viewer_static/assets/hdrTextureLoader-BGQvgh0h.js +2 -0
- python_cad_tools/_viewer_static/assets/helperFunctions-Cugfp1Fz.js +87 -0
- python_cad_tools/_viewer_static/assets/iesTextureLoader-CO4G0p2M.js +2 -0
- python_cad_tools/_viewer_static/assets/index-B2zBEWsq.js +7007 -0
- python_cad_tools/_viewer_static/assets/index-DcTTrc-8.css +1 -0
- python_cad_tools/_viewer_static/assets/kernelBlur.fragment-B6CTXTxY.js +57 -0
- python_cad_tools/_viewer_static/assets/kernelBlur.fragment-BkKbudbW.js +57 -0
- python_cad_tools/_viewer_static/assets/kernelBlur.vertex-BYwFU5IS.js +11 -0
- python_cad_tools/_viewer_static/assets/kernelBlur.vertex-D371zUfT.js +11 -0
- python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-CgBGaCHg.js +1 -0
- python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-YS8JpqdO.js +1 -0
- python_cad_tools/_viewer_static/assets/ktxTextureLoader-ncMSJTjl.js +1 -0
- python_cad_tools/_viewer_static/assets/lightFragment-skHiFbKB.js +398 -0
- python_cad_tools/_viewer_static/assets/logDepthDeclaration-BR8XRz9F.js +4 -0
- python_cad_tools/_viewer_static/assets/logDepthVertex-UKrhEIvg.js +14 -0
- python_cad_tools/_viewer_static/assets/mainUVVaryingDeclaration-BxQWGFcG.js +4 -0
- python_cad_tools/_viewer_static/assets/mesh.vertexData.functions-ayNlGC5K.js +1 -0
- python_cad_tools/_viewer_static/assets/meshUboDeclaration-BnX046aQ.js +4 -0
- python_cad_tools/_viewer_static/assets/oitFragment-CTMCOfNP.js +605 -0
- python_cad_tools/_viewer_static/assets/openpbr.fragment-DPJPqi6p.js +1530 -0
- python_cad_tools/_viewer_static/assets/openpbr.fragment-Dv6qTVVi.js +1384 -0
- python_cad_tools/_viewer_static/assets/openpbr.vertex-Bn2wrdGL.js +364 -0
- python_cad_tools/_viewer_static/assets/openpbr.vertex-CHESW3gB.js +251 -0
- python_cad_tools/_viewer_static/assets/openpbrMaterial.pure-BdK7VgO_.js +3 -0
- python_cad_tools/_viewer_static/assets/openpbrMaterialLoadingAdapter-Bm_AHDUN.js +4 -0
- python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-BDa9qEoN.js +339 -0
- python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-Ba_ly4LE.js +343 -0
- python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-BY2lSH2C.js +5 -0
- python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-DajhikDS.js +6 -0
- python_cad_tools/_viewer_static/assets/packingFunctions-BHPwcGG2.js +4 -0
- python_cad_tools/_viewer_static/assets/packingFunctions-DTwzBRBx.js +4 -0
- python_cad_tools/_viewer_static/assets/pass.fragment-9oKU4pI3.js +4 -0
- python_cad_tools/_viewer_static/assets/passCube.fragment-CpAeiYx1.js +23 -0
- python_cad_tools/_viewer_static/assets/passCube.fragment-DHtSWVRF.js +23 -0
- python_cad_tools/_viewer_static/assets/pbr.fragment-cIhMKwLs.js +2560 -0
- python_cad_tools/_viewer_static/assets/pbr.vertex-BfdONsf2.js +255 -0
- python_cad_tools/_viewer_static/assets/pbrBRDFFunctions-B_ppOzPO.js +173 -0
- python_cad_tools/_viewer_static/assets/pbrDebug-DDdwL5_t.js +693 -0
- python_cad_tools/_viewer_static/assets/pbrIBLFunctions-b1zdpzOP.js +43 -0
- python_cad_tools/_viewer_static/assets/pbrMaterial.pure-BZA7yVhu.js +2 -0
- python_cad_tools/_viewer_static/assets/pbrMaterialLoadingAdapter-BRvKRnjl.js +1 -0
- python_cad_tools/_viewer_static/assets/pbrUboDeclaration-CMZp25k3.js +5 -0
- python_cad_tools/_viewer_static/assets/postprocess.vertex-DzdUpNbW.js +9 -0
- python_cad_tools/_viewer_static/assets/procedural.vertex-BnbuQ-1f.js +7 -0
- python_cad_tools/_viewer_static/assets/procedural.vertex-Dp-Ng7Pc.js +8 -0
- python_cad_tools/_viewer_static/assets/reflectionFunction-DBlr3oDs.js +83 -0
- python_cad_tools/_viewer_static/assets/rgbdDecode.fragment-CyvnZFOJ.js +5 -0
- python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-Dz4zLnoD.js +5 -0
- python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-iscgpA1_.js +5 -0
- python_cad_tools/_viewer_static/assets/sceneUboDeclaration-BzFIc4mb.js +11 -0
- python_cad_tools/_viewer_static/assets/textureProcessor.fragment-C9D0rd-M.js +151 -0
- python_cad_tools/_viewer_static/assets/textureProcessor.fragment-JMKyWZng.js +146 -0
- python_cad_tools/_viewer_static/assets/tgaTextureLoader-oxTElIQJ.js +1 -0
- python_cad_tools/_viewer_static/assets/vertexColorMixing-mdC9xZe1.js +418 -0
- python_cad_tools/_viewer_static/favicon.svg +10 -0
- python_cad_tools/_viewer_static/index.html +18 -0
- python_cad_tools/_viewer_static/sw.js +61 -0
- python_cad_tools/artifacts.py +546 -0
- python_cad_tools/build-info.json +1 -0
- python_cad_tools/build.py +270 -0
- python_cad_tools/cli.py +212 -0
- python_cad_tools/context.py +67 -0
- python_cad_tools/determinism.py +66 -0
- python_cad_tools/drawings/__init__.py +124 -0
- python_cad_tools/drawings/_catalog.py +79 -0
- python_cad_tools/drawings/_validation.py +238 -0
- python_cad_tools/elements.py +121 -0
- python_cad_tools/exceptions.py +45 -0
- python_cad_tools/exporters/__init__.py +8 -0
- python_cad_tools/exporters/base.py +24 -0
- python_cad_tools/exporters/drawings/__init__.py +5 -0
- python_cad_tools/exporters/drawings/annotations.py +444 -0
- python_cad_tools/exporters/drawings/dxf.py +110 -0
- python_cad_tools/exporters/drawings/model.py +70 -0
- python_cad_tools/exporters/drawings/pdf.py +119 -0
- python_cad_tools/exporters/drawings/primitives.py +93 -0
- python_cad_tools/exporters/drawings/projection.py +64 -0
- python_cad_tools/exporters/drawings/svg.py +135 -0
- python_cad_tools/exporters/glb.py +100 -0
- python_cad_tools/exporters/ifc.py +229 -0
- python_cad_tools/exporters/quantities.py +136 -0
- python_cad_tools/exporters/step.py +117 -0
- python_cad_tools/geometry.py +187 -0
- python_cad_tools/manifests.py +338 -0
- python_cad_tools/project_config.py +174 -0
- python_cad_tools/py.typed +1 -0
- python_cad_tools/runtime_sync.py +126 -0
- python_cad_tools/schemas/build-manifest-1.json +1 -0
- python_cad_tools/schemas/design-manifest-1.json +1 -0
- python_cad_tools/schemas/download-manifest-2.json +46 -0
- python_cad_tools/schemas/drawing-annotations-1.json +66 -0
- python_cad_tools/schemas/glb-manifest-1.json +1 -0
- python_cad_tools/schemas/ifc-validation-1.json +1 -0
- python_cad_tools/schemas/quantities-1.json +1 -0
- python_cad_tools/schemas/run-metadata-1.json +1 -0
- python_cad_tools/schemas/site-metadata-1.json +34 -0
- python_cad_tools/schemas/step-validation-1.json +1 -0
- python_cad_tools/site.py +676 -0
- python_cad_tools/templates/project/.gitignore +9 -0
- python_cad_tools/templates/project/README.md +38 -0
- python_cad_tools/templates/project/config.py +36 -0
- python_cad_tools/templates/project/drawing_annotations.py +117 -0
- python_cad_tools/templates/project/model.py +87 -0
- python_cad_tools/templates/project/pyproject.toml +27 -0
- python_cad_tools/units.py +207 -0
- python_cad_tools/validation.py +153 -0
- python_cad_tools-0.1.0rc1.dist-info/METADATA +149 -0
- python_cad_tools-0.1.0rc1.dist-info/RECORD +236 -0
- python_cad_tools-0.1.0rc1.dist-info/WHEEL +5 -0
- python_cad_tools-0.1.0rc1.dist-info/entry_points.txt +2 -0
- python_cad_tools-0.1.0rc1.dist-info/licenses/LICENSE +679 -0
- python_cad_tools-0.1.0rc1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Python CAD Tools Viewer",
|
|
3
|
+
"short_name": "CAD Tools",
|
|
4
|
+
"description": "Offline-capable review of generated CAD artifacts",
|
|
5
|
+
"display": "standalone",
|
|
6
|
+
"start_url": "./",
|
|
7
|
+
"scope": "./",
|
|
8
|
+
"background_color": "#101820",
|
|
9
|
+
"theme_color": "#101820",
|
|
10
|
+
"icons": [
|
|
11
|
+
{
|
|
12
|
+
"src": "./favicon.svg",
|
|
13
|
+
"sizes": "any",
|
|
14
|
+
"type": "image/svg+xml",
|
|
15
|
+
"purpose": "any"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"entries":[{"media_type":"application/manifest+json","path":"app.webmanifest","sha256":"ff0be0e037de542f53f0d7866966c41db3d75ed1a8849fc1434595d07428ee12","size":401},{"media_type":"text/javascript; charset=utf-8","path":"assets/animationGroup-Sd34ntWg.js","sha256":"fe83bb7f64b8fddb71fdab0fc10b288c041b38c680d8ccc4edf2ed7ea12dfc46","size":35489},{"media_type":"text/javascript; charset=utf-8","path":"assets/bakedVertexAnimation-Cd_pRdrn.js","sha256":"55179f5d3f50f3143840af0f5eaa3db009a9c68374b0bd30c6ef0231f058d3e9","size":15843},{"media_type":"text/javascript; charset=utf-8","path":"assets/basisTextureLoader-DWgvS_1G.js","sha256":"c76f967039ecc57e3ee3c5107b6cf51713b0d1f89c01f25d13aed15c5108fab5","size":7961},{"media_type":"text/javascript; charset=utf-8","path":"assets/brdfTextureTools-CWGiG1W2.js","sha256":"d8d0fdcc65c5e42052d9dcb5859037bdeb887560af4607956fd8295c0768fbab","size":61224},{"media_type":"text/javascript; charset=utf-8","path":"assets/bumpFragment-CWULheF1.js","sha256":"23cf907b13a7e44a33b383386106180e63dea66ab8014986bedb5c82d86b7045","size":8075},{"media_type":"text/javascript; charset=utf-8","path":"assets/bumpVertex-DqzFZayE.js","sha256":"e7d6e65458e853ccd98a922bc645be4efeec7f87c028fa1c79ff214eef5a3e1c","size":698},{"media_type":"text/javascript; charset=utf-8","path":"assets/bumpVertexDeclaration-C5EFyTio.js","sha256":"a1fc9133849d7628715668fd650035d5e9aa7c51c9c16283ce07f4fb36d59fb4","size":393},{"media_type":"text/javascript; charset=utf-8","path":"assets/clipPlaneFragment-BXRtt4jj.js","sha256":"1f54b5399c1e84beb41c8169b397e2db67da6ca23d0ebfb40a5b0157f3279d1d","size":1275},{"media_type":"text/javascript; charset=utf-8","path":"assets/clipPlaneVertex-B_VhD1oQ.js","sha256":"c02563daffbc243f5611306c4c4fac02045d0f552e6ca912d3c20822468841de","size":1356},{"media_type":"text/javascript; charset=utf-8","path":"assets/cubemapToSphericalPolynomial-DRpaukza.js","sha256":"25d81e9818c6a3fae80f1c9330a0f0f78ca90f1398d3dccd5668610ca7f60ee1","size":3667},{"media_type":"text/javascript; charset=utf-8","path":"assets/dds-Dkb2Cx2N.js","sha256":"97725e6a9de5242f37b1c05747d583cce2dd10a74bf0ecf0ac76918466a77a36","size":161},{"media_type":"text/javascript; charset=utf-8","path":"assets/dds.pure-DtvJsKvY.js","sha256":"5c1f9302e3a5e2329587c97265b47d04489638253e458579ed3706dcf697f3cb","size":7046},{"media_type":"text/javascript; charset=utf-8","path":"assets/ddsTextureLoader-H78xux1g.js","sha256":"4a9cf5e4fed0aa53f5d5cc4bd07b9d2cfd0ff1b1e97c23dd15b629ca182cf5f5","size":1310},{"media_type":"text/javascript; charset=utf-8","path":"assets/default.fragment-oSQ-tWhe.js","sha256":"3a597f3762caa7b465e3219d3d27dcf8824f8532ce7a9434f1a93535ef2522ba","size":25362},{"media_type":"text/javascript; charset=utf-8","path":"assets/default.vertex-DhFjw_Da.js","sha256":"92a4210fe999b112385fd1beb0efa5c412a6dcdfa452856e2f89380a3ccaf641","size":9451},{"media_type":"text/javascript; charset=utf-8","path":"assets/defaultUboDeclaration-BMDHNppx.js","sha256":"32fafc1ba250c159d8df47c988b65d40acf29bc93f29f74b053f33524d455179","size":1624},{"media_type":"text/javascript; charset=utf-8","path":"assets/dumpTools-BaNZPjUX.js","sha256":"ed0120a776b3823d6ddb8804e758cc28f0dc183ead3e6c28e067c9dabd469539","size":3597},{"media_type":"text/javascript; charset=utf-8","path":"assets/envTextureLoader-V0YnLcIM.js","sha256":"e9561fc3cd5665c2558b7bec0e7d5fc5745ee458f74fd2c7381a89897e0db326","size":1649},{"media_type":"text/javascript; charset=utf-8","path":"assets/exrTextureLoader-CjGyIK3x.js","sha256":"ae423f15e97d55c47e1f362a66c18fc56009d1999d59b2f9380d078fdde36c36","size":14187},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphApplyForceBlock-CW5nuobR.js","sha256":"9ed784be8ed4111fd940a3414dc46eeaf01a7d89df1ccfab44f762a8ae1c9417","size":675},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphApplyImpulseBlock-LFqYIkhj.js","sha256":"49901631fcf56ce650344044e9b1410cea0d9b9605e6bc02e11d542e79b274e3","size":691},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphArrayIndexBlock-BMOHUbBm.js","sha256":"266351bf387bf5a744ec58734aa3475f8e2dfe96170bfeb371c87c3f1034b7f8","size":649},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphBezierCurveEasingBlock-knmTiuEk.js","sha256":"705637add64f1746502ecf1a2ef69e02f19a21f2a3568b2ed5f181ad705765c2","size":938},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphBinaryOperationBlock-DFLuCAKJ.js","sha256":"6a26d0409601aaeff3b4930111b4d373617a6597719fe42ef07e121b32b9cfb9","size":375},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphBranchBlock-BJRHMXMo.js","sha256":"eaffd3e8608f59ec24f1e20419858dbb355c93b0934d98e7094ba90cd2c5b127","size":529},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphCachedOperationBlock-Dng-6jE0.js","sha256":"5536885cb040ad676eb7fe8f878160aa9364229445b197dd897534500e0359e3","size":688},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphCancelDelayBlock-CgbK3CQZ.js","sha256":"15ff7db5e839e7078a8ee57030ea186a1eefd921f1ef2b94d6db127424adf982","size":592},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphCodeExecutionBlock-8zMtq9tg.js","sha256":"e7097d88ca031480a28670ad0f6268736bc9eb4d398211237aefbee206eb590d","size":470},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphConditionalDataBlock-BiLr2rkI.js","sha256":"ee96d5c39986233fff8a6fe0950e92f0c8245c88f044cc40d166e190097462ba","size":634},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphConsoleLogBlock-J1vcCtNP.js","sha256":"8af1e06f35019f2c65641247d406e9134e22e668ecf1f93d19c268aec4390320","size":1416},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphConstantBlock-CFb5nuaV.js","sha256":"bd7f15beaafa8c25868bc7e22c348f4c35fe3fae68e01ec47f6aeff3def2516f","size":497},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphContextBlock-DAeGVzhC.js","sha256":"76eef128a47d4f3063ce7c00ee55a07dfddd41fb2e0b7ee38d16d1a0ea5ef3fe","size":540},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphCounterBlock-lZlAQiJd.js","sha256":"c5eed93c763b72105bf9ddcc5e405c7dbceb8dfcda4686c4b837d938c1461b9b","size":630},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphDataSwitchBlock-BIzvmbVy.js","sha256":"25a06f5ef191848ec2ecceeb9c90c371f06b0ec4db7c7c48e75843a2fbd7ddd8","size":904},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphDebounceBlock-DvNuMVwy.js","sha256":"8d680db42b7b888a7d33591b52c41552ca2a612a7b5cca13d7727188c51fa387","size":768},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphDebugBlock-Dymd2VEE.js","sha256":"db11c5d8bb502745742ee09ee7985980477913811dd0e40f6ac394fb32bda148","size":1450},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphDoNBlock-v68aoNLH.js","sha256":"2cea91e8d75bd4d54c3a84191aad40109aa6e87735cff82df9c0d6603c7011e8","size":770},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphEasingBlock-CTnGv92q.js","sha256":"cbc3ee6617aaadb21b5328207ebae30d1544634f1b4945f9703dff9e5c0573c7","size":1627},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphFlipFlopBlock-DXsO0Chw.js","sha256":"e9633bbc09b786296936c58becd76dad1f7ce7e9db365e8a23b5b7b4505cc7b2","size":678},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphForLoopBlock-CPpe9T75.js","sha256":"1e20d362316d0ae2cec507a971f1eb9a6619211c4b078bdce81c9ae87c1fe789","size":1108},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphFunctionReferenceBlock-DjDev4Pq.js","sha256":"c2be2c4e2097956609199fe54fe306ac711f4edd82412c73da7c2cef2116a8a1","size":714},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphGLTFDataProvider-GIYCz4AQ.js","sha256":"77b4309772f2a69295fd2370618f22a2dd8600e23c398cec3100a4e91422c801","size":418},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphGetAngularVelocityBlock-BStkOVeL.js","sha256":"17068f122e34b7e1e1c651835ddbeaa61834a8c29358ccf98540df01cc9d444e","size":657},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphGetAssetBlock-Eiqoivbz.js","sha256":"effde4e3a7996051348708cfc1bbc02614f48e784ca5d13432ef7faca1afd966","size":638},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphGetLinearVelocityBlock-B0cpV5ws.js","sha256":"bac17cea77bbe7c5d98b90c196fe253f5117c2199cc267541dbd5d008068ca10","size":652},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphGetPhysicsMassPropertiesBlock-B-H64yaI.js","sha256":"e7bac8f576bf5a5edca63fcf0bcccb24c053d01c194beee3a3cc9677d92d26e5","size":801},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphGetPropertyBlock-CUyOsPw0.js","sha256":"8d527eabaa1cd3073e5df869234dbf598d04da81704fad46efaaf70ebd7b40f7","size":930},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphGetSoundVolumeBlock-C0FjrsUz.js","sha256":"b1b2aa703a5b8df5329d19d48b296d8a138184bbd018340078b872045c2c8944","size":485},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphGetVariableBlock-O4597zBl.js","sha256":"cb78b978bc1be87b2d4abbddb93ec5e216e6a5de02f04a71ad82f8d0104c99ea","size":545},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphIndexOfBlock-E00Z3KXM.js","sha256":"8f6092e137e5d2039c088cadf45290e80445e979599c2a2779fa781ed1ddb779","size":607},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphInterpolationBlock-DnkA9MNH.js","sha256":"8eec8c7a77cb1e49fda8e44d0e406cca3b30d645868b3741c42c66ecd27e5197","size":2089},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphIsKeyPressedBlock-DDfeuAyf.js","sha256":"83af28d694c8d3d788acaa3ba7c17cea19c4434f1f66fedbbc79034f8f866e2b","size":1162},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphIsSoundPlayingBlock-DMXg8jdM.js","sha256":"e79f3384ce0adce2395dcac2cb9ea9e1f59a5978c85ace6e726715e3e232a53e","size":501},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphJsonPointerParserBlock-OmCorK0y.js","sha256":"c2f9d4be76c4ee945ac427f9f9df53a472edcb7df09313ed38dba35dcef56643","size":3027},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphKeyDownEventBlock-RuVtj6g2.js","sha256":"c9580f624308b4cfbb8a823363261d80b7b80b810c99ede6ddd1d24635124001","size":489},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphKeyUpEventBlock-DO4pAfHi.js","sha256":"cb4c88edc07a19876cfadb657f7a1c24926b4a455b4c3da5501c7887706fc053","size":282},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphKeyboardEventBlock-Bx3pAzzh.js","sha256":"bbccf68221f65b9c600b3741d6479885dc879fbbc1a91bb47579a79ef334050f","size":962},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphMathBlocks-7W1XYOC8.js","sha256":"7100b6f3ec96a30225fd81bbaa436154f05ea0eaaeb54d3552a745a9a381bbcc","size":18510},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphMathCombineExtractBlocks-a4f0Kv6e.js","sha256":"58c43672a61bb87ba412a5ce12cf14e9b220ee489faf7f77a6b1a4da3e4c10dc","size":7966},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphMatrixMathBlocks-C5Z-y1Au.js","sha256":"ad39637153cd6ef52db197d2ec9cbd28e582cc4bbd04b906c1d55522a15c17cf","size":3570},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphMeshPickEventBlock-D4m-I4CS.js","sha256":"e8a64be9332901c7e5aec1cbae8a966e15a9cd2f1ecabee822fced021cdd24b1","size":1394},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphMultiGateBlock-BISVSMw6.js","sha256":"7040a9e5db27e1da65d200a72c80d5f0bed0febbb3500f60bf39050d30638f46","size":1660},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPauseAnimationBlock-BYP2Z-HG.js","sha256":"8d8163a9e107025e7d22adeb45ffb5ac71f749855c69f6641e7f7437311fc0e9","size":455},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPauseSoundBlock-Drh1EeW6.js","sha256":"2ffd2a6c0368f00fafc4be9932bab04ba13b6cc5cc590481c584242763759488","size":552},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPhysicsCollisionEventBlock-BoziAQ75.js","sha256":"5a71d70b91ca6e31ac48074aca56cfd219a5e1356a32be4648615b94145423ca","size":1678},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPlayAnimationBlock-Clry-68M.js","sha256":"a3696334939b9e3aa9a5e5aec22f605f18764a9120393f3b8bcc1e8372057c40","size":3736},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPlaySoundBlock-LbBVxGBE.js","sha256":"9b9ebaa70a7f5534933c3b8fa9ea96600c822852b580c7381af7448424e87769","size":782},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPointerDownEventBlock-DIVXCSHh.js","sha256":"bd2b5555b3709065d67805f83e2c769dc2447e86ab948bfc83c53bc4979cf99b","size":940},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPointerMoveEventBlock-BNNOzY2W.js","sha256":"4316c88585a810911dba301736aee9c946e098bf3e53b24ab5f01ed20d299996","size":958},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPointerOutEventBlock-B8f2dOFT.js","sha256":"151ada1caa6ebe82d83b37474f8696fa9cafa5f70cbc99370730630dfc69777d","size":831},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPointerOverEventBlock-CQr8LCee.js","sha256":"7fbf0e3fae0766427609ce6d312dd92a38ff028d19c3786716680e4b513595bc","size":842},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPointerUpEventBlock-DMg_iEHl.js","sha256":"f4b5fe156abbceff4c7f4fa3365de9f5593b8e0a28137ea917c579a847cdc0a0","size":930},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphReceiveCustomEventBlock-B8GJm9Ai.js","sha256":"f130c15b7d05d3cbe3b409cc98f0917e856d6c2e55b0742f1bfb9bd28a10df78","size":1530},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSceneReadyEventBlock-Dcdb29K2.js","sha256":"23e081211c04ba8eab947872988d55fa61582f8cb5ec6f95e4af6f8da2a50c0c","size":452},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSceneTickEventBlock-BLE5p4mi.js","sha256":"e3db2f13355c583a06a965810b6fc142704921a1504a0635c7f0958387152dfa","size":635},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSendCustomEventBlock-BMzDItQ5.js","sha256":"fd54259b35278ca770a432d81e09e9ba012af06aa3c9de4a6b1fba2f90acc7f3","size":926},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSequenceBlock-DRURovjn.js","sha256":"2388f26f94a2175f6e3107463f6995403e7e7c95df631fe1f62b86eec6f12416","size":777},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSetAngularVelocityBlock-Ba8dhkLM.js","sha256":"ee8a5a9f4bd43207d855abe3fd721b5f2276e0e4b7fa688f7b6620d1ff1f5749","size":633},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSetDelayBlock-CnQR--Gn.js","sha256":"50ef9b9f943f98948de2ba5f960e161146250940eb77962a952bf0070bb58e4c","size":4183},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSetLinearVelocityBlock-Dm1r3vkh.js","sha256":"34b8e8882f87b41e2827c2e8d7d346800a00e4db4dcbbaad5c691d76b3b74040","size":628},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSetPhysicsMotionTypeBlock-BNtMLimi.js","sha256":"c74dfe3f49b5a7db240348b0e6bdc0f54e3528c33d9339440ba5db6f49f3ae9d","size":644},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSetPropertyBlock-C-uv2jhP.js","sha256":"25080366d6d91b7c53ab986118320432555ff6877940dd3f1dbaac6d97a2d4e7","size":1408},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSetSoundVolumeBlock-D9LDx3lg.js","sha256":"4f4d357589eb611d27184dc553825d9761db1f393e73285f487ca84884a13f9d","size":601},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSetVariableBlock-DszzRB5X.js","sha256":"a5f3d6bbb8cd1e3b885b23c913892d75a40c3c121df18e41c187bd3901576fbb","size":1228},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSoundEndedEventBlock-DeTDSudb.js","sha256":"fbbd99c01d163a4c3a2ccf58b48e43d4f22e0b0bfa5eee8a99fdc8a250e44e1d","size":967},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphStopAnimationBlock-DWuwoFWr.js","sha256":"56a71d4776e75f4b6387ee813ad44b761ed5c7af7f6e3fc5f2a01d81b8dd2d65","size":1889},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphStopSoundBlock-DEnj2cQw.js","sha256":"5928ad6b402b184e07891452a55370090ed003bca8bfca8353b15b87b381d11d","size":496},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSwitchBlock-zs8Fp9ky.js","sha256":"63992e4fabebc6a73f61670005546c4e925ba522b416353fd8477aa9fc465f7a","size":1134},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphThrottleBlock-BYAKUQXd.js","sha256":"ee410b039e444a49a38082a872aa343d03046b05409f4b5746eb1173464624a4","size":1363},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphTransformCoordinatesSystemBlock-DYP54m5P.js","sha256":"ac71a16079c8e4be05241c1e5a540a285b403d9ee9483141a7305ba432ccd9bc","size":968},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphTypeToTypeBlocks-vFwn79bS.js","sha256":"d6a0a0eb6b74b42fe63e3769964ecaf98ddecadc57eb2007e65a772874f518ee","size":1281},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphUnaryOperationBlock-CaRh4Ef0.js","sha256":"737f4ea340adc3ae48a882951d71f9b8f540e7f2c2c15e5ebcd2b2ff99df1370","size":303},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphVectorMathBlocks-BEIhMs-A.js","sha256":"270d1b1ce6b2850124169642319cab6549c4a130b244bf7e660a746528178dba","size":4726},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphWaitAllBlock-DFbELP_j.js","sha256":"8a96e2e32cc9e3c30b7e822ea7cba80d3cb4540600569d12f561d111541f4116","size":1531},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphWhileLoopBlock-C1OKQ-_F.js","sha256":"5bd0a0bee1172ac3bfac71284e2b2df30ed2f7a37b687b2caa26448f53ebf63f","size":863},{"media_type":"text/javascript; charset=utf-8","path":"assets/fogFragment-DtDlQBnz.js","sha256":"ee6b9ed140362b7835c491afb2f9859e4a343c3d5ecb1251a0b5eb647c008648","size":1471},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplatting-Cfigjb15.js","sha256":"9d3144e41352489894ab67b14ddce190bede538b17083dcb7d7e9af7a9537548","size":14631},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplatting-DIn8R8oF.js","sha256":"6b00fbaa40014dffe82334827c6c1acfc3ce6ad11bbad5669ca5aff047d375df","size":14395},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplatting.fragment-BxeRJ2k-.js","sha256":"592c6fff7a3f3d7be1465fe8640fd6d93222f35ddf1b92d41928f83d9d0d190f","size":1541},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplatting.fragment-DNDmvRs-.js","sha256":"55904c293339947e671787dbf7509e28917bcb5a8c03f9958b3391f437347178","size":1812},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplatting.vertex-D92z5jYn.js","sha256":"d9c7e68482a1817e4aa873ca97737cc18150f5d520ec03d6257ad90d198ca430","size":3748},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplatting.vertex-DSWfFnKQ.js","sha256":"cf3a35e2683ddcad8126fd9bd3d38328c4a6d2427cef34afb7d44afbc554df5d","size":4904},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplattingVoxel.fragment-DBQE2gDk.js","sha256":"1f5e7c267b38e89a96348a3c276b0e1148f8f7c9c77907c38f1651d0503eec5b","size":1488},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplattingVoxel.fragment-qwx5ntqJ.js","sha256":"03b4202853fa80fa324f806d1dbffe7230efad347e8a4d6b9038c56a0fcafd78","size":1984},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplattingVoxel.vertex-CP2kd3jU.js","sha256":"a29364a0e2a4d67132b6bf33272492429c20d93785546fcc0c4dca0e509a03b8","size":2611},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplattingVoxel.vertex-Dr-fEg_W.js","sha256":"b7d22faec1df692929708634214eab0df3308df2acff00e66e500b62cdd8dbba","size":1802},{"media_type":"text/javascript; charset=utf-8","path":"assets/geometry.fragment-CsJIm2H0.js","sha256":"ee593eb46fefd4c0c011c092b9417ccb1636f57699cefd1410e1bbd26031bf15","size":8171},{"media_type":"text/javascript; charset=utf-8","path":"assets/geometry.fragment-Dph3muZt.js","sha256":"1b3e12bbab9b5e47265c9c314498ebf9198667b8f7d46d8d047fb39588302496","size":10410},{"media_type":"text/javascript; charset=utf-8","path":"assets/geometry.vertex-BXGMTA_J.js","sha256":"f7692bb9fb9c868011981fac0f94e5b0a0d6982a9d89b40b80f4fecc2701ad3c","size":9012},{"media_type":"text/javascript; charset=utf-8","path":"assets/geometry.vertex-Bm9Wg3Gi.js","sha256":"2ced287fe30dbd2ca1938371f0eb185b44e5537aa0107706576b7fbfe26e329c","size":7601},{"media_type":"text/javascript; charset=utf-8","path":"assets/glowBlurPostProcess.fragment-BJSwKIJD.js","sha256":"e832c36058c156a0e1469aec4963455ceb6f66cd76b3751d1665b9eab4a04b30","size":1409},{"media_type":"text/javascript; charset=utf-8","path":"assets/glowMapGeneration.fragment-DcyS1cTF.js","sha256":"619ee3d94cb825cadebeae79d69f6398919713c0558d109a0026cf048352d0b1","size":2530},{"media_type":"text/javascript; charset=utf-8","path":"assets/glowMapGeneration.vertex-BGq1Fakj.js","sha256":"81d931c9f31b1278fd471407e7ef3ec6da3913bab29908590a83c81b11dc3f79","size":2798},{"media_type":"text/javascript; charset=utf-8","path":"assets/glowMapMerge.fragment-DxcneU_F.js","sha256":"398724a1be58ee23abb4d6cff7abcc6e4d297e43db47d985da25cabc1f7f7294","size":1059},{"media_type":"text/javascript; charset=utf-8","path":"assets/glowMapMerge.vertex-DaJJKqMV.js","sha256":"78f44151e066ebf392ab38699b050688f24d0e1b9479a040fa2e03981d3951e4","size":545},{"media_type":"text/javascript; charset=utf-8","path":"assets/harmonicsFunctions-DzJcvNWG.js","sha256":"5832e42caf47a121e49b4e155213364e1a44847c7415f2b5c6ea939bcd2865dd","size":1420},{"media_type":"text/javascript; charset=utf-8","path":"assets/hdrTextureLoader-BGQvgh0h.js","sha256":"3cca41d849d41bf1df7aef34b4f8b5ef30440e716d894158207bd12b97236953","size":2391},{"media_type":"text/javascript; charset=utf-8","path":"assets/helperFunctions-Cugfp1Fz.js","sha256":"77cf370815c8bbcf9f7a4a56bb8c83738fbd5ff76eb7e5a5203dcb4cd5d792dd","size":6488},{"media_type":"text/javascript; charset=utf-8","path":"assets/iesTextureLoader-CO4G0p2M.js","sha256":"215dc4986ac8c6971245525df910a9365f4d2c73e40c2653c623be2dc06b5cfe","size":2701},{"media_type":"text/javascript; charset=utf-8","path":"assets/index-B2zBEWsq.js","sha256":"fada365f2363db07cd540a9fa20cca4ed5f2815066a71edfa6d5a0ae3539d517","size":2297566},{"media_type":"text/css; charset=utf-8","path":"assets/index-DcTTrc-8.css","sha256":"c7ca6d6d72937413e23f12b0307554534382c8099ab41fa9ebeb77d3ef1a1eb0","size":12857},{"media_type":"text/javascript; charset=utf-8","path":"assets/kernelBlur.fragment-B6CTXTxY.js","sha256":"a04ca8b33d87d734c5788a7fd874fd5a12223bf23cc284052c790cb425cb9085","size":2851},{"media_type":"text/javascript; charset=utf-8","path":"assets/kernelBlur.fragment-BkKbudbW.js","sha256":"abe04b7735cffc5ef0d83c4c22f1d58cf5860628e9becd2e79d7fe41620f3f25","size":2311},{"media_type":"text/javascript; charset=utf-8","path":"assets/kernelBlur.vertex-BYwFU5IS.js","sha256":"50ff83c27ed5632411e4ad0edd3931652dd9c2d04d152aac1f0a31e021e4999c","size":1064},{"media_type":"text/javascript; charset=utf-8","path":"assets/kernelBlur.vertex-D371zUfT.js","sha256":"d4e970013c203e6c17ce59744aa81162d2e281cc67d9751bb217344be830e4f3","size":899},{"media_type":"text/javascript; charset=utf-8","path":"assets/kernelBlurVaryingDeclaration-CgBGaCHg.js","sha256":"85200ab02c47a4ad15ed292ac24565a00fc69d06cf4a7afb3da2818b4fef4c65","size":211},{"media_type":"text/javascript; charset=utf-8","path":"assets/kernelBlurVaryingDeclaration-YS8JpqdO.js","sha256":"4ddc4b72b4674336861dea7967285ec75c93f7007aa6003af15a0a627226a6a0","size":221},{"media_type":"text/javascript; charset=utf-8","path":"assets/ktxTextureLoader-ncMSJTjl.js","sha256":"12b2cb87119fbcb1e433aa7006768161e651a6582e68072861236b147ab21d9d","size":14979},{"media_type":"text/javascript; charset=utf-8","path":"assets/lightFragment-skHiFbKB.js","sha256":"372d4f9e48121087f218a9ec60e8882300dd8392a8a6a1fe99c25df03d79a0c0","size":22605},{"media_type":"text/javascript; charset=utf-8","path":"assets/logDepthDeclaration-BR8XRz9F.js","sha256":"b904680e2f4a5b4d943daa26186700c74e5c95504d068423990ab24ef6e1219c","size":280},{"media_type":"text/javascript; charset=utf-8","path":"assets/logDepthVertex-UKrhEIvg.js","sha256":"fefe81e7017d1b357b52e646296f0271ef1861935824cdfd7c3d19dcabc5de9f","size":826},{"media_type":"text/javascript; charset=utf-8","path":"assets/mainUVVaryingDeclaration-BxQWGFcG.js","sha256":"40fc1f6395d8a7189412d5f301403741e585a73ad8bfe79b18aa5f6b25088abe","size":238},{"media_type":"text/javascript; charset=utf-8","path":"assets/mesh.vertexData.functions-ayNlGC5K.js","sha256":"109b0c291f78ec6b98053b23c7a9ce01eb8bcee909a0964ce337a68a9b4bc61e","size":960},{"media_type":"text/javascript; charset=utf-8","path":"assets/meshUboDeclaration-BnX046aQ.js","sha256":"0c692c627ad08e38be2584f9215f5a362817c496c6ab1cc6f92b6e1aaf9258bd","size":278},{"media_type":"text/javascript; charset=utf-8","path":"assets/oitFragment-CTMCOfNP.js","sha256":"e84c394fce9d26be60b163359a02a7ecdcfbbf7ba814536491fb9a708d35bea2","size":52427},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbr.fragment-DPJPqi6p.js","sha256":"a50da291f4ae9b59323bf69c9b2938b75b876913e007268955a86af38c09d099","size":86994},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbr.fragment-Dv6qTVVi.js","sha256":"10d586e105f6fdeed780adc741b2d8206f4363c7ff929544a13af0bc5241e4e4","size":89838},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbr.vertex-Bn2wrdGL.js","sha256":"11335ab3c7dee1da65be7614cb74f477c05a4a3985fe25b34c2cd17bb2c0c968","size":20214},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbr.vertex-CHESW3gB.js","sha256":"1a12b5efb1144a8674ee710c103a7cd9946e831969451bcf51d92ae60d771165","size":17340},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbrMaterial.pure-BdK7VgO_.js","sha256":"f0ed446c36167bd0a90c08afc0605395f91a1e3a0be2eaa2757238cfbb1a9990","size":134158},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbrMaterialLoadingAdapter-Bm_AHDUN.js","sha256":"f4921f59b94ab2881ecd92246185e82a8b31bb0269d1319bcaa539104c0e9644","size":33220},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbrTransmissionLayerData-BDa9qEoN.js","sha256":"276fca2d558b631720a4457e9ea638ba96f5bb88ebf6bf8437892747b329e0cb","size":17043},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbrTransmissionLayerData-Ba_ly4LE.js","sha256":"4195818070d30259ca0fb295ddba32b3919c0e937e9e4651d56afbd4a4f2d4d9","size":17708},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbrUboDeclaration-BY2lSH2C.js","sha256":"d16235bfd3f07a73a6801d5659d5e9532fdb16fde8260a57d38dfb5d74f3a780","size":5221},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbrUboDeclaration-DajhikDS.js","sha256":"a4c63b0d4d61d85a0c07fea60dc275a4ec1a11c4d7640782575f2007ccc5bbfa","size":3791},{"media_type":"text/javascript; charset=utf-8","path":"assets/packingFunctions-BHPwcGG2.js","sha256":"dea936fc06d9a52b188ac7af4a14f2f0fd64aeafa9e838377a58511e6bef939c","size":562},{"media_type":"text/javascript; charset=utf-8","path":"assets/packingFunctions-DTwzBRBx.js","sha256":"77da42881ee8d9821f070bb82a336573dd09326dc10e6b60d5acf4ea814fcdd6","size":528},{"media_type":"text/javascript; charset=utf-8","path":"assets/pass.fragment-9oKU4pI3.js","sha256":"34b123f70208f022c855f437b77d5fa095b5a595ad3b7c2f1b6edea91b70471f","size":451},{"media_type":"text/javascript; charset=utf-8","path":"assets/passCube.fragment-CpAeiYx1.js","sha256":"d379bf679069be253b99f6651c2d749781821d8453dac592d5c23a16a322acb5","size":822},{"media_type":"text/javascript; charset=utf-8","path":"assets/passCube.fragment-DHtSWVRF.js","sha256":"9785a09b76d855608887a4b8e55e4efcf59b158d5f695f46f6f7eec31d3fe270","size":1131},{"media_type":"text/javascript; charset=utf-8","path":"assets/pbr.fragment-cIhMKwLs.js","sha256":"f4c548402585801b37af57e276e1cc570b18fc90a34cbbfb75ec13ecd5b1aab4","size":93721},{"media_type":"text/javascript; charset=utf-8","path":"assets/pbr.vertex-BfdONsf2.js","sha256":"e14172967b46b724b3aadaa3474f2dc9c4c70152dfc83ce532324ef4b38a99e7","size":14451},{"media_type":"text/javascript; charset=utf-8","path":"assets/pbrBRDFFunctions-B_ppOzPO.js","sha256":"3b403bca53dd16f82da4adf67d5dfaaae76b9b45fe4d8000b444fda25e70ec22","size":12760},{"media_type":"text/javascript; charset=utf-8","path":"assets/pbrDebug-DDdwL5_t.js","sha256":"2f64a7a05c84d6acf6bff57e53b21cc2e639b6c290163dfb38caca3ef4082445","size":43522},{"media_type":"text/javascript; charset=utf-8","path":"assets/pbrIBLFunctions-b1zdpzOP.js","sha256":"bd1b67ac506532bf280f53a26323163c9f0878668d3af779bbe6f45796ba6d5d","size":2720},{"media_type":"text/javascript; charset=utf-8","path":"assets/pbrMaterial.pure-BZA7yVhu.js","sha256":"b77a28247228beb633fba0e7ce4666a116c2c6b1686de9f154acfaf9f406c96d","size":134889},{"media_type":"text/javascript; charset=utf-8","path":"assets/pbrMaterialLoadingAdapter-BRvKRnjl.js","sha256":"6e52ced3579e38f0082469e392036620a736ab67c960eaf818ae92778c327c0b","size":12426},{"media_type":"text/javascript; charset=utf-8","path":"assets/pbrUboDeclaration-CMZp25k3.js","sha256":"f84d08f8b7a0ea960e11d2de5997dba80ef85a78be4ab99a561ba0a7b7c6f8d7","size":2398},{"media_type":"text/javascript; charset=utf-8","path":"assets/postprocess.vertex-DzdUpNbW.js","sha256":"182981de26969f764e47e34204856021b0e30723ad73fb98808203dfbe29ede6","size":583},{"media_type":"text/javascript; charset=utf-8","path":"assets/procedural.vertex-BnbuQ-1f.js","sha256":"fb989a788e191ff6320c26f27229c97aaf766fe036606679be89573311474836","size":472},{"media_type":"text/javascript; charset=utf-8","path":"assets/procedural.vertex-Dp-Ng7Pc.js","sha256":"361c4ed02676e0abc967285ec75f3c0e0a65bf8c549f492c865ff84af81a1cfd","size":612},{"media_type":"text/javascript; charset=utf-8","path":"assets/reflectionFunction-DBlr3oDs.js","sha256":"fef383ba9414ef21a4b72e9f6110ed79e90c9fe4d18213786b88be5a0bf796e5","size":5231},{"media_type":"text/javascript; charset=utf-8","path":"assets/rgbdDecode.fragment-CyvnZFOJ.js","sha256":"3f9f2f0b8af2fc4582c64aa5e35cc55646f28c2a677f47c7f30578b99ef6fbc9","size":671},{"media_type":"text/javascript; charset=utf-8","path":"assets/rgbdEncode.fragment-Dz4zLnoD.js","sha256":"3008fdd89f09b2514c2aa46816c4fc50275b67d14887f29b208904efc2e1c631","size":477},{"media_type":"text/javascript; charset=utf-8","path":"assets/rgbdEncode.fragment-iscgpA1_.js","sha256":"64e8722d692bddd8ad382bd32085e0d7babfb8faaebc04c6bade465b78b842e8","size":662},{"media_type":"text/javascript; charset=utf-8","path":"assets/sceneUboDeclaration-BzFIc4mb.js","sha256":"5d497c42e56ee02b4c23b2826b9cad7873d93880f434ab0a6c3a3a6aeb3dc073","size":435},{"media_type":"text/javascript; charset=utf-8","path":"assets/textureProcessor.fragment-C9D0rd-M.js","sha256":"09c5e5835f33578bcda10b1cf9f774d9827f5ecbfcd2e9bdbb69cbce629c0e75","size":4377},{"media_type":"text/javascript; charset=utf-8","path":"assets/textureProcessor.fragment-JMKyWZng.js","sha256":"afa74e9bc26121a31a7d20c897fc2c88da29c42a87a86349d281bbc5dce7fad8","size":3490},{"media_type":"text/javascript; charset=utf-8","path":"assets/tgaTextureLoader-oxTElIQJ.js","sha256":"990e1c1a660c4bc7969a5d3cd047b93a7e38b8db20d839465589abc357322d41","size":3527},{"media_type":"text/javascript; charset=utf-8","path":"assets/vertexColorMixing-mdC9xZe1.js","sha256":"cbc4c1243eafb129165fa7b94840cc96ca141fc2cfb9f57d6ec917d37c02da1a","size":22140},{"media_type":"image/svg+xml","path":"favicon.svg","sha256":"546022cfc08c84149ba3e3fc311fc66ffa29f2227e19ee138525b391c040cd07","size":640},{"media_type":"text/html; charset=utf-8","path":"index.html","sha256":"0084379016a75d2d2383aa6794f76cdaf91b7f058fb860056f4474dbd41c55e2","size":742},{"media_type":"text/javascript; charset=utf-8","path":"sw.js","sha256":"d7d37cb0c5668dae70e28af0908686d4776f16d11321d3e55dcbe62ab85a75b8","size":2629}],"schema_id":"urn:python-cad-tools:schema:viewer-assets:1","schema_version":1}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a$ as A,M as F,b0 as B,b1 as C,b2 as k,b3 as D,b4 as W,b5 as K,b6 as U,az as P,a0 as T,Q as S,V as Y,b7 as z,b8 as H,aP as G,b9 as w,ba as X,bb as J,bc as q}from"./index-B2zBEWsq.js";class Q{get currentFrame(){return this._currentFrame}get weight(){return this._weight}get currentValue(){return this._currentValue}get targetPath(){return this._targetPath}get target(){return this._currentActiveTarget}get isAdditive(){return this._host&&this._host.isAdditive}constructor(e,t,i,n){if(this._events=new Array,this._currentFrame=0,this._originalValue=new Array,this._originalBlendValue=null,this._offsetsCache={},this._highLimitsCache={},this._stopped=!1,this._blendingFactor=0,this._currentValue=null,this._currentActiveTarget=null,this._directTarget=null,this._targetPath="",this._weight=1,this._absoluteFrameOffset=0,this._previousElapsedTime=0,this._yoyoDirection=1,this._previousAbsoluteFrame=0,this._targetIsArray=!1,this._coreRuntimeAnimation=null,this._animation=t,this._target=e,this._scene=i,this._host=n,this._activeTargets=[],t._runtimeAnimations.push(this),this._animationState={key:0,repeatCount:0,loopMode:this._getCorrectLoopMode()},this._animation.dataType===A.ANIMATIONTYPE_MATRIX&&(this._animationState.workValue=F.Zero()),this._keys=this._animation.getKeys(),this._minFrame=this._keys[0].frame,this._maxFrame=this._keys[this._keys.length-1].frame,this._minFrame!==0){const a={frame:0,value:this._keys[0].value};this._keys.splice(0,0,a)}if(this._target instanceof Array){let a=0;for(const l of this._target)this._preparePath(l,a),this._getOriginalValues(a),a++;this._targetIsArray=!0}else this._preparePath(this._target),this._getOriginalValues(),this._targetIsArray=!1,this._directTarget=this._activeTargets[0];const s=t.getEvents();if(s&&s.length>0)for(const a of s)this._events.push(a._clone());this._enableBlending=e&&e.animationPropertiesOverride?e.animationPropertiesOverride.enableBlending:this._animation.enableBlending}_preparePath(e,t=0){const i=this._animation.targetPropertyPath;if(i.length>1){let n=e;for(let s=0;s<i.length-1;s++){const a=i[s];if(n=n[a],n===void 0)throw new Error(`Invalid property (${a}) in property path (${i.join(".")})`)}this._targetPath=i[i.length-1],this._activeTargets[t]=n}else this._targetPath=i[0],this._activeTargets[t]=e;if(this._activeTargets[t][this._targetPath]===void 0)throw new Error(`Invalid property (${this._targetPath}) in property path (${i.join(".")})`)}get animation(){return this._animation}reset(e=!1){if(e)if(this._target instanceof Array){let t=0;for(const i of this._target)this._originalValue[t]!==void 0&&this._setValue(i,this._activeTargets[t],this._originalValue[t],-1,t),t++}else this._originalValue[0]!==void 0&&this._setValue(this._target,this._directTarget,this._originalValue[0],-1,0);this._offsetsCache={},this._highLimitsCache={},this._currentFrame=0,this._blendingFactor=0;for(let t=0;t<this._events.length;t++)this._events[t].isDone=!1}isStopped(){return this._stopped}dispose(){const e=this._animation.runtimeAnimations.indexOf(this);e>-1&&this._animation.runtimeAnimations.splice(e,1)}setValue(e,t){if(this._targetIsArray){for(let i=0;i<this._target.length;i++){const n=this._target[i];this._setValue(n,this._activeTargets[i],e,t,i)}return}this._setValue(this._target,this._directTarget,e,t,0)}_getOriginalValues(e=0){let t;const i=this._activeTargets[e];if(A.InheritOriginalValueFromActiveAnimations){const n=this._scene._activeAnimatables;for(let s=0;s<n.length;s++){const a=n[s]._runtimeAnimations;for(let l=0;l<a.length;l++){const r=a[l];if(r!==this&&r._targetPath===this._targetPath){for(let h=0;h<r._activeTargets.length;h++)if(r._activeTargets[h]===i&&r._originalValue[h]!==void 0){r._originalValue[h]&&r._originalValue[h].clone?this._originalValue[e]=r._originalValue[h].clone():this._originalValue[e]=r._originalValue[h];return}}}}}i.getLocalMatrix&&this._targetPath==="_matrix"?t=i.getLocalMatrix():t=i[this._targetPath],t&&t.clone?this._originalValue[e]=t.clone():this._originalValue[e]=t}_registerTargetForLateAnimationBinding(e,t){const i=e.target;this._scene._registeredForLateAnimationBindings.pushNoDuplicate(i),i._lateAnimationHolders||(i._lateAnimationHolders={}),i._lateAnimationHolders[e.targetPath]||(i._lateAnimationHolders[e.targetPath]={totalWeight:0,totalAdditiveWeight:0,animations:[],additiveAnimations:[],originalValue:t}),e.isAdditive?(i._lateAnimationHolders[e.targetPath].additiveAnimations.push(e),i._lateAnimationHolders[e.targetPath].totalAdditiveWeight+=e.weight):(i._lateAnimationHolders[e.targetPath].animations.push(e),i._lateAnimationHolders[e.targetPath].totalWeight+=e.weight)}_setValue(e,t,i,n,s){if(this._currentActiveTarget=t,this._weight=n,this._enableBlending&&this._blendingFactor<=1){if(!this._originalBlendValue){const l=t[this._targetPath];l.clone?this._originalBlendValue=l.clone():this._originalBlendValue=l}this._originalBlendValue.m?A.AllowMatrixDecomposeForInterpolation?this._currentValue?F.DecomposeLerpToRef(this._originalBlendValue,i,this._blendingFactor,this._currentValue):this._currentValue=F.DecomposeLerp(this._originalBlendValue,i,this._blendingFactor):this._currentValue?F.LerpToRef(this._originalBlendValue,i,this._blendingFactor,this._currentValue):this._currentValue=F.Lerp(this._originalBlendValue,i,this._blendingFactor):this._currentValue=A._UniversalLerp(this._originalBlendValue,i,this._blendingFactor);const a=e&&e.animationPropertiesOverride?e.animationPropertiesOverride.blendingSpeed:this._animation.blendingSpeed;this._blendingFactor+=a}else this._currentValue?this._currentValue.copyFrom?this._currentValue.copyFrom(i):this._currentValue=i:i?.clone?this._currentValue=i.clone():this._currentValue=i;n!==-1?this._registerTargetForLateAnimationBinding(this,this._originalValue[s]):this._animationState.loopMode===A.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT?this._currentValue.addToRef?this._currentValue.addToRef(this._originalValue[s],t[this._targetPath]):t[this._targetPath]=this._originalValue[s]+this._currentValue:t[this._targetPath]=this._currentValue,e.markAsDirty&&e.markAsDirty(this._animation.targetProperty)}_getCorrectLoopMode(){return this._target&&this._target.animationPropertiesOverride?this._target.getClassName?.()==="MorphTarget"&&this._target._animationPropertiesOverride==null?this._animation.loopMode:this._target.animationPropertiesOverride.loopMode:this._animation.loopMode}goToFrame(e,t=-1){const i=this._animation.getKeys();e<i[0].frame?e=i[0].frame:e>i[i.length-1].frame&&(e=i[i.length-1].frame);const n=this._events;if(n.length)for(let a=0;a<n.length;a++)n[a].onlyOnce||(n[a].isDone=n[a].frame<e);this._currentFrame=e;const s=this._animation._interpolate(e,this._animationState);this.setValue(s,t)}_prepareForSpeedRatioChange(e){const t=this._previousElapsedTime*(this._animation.framePerSecond*e)/1e3;this._absoluteFrameOffset=this._previousAbsoluteFrame-t}animate(e,t,i,n,s,a=-1){const l=this._animation,r=l.targetPropertyPath;if(!r||r.length<1)return this._stopped=!0,!1;let h=!0,g;const u=this._events;let c;if(this._coreRuntimeAnimation)c=i-t,g=this._coreRuntimeAnimation.currentFrame,this._currentFrame=g,this._animationState.repeatCount=this._coreRuntimeAnimation._animationState.repeatCount,this._animationState.highLimitValue=this._coreRuntimeAnimation._animationState.highLimitValue,this._animationState.offsetValue=this._coreRuntimeAnimation._animationState.offsetValue;else{(t<this._minFrame||t>this._maxFrame)&&(t=this._minFrame),(i<this._minFrame||i>this._maxFrame)&&(i=this._maxFrame),c=i-t;let _,m=e*(l.framePerSecond*s)/1e3+this._absoluteFrameOffset,b=0,V=!1;const O=n&&this._animationState.loopMode===A.ANIMATIONLOOPMODE_YOYO;if(O){const d=(m-t)/c,p=Math.sin(d*Math.PI);m=Math.abs(p)*c+t;const L=p>=0?1:-1;this._yoyoDirection!==L&&(V=!0),this._yoyoDirection=L}if(this._previousElapsedTime=e,this._previousAbsoluteFrame=m,!n&&i>=t&&(m>=c&&s>0||m<=0&&s<0))h=!1,b=l.evaluate(i);else if(!n&&t>=i&&(m<=c&&s<0||m>=0&&s>0))h=!1,b=l.evaluate(t);else if(this._animationState.loopMode!==A.ANIMATIONLOOPMODE_CYCLE){const d=i.toString()+t.toString();if(!this._offsetsCache[d]){this._animationState.repeatCount=0,this._animationState.loopMode=A.ANIMATIONLOOPMODE_CYCLE;const p=l._interpolate(t,this._animationState),y=l._interpolate(i,this._animationState);switch(this._animationState.loopMode=this._getCorrectLoopMode(),l.dataType){case A.ANIMATIONTYPE_FLOAT:this._offsetsCache[d]=y-p;break;case A.ANIMATIONTYPE_QUATERNION:this._offsetsCache[d]=y.subtract(p);break;case A.ANIMATIONTYPE_VECTOR3:this._offsetsCache[d]=y.subtract(p);break;case A.ANIMATIONTYPE_VECTOR2:this._offsetsCache[d]=y.subtract(p);break;case A.ANIMATIONTYPE_SIZE:this._offsetsCache[d]=y.subtract(p);break;case A.ANIMATIONTYPE_COLOR3:this._offsetsCache[d]=y.subtract(p);break}this._highLimitsCache[d]=y}b=this._highLimitsCache[d],_=this._offsetsCache[d]}if(_===void 0)switch(l.dataType){case A.ANIMATIONTYPE_FLOAT:_=0;break;case A.ANIMATIONTYPE_QUATERNION:_=K;break;case A.ANIMATIONTYPE_VECTOR3:_=W;break;case A.ANIMATIONTYPE_VECTOR2:_=D;break;case A.ANIMATIONTYPE_SIZE:_=k;break;case A.ANIMATIONTYPE_COLOR3:_=C;break;case A.ANIMATIONTYPE_COLOR4:_=B;break}if(this._host&&this._host.syncRoot){const d=this._host.syncRoot,p=(d.masterFrame-d.fromFrame)/(d.toFrame-d.fromFrame);g=t+c*p}else m>0&&t>i||m<0&&t<i?g=h&&c!==0?i+m%c:t:g=h&&c!==0?t+m%c:i;if(!O&&(s>0&&this.currentFrame>g||s<0&&this.currentFrame<g)||O&&V){this._onLoop();for(let d=0;d<u.length;d++)u[d].onlyOnce||(u[d].isDone=!1);this._animationState.key=s>0?0:l.getKeys().length-1}this._currentFrame=g,this._animationState.repeatCount=c===0?0:m/c>>0,this._animationState.highLimitValue=b,this._animationState.offsetValue=_}const f=l._interpolate(g,this._animationState);if(this.setValue(f,a),u.length){for(let _=0;_<u.length;_++)if(c>=0&&g>=u[_].frame&&u[_].frame>=t||c<0&&g<=u[_].frame&&u[_].frame<=t){const m=u[_];m.isDone||(m.onlyOnce&&(u.splice(_,1),_--),m.isDone=!0,m.action(g))}}return h||(this._stopped=!0),h}}class I{get syncRoot(){return this._syncRoot}get masterFrame(){return this._runtimeAnimations.length===0?0:this._runtimeAnimations[0].currentFrame}get weight(){return this._weight}set weight(e){if(e===-1){this._weight=-1;return}this._weight=Math.min(Math.max(e,0),1)}get speedRatio(){return this._speedRatio}set speedRatio(e){for(let t=0;t<this._runtimeAnimations.length;t++)this._runtimeAnimations[t]._prepareForSpeedRatioChange(e);this._speedRatio=e,this._goToFrame!==null&&this.goToFrame(this._goToFrame)}get elapsedTime(){return this._localDelayOffset===null?0:this._scene._animationTime-this._localDelayOffset}constructor(e,t,i=0,n=100,s=!1,a=1,l,r,h,g=!1,u=0){this.target=t,this.fromFrame=i,this.toFrame=n,this.loopAnimation=s,this.onAnimationEnd=l,this.onAnimationLoop=h,this.isAdditive=g,this.playOrder=u,this._localDelayOffset=null,this._pausedDelay=null,this._manualJumpDelay=null,this._runtimeAnimations=new Array,this._paused=!1,this._speedRatio=1,this._weight=-1,this._previousWeight=-1,this._syncRoot=null,this._frameToSyncFromJump=null,this._goToFrame=null,this.disposeOnEnd=!0,this.animationStarted=!1,this.onAnimationEndObservable=new P,this.onAnimationLoopObservable=new P,this._scene=e,r&&this.appendAnimations(t,r),this._speedRatio=a,e._activeAnimatables.push(this)}syncWith(e){if(this._syncRoot=e,e){const t=this._scene._activeAnimatables.indexOf(this);t>-1&&(this._scene._activeAnimatables.splice(t,1),this._scene._activeAnimatables.push(this))}return this}getAnimations(){return this._runtimeAnimations}appendAnimations(e,t){for(let i=0;i<t.length;i++){const n=t[i],s=new Q(e,n,this._scene,this);s._onLoop=()=>{this.onAnimationLoopObservable.notifyObservers(this),this.onAnimationLoop&&this.onAnimationLoop()},this._runtimeAnimations.push(s)}}getAnimationByTargetProperty(e){const t=this._runtimeAnimations;for(let i=0;i<t.length;i++)if(t[i].animation.targetProperty===e)return t[i].animation;return null}getRuntimeAnimationByTargetProperty(e){const t=this._runtimeAnimations;for(let i=0;i<t.length;i++)if(t[i].animation.targetProperty===e)return t[i];return null}reset(){const e=this._runtimeAnimations;for(let t=0;t<e.length;t++)e[t].reset(!0);this._localDelayOffset=null,this._pausedDelay=null}enableBlending(e){const t=this._runtimeAnimations;for(let i=0;i<t.length;i++)t[i].animation.enableBlending=!0,t[i].animation.blendingSpeed=e}disableBlending(){const e=this._runtimeAnimations;for(let t=0;t<e.length;t++)e[t].animation.enableBlending=!1}goToFrame(e,t=!1){const i=this._runtimeAnimations;if(i[0]){const n=i[0].animation.framePerSecond;this._frameToSyncFromJump=this._frameToSyncFromJump??i[0].currentFrame;const s=this.speedRatio===0?0:(e-this._frameToSyncFromJump)/n*1e3/this.speedRatio;this._manualJumpDelay=-s}for(let n=0;n<i.length;n++)i[n].goToFrame(e,t?this._weight:-1);this._goToFrame=e}get paused(){return this._paused}pause(){this._paused||(this._paused=!0)}restart(){this._paused=!1}_raiseOnAnimationEnd(){this.onAnimationEnd&&this.onAnimationEnd(),this.onAnimationEndObservable.notifyObservers(this)}stop(e,t,i=!1,n=!1){if(e||t){const s=this._scene._activeAnimatables.indexOf(this);if(s>-1){const a=this._runtimeAnimations;for(let l=a.length-1;l>=0;l--){const r=a[l];e&&r.animation.name!=e||t&&!t(r.target)||(r.dispose(),a.splice(l,1))}a.length==0&&(i||this._scene._activeAnimatables.splice(s,1),n||this._raiseOnAnimationEnd())}}else{const s=this._scene._activeAnimatables.indexOf(this);if(s>-1){i||this._scene._activeAnimatables.splice(s,1);const a=this._runtimeAnimations;for(let l=0;l<a.length;l++)a[l].dispose();this._runtimeAnimations.length=0,n||this._raiseOnAnimationEnd()}}}async waitAsync(){return await new Promise(e=>{this.onAnimationEndObservable.add(()=>{e(this)},void 0,void 0,this,!0)})}_animate(e){if(this._paused)return this.animationStarted=!1,this._pausedDelay===null&&(this._pausedDelay=e),!0;if(this._localDelayOffset===null?(this._localDelayOffset=e,this._pausedDelay=null):this._pausedDelay!==null&&(this._localDelayOffset+=e-this._pausedDelay,this._pausedDelay=null),this._manualJumpDelay!==null&&(this._localDelayOffset+=this.speedRatio<0?-this._manualJumpDelay:this._manualJumpDelay,this._manualJumpDelay=null,this._frameToSyncFromJump=null),this._goToFrame=null,!I.ProcessPausedAnimatables&&this._weight===0&&this._previousWeight===0)return!0;this._previousWeight=this._weight;let t=!1;const i=this._runtimeAnimations;let n;for(n=0;n<i.length;n++){const a=i[n].animate(e-this._localDelayOffset,this.fromFrame,this.toFrame,this.loopAnimation,this._speedRatio,this._weight);t=t||a}if(this.animationStarted=t,!t){if(this.disposeOnEnd)for(n=this._scene._activeAnimatables.indexOf(this),this._scene._activeAnimatables.splice(n,1),n=0;n<i.length;n++)i[n].dispose();this._raiseOnAnimationEnd(),this.disposeOnEnd&&(this.onAnimationEnd=null,this.onAnimationLoop=null,this.onAnimationLoopObservable.clear(),this.onAnimationEndObservable.clear())}return t}}I.ProcessPausedAnimatables=!1;function $(o){if(o.totalWeight===0&&o.totalAdditiveWeight===0)return o.originalValue;let e=1;const t=T.Vector3[0],i=T.Vector3[1],n=T.Quaternion[0];let s=0;const a=o.animations[0],l=o.originalValue;let r,h=!1;if(o.totalWeight<1)r=1-o.totalWeight,l.decompose(i,n,t);else{if(s=1,e=o.totalWeight,r=a.weight/e,r==1)if(o.totalAdditiveWeight)h=!0;else return a.currentValue;a.currentValue.decompose(i,n,t)}if(!h){i.scaleInPlace(r),t.scaleInPlace(r),n.scaleInPlace(r);for(let u=s;u<o.animations.length;u++){const c=o.animations[u];if(c.weight===0)continue;r=c.weight/e;const f=T.Vector3[2],_=T.Vector3[3],m=T.Quaternion[1];c.currentValue.decompose(_,m,f),_.scaleAndAddToRef(r,i),m.scaleAndAddToRef(S.Dot(n,m)>0?r:-r,n),f.scaleAndAddToRef(r,t)}n.normalize()}for(let u=0;u<o.additiveAnimations.length;u++){const c=o.additiveAnimations[u];if(c.weight===0)continue;const f=T.Vector3[2],_=T.Vector3[3],m=T.Quaternion[1];c.currentValue.decompose(_,m,f),_.multiplyToRef(i,_),Y.LerpToRef(i,_,c.weight,i),n.multiplyToRef(m,m),S.SlerpToRef(n,m,c.weight,n),f.scaleAndAddToRef(c.weight,t)}const g=a?a._animationState.workValue:T.Matrix[0].clone();return F.ComposeToRef(i,n,t,g),g}function j(o,e){if(o.totalWeight===0&&o.totalAdditiveWeight===0)return e;const t=o.animations[0],i=o.originalValue;let n=e;if(o.totalWeight===0&&o.totalAdditiveWeight>0)n.copyFrom(i);else if(o.animations.length===1){if(S.SlerpToRef(i,t.currentValue,Math.min(1,o.totalWeight),n),o.totalAdditiveWeight===0)return n}else if(o.animations.length>1){let s=1,a,l;if(o.totalWeight<1){const h=1-o.totalWeight;a=[],l=[],a.push(i),l.push(h)}else{if(o.animations.length===2&&(S.SlerpToRef(o.animations[0].currentValue,o.animations[1].currentValue,o.animations[1].weight/o.totalWeight,e),o.totalAdditiveWeight===0))return e;a=[],l=[],s=o.totalWeight}for(let h=0;h<o.animations.length;h++){const g=o.animations[h];a.push(g.currentValue),l.push(g.weight/s)}let r=0;for(let h=0;h<a.length;){if(!h){S.SlerpToRef(a[h],a[h+1],l[h+1]/(l[h]+l[h+1]),e),n=e,r=l[h]+l[h+1],h+=2;continue}r+=l[h],S.SlerpToRef(n,a[h],l[h]/r,n),h++}}for(let s=0;s<o.additiveAnimations.length;s++){const a=o.additiveAnimations[s];a.weight!==0&&(n.multiplyToRef(a.currentValue,T.Quaternion[0]),S.SlerpToRef(n,T.Quaternion[0],a.weight,n))}return n}function Z(o){if(o._registeredForLateAnimationBindings.length){for(let e=0;e<o._registeredForLateAnimationBindings.length;e++){const t=o._registeredForLateAnimationBindings.data[e];for(const i in t._lateAnimationHolders){const n=t._lateAnimationHolders[i],s=n.animations[0],a=n.originalValue;if(a==null)continue;const l=A.AllowMatrixDecomposeForInterpolation&&a.m;let r=t[i];if(l)r=$(n);else if(a.w!==void 0)r=j(n,r||S.Identity());else{let g=0,u=1;const c=s&&s._animationState.loopMode===A.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT;if(n.totalWeight<1)c?r=a.clone?a.clone():a:s&&a.scale?r=a.scale(1-n.totalWeight):s?r=a*(1-n.totalWeight):a.clone?r=a.clone():r=a;else if(s){u=n.totalWeight;const f=s.weight/u;f!==1?s.currentValue.scale?r=s.currentValue.scale(f):r=s.currentValue*f:r=s.currentValue,c&&(r.addToRef?r.addToRef(a,r):r+=a),g=1}for(let f=g;f<n.animations.length;f++){const _=n.animations[f],m=_.weight/u;if(m)_.currentValue.scaleAndAddToRef?_.currentValue.scaleAndAddToRef(m,r):r+=_.currentValue*m;else continue}for(let f=0;f<n.additiveAnimations.length;f++){const _=n.additiveAnimations[f],m=_.weight;if(m)_.currentValue.scaleAndAddToRef?_.currentValue.scaleAndAddToRef(m,r):r+=_.currentValue*m;else continue}}t[i]=r}t._lateAnimationHolders={}}o._registeredForLateAnimationBindings.reset()}}function tt(o,e){e&&(e.prototype.copyAnimationRange=function(t,i,n,s=!1,a=null){this.animations.length===0&&(this.animations.push(new A(this.name,"_matrix",t.animations[0].framePerSecond,A.ANIMATIONTYPE_MATRIX,0)),this.animations[0].setKeys([]));const l=t.animations[0].getRange(i);if(!l)return!1;const r=l.from,h=l.to,g=t.animations[0].getKeys(),u=t.length,c=t.getParent(),f=this.getParent(),_=s&&c&&u&&this.length&&u!==this.length,m=_&&f&&c?f.length/c.length:1,b=s&&!f&&a&&(a.x!==1||a.y!==1||a.z!==1),V=this.animations[0].getKeys();let O,d,p;for(let y=0,L=g.length;y<L;y++)O=g[y],O.frame>=r&&O.frame<=h&&(s?(p=O.value.clone(),_?(d=p.getTranslation(),p.setTranslation(d.scaleInPlace(m))):b&&a?(d=p.getTranslation(),p.setTranslation(d.multiplyInPlace(a))):p=O.value):p=O.value,V.push({frame:O.frame+n,value:p}));return this.animations[0].createRange(i,r+n,h+n),!0}),o&&(o.prototype._animate=function(t){if(!this.animationsEnabled)return;const i=U.Now;if(!this._animationTimeLast){if(this._pendingData.length>0)return;this._animationTimeLast=i}this.deltaTime=t!==void 0?t:this.useConstantAnimationDeltaTime?16:(i-this._animationTimeLast)*this.animationTimeScale,this._animationTimeLast=i;const n=this._activeAnimatables;if(n.length===0)return;this._animationTime+=this.deltaTime;const s=this._animationTime;for(let a=0;a<n.length;a++){const l=n[a];!l._animate(s)&&l.disposeOnEnd&&a--}Z(this)},o.prototype.sortActiveAnimatables=function(){this._activeAnimatables.sort((t,i)=>t.playOrder-i.playOrder)},o.prototype.beginWeightedAnimation=function(t,i,n,s=1,a,l=1,r,h,g,u,c=!1){const f=this.beginAnimation(t,i,n,a,l,r,h,!1,g,u,c);return f.weight=s,f},o.prototype.beginAnimation=function(t,i,n,s,a=1,l,r,h=!0,g,u,c=!1){if(a<0){const _=i;i=n,n=_,a=-a}i>n&&(a=-a),h&&this.stopAnimation(t,void 0,g),r||(r=new I(this,t,i,n,s,a,l,void 0,u,c));const f=g?g(t):!0;if(t.animations&&f&&r.appendAnimations(t,t.animations),t.getAnimatables){const _=t.getAnimatables();for(let m=0;m<_.length;m++)this.beginAnimation(_[m],i,n,s,a,l,r,h,g,u)}return r.reset(),r},o.prototype.beginHierarchyAnimation=function(t,i,n,s,a,l=1,r,h,g=!0,u,c,f=!1){const _=t.getDescendants(i),m=[];m.push(this.beginAnimation(t,n,s,a,l,r,h,g,u,void 0,f));for(const b of _)m.push(this.beginAnimation(b,n,s,a,l,r,h,g,u,void 0,f));return m},o.prototype.beginDirectAnimation=function(t,i,n,s,a,l=1,r,h,g=!1){if(l<0){const c=n;n=s,s=c,l=-l}return n>s&&(l=-l),new I(this,t,n,s,a,l,r,i,h,g)},o.prototype.beginDirectHierarchyAnimation=function(t,i,n,s,a,l,r,h,g,u=!1){const c=t.getDescendants(i),f=[];f.push(this.beginDirectAnimation(t,n,s,a,l,r,h,g,u));for(const _ of c)f.push(this.beginDirectAnimation(_,n,s,a,l,r,h,g,u));return f},o.prototype.getAnimatableByTarget=function(t){for(let i=0;i<this._activeAnimatables.length;i++)if(this._activeAnimatables[i].target===t)return this._activeAnimatables[i];return null},o.prototype.getAllAnimatablesByTarget=function(t){const i=[];for(let n=0;n<this._activeAnimatables.length;n++)this._activeAnimatables[n].target===t&&i.push(this._activeAnimatables[n]);return i},o.prototype.stopAnimation=function(t,i,n){const s=this.getAllAnimatablesByTarget(t);for(const a of s)a.stop(i,n)},o.prototype.stopAllAnimations=function(){if(this._activeAnimatables){for(let t=0;t<this._activeAnimatables.length;t++)this._activeAnimatables[t].stop(void 0,void 0,!0);this._activeAnimatables.length=0}for(const t of this.animationGroups)t.stop()})}let x=!1;function et(){x||(x=!0,tt(H,z))}class it{getClassName(){return"TargetedAnimation"}constructor(e){this.parent=e,this.uniqueId=q.UniqueId}serialize(){const e={};return e.animation=this.animation.serialize(),e.targetId=this.target.id,e.targetUniqueId=this.target.uniqueId,e}}class v{get mask(){return this._mask}set mask(e){this._mask!==e&&(this._mask=e,this.syncWithMask(!0))}syncWithMask(e=!1){if(!this.mask&&!e){this._numActiveAnimatables=this._targetedAnimations.length;return}this._numActiveAnimatables=0;for(let t=0;t<this._animatables.length;++t){const i=this._animatables[t];!this.mask||this.mask.disabled||this.mask.retainsTarget(i.target.name)?(this._numActiveAnimatables++,i.paused&&i.restart()):i.paused||i.pause()}}removeUnmaskedAnimations(){if(!(!this.mask||this.mask.disabled)){for(let e=0;e<this._animatables.length;++e){const t=this._animatables[e];this.mask.retainsTarget(t.target.name)||(t.stop(),this._animatables.splice(e,1),--e)}for(let e=0;e<this._targetedAnimations.length;e++){const t=this._targetedAnimations[e];this.mask.retainsTarget(t.target.name)||(this._targetedAnimations.splice(e,1),--e)}}}get from(){return this._from}set from(e){if(this._from!==e){this._from=e;for(let t=0;t<this._animatables.length;t++){const i=this._animatables[t];i.fromFrame=this._from}}}get to(){return this._to}set to(e){if(this._to!==e){this._to=e;for(let t=0;t<this._animatables.length;t++){const i=this._animatables[t];i.toFrame=this._to}}}get isStarted(){return this._isStarted}get isPlaying(){return this._isStarted&&!this._isPaused}get speedRatio(){return this._speedRatio}set speedRatio(e){if(this._speedRatio!==e){this._speedRatio=e;for(let t=0;t<this._animatables.length;t++){const i=this._animatables[t];i.speedRatio=this._speedRatio}}}get loopAnimation(){return this._loopAnimation}set loopAnimation(e){if(this._loopAnimation!==e){this._loopAnimation=e;for(let t=0;t<this._animatables.length;t++){const i=this._animatables[t];i.loopAnimation=this._loopAnimation}}}get isAdditive(){return this._isAdditive}set isAdditive(e){if(this._isAdditive!==e){this._isAdditive=e;for(let t=0;t<this._animatables.length;t++){const i=this._animatables[t];i.isAdditive=this._isAdditive}}}get weight(){return this._weight}set weight(e){this._weight!==e&&(this._weight=e,this.setWeightForAllAnimatables(this._weight))}get targetedAnimations(){return this._targetedAnimations}get animatables(){return this._animatables}get children(){return this._targetedAnimations}get playOrder(){return this._playOrder}set playOrder(e){if(this._playOrder!==e&&(this._playOrder=e,this._animatables.length>0)){for(let t=0;t<this._animatables.length;t++)this._animatables[t].playOrder=this._playOrder;this._scene.sortActiveAnimatables()}}get enableBlending(){return this._enableBlending}set enableBlending(e){if(this._enableBlending!==e&&(this._enableBlending=e,e!==null))for(let t=0;t<this._targetedAnimations.length;++t)this._targetedAnimations[t].animation.enableBlending=e}get blendingSpeed(){return this._blendingSpeed}set blendingSpeed(e){if(this._blendingSpeed!==e&&(this._blendingSpeed=e,e!==null))for(let t=0;t<this._targetedAnimations.length;++t)this._targetedAnimations[t].animation.blendingSpeed=e}getLength(e,t){e=e??this._from,t=t??this._to;const i=this.targetedAnimations[0].animation.framePerSecond*this._speedRatio;return(t-e)/i}getScene(){return this._scene}constructor(e,t=null,i=-1,n=0){this.name=e,this._targetedAnimations=new Array,this._animatables=new Array,this._from=Number.MAX_VALUE,this._to=-Number.MAX_VALUE,this._speedRatio=1,this._loopAnimation=!1,this._isAdditive=!1,this._weight=-1,this._playOrder=0,this._enableBlending=null,this._blendingSpeed=null,this._numActiveAnimatables=0,this._shouldStart=!0,this._parentContainer=null,this.onAnimationEndObservable=new P,this.onAnimationLoopObservable=new P,this.onAnimationGroupLoopObservable=new P,this.onAnimationGroupEndObservable=new P,this.onAnimationGroupPauseObservable=new P,this.onAnimationGroupPlayObservable=new P,this.metadata=null,this._mask=null,this._animationLoopFlags=[],this._scene=t||G.LastCreatedScene,this._weight=i,this._playOrder=n,this.uniqueId=this._scene.getUniqueId(),et(),this._scene.addAnimationGroup(this)}addTargetedAnimation(e,t){const i=new it(this);i.animation=e,i.target=t;const n=e.getKeys();return this._from>n[0].frame&&(this._from=n[0].frame),this._to<n[n.length-1].frame&&(this._to=n[n.length-1].frame),this._enableBlending!==null&&(e.enableBlending=this._enableBlending),this._blendingSpeed!==null&&(e.blendingSpeed=this._blendingSpeed),this._targetedAnimations.push(i),this._shouldStart=!0,i}removeTargetedAnimation(e){for(let t=this._targetedAnimations.length-1;t>-1;t--)this._targetedAnimations[t].animation===e&&this._targetedAnimations.splice(t,1)}normalize(e=null,t=null){e==null&&(e=this._from),t==null&&(t=this._to);for(let i=0;i<this._targetedAnimations.length;i++){const s=this._targetedAnimations[i].animation.getKeys(),a=s[0],l=s[s.length-1];if(a.frame>e){const r={frame:e,value:a.value,inTangent:a.inTangent,outTangent:a.outTangent,interpolation:a.interpolation};s.splice(0,0,r)}if(l.frame<t){const r={frame:t,value:l.value,inTangent:l.inTangent,outTangent:l.outTangent,interpolation:l.interpolation};s.push(r)}}return this._from=e,this._to=t,this}_processLoop(e,t,i){e.onAnimationLoop=()=>{this.onAnimationLoopObservable.notifyObservers(t),!this._animationLoopFlags[i]&&(this._animationLoopFlags[i]=!0,this._animationLoopCount++,this._animationLoopCount===this._numActiveAnimatables&&(this.onAnimationGroupLoopObservable.notifyObservers(this),this._animationLoopCount=0,this._animationLoopFlags.length=0))}}start(e=!1,t=1,i,n,s){if(this._isStarted||this._targetedAnimations.length===0)return this;this._loopAnimation=e,this._shouldStart=!1,this._animationLoopCount=0,this._animationLoopFlags.length=0;for(let a=0;a<this._targetedAnimations.length;a++){const l=this._targetedAnimations[a],r=this._scene.beginDirectAnimation(l.target,[l.animation],i!==void 0?i:this._from,n!==void 0?n:this._to,e,t,void 0,void 0,s!==void 0?s:this._isAdditive);r.weight=this._weight,r.playOrder=this._playOrder,r.onAnimationEnd=()=>{this.onAnimationEndObservable.notifyObservers(l),this._checkAnimationGroupEnded(r)},this._processLoop(r,l,a),this._animatables.push(r)}return this.syncWithMask(),this._scene.sortActiveAnimatables(),this._speedRatio=t,this._isStarted=!0,this._isPaused=!1,this.onAnimationGroupPlayObservable.notifyObservers(this),this}pause(){if(!this._isStarted)return this;this._isPaused=!0;for(let e=0;e<this._animatables.length;e++)this._animatables[e].pause();return this.onAnimationGroupPauseObservable.notifyObservers(this),this}play(e){return this.isStarted&&this._animatables.length&&!this._shouldStart?(e!==void 0&&(this.loopAnimation=e),this.restart()):(this.stop(),this.start(e,this._speedRatio)),this}reset(){if(!this._isStarted)return this.play(),this.goToFrame(0),this.stop(!0),this;for(let e=0;e<this._animatables.length;e++)this._animatables[e].reset();return this}restart(){if(!this._isStarted)return this;for(let e=0;e<this._animatables.length;e++)this._animatables[e].restart();return this.syncWithMask(),this._isPaused=!1,this.onAnimationGroupPlayObservable.notifyObservers(this),this}stop(e=!1){if(!this._isStarted)return this;const t=this._animatables.slice();for(let n=0;n<t.length;n++)t[n].stop(void 0,void 0,!0,e);let i=0;for(let n=0;n<this._scene._activeAnimatables.length;n++){const s=this._scene._activeAnimatables[n];s._runtimeAnimations.length>0?this._scene._activeAnimatables[i++]=s:e&&this._checkAnimationGroupEnded(s,e)}return this._scene._activeAnimatables.length=i,this._isStarted=!1,this}setWeightForAllAnimatables(e){for(let t=0;t<this._animatables.length;t++){const i=this._animatables[t];i.weight=e}return this}syncAllAnimationsWith(e){for(let t=0;t<this._animatables.length;t++)this._animatables[t].syncWith(e);return this}goToFrame(e,t=!1){if(!this._isStarted)return this;for(let i=0;i<this._animatables.length;i++)this._animatables[i].goToFrame(e,t);return this}getCurrentFrame(){return this.animatables[0]?.masterFrame||0}dispose(){if(this.isStarted&&this.stop(),this._targetedAnimations.length=0,this._animatables.length=0,this._scene.removeAnimationGroup(this),this._parentContainer){const e=this._parentContainer.animationGroups.indexOf(this);e>-1&&this._parentContainer.animationGroups.splice(e,1),this._parentContainer=null}this.onAnimationEndObservable.clear(),this.onAnimationGroupEndObservable.clear(),this.onAnimationGroupPauseObservable.clear(),this.onAnimationGroupPlayObservable.clear(),this.onAnimationLoopObservable.clear(),this.onAnimationGroupLoopObservable.clear()}_checkAnimationGroupEnded(e,t=!1){const i=this._animatables.indexOf(e);i>-1&&this._animatables.splice(i,1),this._animatables.length===this._targetedAnimations.length-this._numActiveAnimatables&&(this._isStarted=!1,t||this.onAnimationGroupEndObservable.notifyObservers(this),this._animatables.length=0)}clone(e,t,i=!1,n=!1){const s=new v(e||this.name,this._scene,this._weight,this._playOrder);s._from=this.from,s._to=this.to,s._speedRatio=this.speedRatio,s._loopAnimation=this.loopAnimation,s._isAdditive=this.isAdditive,s._enableBlending=this.enableBlending,s._blendingSpeed=this.blendingSpeed,s.metadata=this.metadata,s.mask=this.mask;for(const a of this._targetedAnimations)s.addTargetedAnimation(i?a.animation.clone(n):a.animation,t?t(a.target):a.target);return s}serialize(){const e={};e.name=this.name,e.from=this.from,e.to=this.to,e.speedRatio=this.speedRatio,e.loopAnimation=this.loopAnimation,e.isAdditive=this.isAdditive,e.weight=this.weight,e.playOrder=this.playOrder,e.enableBlending=this.enableBlending,e.blendingSpeed=this.blendingSpeed,e.targetedAnimations=[];for(let t=0;t<this.targetedAnimations.length;t++){const i=this.targetedAnimations[t];e.targetedAnimations[t]=i.serialize()}return w&&w.HasTags(this)&&(e.tags=w.GetTags(this)),this.metadata&&(e.metadata=this.metadata),e}getClassName(){return"AnimationGroup"}toString(e){let t="Name: "+this.name;return t+=", type: "+this.getClassName(),e&&(t+=", from: "+this._from,t+=", to: "+this._to,t+=", isStarted: "+this._isStarted,t+=", speedRatio: "+this._speedRatio,t+=", targetedAnimations length: "+this._targetedAnimations.length,t+=", animatables length: "+this._animatables.length),t}}function nt(o,e=!0,t=!1,i){if(o.length===0)return null;i=i??o[0].weight;let n=Number.MAX_VALUE,s=-Number.MAX_VALUE;if(t)for(const l of o)l.from<n&&(n=l.from),l.to>s&&(s=l.to);const a=new v(o[0].name+"_merged",o[0].getScene(),i);for(const l of o){t&&l.normalize(n,s);for(const r of l.targetedAnimations)a.addTargetedAnimation(r.animation,r.target);e&&l.dispose()}return a}function at(o,e,t){const i=new v(o.name,e,o.weight,o.playOrder),n=i;for(let s=0;s<o.targetedAnimations.length;s++){const a=o.targetedAnimations[s],l=J(a.animation),r=t?t(a):a.animation.property==="influence"?e.getMorphTargetById(a.targetId):e.getNodeById(a.targetId);r&&i.addTargetedAnimation(l,r)}return w&&w.AddTagsTo(i,o.tags),o.from!==null&&o.to!==null&&i.normalize(o.from,o.to),o.speedRatio!==void 0&&(n._speedRatio=o.speedRatio),o.loopAnimation!==void 0&&(n._loopAnimation=o.loopAnimation),o.isAdditive!==void 0&&(n._isAdditive=o.isAdditive),o.weight!==void 0&&(n._weight=o.weight),o.playOrder!==void 0&&(n._playOrder=o.playOrder),o.enableBlending!==void 0&&(n._enableBlending=o.enableBlending),o.blendingSpeed!==void 0&&(n._blendingSpeed=o.blendingSpeed),o.metadata!==void 0&&(i.metadata=o.metadata),i}function st(o,e,t,i=!1,n){let s;typeof e=="object"?s=e:s={referenceFrame:e,range:t,cloneOriginalAnimationGroup:i,clonedAnimationName:n};let a=o;s.cloneOriginalAnimationGroup&&(a=o.clone(s.clonedAnimationGroupName||a.name));const l=a.targetedAnimations;for(let r=0;r<l.length;r++){const h=l[r];h.animation=X(h.animation,s)}if(a.isAdditive=!0,s.clipKeys){let r=Number.MAX_VALUE,h=-Number.MAX_VALUE;const g=a.targetedAnimations;for(let c=0;c<g.length;c++){const m=g[c].animation.getKeys();r>m[0].frame&&(r=m[0].frame),h<m[m.length-1].frame&&(h=m[m.length-1].frame)}const u=a;u._from=r,u._to=h}return a}function ot(o,e,t,i,n){const s=o.clone(i||o.name);return E(s,e,t,n)}function E(o,e,t,i){return R(o,e,t,i,!1)}function rt(o,e,t,i,n){const s=o.clone(i||o.name);return N(s,e,t,n)}function N(o,e,t,i){return R(o,e,t,i,!0)}function R(o,e,t,i,n=!1){let s=Number.MAX_VALUE,a=-Number.MAX_VALUE;const l=o.targetedAnimations;for(let h=0;h<l.length;h++){const g=l[h],u=i?g.animation:g.animation.clone();n&&(u.createKeyForFrame(e),u.createKeyForFrame(t));const c=u.getKeys(),f=[];let _=Number.MAX_VALUE;for(let m=0;m<c.length;m++){const b=c[m];if(!n&&m>=e&&m<=t||n&&b.frame>=e&&b.frame<=t){const V={frame:b.frame,value:b.value.clone?b.value.clone():b.value,inTangent:b.inTangent,outTangent:b.outTangent,interpolation:b.interpolation,lockedTangent:b.lockedTangent};_===Number.MAX_VALUE&&(_=V.frame),V.frame-=_,f.push(V)}}if(f.length===0){l.splice(h,1),h--;continue}s>f[0].frame&&(s=f[0].frame),a<f[f.length-1].frame&&(a=f[f.length-1].frame),u.setKeys(f,!0),g.animation=u}const r=o;return r._from=s,r._to=a,o}let M=!1;function lt(){M||(M=!0,v.MergeAnimationGroups=nt,v.Parse=at,v.MakeAnimationAdditive=st,v.ClipKeys=ot,v.ClipKeysInPlace=E,v.ClipFrames=rt,v.ClipFramesInPlace=N,v.ClipInPlace=R)}lt();export{v as AnimationGroup,rt as AnimationGroupClipFrames,N as AnimationGroupClipFramesInPlace,R as AnimationGroupClipInPlace,ot as AnimationGroupClipKeys,E as AnimationGroupClipKeysInPlace,st as AnimationGroupMakeAnimationAdditive,nt as AnimationGroupMergeAnimationGroups,at as AnimationGroupParse,lt as RegisterAnimationGroup,it as TargetedAnimation};
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
import{S as e}from"./index-B2zBEWsq.js";const t="bonesDeclaration",u=`#if NUM_BONE_INFLUENCERS>0
|
|
2
|
+
#ifndef USE_VERTEX_PULLING
|
|
3
|
+
attribute matricesIndices : vec4f;attribute matricesWeights : vec4f;
|
|
4
|
+
#if NUM_BONE_INFLUENCERS>4
|
|
5
|
+
attribute matricesIndicesExtra : vec4f;attribute matricesWeightsExtra : vec4f;
|
|
6
|
+
#endif
|
|
7
|
+
#endif
|
|
8
|
+
#ifndef BAKED_VERTEX_ANIMATION_TEXTURE
|
|
9
|
+
#ifdef BONETEXTURE
|
|
10
|
+
var boneSampler : texture_2d<f32>;uniform boneTextureInfo : vec2f;
|
|
11
|
+
#else
|
|
12
|
+
uniform mBones : array<mat4x4f,BonesPerMesh>;
|
|
13
|
+
#endif
|
|
14
|
+
#ifdef BONES_VELOCITY_ENABLED
|
|
15
|
+
uniform mPreviousBones : array<mat4x4f,BonesPerMesh>;
|
|
16
|
+
#endif
|
|
17
|
+
#ifdef BONETEXTURE
|
|
18
|
+
fn readMatrixFromRawSampler(smp : texture_2d<f32>,index : f32)->mat4x4f
|
|
19
|
+
{let offset=i32(index)*4;
|
|
20
|
+
let textureWidth=i32(uniforms.boneTextureInfo.x);let y=offset/textureWidth;let x=offset % textureWidth;let m0=textureLoad(smp,vec2<i32>(x+0,y),0);let m1=textureLoad(smp,vec2<i32>(x+1,y),0);let m2=textureLoad(smp,vec2<i32>(x+2,y),0);let m3=textureLoad(smp,vec2<i32>(x+3,y),0);return mat4x4f(m0,m1,m2,m3);}
|
|
21
|
+
#endif
|
|
22
|
+
#endif
|
|
23
|
+
#endif
|
|
24
|
+
`;e.IncludesShadersStoreWGSL[t]||(e.IncludesShadersStoreWGSL[t]=u);const R={name:t,shader:u},r="bakedVertexAnimationDeclaration",I=`#ifdef BAKED_VERTEX_ANIMATION_TEXTURE
|
|
25
|
+
uniform bakedVertexAnimationTime: f32;uniform bakedVertexAnimationSettings: vec4<f32>;var bakedVertexAnimationTexture : texture_2d<f32>;
|
|
26
|
+
#ifdef INSTANCES
|
|
27
|
+
attribute bakedVertexAnimationSettingsInstanced : vec4<f32>;
|
|
28
|
+
#endif
|
|
29
|
+
fn readMatrixFromRawSamplerVAT(smp : texture_2d<f32>,index : f32,frame : f32)->mat4x4<f32>
|
|
30
|
+
{let offset=i32(index)*4;let frameUV=i32(frame);let m0=textureLoad(smp,vec2<i32>(offset+0,frameUV),0);let m1=textureLoad(smp,vec2<i32>(offset+1,frameUV),0);let m2=textureLoad(smp,vec2<i32>(offset+2,frameUV),0);let m3=textureLoad(smp,vec2<i32>(offset+3,frameUV),0);return mat4x4<f32>(m0,m1,m2,m3);}
|
|
31
|
+
#endif
|
|
32
|
+
`;e.IncludesShadersStoreWGSL[r]||(e.IncludesShadersStoreWGSL[r]=I);const _={name:r,shader:I},n="instancesDeclaration",l=`#ifdef INSTANCES
|
|
33
|
+
attribute world0 : vec4<f32>;attribute world1 : vec4<f32>;attribute world2 : vec4<f32>;attribute world3 : vec4<f32>;
|
|
34
|
+
#ifdef INSTANCESCOLOR
|
|
35
|
+
attribute instanceColor : vec4<f32>;
|
|
36
|
+
#endif
|
|
37
|
+
#if defined(THIN_INSTANCES) && !defined(WORLD_UBO)
|
|
38
|
+
uniform world : mat4x4<f32>;
|
|
39
|
+
#endif
|
|
40
|
+
#if defined(VELOCITY) || defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
|
|
41
|
+
attribute previousWorld0 : vec4<f32>;attribute previousWorld1 : vec4<f32>;attribute previousWorld2 : vec4<f32>;attribute previousWorld3 : vec4<f32>;
|
|
42
|
+
#ifdef THIN_INSTANCES
|
|
43
|
+
uniform previousWorld : mat4x4<f32>;
|
|
44
|
+
#endif
|
|
45
|
+
#endif
|
|
46
|
+
#else
|
|
47
|
+
#if !defined(WORLD_UBO)
|
|
48
|
+
uniform world : mat4x4<f32>;
|
|
49
|
+
#endif
|
|
50
|
+
#if defined(VELOCITY) || defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
|
|
51
|
+
uniform previousWorld : mat4x4<f32>;
|
|
52
|
+
#endif
|
|
53
|
+
#endif
|
|
54
|
+
`;e.IncludesShadersStoreWGSL[n]||(e.IncludesShadersStoreWGSL[n]=l);const U={name:n,shader:l},i="morphTargetsVertexGlobalDeclaration",x=`#ifdef MORPHTARGETS
|
|
55
|
+
uniform morphTargetInfluences : array<f32,NUM_MORPH_INFLUENCERS>;
|
|
56
|
+
#ifdef MORPHTARGETS_TEXTURE
|
|
57
|
+
uniform morphTargetTextureIndices : array<f32,NUM_MORPH_INFLUENCERS>;uniform morphTargetTextureInfo : vec3<f32>;var morphTargets : texture_2d_array<f32>;fn readVector3FromRawSampler(targetIndex : i32,vertexIndex : f32)->vec3<f32>
|
|
58
|
+
{
|
|
59
|
+
let textureWidth: i32=i32(uniforms.morphTargetTextureInfo.y);let y: i32=i32(vertexIndex)/textureWidth;let x: i32=i32(vertexIndex) % textureWidth;return textureLoad(morphTargets,vec2i(x,y),i32(uniforms.morphTargetTextureIndices[targetIndex]),0).xyz;}
|
|
60
|
+
fn readVector4FromRawSampler(targetIndex : i32,vertexIndex : f32)->vec4<f32>
|
|
61
|
+
{
|
|
62
|
+
let textureWidth: i32=i32(uniforms.morphTargetTextureInfo.y);
|
|
63
|
+
let y: i32=i32(vertexIndex)/textureWidth;let x: i32=i32(vertexIndex) % textureWidth;return textureLoad(morphTargets,vec2i(x,y),i32(uniforms.morphTargetTextureIndices[targetIndex]),0);}
|
|
64
|
+
#endif
|
|
65
|
+
#endif
|
|
66
|
+
`;e.IncludesShadersStoreWGSL[i]||(e.IncludesShadersStoreWGSL[i]=x);const A={name:i,shader:x},a="morphTargetsVertexDeclaration",c=`#ifdef MORPHTARGETS
|
|
67
|
+
#ifndef MORPHTARGETS_TEXTURE
|
|
68
|
+
#ifdef MORPHTARGETS_POSITION
|
|
69
|
+
attribute position{X} : vec3<f32>;
|
|
70
|
+
#endif
|
|
71
|
+
#ifdef MORPHTARGETS_NORMAL
|
|
72
|
+
attribute normal{X} : vec3<f32>;
|
|
73
|
+
#endif
|
|
74
|
+
#ifdef MORPHTARGETS_TANGENT
|
|
75
|
+
attribute tangent{X} : vec3<f32>;
|
|
76
|
+
#endif
|
|
77
|
+
#ifdef MORPHTARGETS_UV
|
|
78
|
+
attribute uv_{X} : vec2<f32>;
|
|
79
|
+
#endif
|
|
80
|
+
#ifdef MORPHTARGETS_UV2
|
|
81
|
+
attribute uv2_{X} : vec2<f32>;
|
|
82
|
+
#endif
|
|
83
|
+
#ifdef MORPHTARGETS_COLOR
|
|
84
|
+
attribute color{X} : vec4<f32>;
|
|
85
|
+
#endif
|
|
86
|
+
#elif {X}==0
|
|
87
|
+
uniform morphTargetCount: f32;
|
|
88
|
+
#endif
|
|
89
|
+
#endif
|
|
90
|
+
`;e.IncludesShadersStoreWGSL[a]||(e.IncludesShadersStoreWGSL[a]=c);const V={name:a,shader:c},f="morphTargetsVertexGlobal",E=`#ifdef MORPHTARGETS
|
|
91
|
+
#ifdef MORPHTARGETS_TEXTURE
|
|
92
|
+
var vertexID : f32;
|
|
93
|
+
#endif
|
|
94
|
+
#endif
|
|
95
|
+
`;e.IncludesShadersStoreWGSL[f]||(e.IncludesShadersStoreWGSL[f]=E);const L={name:f,shader:E},d="morphTargetsVertex",T=`#ifdef MORPHTARGETS
|
|
96
|
+
#ifdef MORPHTARGETS_TEXTURE
|
|
97
|
+
#if {X}==0
|
|
98
|
+
for (var i=0; i<NUM_MORPH_INFLUENCERS; i=i+1) {if (f32(i)>=uniforms.morphTargetCount) {break;}
|
|
99
|
+
#ifdef USE_VERTEX_PULLING
|
|
100
|
+
vertexID=f32(vpVertexIndex)*uniforms.morphTargetTextureInfo.x;
|
|
101
|
+
#else
|
|
102
|
+
vertexID=f32(vertexInputs.vertexIndex)*uniforms.morphTargetTextureInfo.x;
|
|
103
|
+
#endif
|
|
104
|
+
#ifdef MORPHTARGETS_POSITION
|
|
105
|
+
#ifdef USE_VERTEX_PULLING
|
|
106
|
+
positionUpdated=positionUpdated+(readVector3FromRawSampler(i,vertexID)-vp_basePosition)*uniforms.morphTargetInfluences[i];
|
|
107
|
+
#else
|
|
108
|
+
positionUpdated=positionUpdated+(readVector3FromRawSampler(i,vertexID)-vertexInputs.position)*uniforms.morphTargetInfluences[i];
|
|
109
|
+
#endif
|
|
110
|
+
#endif
|
|
111
|
+
#ifdef MORPHTARGETTEXTURE_HASPOSITIONS
|
|
112
|
+
vertexID=vertexID+1.0;
|
|
113
|
+
#endif
|
|
114
|
+
#ifdef MORPHTARGETS_NORMAL
|
|
115
|
+
#ifdef USE_VERTEX_PULLING
|
|
116
|
+
normalUpdated=normalUpdated+(readVector3FromRawSampler(i,vertexID) -vp_baseNormal)*uniforms.morphTargetInfluences[i];
|
|
117
|
+
#else
|
|
118
|
+
normalUpdated=normalUpdated+(readVector3FromRawSampler(i,vertexID) -vertexInputs.normal)*uniforms.morphTargetInfluences[i];
|
|
119
|
+
#endif
|
|
120
|
+
#endif
|
|
121
|
+
#ifdef MORPHTARGETTEXTURE_HASNORMALS
|
|
122
|
+
vertexID=vertexID+1.0;
|
|
123
|
+
#endif
|
|
124
|
+
#ifdef MORPHTARGETS_UV
|
|
125
|
+
#ifdef USE_VERTEX_PULLING
|
|
126
|
+
uvUpdated=uvUpdated+(readVector3FromRawSampler(i,vertexID).xy-vp_baseUV)*uniforms.morphTargetInfluences[i];
|
|
127
|
+
#else
|
|
128
|
+
uvUpdated=uvUpdated+(readVector3FromRawSampler(i,vertexID).xy-vertexInputs.uv)*uniforms.morphTargetInfluences[i];
|
|
129
|
+
#endif
|
|
130
|
+
#endif
|
|
131
|
+
#ifdef MORPHTARGETTEXTURE_HASUVS
|
|
132
|
+
vertexID=vertexID+1.0;
|
|
133
|
+
#endif
|
|
134
|
+
#ifdef MORPHTARGETS_TANGENT
|
|
135
|
+
#ifdef USE_VERTEX_PULLING
|
|
136
|
+
tangentUpdated=vec4f(tangentUpdated.xyz+(readVector3FromRawSampler(i,vertexID) -vp_baseTangent.xyz)*uniforms.morphTargetInfluences[i],tangentUpdated.a);
|
|
137
|
+
#else
|
|
138
|
+
tangentUpdated=vec4f(tangentUpdated.xyz+(readVector3FromRawSampler(i,vertexID) -vertexInputs.tangent.xyz)*uniforms.morphTargetInfluences[i],tangentUpdated.a);
|
|
139
|
+
#endif
|
|
140
|
+
#endif
|
|
141
|
+
#ifdef MORPHTARGETTEXTURE_HASTANGENTS
|
|
142
|
+
vertexID=vertexID+1.0;
|
|
143
|
+
#endif
|
|
144
|
+
#ifdef MORPHTARGETS_UV2
|
|
145
|
+
#ifdef USE_VERTEX_PULLING
|
|
146
|
+
uv2Updated=uv2Updated+(readVector3FromRawSampler(i,vertexID).xy-vp_baseUV2)*uniforms.morphTargetInfluences[i];
|
|
147
|
+
#else
|
|
148
|
+
uv2Updated=uv2Updated+(readVector3FromRawSampler(i,vertexID).xy-vertexInputs.uv2)*uniforms.morphTargetInfluences[i];
|
|
149
|
+
#endif
|
|
150
|
+
#endif
|
|
151
|
+
#ifdef MORPHTARGETS_COLOR
|
|
152
|
+
#ifdef USE_VERTEX_PULLING
|
|
153
|
+
colorUpdated=colorUpdated+(readVector4FromRawSampler(i,vertexID)-vp_baseColor)*uniforms.morphTargetInfluences[i];
|
|
154
|
+
#else
|
|
155
|
+
colorUpdated=colorUpdated+(readVector4FromRawSampler(i,vertexID)-vertexInputs.color)*uniforms.morphTargetInfluences[i];
|
|
156
|
+
#endif
|
|
157
|
+
#endif
|
|
158
|
+
}
|
|
159
|
+
#endif
|
|
160
|
+
#else
|
|
161
|
+
#ifdef MORPHTARGETS_POSITION
|
|
162
|
+
#ifdef USE_VERTEX_PULLING
|
|
163
|
+
positionUpdated=positionUpdated+(vertexInputs.position{X}-vp_basePosition)*uniforms.morphTargetInfluences[{X}];
|
|
164
|
+
#else
|
|
165
|
+
positionUpdated=positionUpdated+(vertexInputs.position{X}-vertexInputs.position)*uniforms.morphTargetInfluences[{X}];
|
|
166
|
+
#endif
|
|
167
|
+
#endif
|
|
168
|
+
#ifdef MORPHTARGETS_NORMAL
|
|
169
|
+
#ifdef USE_VERTEX_PULLING
|
|
170
|
+
normalUpdated=normalUpdated+(vertexInputs.normal{X}-vp_baseNormal)*uniforms.morphTargetInfluences[{X}];
|
|
171
|
+
#else
|
|
172
|
+
normalUpdated=normalUpdated+(vertexInputs.normal{X}-vertexInputs.normal)*uniforms.morphTargetInfluences[{X}];
|
|
173
|
+
#endif
|
|
174
|
+
#endif
|
|
175
|
+
#ifdef MORPHTARGETS_TANGENT
|
|
176
|
+
#ifdef USE_VERTEX_PULLING
|
|
177
|
+
tangentUpdated=vec4f(tangentUpdated.xyz+(vertexInputs.tangent{X}-vp_baseTangent.xyz)*uniforms.morphTargetInfluences[{X}],tangentUpdated.a);
|
|
178
|
+
#else
|
|
179
|
+
tangentUpdated=vec4f(tangentUpdated.xyz+(vertexInputs.tangent{X}-vertexInputs.tangent.xyz)*uniforms.morphTargetInfluences[{X}],tangentUpdated.a);
|
|
180
|
+
#endif
|
|
181
|
+
#endif
|
|
182
|
+
#ifdef MORPHTARGETS_UV
|
|
183
|
+
#ifdef USE_VERTEX_PULLING
|
|
184
|
+
uvUpdated=uvUpdated+(vertexInputs.uv_{X}-vp_baseUV)*uniforms.morphTargetInfluences[{X}];
|
|
185
|
+
#else
|
|
186
|
+
uvUpdated=uvUpdated+(vertexInputs.uv_{X}-vertexInputs.uv)*uniforms.morphTargetInfluences[{X}];
|
|
187
|
+
#endif
|
|
188
|
+
#endif
|
|
189
|
+
#ifdef MORPHTARGETS_UV2
|
|
190
|
+
#ifdef USE_VERTEX_PULLING
|
|
191
|
+
uv2Updated=uv2Updated+(vertexInputs.uv2_{X}-vp_baseUV2)*uniforms.morphTargetInfluences[{X}];
|
|
192
|
+
#else
|
|
193
|
+
uv2Updated=uv2Updated+(vertexInputs.uv2_{X}-vertexInputs.uv2)*uniforms.morphTargetInfluences[{X}];
|
|
194
|
+
#endif
|
|
195
|
+
#endif
|
|
196
|
+
#ifdef MORPHTARGETS_COLOR
|
|
197
|
+
#ifdef USE_VERTEX_PULLING
|
|
198
|
+
colorUpdated=colorUpdated+(vertexInputs.color{X}-vp_baseColor)*uniforms.morphTargetInfluences[{X}];
|
|
199
|
+
#else
|
|
200
|
+
colorUpdated=colorUpdated+(vertexInputs.color{X}-vertexInputs.color)*uniforms.morphTargetInfluences[{X}];
|
|
201
|
+
#endif
|
|
202
|
+
#endif
|
|
203
|
+
#endif
|
|
204
|
+
#endif
|
|
205
|
+
`;e.IncludesShadersStoreWGSL[d]||(e.IncludesShadersStoreWGSL[d]=T);const h={name:d,shader:T},s="instancesVertex",p=`#ifdef INSTANCES
|
|
206
|
+
var finalWorld=mat4x4<f32>(vertexInputs.world0,vertexInputs.world1,vertexInputs.world2,vertexInputs.world3);
|
|
207
|
+
#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
|
|
208
|
+
var finalPreviousWorld=mat4x4<f32>(
|
|
209
|
+
vertexInputs.previousWorld0,vertexInputs.previousWorld1,
|
|
210
|
+
vertexInputs.previousWorld2,vertexInputs.previousWorld3);
|
|
211
|
+
#endif
|
|
212
|
+
#ifdef THIN_INSTANCES
|
|
213
|
+
#if !defined(WORLD_UBO)
|
|
214
|
+
finalWorld=uniforms.world*finalWorld;
|
|
215
|
+
#else
|
|
216
|
+
finalWorld=mesh.world*finalWorld;
|
|
217
|
+
#endif
|
|
218
|
+
#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
|
|
219
|
+
finalPreviousWorld=uniforms.previousWorld*finalPreviousWorld;
|
|
220
|
+
#endif
|
|
221
|
+
#endif
|
|
222
|
+
#else
|
|
223
|
+
#if !defined(WORLD_UBO)
|
|
224
|
+
var finalWorld=uniforms.world;
|
|
225
|
+
#else
|
|
226
|
+
var finalWorld=mesh.world;
|
|
227
|
+
#endif
|
|
228
|
+
#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
|
|
229
|
+
var finalPreviousWorld=uniforms.previousWorld;
|
|
230
|
+
#endif
|
|
231
|
+
#endif
|
|
232
|
+
`;e.IncludesShadersStoreWGSL[s]||(e.IncludesShadersStoreWGSL[s]=p);const O={name:s,shader:p},o="bonesVertex",S=`#ifndef BAKED_VERTEX_ANIMATION_TEXTURE
|
|
233
|
+
#if NUM_BONE_INFLUENCERS>0
|
|
234
|
+
var influence : mat4x4<f32>;
|
|
235
|
+
#ifdef BONETEXTURE
|
|
236
|
+
influence=readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[0])*vertexInputs.matricesWeights[0];
|
|
237
|
+
#if NUM_BONE_INFLUENCERS>1
|
|
238
|
+
influence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[1])*vertexInputs.matricesWeights[1];
|
|
239
|
+
#endif
|
|
240
|
+
#if NUM_BONE_INFLUENCERS>2
|
|
241
|
+
influence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[2])*vertexInputs.matricesWeights[2];
|
|
242
|
+
#endif
|
|
243
|
+
#if NUM_BONE_INFLUENCERS>3
|
|
244
|
+
influence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[3])*vertexInputs.matricesWeights[3];
|
|
245
|
+
#endif
|
|
246
|
+
#if NUM_BONE_INFLUENCERS>4
|
|
247
|
+
influence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[0])*vertexInputs.matricesWeightsExtra[0];
|
|
248
|
+
#endif
|
|
249
|
+
#if NUM_BONE_INFLUENCERS>5
|
|
250
|
+
influence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[1])*vertexInputs.matricesWeightsExtra[1];
|
|
251
|
+
#endif
|
|
252
|
+
#if NUM_BONE_INFLUENCERS>6
|
|
253
|
+
influence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[2])*vertexInputs.matricesWeightsExtra[2];
|
|
254
|
+
#endif
|
|
255
|
+
#if NUM_BONE_INFLUENCERS>7
|
|
256
|
+
influence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[3])*vertexInputs.matricesWeightsExtra[3];
|
|
257
|
+
#endif
|
|
258
|
+
#else
|
|
259
|
+
influence=uniforms.mBones[i32(vertexInputs.matricesIndices[0])]*vertexInputs.matricesWeights[0];
|
|
260
|
+
#if NUM_BONE_INFLUENCERS>1
|
|
261
|
+
influence=influence+uniforms.mBones[i32(vertexInputs.matricesIndices[1])]*vertexInputs.matricesWeights[1];
|
|
262
|
+
#endif
|
|
263
|
+
#if NUM_BONE_INFLUENCERS>2
|
|
264
|
+
influence=influence+uniforms.mBones[i32(vertexInputs.matricesIndices[2])]*vertexInputs.matricesWeights[2];
|
|
265
|
+
#endif
|
|
266
|
+
#if NUM_BONE_INFLUENCERS>3
|
|
267
|
+
influence=influence+uniforms.mBones[i32(vertexInputs.matricesIndices[3])]*vertexInputs.matricesWeights[3];
|
|
268
|
+
#endif
|
|
269
|
+
#if NUM_BONE_INFLUENCERS>4
|
|
270
|
+
influence=influence+uniforms.mBones[i32(vertexInputs.matricesIndicesExtra[0])]*vertexInputs.matricesWeightsExtra[0];
|
|
271
|
+
#endif
|
|
272
|
+
#if NUM_BONE_INFLUENCERS>5
|
|
273
|
+
influence=influence+uniforms.mBones[i32(vertexInputs.matricesIndicesExtra[1])]*vertexInputs.matricesWeightsExtra[1];
|
|
274
|
+
#endif
|
|
275
|
+
#if NUM_BONE_INFLUENCERS>6
|
|
276
|
+
influence=influence+uniforms.mBones[i32(vertexInputs.matricesIndicesExtra[2])]*vertexInputs.matricesWeightsExtra[2];
|
|
277
|
+
#endif
|
|
278
|
+
#if NUM_BONE_INFLUENCERS>7
|
|
279
|
+
influence=influence+uniforms.mBones[i32(vertexInputs.matricesIndicesExtra[3])]*vertexInputs.matricesWeightsExtra[3];
|
|
280
|
+
#endif
|
|
281
|
+
#endif
|
|
282
|
+
finalWorld=finalWorld*influence;
|
|
283
|
+
#endif
|
|
284
|
+
#endif
|
|
285
|
+
`;e.IncludesShadersStoreWGSL[o]||(e.IncludesShadersStoreWGSL[o]=S);const g={name:o,shader:S},m="bakedVertexAnimation",v=`#ifdef BAKED_VERTEX_ANIMATION_TEXTURE
|
|
286
|
+
{
|
|
287
|
+
#ifdef INSTANCES
|
|
288
|
+
let VATStartFrame: f32=vertexInputs.bakedVertexAnimationSettingsInstanced.x;let VATEndFrame: f32=vertexInputs.bakedVertexAnimationSettingsInstanced.y;let VATOffsetFrame: f32=vertexInputs.bakedVertexAnimationSettingsInstanced.z;let VATSpeed: f32=vertexInputs.bakedVertexAnimationSettingsInstanced.w;
|
|
289
|
+
#else
|
|
290
|
+
let VATStartFrame: f32=uniforms.bakedVertexAnimationSettings.x;let VATEndFrame: f32=uniforms.bakedVertexAnimationSettings.y;let VATOffsetFrame: f32=uniforms.bakedVertexAnimationSettings.z;let VATSpeed: f32=uniforms.bakedVertexAnimationSettings.w;
|
|
291
|
+
#endif
|
|
292
|
+
let totalFrames: f32=VATEndFrame-VATStartFrame+1.0;let time: f32=uniforms.bakedVertexAnimationTime*VATSpeed/totalFrames;let frameCorrection: f32=select(1.0,0.0,time<1.0);let numOfFrames: f32=totalFrames-frameCorrection;var VATFrameNum: f32=fract(time)*numOfFrames;VATFrameNum=(VATFrameNum+VATOffsetFrame) % numOfFrames;VATFrameNum=floor(VATFrameNum);VATFrameNum=VATFrameNum+VATStartFrame+frameCorrection;var VATInfluence : mat4x4<f32>;VATInfluence=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[0],VATFrameNum)*vertexInputs.matricesWeights[0];
|
|
293
|
+
#if NUM_BONE_INFLUENCERS>1
|
|
294
|
+
VATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[1],VATFrameNum)*vertexInputs.matricesWeights[1];
|
|
295
|
+
#endif
|
|
296
|
+
#if NUM_BONE_INFLUENCERS>2
|
|
297
|
+
VATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[2],VATFrameNum)*vertexInputs.matricesWeights[2];
|
|
298
|
+
#endif
|
|
299
|
+
#if NUM_BONE_INFLUENCERS>3
|
|
300
|
+
VATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[3],VATFrameNum)*vertexInputs.matricesWeights[3];
|
|
301
|
+
#endif
|
|
302
|
+
#if NUM_BONE_INFLUENCERS>4
|
|
303
|
+
VATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[0],VATFrameNum)*vertexInputs.matricesWeightsExtra[0];
|
|
304
|
+
#endif
|
|
305
|
+
#if NUM_BONE_INFLUENCERS>5
|
|
306
|
+
VATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[1],VATFrameNum)*vertexInputs.matricesWeightsExtra[1];
|
|
307
|
+
#endif
|
|
308
|
+
#if NUM_BONE_INFLUENCERS>6
|
|
309
|
+
VATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[2],VATFrameNum)*vertexInputs.matricesWeightsExtra[2];
|
|
310
|
+
#endif
|
|
311
|
+
#if NUM_BONE_INFLUENCERS>7
|
|
312
|
+
VATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[3],VATFrameNum)*vertexInputs.matricesWeightsExtra[3];
|
|
313
|
+
#endif
|
|
314
|
+
finalWorld=finalWorld*VATInfluence;}
|
|
315
|
+
#endif
|
|
316
|
+
`;e.IncludesShadersStoreWGSL[m]||(e.IncludesShadersStoreWGSL[m]=v);const W={name:m,shader:v};export{_ as a,R as b,V as c,L as d,h as e,O as f,g,W as h,U as i,A as m};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{au as F,av as U,L as D,aw as P}from"./index-B2zBEWsq.js";function R(){const e={cTFETC1:0,cTFETC2:1,cTFBC1:2,cTFBC3:3,cTFBC7:6,cTFPVRTC1_4_RGB:8,cTFPVRTC1_4_RGBA:9,cTFASTC_4x4:10,cTFRGB565:14};let n=null;onmessage=s=>{if(s.data.action==="init"){if(s.data.url)try{importScripts(s.data.url)}catch(o){postMessage({action:"error",error:o})}n||(n=BASIS({wasmBinary:s.data.wasmBinary})),n!==null&&n.then(o=>{BASIS=o,o.initializeBasis(),postMessage({action:"init"})})}else if(s.data.action==="transcode"){const o=s.data.config,a=s.data.imageData,d=new BASIS.BasisFile(a),r=l(d);let f=s.data.ignoreSupportedFormats?null:t(s.data.config,r),p=!1;f===null&&(p=!0,f=r.hasAlpha?e.cTFBC3:e.cTFBC1);let g=!0;d.startTranscoding()||(g=!1);const T=[];for(let m=0;m<r.images.length&&g;m++){const u=r.images[m];if(o.loadSingleImage===void 0||o.loadSingleImage===m){let b=u.levels.length;o.loadMipmapLevels===!1&&(b=1);for(let C=0;C<b;C++){const w=u.levels[C],B=i(d,m,C,f,p);if(!B){g=!1;break}w.transcodedPixels=B,T.push(w.transcodedPixels.buffer)}}}d.close(),d.delete(),p&&(f=-1),g?postMessage({action:"transcode",success:g,id:s.data.id,fileInfo:r,format:f},T):postMessage({action:"transcode",success:g,id:s.data.id})}};function t(s,o){let a=null;return s.supportedCompressionFormats&&(s.supportedCompressionFormats.astc?a=e.cTFASTC_4x4:s.supportedCompressionFormats.bc7?a=e.cTFBC7:s.supportedCompressionFormats.s3tc?a=o.hasAlpha?e.cTFBC3:e.cTFBC1:s.supportedCompressionFormats.pvrtc?a=o.hasAlpha?e.cTFPVRTC1_4_RGBA:e.cTFPVRTC1_4_RGB:s.supportedCompressionFormats.etc2?a=e.cTFETC2:s.supportedCompressionFormats.etc1?a=e.cTFETC1:a=e.cTFRGB565),a}function l(s){const o=s.getHasAlpha(),a=s.getNumImages(),d=[];for(let f=0;f<a;f++){const p={levels:[]},g=s.getNumLevels(f);for(let T=0;T<g;T++){const m={width:s.getImageWidth(f,T),height:s.getImageHeight(f,T)};p.levels.push(m)}d.push(p)}return{hasAlpha:o,images:d}}function i(s,o,a,d,r){const f=s.getImageTranscodedSizeInBytes(o,a,d);let p=new Uint8Array(f);if(!s.transcodeImage(p,o,a,d,1,0))return null;if(r){const g=s.getImageWidth(o,a)+3&-4,T=s.getImageHeight(o,a)+3&-4;p=c(p,0,g,T)}return p}function c(s,o,a,d){const r=new Uint16Array(4),f=new Uint16Array(a*d),p=a/4,g=d/4;for(let T=0;T<g;T++)for(let m=0;m<p;m++){const u=o+8*(T*p+m);r[0]=s[u]|s[u+1]<<8,r[1]=s[u+2]|s[u+3]<<8,r[2]=(2*(r[0]&31)+1*(r[1]&31))/3|(2*(r[0]&2016)+1*(r[1]&2016))/3&2016|(2*(r[0]&63488)+1*(r[1]&63488))/3&63488,r[3]=(2*(r[1]&31)+1*(r[0]&31))/3|(2*(r[1]&2016)+1*(r[0]&2016))/3&2016|(2*(r[1]&63488)+1*(r[0]&63488))/3&63488;for(let b=0;b<4;b++){const C=s[u+4+b];let w=(T*4+b)*a+m*4;f[w++]=r[C&3],f[w++]=r[C>>2&3],f[w++]=r[C>>4&3],f[w]=r[C>>6&3]}}return f}}async function W(e,n,t){return await new Promise((l,i)=>{const c=s=>{s.data.action==="init"?(e.removeEventListener("message",c),l(e)):s.data.action==="error"&&i(s.data.error||"error initializing worker")};e.addEventListener("message",c),e.postMessage({action:"init",url:t?F.GetBabylonScriptURL(t):void 0,wasmBinary:n},[n])})}var h;(function(e){e[e.cTFETC1=0]="cTFETC1",e[e.cTFETC2=1]="cTFETC2",e[e.cTFBC1=2]="cTFBC1",e[e.cTFBC3=3]="cTFBC3",e[e.cTFBC4=4]="cTFBC4",e[e.cTFBC5=5]="cTFBC5",e[e.cTFBC7=6]="cTFBC7",e[e.cTFPVRTC1_4_RGB=8]="cTFPVRTC1_4_RGB",e[e.cTFPVRTC1_4_RGBA=9]="cTFPVRTC1_4_RGBA",e[e.cTFASTC_4x4=10]="cTFASTC_4x4",e[e.cTFATC_RGB=11]="cTFATC_RGB",e[e.cTFATC_RGBA_INTERPOLATED_ALPHA=12]="cTFATC_RGBA_INTERPOLATED_ALPHA",e[e.cTFRGBA32=13]="cTFRGBA32",e[e.cTFRGB565=14]="cTFRGB565",e[e.cTFBGR565=15]="cTFBGR565",e[e.cTFRGBA4444=16]="cTFRGBA4444",e[e.cTFFXT1_RGB=17]="cTFFXT1_RGB",e[e.cTFPVRTC2_4_RGB=18]="cTFPVRTC2_4_RGB",e[e.cTFPVRTC2_4_RGBA=19]="cTFPVRTC2_4_RGBA",e[e.cTFETC2_EAC_R11=20]="cTFETC2_EAC_R11",e[e.cTFETC2_EAC_RG11=21]="cTFETC2_EAC_RG11"})(h||(h={}));const L={JSModuleURL:`${F._DefaultCdnUrl}/basisTranscoder/1/basis_transcoder.js`,WasmModuleURL:`${F._DefaultCdnUrl}/basisTranscoder/1/basis_transcoder.wasm`},V=(e,n)=>{let t;switch(e){case h.cTFETC1:t=36196;break;case h.cTFBC1:t=33776;break;case h.cTFBC4:t=33779;break;case h.cTFASTC_4x4:t=37808;break;case h.cTFETC2:t=37496;break;case h.cTFBC7:t=36492;break}if(t===void 0)throw"The chosen Basis transcoder format is not currently supported";return t};let G=null,y=null,k=0;const H=!1,x=async()=>(G||(G=new Promise((e,n)=>{y?e(y):F.LoadFileAsync(F.GetBabylonScriptURL(L.WasmModuleURL)).then(t=>{if(typeof URL!="function")return n("Basis transcoder requires an environment with a URL constructor");const l=URL.createObjectURL(new Blob([`(${R})()`],{type:"application/javascript"}));y=new Worker(l),W(y,t,L.JSModuleURL).then(e,n)}).catch(n)})),await G),_=async(e,n)=>{const t=e instanceof ArrayBuffer?new Uint8Array(e):e;return await new Promise((l,i)=>{x().then(()=>{const c=k++,s=a=>{a.data.action==="transcode"&&a.data.id===c&&(y.removeEventListener("message",s),a.data.success?l(a.data):i("Transcode is not supported on this device"))};y.addEventListener("message",s);const o=new Uint8Array(t.byteLength);o.set(new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),y.postMessage({action:"transcode",id:c,imageData:o,config:n,ignoreSupportedFormats:H},[o.buffer])},c=>{i(c)})})},E=(e,n)=>{let t=n._gl?.TEXTURE_2D;e.isCube&&(t=n._gl?.TEXTURE_CUBE_MAP),n._bindTextureDirectly(t,e,!0)},v=(e,n)=>{const t=e.getEngine();for(let l=0;l<n.fileInfo.images.length;l++){const i=n.fileInfo.images[l].levels[0];if(e._invertVScale=e.invertY,n.format===-1||n.format===h.cTFRGB565)if(e.type=10,e.format=4,t._features.basisNeedsPOT&&(Math.log2(i.width)%1!==0||Math.log2(i.height)%1!==0)){const c=new U(t,2);e._invertVScale=e.invertY,c.type=10,c.format=4,c.width=i.width+3&-4,c.height=i.height+3&-4,E(c,t),t._uploadDataToTextureDirectly(c,new Uint16Array(i.transcodedPixels.buffer),l,0,4,!0),t._rescaleTexture(c,e,t.scenes[0],t._getInternalFormat(4),()=>{t._releaseTexture(c),E(e,t)})}else e._invertVScale=!e.invertY,e.width=i.width+3&-4,e.height=i.height+3&-4,e.samplingMode=2,E(e,t),t._uploadDataToTextureDirectly(e,new Uint16Array(i.transcodedPixels.buffer),l,0,4,!0);else{e.width=i.width,e.height=i.height,e.generateMipMaps=n.fileInfo.images[l].levels.length>1;const c=N.GetInternalFormatFromBasisFormat(n.format,t);e.format=c,E(e,t);const s=n.fileInfo.images[l].levels;for(let o=0;o<s.length;o++){const a=s[o];t._uploadCompressedDataToTextureDirectly(e,c,a.width,a.height,a.transcodedPixels,l,o)}t._features.basisNeedsPOT&&(Math.log2(e.width)%1!==0||Math.log2(e.height)%1!==0)&&(D.Warn("Loaded .basis texture width and height are not a power of two. Texture wrapping will be set to Texture.CLAMP_ADDRESSMODE as other modes are not supported with non power of two dimensions in webGL 1."),e._cachedWrapU=P.CLAMP_ADDRESSMODE,e._cachedWrapV=P.CLAMP_ADDRESSMODE)}}},N={JSModuleURL:L.JSModuleURL,WasmModuleURL:L.WasmModuleURL,GetInternalFormatFromBasisFormat:V,TranscodeAsync:_,LoadTextureFromTranscodeResult:v};class X{constructor(){this.supportCascades=!1}loadCubeData(n,t,l,i,c){if(Array.isArray(n))return;const s=t.getEngine().getCaps(),o={supportedCompressionFormats:{etc1:!!s.etc1,s3tc:!!s.s3tc,pvrtc:!!s.pvrtc,etc2:!!s.etc2,astc:!!s.astc,bc7:!!s.bptc}};_(n,o).then(a=>{const d=a.fileInfo.images[0].levels.length>1&&t.generateMipMaps;v(t,a),t.getEngine()._setCubeMapTextureParams(t,d),t.isReady=!0,t.onLoadedObservable.notifyObservers(t),t.onLoadedObservable.clear(),i&&i()}).catch(a=>{F.Warn("Failed to transcode Basis file, transcoding may not be supported on this device"),t.isReady=!0,c&&c(a)})}loadData(n,t,l){const i=t.getEngine().getCaps(),c={supportedCompressionFormats:{etc1:!!i.etc1,s3tc:!!i.s3tc,pvrtc:!!i.pvrtc,etc2:!!i.etc2,astc:!!i.astc,bc7:!!i.bptc}};_(n,c).then(s=>{const o=s.fileInfo.images[0].levels[0],a=s.fileInfo.images[0].levels.length>1&&t.generateMipMaps;l(o.width,o.height,a,s.format!==-1,()=>{v(t,s)})}).catch(s=>{F.Warn("Failed to transcode Basis file, transcoding may not be supported on this device"),F.Warn(`Failed to transcode Basis file: ${s}`),l(0,0,!1,!1,()=>{},!0)})}}export{X as _BasisTextureLoader};
|