python-cad-tools 0.1.19__tar.gz → 0.1.21__tar.gz
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-0.1.19 → python_cad_tools-0.1.21}/CHANGELOG.md +41 -0
- {python_cad_tools-0.1.19/src/python_cad_tools.egg-info → python_cad_tools-0.1.21}/PKG-INFO +6 -2
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/README.md +5 -1
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/docs/neutral-model.md +1 -1
- python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/asset-manifest.json +1 -0
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/animationGroup-CMgMiFPo.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/animationGroup-y0vxJTHi.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/bakedVertexAnimation-BlpwZEna.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/bakedVertexAnimation-BBtOjYgD.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/basisTextureLoader-pxgVvwE7.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/basisTextureLoader-C0CWWK6C.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/brdfTextureTools-CL1Nnrm1.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/brdfTextureTools-BK5sbjI4.js +2 -2
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/bumpFragment-BNBjNOnF.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/bumpFragment-DA8EdzWp.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/bumpVertex-BTawYPw8.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/bumpVertex-C-Tz5-on.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/bumpVertexDeclaration-B_fffQFY.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/bumpVertexDeclaration-DcJYzNbJ.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/clipPlaneFragment-D1ZAafqO.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/clipPlaneFragment-TSEtEMNd.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/clipPlaneVertex-BC_wnvpq.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/clipPlaneVertex-uZlnoaiC.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/cubemapToSphericalPolynomial-DeA9LJ87.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/cubemapToSphericalPolynomial-CbpdsBi-.js +1 -1
- python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/dds-DTJCjwtR.js +1 -0
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/dds.pure-B_7lJeYI.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/dds.pure-GxPY_zfe.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/ddsTextureLoader-DsS5rL5j.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/ddsTextureLoader-CksmWoIY.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/default.fragment-BUHDudIn.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/default.fragment-CLdN55aJ.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/default.vertex-B80Wq2Ab.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/default.vertex-hpVkU2OZ.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/defaultUboDeclaration-DuGcl3VN.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/defaultUboDeclaration-B-2Y6yF1.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/dumpTools-1F1Rx0a0.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/dumpTools-2Vxp-avt.js +2 -2
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/envTextureLoader-DqI1ceC5.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/envTextureLoader-BJ6o68xV.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/exrTextureLoader-DmNwF2B5.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/exrTextureLoader-EGHqxheE.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphApplyForceBlock-DmvfeucL.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphApplyForceBlock-DAS01LnC.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphApplyImpulseBlock-ChgIpPqh.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphApplyImpulseBlock-CMzcV63U.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphArrayIndexBlock-_JwXSrlj.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphArrayIndexBlock-BnBgFyIE.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphBezierCurveEasingBlock-B-T0qVRw.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphBezierCurveEasingBlock-BuVUi2RL.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphBinaryOperationBlock-TpZm5BfV.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphBinaryOperationBlock-CVGmsw8x.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphBranchBlock-CNwAs8cP.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphBranchBlock-BfIcR38b.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphCachedOperationBlock-DaEYpjja.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphCachedOperationBlock-BItwxOg_.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphCancelDelayBlock-Dc4RKYSf.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphCancelDelayBlock-DabMn7mT.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphCodeExecutionBlock-DCxeE8wr.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphCodeExecutionBlock-B9nrso5H.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphConditionalDataBlock-TckZ2SGl.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphConditionalDataBlock-BTfkFqJa.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphConsoleLogBlock-B5e69wX5.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphConsoleLogBlock-ZKRRrx3V.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphConstantBlock-3ktOI1lC.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphConstantBlock-Dynbc9i5.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphContextBlock-XTBtETD_.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphContextBlock-aaa4bUjB.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphCounterBlock-Pb64y9OD.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphCounterBlock-DHQ9YaXX.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphDataSwitchBlock-DsG4QDCF.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphDataSwitchBlock-DCcjQH_2.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphDebounceBlock-B_XjPDoZ.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphDebounceBlock-CHLipwBM.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphDebugBlock-CD6lTvpS.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphDebugBlock-B7BE97Pj.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphDoNBlock-0NvER8W0.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphDoNBlock-cMK6KEZp.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphEasingBlock-B6hapywt.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphEasingBlock-B4WasDy3.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphFlipFlopBlock-D1uyBOpq.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphFlipFlopBlock-DrbNVT2u.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphForLoopBlock-BYD81Gof.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphForLoopBlock-Bbur2Xn2.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphFunctionReferenceBlock-zABkEq-X.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphFunctionReferenceBlock-CnlGraT6.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphGLTFDataProvider-B0ofoVrD.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphGLTFDataProvider-D_p9Vc3n.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphGetAngularVelocityBlock-DPTUNnTb.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphGetAngularVelocityBlock-CoO6JHmy.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphGetAssetBlock-B8_99mSz.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphGetAssetBlock-JakaK1JL.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphGetLinearVelocityBlock-DFYXgPrA.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphGetLinearVelocityBlock-BGL2RtAb.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphGetPhysicsMassPropertiesBlock-DA6AqPR7.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphGetPhysicsMassPropertiesBlock-CxIjatfx.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphGetPropertyBlock-Bp4o9QmW.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphGetPropertyBlock-DT-QXVu_.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphGetSoundVolumeBlock-BAmdegmU.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphGetSoundVolumeBlock-C4LKSI5R.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphGetVariableBlock-Cd8Y6leR.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphGetVariableBlock-DIlaVi8M.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphIndexOfBlock-CGYxKZZY.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphIndexOfBlock-DYf_o9uE.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphInterpolationBlock-CwjeWPr7.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphInterpolationBlock-tG1kO4s_.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphIsKeyPressedBlock-rNAEqrST.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphIsKeyPressedBlock-D6ExxkWF.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphIsSoundPlayingBlock-BTztAQ_0.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphIsSoundPlayingBlock-vPEvDIRc.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphJsonPointerParserBlock-DoLWKXUb.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphJsonPointerParserBlock-Af-cdpFu.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphKeyDownEventBlock-DPIi37WK.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphKeyDownEventBlock-BABAmIeL.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphKeyUpEventBlock-ZV1Tim4d.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphKeyUpEventBlock-BSUoekRK.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphKeyboardEventBlock-ClUSFYDa.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphKeyboardEventBlock-CZDsT79F.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphMathBlocks-BEiYY5fC.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphMathBlocks-UEv4tVyC.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphMathCombineExtractBlocks-CVfFjT4m.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphMathCombineExtractBlocks-CbwJeujD.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphMatrixMathBlocks-B6l0dCDc.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphMatrixMathBlocks-CJ0nrwFc.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphMeshPickEventBlock-kdpuo1mU.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphMeshPickEventBlock-CYCR7C7B.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphMultiGateBlock-n99NMOON.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphMultiGateBlock-tAD2s18w.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphPauseAnimationBlock-DXKPP4nK.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphPauseAnimationBlock-C1yfh7U4.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphPauseSoundBlock-e2k4W8Bc.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphPauseSoundBlock-B8T3Qxmk.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphPhysicsCollisionEventBlock-ClgKwXfJ.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphPhysicsCollisionEventBlock-B4vsEIEQ.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphPlayAnimationBlock-BZj6MNgX.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphPlayAnimationBlock-BuU8u7bh.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphPlaySoundBlock-BnzlrpjK.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphPlaySoundBlock-OsFJerGp.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphPointerDownEventBlock-CQiX1RZi.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphPointerDownEventBlock-B4myfwzY.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphPointerMoveEventBlock-B_JzBfd9.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphPointerMoveEventBlock-C7kNYXVC.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphPointerOutEventBlock-B-xKCRP6.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphPointerOutEventBlock-BwL1k9K3.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphPointerOverEventBlock-DPC5GKft.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphPointerOverEventBlock-D7uPUz3m.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphPointerUpEventBlock-hCR14WZY.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphPointerUpEventBlock-h2k1otta.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphReceiveCustomEventBlock-EOc5SmbK.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphReceiveCustomEventBlock-CKsih9DU.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphSceneReadyEventBlock-BAOJ-S5R.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphSceneReadyEventBlock-MoEL2OgG.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphSceneTickEventBlock-BJla1nDw.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphSceneTickEventBlock-DkhjsuEd.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphSendCustomEventBlock-CbJzCBSw.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphSendCustomEventBlock-CDJDoId5.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphSequenceBlock-C0E5Vhwk.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphSequenceBlock-CKvAcfGB.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphSetAngularVelocityBlock-Crx1sltA.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphSetAngularVelocityBlock-DUVgv52d.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphSetDelayBlock-t-D4JM8I.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphSetDelayBlock-B0LkcVpW.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphSetLinearVelocityBlock-DKNa-lhN.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphSetLinearVelocityBlock-DdFINyIs.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphSetPhysicsMotionTypeBlock-BIeMWJwi.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphSetPhysicsMotionTypeBlock-B_GSDzn3.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphSetPropertyBlock-CFERwfo5.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphSetPropertyBlock-5WKrlvaE.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphSetSoundVolumeBlock-B8fGBso9.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphSetSoundVolumeBlock-CdnrYD5B.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphSetVariableBlock-D3NUXLsU.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphSetVariableBlock-DD5gsKis.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphSoundEndedEventBlock-BsojQIIQ.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphSoundEndedEventBlock-fKBoAQlt.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphStopAnimationBlock-Bhvi4mzM.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphStopAnimationBlock-CDm85_Y9.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphStopSoundBlock-BL-vDlPP.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphStopSoundBlock-BY77RYv7.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphSwitchBlock-q5uox2Ll.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphSwitchBlock-BLuZLMgz.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphThrottleBlock-ZvIobaF-.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphThrottleBlock-BoV3UuLi.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphTransformCoordinatesSystemBlock-DC7IZTrj.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphTransformCoordinatesSystemBlock-BO46AA3F.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphTypeToTypeBlocks-DsmLuQmd.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphTypeToTypeBlocks-_O7ljeb3.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphUnaryOperationBlock-CeFOvM8N.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphUnaryOperationBlock-C1RBwiu1.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphVectorMathBlocks-O_o0PB3R.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphVectorMathBlocks-CRPoi5bR.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphWaitAllBlock-CS8S_sto.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphWaitAllBlock-B4u-Lnoz.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/flowGraphWhileLoopBlock-BogzY-TI.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/flowGraphWhileLoopBlock-C2wNz7MU.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/fogFragment-5iY5mDF9.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/fogFragment-DAcG7TCQ.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/gaussianSplatting-CzELCfrg.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/gaussianSplatting-DHOD58HS.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/gaussianSplatting-Dm4qQcCl.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/gaussianSplatting-DIlhNWGI.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-gV6NfBr2.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-Csz9k2lc.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-Dl5Knagi.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-DyjC4p2I.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-BU7N8GWm.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-BYdix1b9.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-BYh0LKwp.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-qaQwrhXF.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-DGCqlu5B.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-BiVyc4nS.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-DPRpU6I6.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-C9kJafLO.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-D6831_Db.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-BRLme_YW.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-DVVqYQkj.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-DSPVps-_.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/geometry.fragment-eMPAGW-C.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/geometry.fragment-BcBx-JUz.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/geometry.fragment-CJ5P29rW.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/geometry.fragment-rcQdOa18.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/geometry.vertex-D8aj2PHd.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/geometry.vertex-BTVcDQMd.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/geometry.vertex-Cfmd-eH1.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/geometry.vertex-BbL_FLfO.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/glowBlurPostProcess.fragment-BNUj6Ok4.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/glowBlurPostProcess.fragment-BOrEH7qZ.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/glowMapGeneration.fragment-BMfCbDSO.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/glowMapGeneration.fragment-Dw2pELM9.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/glowMapGeneration.vertex-HFoIGtvW.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/glowMapGeneration.vertex-g4zSgWHl.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/glowMapMerge.fragment-DcbXX8O5.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/glowMapMerge.fragment-BRI1RC0h.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/glowMapMerge.vertex-C6kfp5Df.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/glowMapMerge.vertex-OYXhsO5y.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/harmonicsFunctions-B_Rux4W4.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/harmonicsFunctions-B-rFa6Jw.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/helperFunctions-DfEEUVrK.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/helperFunctions-CJuKh7zv.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/iesTextureLoader-DRIv8q-c.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/iesTextureLoader-hQPlzY89.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/index-QUv88KPb.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/index-aS20qDZO.js +13 -13
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-B-fzpNXl.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-Bkkqf9Gf.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-AIxPvzg7.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-gsnhhxsW.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-LF_ZsFNn.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-CuVvtzKn.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-BeCpz_iB.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-Di3ETd02.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-0MaBFn29.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-D8-BThIr.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-CKf1P4fb.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-lHduxGLy.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/ktxTextureLoader-tKPsUacI.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/ktxTextureLoader-CsB3T93v.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/lightFragment-k2nRX45x.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/lightFragment-DomeLrOQ.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/logDepthDeclaration-BGXXcOUJ.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/logDepthDeclaration-DdSMU1vE.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/logDepthVertex-BC72KyzN.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/logDepthVertex-CIYc6FKU.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/mainUVVaryingDeclaration-BCMZuxRE.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/mainUVVaryingDeclaration-CinwtRdE.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/meshUboDeclaration-Cxk75_zo.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/meshUboDeclaration-BHuQNGCy.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/oitFragment-BtwWIihL.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/oitFragment-CG7kMCvU.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/openpbr.fragment-C6yWZfQI.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/openpbr.fragment-CRlYBc_-.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/openpbr.fragment-8rnUKL54.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/openpbr.fragment-Csz9EYJi.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/openpbr.vertex-DbnVIs8Y.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/openpbr.vertex-D8xRp_pg.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/openpbr.vertex-DGh-kC4B.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/openpbr.vertex-DWzGweC9.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/openpbrMaterial.pure-CFHhabYh.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/openpbrMaterial.pure-BVsTXLPP.js +3 -3
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/openpbrMaterialLoadingAdapter-BQGAj-f6.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/openpbrMaterialLoadingAdapter-Cl2qUNz7.js +2 -2
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-BMK7l2Ba.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-C3FnopjH.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-DNsGu5u0.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-MOccHJLS.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-Cd1JAAAL.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-Bd8N4mLs.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-rBzbf9n3.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-DbIcgURU.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/packingFunctions-Dji1Rr-b.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/packingFunctions-B-RyPnvp.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/packingFunctions-_goA4OEm.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/packingFunctions-B_LoQGE_.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/pass.fragment-CgGToehX.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/pass.fragment-CosRVAJR.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/passCube.fragment-CqqQ20XF.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/passCube.fragment-ByQLKcal.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/passCube.fragment-D93dlgjG.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/passCube.fragment-COrMlz4L.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/pbr.fragment-YSvcDJjz.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/pbr.fragment-Dp9qP0ik.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/pbr.vertex-BOhSAeHX.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/pbr.vertex-BEhyQo04.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/pbrBRDFFunctions-DTEwurLZ.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/pbrBRDFFunctions-MD5J9kNB.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/pbrDebug-B4IzJZHZ.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/pbrDebug-BMEohefD.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/pbrIBLFunctions-gJ0KErMb.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/pbrIBLFunctions-BNSg1TYL.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/pbrMaterial.pure-BRIxFz02.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/pbrMaterial.pure-CmT8POVY.js +2 -2
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/pbrMaterialLoadingAdapter--NRrZRBU.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/pbrMaterialLoadingAdapter-B9wrRf4Y.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/pbrUboDeclaration-6dxbcrtA.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/pbrUboDeclaration-CaZ5IiXn.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/postprocess.vertex-ZxthID8t.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/postprocess.vertex-6O8OKxg1.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/procedural.vertex-BSVnGss-.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/procedural.vertex-CnLTJ0GC.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/procedural.vertex-DzIg_d-k.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/procedural.vertex-CsPpF8ex.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/reflectionFunction-CgKY-0t6.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/reflectionFunction-FOkl7zGy.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/rgbdDecode.fragment-CAfeJDpQ.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/rgbdDecode.fragment-B3rgzhU8.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-DIzz0LC4.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-BQbjknQm.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-D7xEO0B-.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-DyCYq3cD.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/sceneUboDeclaration-kGrRDglr.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/sceneUboDeclaration-qgAWTN28.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-DnEEx4Gs.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-DNVQK8Xr.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-CgQTw0M7.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-pAIEAh33.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/tgaTextureLoader-CwaQqeYn.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/tgaTextureLoader-BE-ozdBC.js +1 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/vertexColorMixing-C2cK_vck.js → python_cad_tools-0.1.21/src/python_cad_tools/_viewer_static/assets/vertexColorMixing-B7eY1nal.js +1 -1
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/_viewer_static/index.html +1 -1
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/artifacts.py +10 -0
- python_cad_tools-0.1.21/src/python_cad_tools/build-info.json +1 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/build.py +26 -1
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/cli.py +14 -1
- python_cad_tools-0.1.21/src/python_cad_tools/exporters/renders.py +436 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/project_config.py +2 -2
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/schemas/download-manifest-2.json +1 -1
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/site.py +1 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/templates/project/pyproject.toml +1 -1
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/validation.py +60 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21/src/python_cad_tools.egg-info}/PKG-INFO +6 -2
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools.egg-info/SOURCES.txt +168 -167
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools.egg-info/scm_file_list.json +169 -167
- python_cad_tools-0.1.21/src/python_cad_tools.egg-info/scm_version.json +8 -0
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/asset-manifest.json +0 -1
- python_cad_tools-0.1.19/src/python_cad_tools/_viewer_static/assets/dds-C5zm4fz8.js +0 -1
- python_cad_tools-0.1.19/src/python_cad_tools/build-info.json +0 -1
- python_cad_tools-0.1.19/src/python_cad_tools.egg-info/scm_version.json +0 -8
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/.gitattributes +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/.githooks/pre-push +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/.github/workflows/ci.yml +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/.github/workflows/downstream-compatibility.yml +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/.github/workflows/release-candidate.yml +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/.github/workflows/release.yml +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/.gitignore +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/.opencode/commands/autocommit.md +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/.opencode/tools/specrepo-autocommit.js +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/.opencode/tools/specrepo-autocommit.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/AGENTS.md +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/CLAUDE.md +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/LICENSE +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/MANIFEST.in +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/docs/build-semantics.md +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/docs/drawing-extensions.md +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/docs/manifests.md +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/docs/project-configuration.md +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/docs/public-api.md +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/docs/spikes/curved-geometry-ifc-bounds.md +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/docs/spikes/format-feasibility.md +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/docs/toolchain.md +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/docs/two-tier-contract.md +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/docs/viewer-delivery.md +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/pyproject.toml +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/setup.cfg +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/__init__.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/__main__.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/_locking.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/_project_loader.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/_project_state.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/_scaffold.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/_transaction.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/_viewer_static/app.webmanifest +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/_viewer_static/assets/hdrTextureLoader-BGQvgh0h.js +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/_viewer_static/assets/index-Bi_hQlRi.css +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/_viewer_static/assets/mesh.vertexData.functions-ayNlGC5K.js +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/_viewer_static/favicon.svg +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/_viewer_static/sw.js +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/context.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/determinism.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/drawings/__init__.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/drawings/_catalog.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/drawings/_validation.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/elements.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/exceptions.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/exporters/__init__.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/exporters/base.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/exporters/drawings/__init__.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/exporters/drawings/annotations.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/exporters/drawings/dxf.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/exporters/drawings/model.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/exporters/drawings/pdf.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/exporters/drawings/primitives.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/exporters/drawings/projection.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/exporters/drawings/svg.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/exporters/glb.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/exporters/ifc.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/exporters/quantities.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/exporters/step.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/geometry.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/manifests.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/py.typed +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/recipes.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/runtime_sync.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/schemas/build-manifest-1.json +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/schemas/design-manifest-1.json +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/schemas/drawing-annotations-1.json +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/schemas/glb-manifest-1.json +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/schemas/ifc-validation-1.json +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/schemas/quantities-1.json +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/schemas/run-metadata-1.json +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/schemas/site-metadata-1.json +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/schemas/step-validation-1.json +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/templates/project/.gitignore +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/templates/project/README.md +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/templates/project/config.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/templates/project/drawing_annotations.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/templates/project/generated/.gitkeep +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/templates/project/model.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools/units.py +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools.egg-info/dependency_links.txt +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools.egg-info/entry_points.txt +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools.egg-info/requires.txt +0 -0
- {python_cad_tools-0.1.19 → python_cad_tools-0.1.21}/src/python_cad_tools.egg-info/top_level.txt +0 -0
|
@@ -7,6 +7,47 @@ stable release is published.
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.1.21] - 2026-10-27
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- `validate` (and so `build`) now fails a model whose parts were never moved
|
|
15
|
+
into place:
|
|
16
|
+
- `placement-unapplied`: a physical solid whose non-zero
|
|
17
|
+
`Placement.translation_mm` lies outside its own bounds. `Placement`
|
|
18
|
+
records a position and never moves geometry, so the part would export
|
|
19
|
+
where it was built. Build the solid in place instead, for example with
|
|
20
|
+
`box(..., origin=...)` or `shape.moved(Location((x, y, z)))`.
|
|
21
|
+
- `stacked-elements`: three or more physical solids with exactly the same
|
|
22
|
+
bounds, which is almost always parts left at the origin.
|
|
23
|
+
|
|
24
|
+
## [0.1.20] - 2026-10-21
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
|
|
28
|
+
- A `renders` export format, now in the default formats.
|
|
29
|
+
- Every build writes four shaded PNGs of the model's real mesh to
|
|
30
|
+
`renders/png/<stem>_<view>.png`: `top`, `front`, `side` and a
|
|
31
|
+
`three_quarter` view from above.
|
|
32
|
+
- Outlines mark where parts meet, faces turn or depth jumps.
|
|
33
|
+
- A small software rasterizer with an integer depth buffer and a
|
|
34
|
+
zlib-only PNG writer draws them, with no GPU and no new dependency. A
|
|
35
|
+
rebuild reproduces the same bytes.
|
|
36
|
+
- `verify` checks each PNG's signature and header.
|
|
37
|
+
- The site lists them as the downloadable kind `render_png`, and the
|
|
38
|
+
viewer's Files panel groups them under "Renders".
|
|
39
|
+
- Unlike the bounding-box drawings, renders show angled and curved parts
|
|
40
|
+
as they are.
|
|
41
|
+
- `python-cad render-ring --destination <dir>` renders the model in
|
|
42
|
+
perspective from 16 viewpoints and writes them as `ring_01.png` …
|
|
43
|
+
`ring_16.png`, plus `ring_sheet.png`, a numbered 4×4 sheet.
|
|
44
|
+
- The viewpoints are 8 directions 45° apart, starting at the front, at
|
|
45
|
+
about 10° and 35° above the model's centre.
|
|
46
|
+
- The destination must be new or empty and outside the output folder.
|
|
47
|
+
The build output and its manifest are untouched.
|
|
48
|
+
- It is deterministic, like `renders`. It is used to find the viewpoint
|
|
49
|
+
that matches a photo.
|
|
50
|
+
|
|
10
51
|
## [0.1.19] - 2026-10-19
|
|
11
52
|
|
|
12
53
|
### Changed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-cad-tools
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.21
|
|
4
4
|
Summary: Typed, headless Python tooling for CAD/BIM models and artifacts
|
|
5
5
|
Author: Brandon Benge
|
|
6
6
|
License: AGPL-3.0-only
|
|
@@ -159,6 +159,7 @@ python-cad build --project-root . --format step --format quantities
|
|
|
159
159
|
python-cad verify --project-root .
|
|
160
160
|
python-cad prepare-site --project-root . --destination _site --base-path /
|
|
161
161
|
python-cad serve --project-root . --port 0
|
|
162
|
+
python-cad render-ring --project-root . --destination ring
|
|
162
163
|
python-cad clean --project-root .
|
|
163
164
|
```
|
|
164
165
|
|
|
@@ -166,7 +167,10 @@ The project root defaults to the current directory. Builds use project locks,
|
|
|
166
167
|
unique staging, final-byte verification, and recoverable journaled promotion.
|
|
167
168
|
`validate` writes no artifacts; `verify` independently reproduces the manifest
|
|
168
169
|
inventory, sizes, SHA-256 values, schemas, and parser checks.
|
|
169
|
-
`
|
|
170
|
+
`render-ring` writes 16 perspective PNGs of the model (8 directions at two
|
|
171
|
+
heights) and a numbered 4×4 sheet of them into a new directory outside the
|
|
172
|
+
build output, for comparing the model with a photo; they are not build
|
|
173
|
+
artifacts. `prepare-site` deploys the packaged model-free viewer without Node, and `serve`
|
|
170
174
|
binds to loopback by default. See
|
|
171
175
|
[`docs/viewer-delivery.md`](docs/viewer-delivery.md) for ownership, caching,
|
|
172
176
|
offline, and deployment details.
|
|
@@ -103,6 +103,7 @@ python-cad build --project-root . --format step --format quantities
|
|
|
103
103
|
python-cad verify --project-root .
|
|
104
104
|
python-cad prepare-site --project-root . --destination _site --base-path /
|
|
105
105
|
python-cad serve --project-root . --port 0
|
|
106
|
+
python-cad render-ring --project-root . --destination ring
|
|
106
107
|
python-cad clean --project-root .
|
|
107
108
|
```
|
|
108
109
|
|
|
@@ -110,7 +111,10 @@ The project root defaults to the current directory. Builds use project locks,
|
|
|
110
111
|
unique staging, final-byte verification, and recoverable journaled promotion.
|
|
111
112
|
`validate` writes no artifacts; `verify` independently reproduces the manifest
|
|
112
113
|
inventory, sizes, SHA-256 values, schemas, and parser checks.
|
|
113
|
-
`
|
|
114
|
+
`render-ring` writes 16 perspective PNGs of the model (8 directions at two
|
|
115
|
+
heights) and a numbered 4×4 sheet of them into a new directory outside the
|
|
116
|
+
build output, for comparing the model with a photo; they are not build
|
|
117
|
+
artifacts. `prepare-site` deploys the packaged model-free viewer without Node, and `serve`
|
|
114
118
|
binds to loopback by default. See
|
|
115
119
|
[`docs/viewer-delivery.md`](docs/viewer-delivery.md) for ownership, caching,
|
|
116
120
|
offline, and deployment details.
|
|
@@ -16,7 +16,7 @@ dimensions), and the validator invocation model. See
|
|
|
16
16
|
| `category` | `str` | Free-text classification, exported as `ObjectType` in IFC. |
|
|
17
17
|
| `geometry` | `Any` | A build123d-compatible solid, shell, wire, or edge. Required and opaque — the framework does not restrict how it was built. May be `None` when `recipe` is present; the framework materializes it. |
|
|
18
18
|
| `geometry_kind` | `"solid" \| "shell" \| "wire" \| "edge" \| "reference"` | Declares the geometry's topological kind. Physical elements must be `"solid"`. |
|
|
19
|
-
| `placement` | `Placement` |
|
|
19
|
+
| `placement` | `Placement` | The element's recorded position: translation (mm) and rotation (degrees, XYZ). It does **not** move `geometry`, which must already be built in place (for example `box(..., origin=...)`); `validate` fails a solid whose non-zero translation lies outside its own bounds (`placement-unapplied`). |
|
|
20
20
|
| `dimensions` | `Dimensions` | Declared, author-stated extents. Independent of the geometry's actual bounds; exported into `Pset_PythonCadDesign`. |
|
|
21
21
|
| `material` | `MaterialSpec \| None` | Required for physical elements. Drives IFC material association and quantity mass calculation (`density_kg_m3`). |
|
|
22
22
|
| `color_rgb` | `Color \| None` | Overrides the material color for this element's rendering/styling. |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"entries":[{"media_type":"application/manifest+json","path":"app.webmanifest","sha256":"80ad27439df65fb6defc9e30ec2fe782226622e006675e157fac4d145b000661","size":389},{"media_type":"text/javascript; charset=utf-8","path":"assets/animationGroup-y0vxJTHi.js","sha256":"fd45f1dee3f34da5049423b7c0a3c8240ea40fed0cd1f1a13ff15f61f23506c3","size":35489},{"media_type":"text/javascript; charset=utf-8","path":"assets/bakedVertexAnimation-BBtOjYgD.js","sha256":"a2018e0a2ddb87c727cddf6b24da966f9b13e8388015260c6f0ef2915398653a","size":15843},{"media_type":"text/javascript; charset=utf-8","path":"assets/basisTextureLoader-C0CWWK6C.js","sha256":"2bf1888cdbd666a664779c5fbb09500286979f48830ab6882103198670140953","size":7961},{"media_type":"text/javascript; charset=utf-8","path":"assets/brdfTextureTools-BK5sbjI4.js","sha256":"edb933fef4af8a435887d62b55b45e5a2ca5d89c0b5d6ce4542d22f0b2004f53","size":61224},{"media_type":"text/javascript; charset=utf-8","path":"assets/bumpFragment-DA8EdzWp.js","sha256":"774f5d0096c092366415380754bb67caad960e0c425405ca1cc57e10e0a3675e","size":8075},{"media_type":"text/javascript; charset=utf-8","path":"assets/bumpVertex-C-Tz5-on.js","sha256":"01ac439665986540a408ebe69dd42c2dc49683dfeeec76ff3fbd20aede6000e3","size":698},{"media_type":"text/javascript; charset=utf-8","path":"assets/bumpVertexDeclaration-DcJYzNbJ.js","sha256":"2c02a47421f0f4425a3fa8d8a6b419296b866037dca86e4422704cbd8ec54c11","size":393},{"media_type":"text/javascript; charset=utf-8","path":"assets/clipPlaneFragment-TSEtEMNd.js","sha256":"06b8f2ad50835665101e481405db01bbd5c8dc81d55b6c6342faea3f69710b10","size":1275},{"media_type":"text/javascript; charset=utf-8","path":"assets/clipPlaneVertex-uZlnoaiC.js","sha256":"39ba283d1557f642f6c8307c830d8bf7ff52bb65c20e8958f3a7a3f91409ee08","size":1356},{"media_type":"text/javascript; charset=utf-8","path":"assets/cubemapToSphericalPolynomial-CbpdsBi-.js","sha256":"ff47df0ffcf9c9fdff8cc27375ca436b215b5041e342acf2669eca91a8671b44","size":3667},{"media_type":"text/javascript; charset=utf-8","path":"assets/dds-DTJCjwtR.js","sha256":"7b121e92ee5a9eeb057d8bd28e5042a8ce9656bed465f4baf6e7d3bf1857e5ec","size":161},{"media_type":"text/javascript; charset=utf-8","path":"assets/dds.pure-GxPY_zfe.js","sha256":"d081ff3b8c65b7d0007d0d65894d3b8fb1e918198c728919c617f57d88ef4838","size":7046},{"media_type":"text/javascript; charset=utf-8","path":"assets/ddsTextureLoader-CksmWoIY.js","sha256":"3dcac05c92ccc251d226d50fc3792a1875acc4d7898a364877ac81190ebf1962","size":1310},{"media_type":"text/javascript; charset=utf-8","path":"assets/default.fragment-CLdN55aJ.js","sha256":"9b4ef72b1842eecf0c33fc86bd950d9eac83f5743c3a24097b531977f0eae9d1","size":25362},{"media_type":"text/javascript; charset=utf-8","path":"assets/default.vertex-hpVkU2OZ.js","sha256":"ead1f6cc87bfd1f16c6fbf0350afef170170e80c937bc34ad908ae4628061180","size":9451},{"media_type":"text/javascript; charset=utf-8","path":"assets/defaultUboDeclaration-B-2Y6yF1.js","sha256":"df5a54864cf1fe2ee941bdb4869778a2d88a3ef1f56df7e404729f3781c03829","size":1624},{"media_type":"text/javascript; charset=utf-8","path":"assets/dumpTools-2Vxp-avt.js","sha256":"e71179382a71d0e63c9eb8ffd57db09b967251119287a3e1302cb5b8de88fc2e","size":3597},{"media_type":"text/javascript; charset=utf-8","path":"assets/envTextureLoader-BJ6o68xV.js","sha256":"b2028d614faccc7a6c8920ac45e40d6aefa7ee08f2c89585a9f5139d81192cf7","size":1649},{"media_type":"text/javascript; charset=utf-8","path":"assets/exrTextureLoader-EGHqxheE.js","sha256":"33645b7e8e043870d936a36a531f30cdfa0650b74e739d4d4b741d9f17eb5afd","size":14187},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphApplyForceBlock-DAS01LnC.js","sha256":"e2819cf30e6307c8ed905beed91170d1dd3499d744f29b3618061645dca60fd7","size":675},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphApplyImpulseBlock-CMzcV63U.js","sha256":"98bc09be47110fd3d4d9f0f511ce5936c6230b6734f549c0cf2650424d0421c3","size":691},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphArrayIndexBlock-BnBgFyIE.js","sha256":"9fe2b9144007939e98b20463a04eb78642987ed77201b4703b6a5bac7c450ed6","size":649},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphBezierCurveEasingBlock-BuVUi2RL.js","sha256":"9f96087f1a8560f005a2c755c3942deb117a9f72c0a549b328336acca934da92","size":938},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphBinaryOperationBlock-CVGmsw8x.js","sha256":"ab447ec58b7c2c2e1ffb9dd3bc1e81a0cd1714bc9ab2300ac659b6e511d71cda","size":375},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphBranchBlock-BfIcR38b.js","sha256":"537f58c84dbee913173007d1bce7e99708a4c7cb972953cb561bae05d2ee7be2","size":529},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphCachedOperationBlock-BItwxOg_.js","sha256":"3ab059017d8cbcfed43b744cb35c1569b0a9d549bf2990d385d249faf96dbb52","size":688},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphCancelDelayBlock-DabMn7mT.js","sha256":"fa8d7fc36e285cef3b6de862de1e60aa80cdf194de08c37fbb1ea148c638583b","size":592},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphCodeExecutionBlock-B9nrso5H.js","sha256":"8ad0f026bf097ec15e163ad2a846d2d2c03ea1a938f57f174cf617bfb948590c","size":470},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphConditionalDataBlock-BTfkFqJa.js","sha256":"ca4ad73c35215a1c400ce6e06ebed01589bd3dd99d9c6eb44d365d62ce215b6c","size":634},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphConsoleLogBlock-ZKRRrx3V.js","sha256":"5bef8de8be44837f88f735c178219ea4c26da5e453ea8386d35a3f3d2755ce0a","size":1416},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphConstantBlock-Dynbc9i5.js","sha256":"3124c700e4311f074bbadb96a9b5f1080cac969730000831e4e74b03fafcf6ac","size":497},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphContextBlock-aaa4bUjB.js","sha256":"d076446badbec20364ba47c98479e9776d292a20423bc42a90187f755d77dfe7","size":540},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphCounterBlock-DHQ9YaXX.js","sha256":"76c6640fbfcf6dec516d4a3b444c883992ab3095b739b2d0709bcc86ac682a80","size":630},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphDataSwitchBlock-DCcjQH_2.js","sha256":"4f7feb1dfad667bacf8ae691f3de154f92291712fc70a6729348d98f66b8f473","size":904},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphDebounceBlock-CHLipwBM.js","sha256":"daad51d97b4166ad17ad902bb546313c46f3b8ebf3dc49082aaeecaa70fadd07","size":768},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphDebugBlock-B7BE97Pj.js","sha256":"6b8fce7de05120f602df95b273871d19024d75769fc4f5e2815bdd5966f02e2b","size":1450},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphDoNBlock-cMK6KEZp.js","sha256":"2174c480ed107f12f8373de8270f40180719a6116a9727d673e9ce719a646420","size":770},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphEasingBlock-B4WasDy3.js","sha256":"4cda4172af320b6389a9c6c453928b4c3639f56163205021ee8ed46067f70bac","size":1627},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphFlipFlopBlock-DrbNVT2u.js","sha256":"570706ba2ec03c9d69df3d85499290cd42bc8183e4b8cee284d918902c024457","size":678},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphForLoopBlock-Bbur2Xn2.js","sha256":"5ef2d22601ba12eff466fb9b0d43a044ec148c528c947077d8a84bf6c5d4a3ee","size":1108},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphFunctionReferenceBlock-CnlGraT6.js","sha256":"8960f5343b3d5d2282ab3eefb3e9ebfa2ae236d33e6ecdc52ed21ef35fa60885","size":714},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphGLTFDataProvider-D_p9Vc3n.js","sha256":"fce39060d1552660b3e89934c30d8ef2ca53a913c4188253af093722ba90ab2e","size":418},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphGetAngularVelocityBlock-CoO6JHmy.js","sha256":"9ae0cfaac2c45e27196e4aacecbd11f1d12f7d27aa597fc275ebe9e343a3e2e0","size":657},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphGetAssetBlock-JakaK1JL.js","sha256":"49899316fbc23f6686acc22f60f09b4a78ef18e40fd3472719bee5c6633b0b6e","size":638},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphGetLinearVelocityBlock-BGL2RtAb.js","sha256":"1855d4477f147f48cbc80133d5808f26b86b5c4f86906752967828c10a132460","size":652},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphGetPhysicsMassPropertiesBlock-CxIjatfx.js","sha256":"d78c2c39a1c4bc32041d11091c4800863515a9cc5117d7dacd57230543f4fd65","size":801},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphGetPropertyBlock-DT-QXVu_.js","sha256":"125384b3d6e510907d29db1d723eac7a990baaf9882a102958a6d5cfb28986dd","size":930},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphGetSoundVolumeBlock-C4LKSI5R.js","sha256":"0372984dc00a1509621ec28b16602efe6da0183ee4e99eb580824edc6bbfe181","size":485},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphGetVariableBlock-DIlaVi8M.js","sha256":"e359ea86a342492e819d38bfaeef958911ef50feff5884b51119e3ee864f2ce9","size":545},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphIndexOfBlock-DYf_o9uE.js","sha256":"3c79653641db85776d150b492b939ef6f9ec6badf8f9f5c39b0bb7e52ea29d7f","size":607},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphInterpolationBlock-tG1kO4s_.js","sha256":"a96ebe9e830cff5bb865cdc1c0471e4c9d1ec240481c340a6284e9d375a52a44","size":2089},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphIsKeyPressedBlock-D6ExxkWF.js","sha256":"8096575f45aa78092a8506c48da65bb1b6d4fb7888f8976a4658e6d1b126f549","size":1162},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphIsSoundPlayingBlock-vPEvDIRc.js","sha256":"2d973c16a8c06a95ac226ee29d4cfbd96d51cea1499145c044f9c8092b571de1","size":501},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphJsonPointerParserBlock-Af-cdpFu.js","sha256":"c2672c748b4b27c2a3952cf4c73d1a52d5ce4ce6beba4301c538017525552d2b","size":3027},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphKeyDownEventBlock-BABAmIeL.js","sha256":"92549d97f71f90e31b112a1b1f5bdd95a9d91f147e6c4dfe16b0a67c43a13d82","size":489},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphKeyUpEventBlock-BSUoekRK.js","sha256":"983bc9bd8a588c7a9d0c390b0c5b32fa8797b4b2a1e6050e92d23a749707b3d6","size":282},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphKeyboardEventBlock-CZDsT79F.js","sha256":"c6ac714e21c9527ee42bd75d0736890201db603a98b5e80d97d265c334c22335","size":962},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphMathBlocks-UEv4tVyC.js","sha256":"6d7f6b34f6e58cf42ee9fbd8e853b9b2d9b3cbef9c26e7ac9a94e5f84d4fd8df","size":18510},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphMathCombineExtractBlocks-CbwJeujD.js","sha256":"e2bae1d7bfc136e910f757c5251658e583c481157c8f792d1bc17455c3e79542","size":7966},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphMatrixMathBlocks-CJ0nrwFc.js","sha256":"5d97d3e6a2f61a7636de5e6d2d1cdaf8703f63f9492420d62eef3c07fc8babe0","size":3570},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphMeshPickEventBlock-CYCR7C7B.js","sha256":"1afa853a0515f7eb83a46cfe0b7e76aa3062a047ad8865b0cf5e63dfe2d51f16","size":1394},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphMultiGateBlock-tAD2s18w.js","sha256":"d9455d0a15ca140dba4a165f006fb24580c77d30bddfd3205c004342df49c4fa","size":1660},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPauseAnimationBlock-C1yfh7U4.js","sha256":"d43ae1ffad592131f7dc851db59fb50dd3d96e8130a0c486fb38c4d31672e895","size":455},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPauseSoundBlock-B8T3Qxmk.js","sha256":"4291dddd936b8f5e012e52de1eafc2ca724d9912ac86a1412f8d620d335c0536","size":552},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPhysicsCollisionEventBlock-B4vsEIEQ.js","sha256":"1981d84d0cfc9a514d6dd3f55e500f6d6149254d123cde05b9f34b988b23d62a","size":1678},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPlayAnimationBlock-BuU8u7bh.js","sha256":"2107e011952558dd45b16fbecaed5561c80876ddbfbd3facd563e68a634132f8","size":3736},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPlaySoundBlock-OsFJerGp.js","sha256":"9dc374b25d38c0f79b5b0090e601a789bdd9eea3335df5484d8fecd5cde73ecb","size":782},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPointerDownEventBlock-B4myfwzY.js","sha256":"c09576588a62c0dd229ce3069e51143465890dfd9682f99458287c3c58722a26","size":940},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPointerMoveEventBlock-C7kNYXVC.js","sha256":"f69ae48dd4c60fdd827fe9bc5d3e8eb9e15a335e2d731283e7a7cd2ad6ba4ed4","size":958},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPointerOutEventBlock-BwL1k9K3.js","sha256":"26d67339d600ec3e092db028f027a73603b610a58fc367b54d54b5ef8f5b01c4","size":831},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPointerOverEventBlock-D7uPUz3m.js","sha256":"697a3e1fd45bba9a35f844ba224a34743c6adc5cc9a22900cae26c2c0a3b31ce","size":842},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphPointerUpEventBlock-h2k1otta.js","sha256":"0ef49c9cb4565147da200ff83573b746c040b62894dd098b3f30763fe950859f","size":930},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphReceiveCustomEventBlock-CKsih9DU.js","sha256":"84458e2761cfb8acbb75fb90c94328603562315f883b4832d0b8537d4770eb6b","size":1530},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSceneReadyEventBlock-MoEL2OgG.js","sha256":"1c05a2ea458b9d188ee4c6be0d35391e8de48b87f111ccd69bfbfa75b8654d9a","size":452},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSceneTickEventBlock-DkhjsuEd.js","sha256":"505ac3235697bd064eeda3e5fae0c1674ce1fc26a342ee7d03cc1a092479d694","size":635},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSendCustomEventBlock-CDJDoId5.js","sha256":"dca4b3118d312b3a208558f91b5712ced8f8311d2cff241e6161d89cbb009028","size":926},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSequenceBlock-CKvAcfGB.js","sha256":"59119741820d3ef2b5a782d7d6facf21671edbcfea91adc271edd009dc1cd439","size":777},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSetAngularVelocityBlock-DUVgv52d.js","sha256":"b6f16043ec30a646df3db946f0934b78029320667a8a23bee52b7df1c844fa2a","size":633},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSetDelayBlock-B0LkcVpW.js","sha256":"a7b9eaf1c044ff07dbefef7226ce11b978f2683bb6a26bc5f74b48e4f1c39706","size":4183},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSetLinearVelocityBlock-DdFINyIs.js","sha256":"7b138d0fb7a02d92da2e483a0c7a6806eb352f843204f1c1744f806c6587aa18","size":628},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSetPhysicsMotionTypeBlock-B_GSDzn3.js","sha256":"7757f3f9779c71a0ae93bfeacbf031317a1c5de01be552a2c513b527d1415e4e","size":644},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSetPropertyBlock-5WKrlvaE.js","sha256":"3b234ff130052247127108c426d35ddc24228085f4534eb0fb34be14e05d848b","size":1408},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSetSoundVolumeBlock-CdnrYD5B.js","sha256":"7cbea918e747e199f287d96d4b4b76ed45c8501074effdc64d4368ee5cd7eb4c","size":601},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSetVariableBlock-DD5gsKis.js","sha256":"7b8a1759b3c8f759346b87ef3ab3abac850b9ffa91d095db203b03502f683b8a","size":1228},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSoundEndedEventBlock-fKBoAQlt.js","sha256":"07af4801a343c1692843956607e6ccd91b3bba5fdfe8d990bbbe45fb855c3407","size":967},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphStopAnimationBlock-CDm85_Y9.js","sha256":"a599be64fc20981e1ff1ca016ae004bab59ae65c7e5a3edae68c519be40a647d","size":1889},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphStopSoundBlock-BY77RYv7.js","sha256":"6339694a682ba828550ae7b94920b126bc3de835e410fb788dbf70690ed46e2b","size":496},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphSwitchBlock-BLuZLMgz.js","sha256":"fac92b713cc31a734a05c185f54447ced0659ccc3b1a2c274d6b7665a7d97b95","size":1134},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphThrottleBlock-BoV3UuLi.js","sha256":"febebc2f5288696c853dee9590f624fe8942ce1b0d9d8f1d4685e19f1a46a3b3","size":1363},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphTransformCoordinatesSystemBlock-BO46AA3F.js","sha256":"fafa38f6476c859da0eabdad2eba4837bc636696293af68b7daa2b33ea5a0b92","size":968},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphTypeToTypeBlocks-_O7ljeb3.js","sha256":"6997d2a8aef3a468f4b9487fdacc8c19373a4adc214c72fd6621a96f5d47bda5","size":1281},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphUnaryOperationBlock-C1RBwiu1.js","sha256":"64de18444c57092f917c554415248e46455bdcfcbaf4a49d710ca7e2d2f7ac81","size":303},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphVectorMathBlocks-CRPoi5bR.js","sha256":"e2fd236e5ca582648f8b6b80ade8a8b9e8cfdb110a6ed697011d24b93630c36e","size":4726},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphWaitAllBlock-B4u-Lnoz.js","sha256":"3fd36ee0e480f0d59f707d2837daee0c2c99ac99a6408509dd4a1957d58fa9f0","size":1531},{"media_type":"text/javascript; charset=utf-8","path":"assets/flowGraphWhileLoopBlock-C2wNz7MU.js","sha256":"08ad66b47d651e55185e60d0ded41fb19540b773683cb057e76cfc867c95c5f1","size":863},{"media_type":"text/javascript; charset=utf-8","path":"assets/fogFragment-DAcG7TCQ.js","sha256":"dfaf08dc3f24c27c63aad16ccd6e5833ab7f3e95329d57dbcf13d966b9575a7d","size":1471},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplatting-DHOD58HS.js","sha256":"6b2a4da2f04bf0f4d5de3adf8c926c24c3605bd245342969504911d0cbcd7b25","size":14631},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplatting-DIlhNWGI.js","sha256":"c5a2c00dc7f65695589d96b57c9d993939999a558479efa1d5b29015f57cee90","size":14395},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplatting.fragment-Csz9k2lc.js","sha256":"b4bd7f7734c62b4e068a37025e9e4222ab4f4a5a1aac5353fbe898eefb902873","size":1541},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplatting.fragment-DyjC4p2I.js","sha256":"276768ed0747d9701d5fb0781a4000451b66ca38690b79a56c0dcbfe839eb726","size":1812},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplatting.vertex-BYdix1b9.js","sha256":"4d047fb0b38b147190eeb69b8f219ba8b822d861dcc29cf6df8a9ed90443f6b4","size":3748},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplatting.vertex-qaQwrhXF.js","sha256":"249c2ee5f8f6658669cac02c8cf8e99231d66a8e6746c114ee6fa95781ebb3af","size":4904},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplattingVoxel.fragment-BiVyc4nS.js","sha256":"7e3c51bfc97f8c81a92562f411e13f5fdbc66f839d1b22283848dbceb3774fa3","size":1984},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplattingVoxel.fragment-C9kJafLO.js","sha256":"e4e53562318bb48028876dbf7beeebfb89fb8299c77292af6b963e6333a53067","size":1488},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplattingVoxel.vertex-BRLme_YW.js","sha256":"76f66f7ef3f23550216c1936d0c79ea48632e4a71bf5958d118f9f8d1be8f82a","size":1802},{"media_type":"text/javascript; charset=utf-8","path":"assets/gaussianSplattingVoxel.vertex-DSPVps-_.js","sha256":"94c2243862487fe8c645969d4449c55c8a25883ff8e338fead66f7640b990508","size":2611},{"media_type":"text/javascript; charset=utf-8","path":"assets/geometry.fragment-BcBx-JUz.js","sha256":"c838f0bcfba82a5cb299a4f8c1dfd9a318a049318ea98ac1717c3bcbc7e412b7","size":10410},{"media_type":"text/javascript; charset=utf-8","path":"assets/geometry.fragment-rcQdOa18.js","sha256":"d9714a2a6b1b09b59d8177091e9260c665c8f82dd258b1f1b91f5eb8b52699b0","size":8171},{"media_type":"text/javascript; charset=utf-8","path":"assets/geometry.vertex-BTVcDQMd.js","sha256":"a3630e127a81cb7d22f56d024c461130a931f9319857c688660209b232a36d12","size":9012},{"media_type":"text/javascript; charset=utf-8","path":"assets/geometry.vertex-BbL_FLfO.js","sha256":"cc1c9fe83e3ef295ac4574077020fe2debf4f913fd1244262ad490ef68e9de12","size":7601},{"media_type":"text/javascript; charset=utf-8","path":"assets/glowBlurPostProcess.fragment-BOrEH7qZ.js","sha256":"923242738a0be3b0790dd3a184d1a0bbaebdb9b0dc32b4d425f3c712f7347e16","size":1409},{"media_type":"text/javascript; charset=utf-8","path":"assets/glowMapGeneration.fragment-Dw2pELM9.js","sha256":"0fa26fd7288a241e303f8453e4268497e1ab6f9533560fc3b322ec3d0d976dd2","size":2530},{"media_type":"text/javascript; charset=utf-8","path":"assets/glowMapGeneration.vertex-g4zSgWHl.js","sha256":"1593660fde8b7b7bd9f5c15c67586578b7e6628f2bf5d70c282408a4fac73b44","size":2798},{"media_type":"text/javascript; charset=utf-8","path":"assets/glowMapMerge.fragment-BRI1RC0h.js","sha256":"34706417138729886ec36f4cee6226fa1b7d374372d40e09e2acbdcff4074955","size":1059},{"media_type":"text/javascript; charset=utf-8","path":"assets/glowMapMerge.vertex-OYXhsO5y.js","sha256":"9516b20fafd6407300e777db0a4151165805b0d8fced5227cc86b077cb6275e1","size":545},{"media_type":"text/javascript; charset=utf-8","path":"assets/harmonicsFunctions-B-rFa6Jw.js","sha256":"8861d9116eb8d3fa60cd2642251ad35f44bb56520707aedfadbfb9df81ea452d","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-CJuKh7zv.js","sha256":"cebf5e3915682dc0ac883e03b4e175fe98571053ba96ce9ea9aaa9ee4270eebc","size":6488},{"media_type":"text/javascript; charset=utf-8","path":"assets/iesTextureLoader-hQPlzY89.js","sha256":"3e26b8e5118ed7f576ce8b0e7fc3d2ed7ee571aff0512a1c16a66d8de69c18ad","size":2701},{"media_type":"text/css; charset=utf-8","path":"assets/index-Bi_hQlRi.css","sha256":"b5176a538ec4a26478338f6030529ddb986660e31f31540a25ce7bf1a4240502","size":13019},{"media_type":"text/javascript; charset=utf-8","path":"assets/index-aS20qDZO.js","sha256":"eb0716ce19f682e96bdf5bb8a4f15181273ebc14421b22e8848529c555c4ebb6","size":2299333},{"media_type":"text/javascript; charset=utf-8","path":"assets/kernelBlur.fragment-Bkkqf9Gf.js","sha256":"abc09827a67d37ce8520efddd3d4ec0b2a582b19322cd864746a67743bcd606d","size":2851},{"media_type":"text/javascript; charset=utf-8","path":"assets/kernelBlur.fragment-gsnhhxsW.js","sha256":"a168654f6315fc5b2fa6cbecbc3e05ed09f29c26907ffe3a302493e8df861f65","size":2311},{"media_type":"text/javascript; charset=utf-8","path":"assets/kernelBlur.vertex-CuVvtzKn.js","sha256":"78c9ec5ecd97549fc2b302b9a84aab32da330a6a7501ddc283f7ab46d0f4ca3b","size":899},{"media_type":"text/javascript; charset=utf-8","path":"assets/kernelBlur.vertex-Di3ETd02.js","sha256":"5c54a20bc6fbf1afc3754d15e224322b489885ec2e082382c7424680bbec5bc0","size":1064},{"media_type":"text/javascript; charset=utf-8","path":"assets/kernelBlurVaryingDeclaration-D8-BThIr.js","sha256":"ee21f62a7e73ef9cba7b72cc8a869d4e47a28c903a51e81d1bd6b7696c95370b","size":211},{"media_type":"text/javascript; charset=utf-8","path":"assets/kernelBlurVaryingDeclaration-lHduxGLy.js","sha256":"a0bb4322f88c7ce3c4d69214e5823aabae752d035c905121afdacba46021032c","size":221},{"media_type":"text/javascript; charset=utf-8","path":"assets/ktxTextureLoader-CsB3T93v.js","sha256":"88950e8b21858fc2412b3518c928ca8025d462eca4b096e661a5277f5cfd0b06","size":14979},{"media_type":"text/javascript; charset=utf-8","path":"assets/lightFragment-DomeLrOQ.js","sha256":"1de3e5d0a9eccbdf4768d044c2bfbc7073d1f4b879a17a21ccc91fc781ba4166","size":22605},{"media_type":"text/javascript; charset=utf-8","path":"assets/logDepthDeclaration-DdSMU1vE.js","sha256":"e7b7d6bdf0400ad218652c61a7b87bc789f54fa83326e33f45f31b11af23b1b8","size":280},{"media_type":"text/javascript; charset=utf-8","path":"assets/logDepthVertex-CIYc6FKU.js","sha256":"6dffe601375aacc9e4ec0e83e8b6913c78c871dd751169ff1d47a44c0783ec2a","size":826},{"media_type":"text/javascript; charset=utf-8","path":"assets/mainUVVaryingDeclaration-CinwtRdE.js","sha256":"dbc99a970f35a8cc306e1efc14bb29e607e60c2098c6584e78e1d3291be00bcd","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-BHuQNGCy.js","sha256":"9657a2b6f1b3c6e72f6a0a37aa533f7d84c2358af5a23d65a6d9d2a6aa74ea9d","size":278},{"media_type":"text/javascript; charset=utf-8","path":"assets/oitFragment-CG7kMCvU.js","sha256":"ce85a897b98a121aef3483d20a81e8839b21dcbca4b15beb0923f09376b26b95","size":52427},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbr.fragment-CRlYBc_-.js","sha256":"68cc7309b0f9047c40096f0570aee5224c72d1412a177e1e031f760b93640ea3","size":86994},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbr.fragment-Csz9EYJi.js","sha256":"1500f8c4cfc749e04edb8d4b33fc199569b50fd7527baa39f22004eab9835837","size":89838},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbr.vertex-D8xRp_pg.js","sha256":"bc047a111444a690ad3549f4bca9c7347de363376af9b0d33fed6d734a51aa10","size":20214},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbr.vertex-DWzGweC9.js","sha256":"353fe899073f64ce9bb1f0e8f5d16935c5d0c5d32c53eec03e44e496ceea0839","size":17340},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbrMaterial.pure-BVsTXLPP.js","sha256":"9d0ea30e663fb63d2e86adbff09dd7bd8ad75979d03ab1fcb04efb17ac7bbd2d","size":134158},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbrMaterialLoadingAdapter-Cl2qUNz7.js","sha256":"5302c91ee26aea216b23dd46468bfa4a5c832b23b2ff4d51002f09631ed2f59b","size":33220},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbrTransmissionLayerData-C3FnopjH.js","sha256":"b0d2f412e188ac90e201c2a3f982d51a6b57b4ca7d17d3ec4c97118edfe49569","size":17043},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbrTransmissionLayerData-MOccHJLS.js","sha256":"dda19ffaa4072b5b48162a9af0dcb2be144a1c148e3ed35377bbf4e3ab8c0c56","size":17708},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbrUboDeclaration-Bd8N4mLs.js","sha256":"2673038ad5146e2637740823a1d1845cc8dd2c3d8daffdfcebd814c22d37c2be","size":5221},{"media_type":"text/javascript; charset=utf-8","path":"assets/openpbrUboDeclaration-DbIcgURU.js","sha256":"c1f4587ec08cd529caf1e190fb3fe2d54128e63ce7cc24d84f440826f2a751cc","size":3791},{"media_type":"text/javascript; charset=utf-8","path":"assets/packingFunctions-B-RyPnvp.js","sha256":"28f61b4c4f31461357b59e2af310d9ae6780e4d5b35c376929a697b0cecb309c","size":528},{"media_type":"text/javascript; charset=utf-8","path":"assets/packingFunctions-B_LoQGE_.js","sha256":"25f6a61fe36aa80780a20fb6990cd4fbeb3fa7f84f78b56f690ff55dae21ec5d","size":562},{"media_type":"text/javascript; charset=utf-8","path":"assets/pass.fragment-CosRVAJR.js","sha256":"03f4c824823143979320145c3639acb7a41e279d010f62dedd551d1ae450fc1c","size":451},{"media_type":"text/javascript; charset=utf-8","path":"assets/passCube.fragment-ByQLKcal.js","sha256":"813721ca9006c8c71ca4df1c52e72eed998091dd9ffaeb2e6bb6a83a1b696d02","size":1131},{"media_type":"text/javascript; charset=utf-8","path":"assets/passCube.fragment-COrMlz4L.js","sha256":"322ca980be2b158b11a325d47ca4317bea30b772583160c4dd60190b344ac102","size":822},{"media_type":"text/javascript; charset=utf-8","path":"assets/pbr.fragment-Dp9qP0ik.js","sha256":"e26f8bd883dac0b7bdd026f879d58ef48f649b61e2f008d162aaf5847ef95bd5","size":93721},{"media_type":"text/javascript; charset=utf-8","path":"assets/pbr.vertex-BEhyQo04.js","sha256":"22928eeb09dbcd3850bb243e15d8f9dd592f7992006a03e885a6fda0d6f5fa49","size":14451},{"media_type":"text/javascript; charset=utf-8","path":"assets/pbrBRDFFunctions-MD5J9kNB.js","sha256":"94a2258ae6bd163c6d11525c3a2eea56164b8b3f590246c18118346d69bc29ca","size":12760},{"media_type":"text/javascript; charset=utf-8","path":"assets/pbrDebug-BMEohefD.js","sha256":"90fd00c7f4c6c462e419fc898fe03849e383a365bdff40c7afd8661a278816a3","size":43522},{"media_type":"text/javascript; charset=utf-8","path":"assets/pbrIBLFunctions-BNSg1TYL.js","sha256":"e4bec68d75dbf84475b1cbce4e53a4b61522110ae76df4526031221f387635b5","size":2720},{"media_type":"text/javascript; charset=utf-8","path":"assets/pbrMaterial.pure-CmT8POVY.js","sha256":"162b5efb14783e7952e8a3d3b44b1d3d53e028faeefa61d1fb02ab6fa8687c76","size":134889},{"media_type":"text/javascript; charset=utf-8","path":"assets/pbrMaterialLoadingAdapter-B9wrRf4Y.js","sha256":"e9f0122e96c7a957da5b8b23d6b768bd774a95746ea1eb3f19fe70a1863821b8","size":12426},{"media_type":"text/javascript; charset=utf-8","path":"assets/pbrUboDeclaration-CaZ5IiXn.js","sha256":"bb6ea70291ed5b556401834f0890f85fef3cf0229dbaa3da22b63b6c92a917ad","size":2398},{"media_type":"text/javascript; charset=utf-8","path":"assets/postprocess.vertex-6O8OKxg1.js","sha256":"dc796a49eea5e6a57d1805aee96ae899012712dcb03e44bea75e2183ec650601","size":583},{"media_type":"text/javascript; charset=utf-8","path":"assets/procedural.vertex-CnLTJ0GC.js","sha256":"8e145b8fe84cdee098a26c05f0ea0a9ef23dc8b57a38ae599a4aa4435fa2781a","size":472},{"media_type":"text/javascript; charset=utf-8","path":"assets/procedural.vertex-CsPpF8ex.js","sha256":"358bdc3975205cf253dc95b4dd9a96b94a2d1eee747dd0e3a414132bda165a61","size":612},{"media_type":"text/javascript; charset=utf-8","path":"assets/reflectionFunction-FOkl7zGy.js","sha256":"a727b0ea57060f3644c771f7ac2205ffec7984bdbc41e796b19183f5166ca521","size":5231},{"media_type":"text/javascript; charset=utf-8","path":"assets/rgbdDecode.fragment-B3rgzhU8.js","sha256":"da7bbd146fddf22998e933ed12cf656d51a62e96f2a0e56fac5deb5005256ab2","size":671},{"media_type":"text/javascript; charset=utf-8","path":"assets/rgbdEncode.fragment-BQbjknQm.js","sha256":"59023fe7ab33eacd4c406a92d682e08febbe1d56b15407cc729b855800a74b92","size":477},{"media_type":"text/javascript; charset=utf-8","path":"assets/rgbdEncode.fragment-DyCYq3cD.js","sha256":"503341af960ffda6965082f51c058f334a8cdbb41a5d6f9c60ac000fff931758","size":662},{"media_type":"text/javascript; charset=utf-8","path":"assets/sceneUboDeclaration-qgAWTN28.js","sha256":"5e2527adf5b4184212b305a7a8e2ca96cdf820e191876e0b61ace303c0266fdc","size":435},{"media_type":"text/javascript; charset=utf-8","path":"assets/textureProcessor.fragment-DNVQK8Xr.js","sha256":"d112f364814234aaa91740784b2425d7da73acda0eda6b6998ba33c3a79192a3","size":4377},{"media_type":"text/javascript; charset=utf-8","path":"assets/textureProcessor.fragment-pAIEAh33.js","sha256":"0a53aba3f3e15cfa971d22a5e27673ac57d2d914c441f6f4d16ae9a74f92fd3f","size":3490},{"media_type":"text/javascript; charset=utf-8","path":"assets/tgaTextureLoader-BE-ozdBC.js","sha256":"fbdfd50ebd0847e8cd302c91dea18a60e3fc309ed59c2f4182cbc21771d206b7","size":3527},{"media_type":"text/javascript; charset=utf-8","path":"assets/vertexColorMixing-B7eY1nal.js","sha256":"d3818eaad43b65dd9c992bf7d98a678da4084715ec5ea0971f54f49cea8f24a7","size":22140},{"media_type":"image/svg+xml","path":"favicon.svg","sha256":"0af8d9f546677c4655fbd25bcded1339b5de603d92808201b14dbee6301dd846","size":2222},{"media_type":"text/html; charset=utf-8","path":"index.html","sha256":"182d9f8bbe15421078d7bdd2557a81317716f37aeb20933f74ac38e161a83c77","size":723},{"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}
|
|
@@ -1 +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-QUv88KPb.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};
|
|
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-aS20qDZO.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};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{S as e}from"./index-
|
|
1
|
+
import{S as e}from"./index-aS20qDZO.js";const t="bonesDeclaration",u=`#if NUM_BONE_INFLUENCERS>0
|
|
2
2
|
#ifndef USE_VERTEX_PULLING
|
|
3
3
|
attribute matricesIndices : vec4f;attribute matricesWeights : vec4f;
|
|
4
4
|
#if NUM_BONE_INFLUENCERS>4
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{au as F,av as U,L as D,aw as P}from"./index-
|
|
1
|
+
import{au as F,av as U,L as D,aw as P}from"./index-aS20qDZO.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};
|