three-stdlib 2.15.1 → 2.15.2
Sign up to get free protection for your applications and to get access to all the features.
- package/animation/AnimationClipCreator.js +32 -52
- package/animation/AnimationClipCreator.mjs +57 -0
- package/animation/CCDIKSolver.js +66 -161
- package/animation/CCDIKSolver.mjs +234 -0
- package/animation/MMDAnimationHelper.js +150 -341
- package/animation/MMDAnimationHelper.mjs +514 -0
- package/animation/MMDPhysics.js +154 -361
- package/animation/MMDPhysics.mjs +769 -0
- package/cameras/CinematicCamera.js +67 -77
- package/cameras/CinematicCamera.mjs +129 -0
- package/controls/ArcballControls.js +544 -1449
- package/controls/ArcballControls.mjs +1737 -0
- package/controls/DeviceOrientationControls.js +52 -97
- package/controls/DeviceOrientationControls.mjs +74 -0
- package/controls/DragControls.js +85 -187
- package/controls/DragControls.mjs +172 -0
- package/controls/FirstPersonControls.js +123 -193
- package/controls/FirstPersonControls.mjs +220 -0
- package/controls/FlyControls.js +82 -152
- package/controls/FlyControls.mjs +239 -0
- package/controls/OrbitControls.js +232 -481
- package/controls/OrbitControls.mjs +731 -0
- package/controls/PointerLockControls.js +63 -99
- package/controls/PointerLockControls.mjs +88 -0
- package/controls/TrackballControls.js +211 -383
- package/controls/TrackballControls.mjs +481 -0
- package/controls/TransformControls.js +575 -782
- package/controls/TransformControls.mjs +1068 -0
- package/controls/experimental/CameraControls.js +329 -609
- package/controls/experimental/CameraControls.mjs +673 -0
- package/csm/CSM.js +47 -108
- package/csm/CSM.mjs +244 -0
- package/csm/CSMFrustum.js +14 -29
- package/csm/CSMFrustum.mjs +75 -0
- package/csm/CSMHelper.js +20 -34
- package/csm/CSMHelper.mjs +114 -0
- package/csm/CSMShader.js +7 -11
- package/csm/CSMShader.mjs +251 -0
- package/curves/CurveExtras.js +73 -115
- package/curves/CurveExtras.mjs +224 -0
- package/curves/NURBSCurve.js +15 -43
- package/curves/NURBSCurve.mjs +35 -0
- package/curves/NURBSSurface.js +11 -27
- package/curves/NURBSSurface.mjs +28 -0
- package/curves/NURBSUtils.js +54 -203
- package/curves/NURBSUtils.mjs +226 -0
- package/deprecated/Geometry.js +191 -486
- package/deprecated/Geometry.mjs +966 -0
- package/effects/AnaglyphEffect.js +95 -60
- package/effects/AnaglyphEffect.mjs +120 -0
- package/effects/AsciiEffect.js +80 -110
- package/effects/AsciiEffect.mjs +173 -0
- package/effects/OutlineEffect.js +121 -204
- package/effects/OutlineEffect.mjs +295 -0
- package/effects/ParallaxBarrierEffect.js +39 -38
- package/effects/ParallaxBarrierEffect.mjs +64 -0
- package/effects/PeppersGhostEffect.js +19 -68
- package/effects/PeppersGhostEffect.mjs +85 -0
- package/effects/StereoEffect.js +12 -16
- package/effects/StereoEffect.mjs +32 -0
- package/environments/RoomEnvironment.js +52 -47
- package/environments/RoomEnvironment.mjs +78 -0
- package/exporters/ColladaExporter.js +115 -241
- package/exporters/ColladaExporter.mjs +299 -0
- package/exporters/DRACOExporter.js +67 -121
- package/exporters/DRACOExporter.mjs +132 -0
- package/exporters/GLTFExporter.js +463 -1014
- package/exporters/GLTFExporter.mjs +1381 -0
- package/exporters/MMDExporter.js +44 -102
- package/exporters/MMDExporter.mjs +102 -0
- package/exporters/OBJExporter.js +78 -140
- package/exporters/OBJExporter.mjs +166 -0
- package/exporters/PLYExporter.js +93 -154
- package/exporters/PLYExporter.mjs +278 -0
- package/exporters/STLExporter.js +30 -81
- package/exporters/STLExporter.mjs +129 -0
- package/exporters/USDZExporter.js +84 -144
- package/exporters/USDZExporter.mjs +328 -0
- package/geometries/BoxLineGeometry.js +7 -14
- package/geometries/BoxLineGeometry.mjs +45 -0
- package/geometries/ConvexGeometry.js +14 -23
- package/geometries/ConvexGeometry.mjs +29 -0
- package/geometries/DecalGeometry.js +108 -162
- package/geometries/DecalGeometry.mjs +184 -0
- package/geometries/LightningStrike.js +101 -294
- package/geometries/LightningStrike.mjs +547 -0
- package/geometries/ParametricGeometries.js +26 -76
- package/geometries/ParametricGeometries.mjs +129 -0
- package/geometries/ParametricGeometry.js +24 -48
- package/geometries/ParametricGeometry.mjs +63 -0
- package/geometries/RoundedBoxGeometry.js +33 -64
- package/geometries/RoundedBoxGeometry.mjs +91 -0
- package/geometries/TeapotGeometry.js +1434 -174
- package/geometries/TeapotGeometry.mjs +1557 -0
- package/geometries/TextGeometry.js +9 -17
- package/geometries/TextGeometry.mjs +23 -0
- package/helpers/LightProbeHelper.js +53 -21
- package/helpers/LightProbeHelper.mjs +72 -0
- package/helpers/PositionalAudioHelper.js +23 -30
- package/helpers/PositionalAudioHelper.mjs +68 -0
- package/helpers/RectAreaLightHelper.js +17 -33
- package/helpers/RectAreaLightHelper.mjs +44 -0
- package/helpers/VertexNormalsHelper.js +20 -41
- package/helpers/VertexNormalsHelper.mjs +54 -0
- package/helpers/VertexTangentsHelper.js +18 -36
- package/helpers/VertexTangentsHelper.mjs +45 -0
- package/index.js +968 -333
- package/index.mjs +968 -0
- package/interactive/SelectionBox.js +31 -46
- package/interactive/SelectionBox.mjs +137 -0
- package/interactive/SelectionHelper.js +16 -21
- package/interactive/SelectionHelper.mjs +54 -0
- package/libs/MeshoptDecoder.js +147 -58
- package/libs/MeshoptDecoder.mjs +210 -0
- package/libs/MotionControllers.js +66 -208
- package/libs/MotionControllers.mjs +261 -0
- package/lights/LightProbeGenerator.js +40 -96
- package/lights/LightProbeGenerator.mjs +145 -0
- package/lights/RectAreaLightUniformsLib.js +32842 -9
- package/lights/RectAreaLightUniformsLib.mjs +32842 -0
- package/lines/Line2.js +9 -12
- package/lines/Line2.mjs +13 -0
- package/lines/LineGeometry.js +7 -19
- package/lines/LineGeometry.mjs +44 -0
- package/lines/LineMaterial.js +51 -89
- package/lines/LineMaterial.mjs +539 -0
- package/lines/LineSegments2.js +56 -165
- package/lines/LineSegments2.mjs +202 -0
- package/lines/LineSegmentsGeometry.js +29 -71
- package/lines/LineSegmentsGeometry.mjs +124 -0
- package/lines/Wireframe.js +15 -29
- package/lines/Wireframe.mjs +31 -0
- package/lines/WireframeGeometry2.js +8 -9
- package/lines/WireframeGeometry2.mjs +13 -0
- package/loaders/3DMLoader.js +234 -469
- package/loaders/3DMLoader.mjs +802 -0
- package/loaders/3MFLoader.js +340 -555
- package/loaders/3MFLoader.mjs +837 -0
- package/loaders/AMFLoader.js +114 -219
- package/loaders/AMFLoader.mjs +284 -0
- package/loaders/AssimpLoader.js +328 -725
- package/loaders/AssimpLoader.mjs +1396 -0
- package/loaders/BVHLoader.js +94 -200
- package/loaders/BVHLoader.mjs +207 -0
- package/loaders/BasisTextureLoader.js +229 -357
- package/loaders/BasisTextureLoader.mjs +474 -0
- package/loaders/ColladaLoader.js +932 -1522
- package/loaders/ColladaLoader.mjs +2403 -0
- package/loaders/DDSLoader.js +42 -108
- package/loaders/DDSLoader.mjs +148 -0
- package/loaders/DRACOLoader.js +103 -210
- package/loaders/DRACOLoader.mjs +340 -0
- package/loaders/EXRLoader.js +461 -809
- package/loaders/EXRLoader.mjs +1351 -0
- package/loaders/FBXLoader.js +842 -1397
- package/loaders/FBXLoader.mjs +2362 -0
- package/loaders/FontLoader.js +33 -66
- package/loaders/FontLoader.mjs +111 -0
- package/loaders/GCodeLoader.js +63 -111
- package/loaders/GCodeLoader.mjs +141 -0
- package/loaders/GLTFLoader.js +771 -1484
- package/loaders/GLTFLoader.mjs +2316 -0
- package/loaders/HDRCubeTextureLoader.js +45 -50
- package/loaders/HDRCubeTextureLoader.mjs +77 -0
- package/loaders/KMZLoader.js +42 -55
- package/loaders/KMZLoader.mjs +75 -0
- package/loaders/KTX2Loader.js +229 -362
- package/loaders/KTX2Loader.mjs +427 -0
- package/loaders/KTXLoader.js +37 -99
- package/loaders/KTXLoader.mjs +87 -0
- package/loaders/LDrawLoader.js +313 -746
- package/loaders/LDrawLoader.mjs +1409 -0
- package/loaders/LUT3dlLoader.js +50 -62
- package/loaders/LUT3dlLoader.mjs +100 -0
- package/loaders/LUTCubeLoader.js +45 -56
- package/loaders/LUTCubeLoader.mjs +104 -0
- package/loaders/LWOLoader.js +227 -339
- package/loaders/LWOLoader.mjs +625 -0
- package/loaders/LottieLoader.js +36 -38
- package/loaders/LottieLoader.mjs +47 -0
- package/loaders/MD2Loader.js +248 -91
- package/loaders/MD2Loader.mjs +359 -0
- package/loaders/MDDLoader.js +25 -45
- package/loaders/MDDLoader.mjs +58 -0
- package/loaders/MMDLoader.js +359 -795
- package/loaders/MMDLoader.mjs +998 -0
- package/loaders/MTLLoader.js +91 -201
- package/loaders/MTLLoader.mjs +280 -0
- package/loaders/NRRDLoader.js +182 -263
- package/loaders/NRRDLoader.mjs +401 -0
- package/loaders/NodeMaterialLoader.js +121 -14
- package/loaders/NodeMaterialLoader.mjs +146 -0
- package/loaders/OBJLoader.js +161 -283
- package/loaders/OBJLoader.mjs +487 -0
- package/loaders/PCDLoader.js +145 -164
- package/loaders/PCDLoader.mjs +248 -0
- package/loaders/PDBLoader.js +45 -63
- package/loaders/PDBLoader.mjs +246 -0
- package/loaders/PLYLoader.js +106 -203
- package/loaders/PLYLoader.mjs +317 -0
- package/loaders/PRWMLoader.js +73 -110
- package/loaders/PRWMLoader.mjs +160 -0
- package/loaders/PVRLoader.js +32 -93
- package/loaders/PVRLoader.mjs +131 -0
- package/loaders/RGBELoader.js +96 -233
- package/loaders/RGBELoader.mjs +244 -0
- package/loaders/RGBMLoader.js +344 -514
- package/loaders/RGBMLoader.mjs +998 -0
- package/loaders/STLLoader.js +59 -165
- package/loaders/STLLoader.mjs +190 -0
- package/loaders/SVGLoader.js +481 -851
- package/loaders/SVGLoader.mjs +1709 -0
- package/loaders/TDSLoader.js +137 -527
- package/loaders/TDSLoader.mjs +480 -0
- package/loaders/TGALoader.js +94 -205
- package/loaders/TGALoader.mjs +285 -0
- package/loaders/TTFLoader.js +58 -79
- package/loaders/TTFLoader.mjs +131 -0
- package/loaders/TiltLoader.js +129 -167
- package/loaders/TiltLoader.mjs +373 -0
- package/loaders/VOXLoader.js +320 -84
- package/loaders/VOXLoader.mjs +431 -0
- package/loaders/VRMLLoader.js +786 -1268
- package/loaders/VRMLLoader.mjs +2093 -0
- package/loaders/VRMLoader.js +23 -31
- package/loaders/VRMLoader.mjs +38 -0
- package/loaders/VTKLoader.js +219 -407
- package/loaders/VTKLoader.mjs +646 -0
- package/loaders/XLoader.js +1083 -1259
- package/loaders/XLoader.mjs +1258 -0
- package/loaders/XYZLoader.js +28 -34
- package/loaders/XYZLoader.mjs +60 -0
- package/loaders/lwo/IFFParser.js +238 -492
- package/loaders/lwo/IFFParser.mjs +697 -0
- package/loaders/lwo/LWO2Parser.js +176 -279
- package/loaders/lwo/LWO2Parser.mjs +327 -0
- package/loaders/lwo/LWO3Parser.js +160 -247
- package/loaders/lwo/LWO3Parser.mjs +298 -0
- package/math/Capsule.js +56 -43
- package/math/Capsule.mjs +100 -0
- package/math/ColorConverter.js +18 -32
- package/math/ColorConverter.mjs +51 -0
- package/math/ConvexHull.js +97 -357
- package/math/ConvexHull.mjs +574 -0
- package/math/ImprovedNoise.js +282 -32
- package/math/ImprovedNoise.mjs +302 -0
- package/math/Lut.js +51 -35
- package/math/Lut.mjs +135 -0
- package/math/MeshSurfaceSampler.js +25 -68
- package/math/MeshSurfaceSampler.mjs +107 -0
- package/math/OBB.js +91 -152
- package/math/OBB.mjs +235 -0
- package/math/Octree.js +76 -139
- package/math/Octree.mjs +278 -0
- package/math/SimplexNoise.js +217 -238
- package/math/SimplexNoise.mjs +425 -0
- package/misc/ConvexObjectBreaker.js +79 -185
- package/misc/ConvexObjectBreaker.mjs +292 -0
- package/misc/GPUComputationRenderer.js +69 -194
- package/misc/GPUComputationRenderer.mjs +171 -0
- package/misc/Gyroscope.js +16 -22
- package/misc/Gyroscope.mjs +35 -0
- package/misc/MD2Character.js +52 -74
- package/misc/MD2Character.mjs +162 -0
- package/misc/MD2CharacterComplex.js +112 -163
- package/misc/MD2CharacterComplex.mjs +328 -0
- package/misc/MorphAnimMesh.js +20 -28
- package/misc/MorphAnimMesh.mjs +40 -0
- package/misc/MorphBlendMesh.js +45 -69
- package/misc/MorphBlendMesh.mjs +179 -0
- package/misc/ProgressiveLightmap.js +70 -187
- package/misc/ProgressiveLightmap.mjs +166 -0
- package/misc/RollerCoaster.js +106 -135
- package/misc/RollerCoaster.mjs +346 -0
- package/misc/TubePainter.js +74 -92
- package/misc/TubePainter.mjs +123 -0
- package/misc/Volume.js +108 -270
- package/misc/Volume.mjs +244 -0
- package/misc/VolumeSlice.js +34 -122
- package/misc/VolumeSlice.mjs +106 -0
- package/misc/WebGL.js +37 -34
- package/misc/WebGL.mjs +74 -0
- package/modifiers/CurveModifier.js +46 -151
- package/modifiers/CurveModifier.mjs +182 -0
- package/modifiers/EdgeSplitModifier.js +46 -90
- package/modifiers/EdgeSplitModifier.mjs +162 -0
- package/modifiers/SimplifyModifier.js +77 -202
- package/modifiers/SimplifyModifier.mjs +282 -0
- package/modifiers/TessellateModifier.js +65 -90
- package/modifiers/TessellateModifier.mjs +206 -0
- package/nodes/Nodes.js +274 -140
- package/nodes/Nodes.mjs +400 -0
- package/nodes/ShaderNode.js +296 -196
- package/nodes/ShaderNode.mjs +408 -0
- package/nodes/accessors/BufferNode.js +4 -8
- package/nodes/accessors/BufferNode.mjs +15 -0
- package/nodes/accessors/CameraNode.js +20 -25
- package/nodes/accessors/CameraNode.mjs +44 -0
- package/nodes/accessors/CubeTextureNode.js +14 -26
- package/nodes/accessors/CubeTextureNode.mjs +42 -0
- package/nodes/accessors/MaterialNode.js +43 -53
- package/nodes/accessors/MaterialNode.mjs +71 -0
- package/nodes/accessors/MaterialReferenceNode.js +3 -6
- package/nodes/accessors/MaterialReferenceNode.mjs +14 -0
- package/nodes/accessors/ModelNode.js +3 -5
- package/nodes/accessors/ModelNode.mjs +9 -0
- package/nodes/accessors/ModelViewProjectionNode.js +14 -13
- package/nodes/accessors/ModelViewProjectionNode.mjs +24 -0
- package/nodes/accessors/NormalNode.js +40 -39
- package/nodes/accessors/NormalNode.mjs +62 -0
- package/nodes/accessors/Object3DNode.js +40 -50
- package/nodes/accessors/Object3DNode.mjs +76 -0
- package/nodes/accessors/PointUVNode.js +5 -9
- package/nodes/accessors/PointUVNode.mjs +13 -0
- package/nodes/accessors/PositionNode.js +42 -41
- package/nodes/accessors/PositionNode.mjs +65 -0
- package/nodes/accessors/ReferenceNode.js +10 -17
- package/nodes/accessors/ReferenceNode.mjs +37 -0
- package/nodes/accessors/ReflectNode.js +23 -26
- package/nodes/accessors/ReflectNode.mjs +43 -0
- package/nodes/accessors/SkinningNode.js +46 -48
- package/nodes/accessors/SkinningNode.mjs +58 -0
- package/nodes/accessors/TextureNode.js +14 -29
- package/nodes/accessors/TextureNode.mjs +54 -0
- package/nodes/accessors/UVNode.js +5 -11
- package/nodes/accessors/UVNode.mjs +23 -0
- package/nodes/core/ArrayUniformNode.js +3 -7
- package/nodes/core/ArrayUniformNode.mjs +14 -0
- package/nodes/core/AttributeNode.js +5 -12
- package/nodes/core/AttributeNode.mjs +30 -0
- package/nodes/core/BypassNode.js +5 -12
- package/nodes/core/BypassNode.mjs +22 -0
- package/nodes/core/CodeNode.js +4 -12
- package/nodes/core/CodeNode.mjs +28 -0
- package/nodes/core/ConstNode.js +3 -7
- package/nodes/core/ConstNode.mjs +14 -0
- package/nodes/core/ContextNode.js +3 -8
- package/nodes/core/ContextNode.mjs +22 -0
- package/nodes/core/ExpressionNode.js +5 -9
- package/nodes/core/ExpressionNode.mjs +19 -0
- package/nodes/core/FunctionCallNode.js +6 -15
- package/nodes/core/FunctionCallNode.mjs +37 -0
- package/nodes/core/FunctionNode.js +10 -25
- package/nodes/core/FunctionNode.mjs +56 -0
- package/nodes/core/InputNode.js +12 -23
- package/nodes/core/InputNode.mjs +38 -0
- package/nodes/core/Node.js +35 -75
- package/nodes/core/Node.mjs +139 -0
- package/nodes/core/NodeAttribute.js +2 -4
- package/nodes/core/NodeAttribute.mjs +10 -0
- package/nodes/core/NodeBuilder.js +110 -224
- package/nodes/core/NodeBuilder.mjs +395 -0
- package/nodes/core/NodeCode.js +4 -7
- package/nodes/core/NodeCode.mjs +11 -0
- package/nodes/core/NodeFrame.js +9 -12
- package/nodes/core/NodeFrame.mjs +35 -0
- package/nodes/core/NodeFunctionInput.js +3 -5
- package/nodes/core/NodeFunctionInput.mjs +13 -0
- package/nodes/core/NodeKeywords.js +5 -16
- package/nodes/core/NodeKeywords.mjs +44 -0
- package/nodes/core/NodeUniform.js +3 -7
- package/nodes/core/NodeUniform.mjs +18 -0
- package/nodes/core/NodeUtils.js +39 -43
- package/nodes/core/NodeUtils.mjs +57 -0
- package/nodes/core/NodeVar.js +2 -4
- package/nodes/core/NodeVar.mjs +10 -0
- package/nodes/core/NodeVary.js +2 -4
- package/nodes/core/NodeVary.mjs +10 -0
- package/nodes/core/PropertyNode.js +4 -10
- package/nodes/core/PropertyNode.mjs +21 -0
- package/nodes/core/TempNode.js +5 -11
- package/nodes/core/TempNode.mjs +25 -0
- package/nodes/core/UniformNode.js +4 -10
- package/nodes/core/UniformNode.mjs +23 -0
- package/nodes/core/VarNode.js +3 -11
- package/nodes/core/VarNode.mjs +31 -0
- package/nodes/core/VaryNode.js +6 -15
- package/nodes/core/VaryNode.mjs +30 -0
- package/nodes/core/constants.js +20 -7
- package/nodes/core/constants.mjs +24 -0
- package/nodes/display/ColorSpaceNode.js +34 -38
- package/nodes/display/ColorSpaceNode.mjs +63 -0
- package/nodes/display/NormalMapNode.js +35 -53
- package/nodes/display/NormalMapNode.mjs +54 -0
- package/nodes/fog/FogNode.js +5 -9
- package/nodes/fog/FogNode.mjs +15 -0
- package/nodes/fog/FogRangeNode.js +5 -9
- package/nodes/fog/FogRangeNode.mjs +17 -0
- package/nodes/functions/BSDFs.js +61 -118
- package/nodes/functions/BSDFs.mjs +64 -0
- package/nodes/lights/LightContextNode.js +14 -23
- package/nodes/lights/LightContextNode.mjs +35 -0
- package/nodes/lights/LightNode.js +27 -31
- package/nodes/lights/LightNode.mjs +58 -0
- package/nodes/lights/LightsNode.js +9 -28
- package/nodes/lights/LightsNode.mjs +59 -0
- package/nodes/loaders/NodeLoader.js +27 -42
- package/nodes/loaders/NodeLoader.mjs +66 -0
- package/nodes/loaders/NodeMaterialLoader.js +4 -10
- package/nodes/loaders/NodeMaterialLoader.mjs +24 -0
- package/nodes/loaders/NodeObjectLoader.js +9 -19
- package/nodes/loaders/NodeObjectLoader.mjs +40 -0
- package/nodes/materials/LineBasicNodeMaterial.js +5 -10
- package/nodes/materials/LineBasicNodeMaterial.mjs +27 -0
- package/nodes/materials/Materials.js +14 -17
- package/nodes/materials/Materials.mjs +28 -0
- package/nodes/materials/MeshBasicNodeMaterial.js +5 -10
- package/nodes/materials/MeshBasicNodeMaterial.mjs +28 -0
- package/nodes/materials/MeshStandardNodeMaterial.js +5 -8
- package/nodes/materials/MeshStandardNodeMaterial.mjs +41 -0
- package/nodes/materials/NodeMaterial.js +20 -36
- package/nodes/materials/NodeMaterial.mjs +64 -0
- package/nodes/materials/PointsNodeMaterial.js +5 -10
- package/nodes/materials/PointsNodeMaterial.mjs +30 -0
- package/nodes/math/CondNode.js +11 -23
- package/nodes/math/CondNode.mjs +38 -0
- package/nodes/math/MathNode.js +98 -142
- package/nodes/math/MathNode.mjs +163 -0
- package/nodes/math/OperatorNode.js +24 -46
- package/nodes/math/OperatorNode.mjs +103 -0
- package/nodes/procedural/CheckerNode.js +13 -19
- package/nodes/procedural/CheckerNode.mjs +21 -0
- package/nodes/utils/ArrayElementNode.js +4 -8
- package/nodes/utils/ArrayElementNode.mjs +19 -0
- package/nodes/utils/ConvertNode.js +3 -8
- package/nodes/utils/ConvertNode.mjs +25 -0
- package/nodes/utils/JoinNode.js +7 -11
- package/nodes/utils/JoinNode.mjs +26 -0
- package/nodes/utils/MatcapUVNode.js +8 -11
- package/nodes/utils/MatcapUVNode.mjs +16 -0
- package/nodes/utils/OscNode.js +27 -33
- package/nodes/utils/OscNode.mjs +50 -0
- package/nodes/utils/SplitNode.js +6 -20
- package/nodes/utils/SplitNode.mjs +45 -0
- package/nodes/utils/SpriteSheetUVNode.js +23 -23
- package/nodes/utils/SpriteSheetUVNode.mjs +40 -0
- package/nodes/utils/TimerNode.js +20 -24
- package/nodes/utils/TimerNode.mjs +44 -0
- package/objects/GroundProjectedEnv.js +22 -37
- package/objects/GroundProjectedEnv.mjs +130 -0
- package/objects/Lensflare.js +86 -156
- package/objects/Lensflare.mjs +262 -0
- package/objects/LightningStorm.js +38 -102
- package/objects/LightningStorm.mjs +110 -0
- package/objects/MarchingCubes.js +150 -303
- package/objects/MarchingCubes.mjs +457 -0
- package/objects/Reflector.js +50 -72
- package/objects/Reflector.mjs +166 -0
- package/objects/ReflectorForSSRPass.js +80 -131
- package/objects/ReflectorForSSRPass.mjs +247 -0
- package/objects/ReflectorRTT.js +6 -7
- package/objects/ReflectorRTT.mjs +10 -0
- package/objects/Refractor.js +64 -106
- package/objects/Refractor.mjs +178 -0
- package/objects/ShadowMesh.js +8 -17
- package/objects/ShadowMesh.mjs +41 -0
- package/objects/Sky.js +119 -80
- package/objects/Sky.mjs +124 -0
- package/objects/Water.js +83 -127
- package/objects/Water.mjs +235 -0
- package/objects/Water2.js +72 -108
- package/objects/Water2.mjs +252 -0
- package/offscreen/jank.js +10 -14
- package/offscreen/jank.mjs +27 -0
- package/offscreen/offscreen.js +4 -5
- package/offscreen/offscreen.mjs +5 -0
- package/offscreen/scene.js +45 -48
- package/offscreen/scene.mjs +52 -0
- package/package.json +3 -3
- package/physics/AmmoPhysics.js +30 -71
- package/physics/AmmoPhysics.mjs +165 -0
- package/postprocessing/AdaptiveToneMappingPass.js +97 -123
- package/postprocessing/AdaptiveToneMappingPass.mjs +221 -0
- package/postprocessing/AfterimagePass.js +28 -49
- package/postprocessing/AfterimagePass.mjs +55 -0
- package/postprocessing/BloomPass.js +43 -69
- package/postprocessing/BloomPass.mjs +90 -0
- package/postprocessing/BokehPass.js +39 -69
- package/postprocessing/BokehPass.mjs +76 -0
- package/postprocessing/ClearPass.js +10 -25
- package/postprocessing/ClearPass.mjs +27 -0
- package/postprocessing/CubeTexturePass.js +28 -27
- package/postprocessing/CubeTexturePass.mjs +49 -0
- package/postprocessing/DotScreenPass.js +24 -32
- package/postprocessing/DotScreenPass.mjs +40 -0
- package/postprocessing/EffectComposer.js +39 -86
- package/postprocessing/EffectComposer.mjs +139 -0
- package/postprocessing/FilmPass.js +25 -30
- package/postprocessing/FilmPass.mjs +42 -0
- package/postprocessing/GlitchPass.js +38 -61
- package/postprocessing/GlitchPass.mjs +75 -0
- package/postprocessing/HalftonePass.js +19 -39
- package/postprocessing/HalftonePass.mjs +44 -0
- package/postprocessing/LUTPass.js +13 -38
- package/postprocessing/LUTPass.mjs +136 -0
- package/postprocessing/MaskPass.js +19 -38
- package/postprocessing/MaskPass.mjs +60 -0
- package/postprocessing/OutlinePass.js +135 -277
- package/postprocessing/OutlinePass.mjs +438 -0
- package/postprocessing/Pass.js +20 -44
- package/postprocessing/Pass.mjs +37 -0
- package/postprocessing/RenderPass.js +13 -36
- package/postprocessing/RenderPass.mjs +48 -0
- package/postprocessing/RenderPixelatedPass.js +44 -58
- package/postprocessing/RenderPixelatedPass.mjs +199 -0
- package/postprocessing/SAOPass.js +154 -189
- package/postprocessing/SAOPass.mjs +282 -0
- package/postprocessing/SMAAPass.js +64 -84
- package/postprocessing/SMAAPass.mjs +112 -0
- package/postprocessing/SSAARenderPass.js +121 -69
- package/postprocessing/SSAARenderPass.mjs +170 -0
- package/postprocessing/SSAOPass.js +123 -172
- package/postprocessing/SSAOPass.mjs +265 -0
- package/postprocessing/SSRPass.js +211 -280
- package/postprocessing/SSRPass.mjs +432 -0
- package/postprocessing/SavePass.js +20 -25
- package/postprocessing/SavePass.mjs +37 -0
- package/postprocessing/ShaderPass.js +14 -30
- package/postprocessing/ShaderPass.mjs +39 -0
- package/postprocessing/TAARenderPass.js +42 -61
- package/postprocessing/TAARenderPass.mjs +88 -0
- package/postprocessing/TexturePass.js +21 -22
- package/postprocessing/TexturePass.mjs +39 -0
- package/postprocessing/UnrealBloomPass.js +105 -213
- package/postprocessing/UnrealBloomPass.mjs +220 -0
- package/renderers/CSS2DRenderer.js +44 -56
- package/renderers/CSS2DRenderer.mjs +112 -0
- package/renderers/CSS3DRenderer.js +53 -86
- package/renderers/CSS3DRenderer.mjs +133 -0
- package/renderers/Projector.js +107 -274
- package/renderers/Projector.mjs +511 -0
- package/renderers/SVGRenderer.js +72 -182
- package/renderers/SVGRenderer.mjs +306 -0
- package/renderers/nodes/accessors/CameraNode.js +29 -40
- package/renderers/nodes/accessors/CameraNode.mjs +63 -0
- package/renderers/nodes/accessors/ModelNode.js +28 -37
- package/renderers/nodes/accessors/ModelNode.mjs +61 -0
- package/renderers/nodes/accessors/ModelViewProjectionNode.js +10 -23
- package/renderers/nodes/accessors/ModelViewProjectionNode.mjs +21 -0
- package/renderers/nodes/accessors/NormalNode.js +35 -45
- package/renderers/nodes/accessors/NormalNode.mjs +61 -0
- package/renderers/nodes/accessors/PositionNode.js +18 -19
- package/renderers/nodes/accessors/PositionNode.mjs +30 -0
- package/renderers/nodes/accessors/UVNode.js +5 -10
- package/renderers/nodes/accessors/UVNode.mjs +13 -0
- package/renderers/nodes/core/AttributeNode.js +5 -14
- package/renderers/nodes/core/AttributeNode.mjs +35 -0
- package/renderers/nodes/core/InputNode.js +4 -14
- package/renderers/nodes/core/InputNode.mjs +31 -0
- package/renderers/nodes/core/Node.js +7 -17
- package/renderers/nodes/core/Node.mjs +34 -0
- package/renderers/nodes/core/NodeAttribute.js +3 -6
- package/renderers/nodes/core/NodeAttribute.mjs +10 -0
- package/renderers/nodes/core/NodeBuilder.js +87 -154
- package/renderers/nodes/core/NodeBuilder.mjs +243 -0
- package/renderers/nodes/core/NodeFrame.js +9 -12
- package/renderers/nodes/core/NodeFrame.mjs +35 -0
- package/renderers/nodes/core/NodeSlot.js +2 -3
- package/renderers/nodes/core/NodeSlot.mjs +10 -0
- package/renderers/nodes/core/NodeUniform.js +4 -9
- package/renderers/nodes/core/NodeUniform.mjs +18 -0
- package/renderers/nodes/core/NodeVary.js +4 -7
- package/renderers/nodes/core/NodeVary.mjs +11 -0
- package/renderers/nodes/core/VaryNode.js +6 -12
- package/renderers/nodes/core/VaryNode.mjs +22 -0
- package/renderers/nodes/core/constants.js +16 -13
- package/renderers/nodes/core/constants.mjs +22 -0
- package/renderers/nodes/inputs/ColorNode.js +5 -11
- package/renderers/nodes/inputs/ColorNode.mjs +11 -0
- package/renderers/nodes/inputs/FloatNode.js +5 -11
- package/renderers/nodes/inputs/FloatNode.mjs +11 -0
- package/renderers/nodes/inputs/Matrix3Node.js +7 -13
- package/renderers/nodes/inputs/Matrix3Node.mjs +12 -0
- package/renderers/nodes/inputs/Matrix4Node.js +7 -13
- package/renderers/nodes/inputs/Matrix4Node.mjs +12 -0
- package/renderers/nodes/inputs/TextureNode.js +7 -15
- package/renderers/nodes/inputs/TextureNode.mjs +20 -0
- package/renderers/nodes/inputs/Vector2Node.js +5 -11
- package/renderers/nodes/inputs/Vector2Node.mjs +11 -0
- package/renderers/nodes/inputs/Vector3Node.js +7 -13
- package/renderers/nodes/inputs/Vector3Node.mjs +12 -0
- package/renderers/nodes/inputs/Vector4Node.js +7 -13
- package/renderers/nodes/inputs/Vector4Node.mjs +12 -0
- package/renderers/nodes/math/MathNode.js +20 -30
- package/renderers/nodes/math/MathNode.mjs +55 -0
- package/renderers/nodes/math/OperatorNode.js +4 -20
- package/renderers/nodes/math/OperatorNode.mjs +42 -0
- package/renderers/nodes/utils/SwitchNode.js +4 -9
- package/renderers/nodes/utils/SwitchNode.mjs +20 -0
- package/renderers/nodes/utils/TimerNode.js +5 -10
- package/renderers/nodes/utils/TimerNode.mjs +14 -0
- package/renderers/webgpu/WebGPU.js +14 -16
- package/renderers/webgpu/WebGPU.mjs +24 -0
- package/renderers/webgpu/WebGPUAttributes.js +16 -23
- package/renderers/webgpu/WebGPUAttributes.mjs +69 -0
- package/renderers/webgpu/WebGPUBackground.js +13 -30
- package/renderers/webgpu/WebGPUBackground.mjs +61 -0
- package/renderers/webgpu/WebGPUBinding.js +4 -7
- package/renderers/webgpu/WebGPUBinding.mjs +14 -0
- package/renderers/webgpu/WebGPUBindings.js +21 -57
- package/renderers/webgpu/WebGPUBindings.mjs +155 -0
- package/renderers/webgpu/WebGPUComputePipelines.js +14 -25
- package/renderers/webgpu/WebGPUComputePipelines.mjs +44 -0
- package/renderers/webgpu/WebGPUGeometries.js +5 -15
- package/renderers/webgpu/WebGPUGeometries.mjs +41 -0
- package/renderers/webgpu/WebGPUInfo.js +3 -8
- package/renderers/webgpu/WebGPUInfo.mjs +46 -0
- package/renderers/webgpu/WebGPUObjects.js +5 -10
- package/renderers/webgpu/WebGPUObjects.mjs +25 -0
- package/renderers/webgpu/WebGPUProperties.js +5 -11
- package/renderers/webgpu/WebGPUProperties.mjs +22 -0
- package/renderers/webgpu/WebGPURenderLists.js +20 -36
- package/renderers/webgpu/WebGPURenderLists.mjs +119 -0
- package/renderers/webgpu/WebGPURenderPipelines.js +260 -387
- package/renderers/webgpu/WebGPURenderPipelines.mjs +545 -0
- package/renderers/webgpu/WebGPURenderer.js +124 -262
- package/renderers/webgpu/WebGPURenderer.mjs +574 -0
- package/renderers/webgpu/WebGPUSampledTexture.js +18 -31
- package/renderers/webgpu/WebGPUSampledTexture.mjs +40 -0
- package/renderers/webgpu/WebGPUSampler.js +7 -12
- package/renderers/webgpu/WebGPUSampler.mjs +15 -0
- package/renderers/webgpu/WebGPUStorageBuffer.js +7 -12
- package/renderers/webgpu/WebGPUStorageBuffer.mjs +15 -0
- package/renderers/webgpu/WebGPUTextureRenderer.js +5 -11
- package/renderers/webgpu/WebGPUTextureRenderer.mjs +23 -0
- package/renderers/webgpu/WebGPUTextureUtils.js +29 -40
- package/renderers/webgpu/WebGPUTextureUtils.mjs +98 -0
- package/renderers/webgpu/WebGPUTextures.js +186 -333
- package/renderers/webgpu/WebGPUTextures.mjs +484 -0
- package/renderers/webgpu/WebGPUUniform.js +25 -51
- package/renderers/webgpu/WebGPUUniform.mjs +81 -0
- package/renderers/webgpu/WebGPUUniformsGroup.js +32 -72
- package/renderers/webgpu/WebGPUUniformsGroup.mjs +176 -0
- package/renderers/webgpu/constants.js +190 -181
- package/renderers/webgpu/constants.mjs +230 -0
- package/renderers/webgpu/nodes/ShaderLib.js +2 -2
- package/renderers/webgpu/nodes/ShaderLib.mjs +42 -0
- package/renderers/webgpu/nodes/WebGPUNodeBuilder.js +53 -124
- package/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +165 -0
- package/renderers/webgpu/nodes/WebGPUNodeUniform.js +17 -31
- package/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +73 -0
- package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +8 -9
- package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +15 -0
- package/renderers/webgpu/nodes/WebGPUNodes.js +7 -45
- package/renderers/webgpu/nodes/WebGPUNodes.mjs +40 -0
- package/shaders/ACESFilmicToneMappingShader.js +44 -24
- package/shaders/ACESFilmicToneMappingShader.mjs +48 -0
- package/shaders/AfterimageShader.js +28 -18
- package/shaders/AfterimageShader.mjs +32 -0
- package/shaders/BasicShader.js +9 -7
- package/shaders/BasicShader.mjs +12 -0
- package/shaders/BleachBypassShader.js +31 -15
- package/shaders/BleachBypassShader.mjs +35 -0
- package/shaders/BlendShader.js +26 -19
- package/shaders/BlendShader.mjs +30 -0
- package/shaders/BokehShader.js +98 -36
- package/shaders/BokehShader.mjs +106 -0
- package/shaders/BokehShader2.js +261 -90
- package/shaders/BokehShader2.mjs +269 -0
- package/shaders/BrightnessContrastShader.js +28 -19
- package/shaders/BrightnessContrastShader.mjs +32 -0
- package/shaders/ColorCorrectionShader.js +26 -22
- package/shaders/ColorCorrectionShader.mjs +30 -0
- package/shaders/ColorifyShader.js +24 -16
- package/shaders/ColorifyShader.mjs +28 -0
- package/shaders/ConvolutionShader.js +40 -36
- package/shaders/ConvolutionShader.mjs +55 -0
- package/shaders/CopyShader.js +21 -13
- package/shaders/CopyShader.mjs +25 -0
- package/shaders/DOFMipMapShader.js +28 -21
- package/shaders/DOFMipMapShader.mjs +32 -0
- package/shaders/DepthLimitedBlurShader.js +85 -40
- package/shaders/DepthLimitedBlurShader.mjs +114 -0
- package/shaders/DigitalGlitch.js +74 -46
- package/shaders/DigitalGlitch.mjs +78 -0
- package/shaders/DotScreenShader.js +35 -27
- package/shaders/DotScreenShader.mjs +39 -0
- package/shaders/FXAAShader.js +1094 -19
- package/shaders/FXAAShader.mjs +1098 -0
- package/shaders/FilmShader.js +38 -52
- package/shaders/FilmShader.mjs +42 -0
- package/shaders/FocusShader.js +51 -24
- package/shaders/FocusShader.mjs +55 -0
- package/shaders/FreiChenShader.js +57 -24
- package/shaders/FreiChenShader.mjs +61 -0
- package/shaders/FresnelShader.js +43 -22
- package/shaders/FresnelShader.mjs +47 -0
- package/shaders/GammaCorrectionShader.js +19 -11
- package/shaders/GammaCorrectionShader.mjs +23 -0
- package/shaders/GodRaysShader.js +103 -94
- package/shaders/GodRaysShader.mjs +146 -0
- package/shaders/HalftoneShader.js +208 -65
- package/shaders/HalftoneShader.mjs +212 -0
- package/shaders/HorizontalBlurShader.js +7 -23
- package/shaders/HorizontalBlurShader.mjs +43 -0
- package/shaders/HorizontalTiltShiftShader.js +33 -21
- package/shaders/HorizontalTiltShiftShader.mjs +37 -0
- package/shaders/HueSaturationShader.js +37 -21
- package/shaders/HueSaturationShader.mjs +41 -0
- package/shaders/KaleidoShader.js +30 -22
- package/shaders/KaleidoShader.mjs +34 -0
- package/shaders/LuminosityHighPassShader.js +33 -27
- package/shaders/LuminosityHighPassShader.mjs +37 -0
- package/shaders/LuminosityShader.js +21 -11
- package/shaders/LuminosityShader.mjs +25 -0
- package/shaders/MirrorShader.js +31 -16
- package/shaders/MirrorShader.mjs +35 -0
- package/shaders/NormalMapShader.js +27 -23
- package/shaders/NormalMapShader.mjs +31 -0
- package/shaders/ParallaxShader.js +107 -48
- package/shaders/ParallaxShader.mjs +113 -0
- package/shaders/PixelShader.js +24 -16
- package/shaders/PixelShader.mjs +28 -0
- package/shaders/RGBShiftShader.js +26 -22
- package/shaders/RGBShiftShader.mjs +30 -0
- package/shaders/SAOShader.js +132 -48
- package/shaders/SAOShader.mjs +144 -0
- package/shaders/SMAAShader.js +256 -135
- package/shaders/SMAAShader.mjs +272 -0
- package/shaders/SSAOShader.js +153 -81
- package/shaders/SSAOShader.mjs +172 -0
- package/shaders/SSRShader.js +32 -87
- package/shaders/SSRShader.mjs +324 -0
- package/shaders/SepiaShader.js +25 -15
- package/shaders/SepiaShader.mjs +29 -0
- package/shaders/SobelOperatorShader.js +40 -29
- package/shaders/SobelOperatorShader.mjs +44 -0
- package/shaders/SubsurfaceScatteringShader.js +53 -39
- package/shaders/SubsurfaceScatteringShader.mjs +59 -0
- package/shaders/TechnicolorShader.js +20 -13
- package/shaders/TechnicolorShader.mjs +24 -0
- package/shaders/ToneMapShader.js +44 -28
- package/shaders/ToneMapShader.mjs +48 -0
- package/shaders/ToonShader.js +172 -96
- package/shaders/ToonShader.mjs +188 -0
- package/shaders/TriangleBlurShader.js +32 -23
- package/shaders/TriangleBlurShader.mjs +36 -0
- package/shaders/UnpackDepthRGBAShader.js +22 -14
- package/shaders/UnpackDepthRGBAShader.mjs +26 -0
- package/shaders/VerticalBlurShader.js +7 -23
- package/shaders/VerticalBlurShader.mjs +44 -0
- package/shaders/VerticalTiltShiftShader.js +33 -21
- package/shaders/VerticalTiltShiftShader.mjs +37 -0
- package/shaders/VignetteShader.js +24 -28
- package/shaders/VignetteShader.mjs +28 -0
- package/shaders/VolumeShader.js +174 -77
- package/shaders/VolumeShader.mjs +178 -0
- package/shaders/WaterRefractionShader.js +38 -6
- package/shaders/WaterRefractionShader.mjs +57 -0
- package/shaders/types.js +1 -1
- package/{custom.d.js → shaders/types.mjs} +0 -0
- package/textures/FlakesTexture.js +8 -10
- package/textures/FlakesTexture.mjs +30 -0
- package/types/helpers.js +3 -2
- package/types/helpers.mjs +4 -0
- package/utils/BufferGeometryUtils.js +251 -325
- package/utils/BufferGeometryUtils.mjs +570 -0
- package/utils/GeometryCompressionUtils.js +241 -239
- package/utils/GeometryCompressionUtils.mjs +547 -0
- package/utils/GeometryUtils.js +41 -94
- package/utils/GeometryUtils.mjs +108 -0
- package/utils/RoughnessMipmapper.js +38 -82
- package/utils/RoughnessMipmapper.mjs +213 -0
- package/utils/SceneUtils.js +15 -20
- package/utils/SceneUtils.mjs +36 -0
- package/utils/ShadowMapViewer.js +49 -95
- package/utils/ShadowMapViewer.mjs +114 -0
- package/utils/SkeletonUtils.js +74 -165
- package/utils/SkeletonUtils.mjs +292 -0
- package/utils/UVsDebug.js +32 -62
- package/utils/UVsDebug.mjs +85 -0
- package/utils/WorkerPool.js +13 -33
- package/utils/WorkerPool.mjs +62 -0
- package/webxr/ARButton.js +72 -98
- package/webxr/ARButton.mjs +119 -0
- package/webxr/OculusHandModel.js +18 -37
- package/webxr/OculusHandModel.mjs +71 -0
- package/webxr/OculusHandPointerModel.js +58 -80
- package/webxr/OculusHandPointerModel.mjs +207 -0
- package/webxr/Text2D.js +37 -19
- package/webxr/Text2D.mjs +31 -0
- package/webxr/VRButton.js +59 -90
- package/webxr/VRButton.mjs +105 -0
- package/webxr/XRControllerModelFactory.js +58 -116
- package/webxr/XRControllerModelFactory.mjs +146 -0
- package/webxr/XREstimatedLight.js +39 -66
- package/webxr/XREstimatedLight.mjs +126 -0
- package/webxr/XRHandMeshModel.js +40 -29
- package/webxr/XRHandMeshModel.mjs +73 -0
- package/webxr/XRHandModelFactory.js +28 -31
- package/webxr/XRHandModelFactory.mjs +61 -0
- package/webxr/XRHandPrimitiveModel.js +41 -27
- package/webxr/XRHandPrimitiveModel.mjs +68 -0
- package/BufferGeometryUtils-1a7a235c.js +0 -655
- package/BufferGeometryUtils-971dfde3.js +0 -1
- package/Nodes-4f766d71.js +0 -471
- package/Nodes-9aa16d74.js +0 -1
- package/animation/AnimationClipCreator.cjs.js +0 -1
- package/animation/CCDIKSolver.cjs.js +0 -1
- package/animation/MMDAnimationHelper.cjs.js +0 -1
- package/animation/MMDPhysics.cjs.js +0 -1
- package/cameras/CinematicCamera.cjs.js +0 -1
- package/controls/ArcballControls.cjs.js +0 -1
- package/controls/DeviceOrientationControls.cjs.js +0 -1
- package/controls/DragControls.cjs.js +0 -1
- package/controls/FirstPersonControls.cjs.js +0 -1
- package/controls/FlyControls.cjs.js +0 -1
- package/controls/OrbitControls.cjs.js +0 -1
- package/controls/PointerLockControls.cjs.js +0 -1
- package/controls/TrackballControls.cjs.js +0 -1
- package/controls/TransformControls.cjs.js +0 -1
- package/controls/experimental/CameraControls.cjs.js +0 -1
- package/csm/CSM.cjs.js +0 -1
- package/csm/CSMFrustum.cjs.js +0 -1
- package/csm/CSMHelper.cjs.js +0 -1
- package/csm/CSMShader.cjs.js +0 -1
- package/curves/CurveExtras.cjs.js +0 -1
- package/curves/NURBSCurve.cjs.js +0 -1
- package/curves/NURBSSurface.cjs.js +0 -1
- package/curves/NURBSUtils.cjs.js +0 -1
- package/custom.d.cjs.js +0 -1
- package/deprecated/Geometry.cjs.js +0 -1
- package/effects/AnaglyphEffect.cjs.js +0 -1
- package/effects/AsciiEffect.cjs.js +0 -1
- package/effects/OutlineEffect.cjs.js +0 -1
- package/effects/ParallaxBarrierEffect.cjs.js +0 -1
- package/effects/PeppersGhostEffect.cjs.js +0 -1
- package/effects/StereoEffect.cjs.js +0 -1
- package/environments/RoomEnvironment.cjs.js +0 -1
- package/exporters/ColladaExporter.cjs.js +0 -1
- package/exporters/DRACOExporter.cjs.js +0 -1
- package/exporters/GLTFExporter.cjs.js +0 -1
- package/exporters/MMDExporter.cjs.js +0 -1
- package/exporters/OBJExporter.cjs.js +0 -1
- package/exporters/PLYExporter.cjs.js +0 -1
- package/exporters/STLExporter.cjs.js +0 -1
- package/exporters/USDZExporter.cjs.js +0 -1
- package/geometries/BoxLineGeometry.cjs.js +0 -1
- package/geometries/ConvexGeometry.cjs.js +0 -1
- package/geometries/DecalGeometry.cjs.js +0 -1
- package/geometries/LightningStrike.cjs.js +0 -1
- package/geometries/ParametricGeometries.cjs.js +0 -1
- package/geometries/ParametricGeometry.cjs.js +0 -1
- package/geometries/RoundedBoxGeometry.cjs.js +0 -1
- package/geometries/TeapotGeometry.cjs.js +0 -1
- package/geometries/TextGeometry.cjs.js +0 -1
- package/helpers/LightProbeHelper.cjs.js +0 -1
- package/helpers/PositionalAudioHelper.cjs.js +0 -1
- package/helpers/RectAreaLightHelper.cjs.js +0 -1
- package/helpers/VertexNormalsHelper.cjs.js +0 -1
- package/helpers/VertexTangentsHelper.cjs.js +0 -1
- package/index.cjs.js +0 -1
- package/interactive/InteractiveGroup.cjs.js +0 -1
- package/interactive/InteractiveGroup.d.ts +0 -5
- package/interactive/InteractiveGroup.js +0 -87
- package/interactive/SelectionBox.cjs.js +0 -1
- package/interactive/SelectionHelper.cjs.js +0 -1
- package/libs/MeshoptDecoder.cjs.js +0 -1
- package/libs/MotionControllers.cjs.js +0 -1
- package/lights/LightProbeGenerator.cjs.js +0 -1
- package/lights/RectAreaLightUniformsLib.cjs.js +0 -1
- package/lines/Line2.cjs.js +0 -1
- package/lines/LineGeometry.cjs.js +0 -1
- package/lines/LineMaterial.cjs.js +0 -1
- package/lines/LineSegments2.cjs.js +0 -1
- package/lines/LineSegmentsGeometry.cjs.js +0 -1
- package/lines/Wireframe.cjs.js +0 -1
- package/lines/WireframeGeometry2.cjs.js +0 -1
- package/loaders/3DMLoader.cjs.js +0 -1
- package/loaders/3MFLoader.cjs.js +0 -1
- package/loaders/AMFLoader.cjs.js +0 -1
- package/loaders/AssimpLoader.cjs.js +0 -1
- package/loaders/BVHLoader.cjs.js +0 -1
- package/loaders/BasisTextureLoader.cjs.js +0 -1
- package/loaders/ColladaLoader.cjs.js +0 -1
- package/loaders/DDSLoader.cjs.js +0 -1
- package/loaders/DRACOLoader.cjs.js +0 -1
- package/loaders/EXRLoader.cjs.js +0 -1
- package/loaders/FBXLoader.cjs.js +0 -1
- package/loaders/FontLoader.cjs.js +0 -1
- package/loaders/GCodeLoader.cjs.js +0 -1
- package/loaders/GLTFLoader.cjs.js +0 -1
- package/loaders/HDRCubeTextureLoader.cjs.js +0 -1
- package/loaders/KMZLoader.cjs.js +0 -1
- package/loaders/KTX2Loader.cjs.js +0 -1
- package/loaders/KTXLoader.cjs.js +0 -1
- package/loaders/LDrawLoader.cjs.js +0 -1
- package/loaders/LUT3dlLoader.cjs.js +0 -1
- package/loaders/LUTCubeLoader.cjs.js +0 -1
- package/loaders/LWOLoader.cjs.js +0 -1
- package/loaders/LottieLoader.cjs.js +0 -1
- package/loaders/MD2Loader.cjs.js +0 -1
- package/loaders/MDDLoader.cjs.js +0 -1
- package/loaders/MMDLoader.cjs.js +0 -1
- package/loaders/MTLLoader.cjs.js +0 -1
- package/loaders/NRRDLoader.cjs.js +0 -1
- package/loaders/NodeMaterialLoader.cjs.js +0 -1
- package/loaders/OBJLoader.cjs.js +0 -1
- package/loaders/PCDLoader.cjs.js +0 -1
- package/loaders/PDBLoader.cjs.js +0 -1
- package/loaders/PLYLoader.cjs.js +0 -1
- package/loaders/PRWMLoader.cjs.js +0 -1
- package/loaders/PVRLoader.cjs.js +0 -1
- package/loaders/RGBELoader.cjs.js +0 -1
- package/loaders/RGBMLoader.cjs.js +0 -1
- package/loaders/STLLoader.cjs.js +0 -1
- package/loaders/SVGLoader.cjs.js +0 -1
- package/loaders/TDSLoader.cjs.js +0 -1
- package/loaders/TGALoader.cjs.js +0 -1
- package/loaders/TTFLoader.cjs.js +0 -1
- package/loaders/TiltLoader.cjs.js +0 -1
- package/loaders/VOXLoader.cjs.js +0 -1
- package/loaders/VRMLLoader.cjs.js +0 -1
- package/loaders/VRMLoader.cjs.js +0 -1
- package/loaders/VTKLoader.cjs.js +0 -1
- package/loaders/XLoader.cjs.js +0 -1
- package/loaders/XYZLoader.cjs.js +0 -1
- package/loaders/lwo/IFFParser.cjs.js +0 -1
- package/loaders/lwo/LWO2Parser.cjs.js +0 -1
- package/loaders/lwo/LWO3Parser.cjs.js +0 -1
- package/math/Capsule.cjs.js +0 -1
- package/math/ColorConverter.cjs.js +0 -1
- package/math/ConvexHull.cjs.js +0 -1
- package/math/ImprovedNoise.cjs.js +0 -1
- package/math/Lut.cjs.js +0 -1
- package/math/MeshSurfaceSampler.cjs.js +0 -1
- package/math/OBB.cjs.js +0 -1
- package/math/Octree.cjs.js +0 -1
- package/math/SimplexNoise.cjs.js +0 -1
- package/misc/ConvexObjectBreaker.cjs.js +0 -1
- package/misc/GPUComputationRenderer.cjs.js +0 -1
- package/misc/Gyroscope.cjs.js +0 -1
- package/misc/MD2Character.cjs.js +0 -1
- package/misc/MD2CharacterComplex.cjs.js +0 -1
- package/misc/MorphAnimMesh.cjs.js +0 -1
- package/misc/MorphBlendMesh.cjs.js +0 -1
- package/misc/ProgressiveLightmap.cjs.js +0 -1
- package/misc/RollerCoaster.cjs.js +0 -1
- package/misc/TubePainter.cjs.js +0 -1
- package/misc/Volume.cjs.js +0 -1
- package/misc/VolumeSlice.cjs.js +0 -1
- package/misc/WebGL.cjs.js +0 -1
- package/modifiers/CurveModifier.cjs.js +0 -1
- package/modifiers/EdgeSplitModifier.cjs.js +0 -1
- package/modifiers/SimplifyModifier.cjs.js +0 -1
- package/modifiers/TessellateModifier.cjs.js +0 -1
- package/nodes/Nodes.cjs.js +0 -1
- package/nodes/ShaderNode.cjs.js +0 -1
- package/nodes/accessors/BufferNode.cjs.js +0 -1
- package/nodes/accessors/CameraNode.cjs.js +0 -1
- package/nodes/accessors/CubeTextureNode.cjs.js +0 -1
- package/nodes/accessors/MaterialNode.cjs.js +0 -1
- package/nodes/accessors/MaterialReferenceNode.cjs.js +0 -1
- package/nodes/accessors/ModelNode.cjs.js +0 -1
- package/nodes/accessors/ModelViewProjectionNode.cjs.js +0 -1
- package/nodes/accessors/NormalNode.cjs.js +0 -1
- package/nodes/accessors/Object3DNode.cjs.js +0 -1
- package/nodes/accessors/PointUVNode.cjs.js +0 -1
- package/nodes/accessors/PositionNode.cjs.js +0 -1
- package/nodes/accessors/ReferenceNode.cjs.js +0 -1
- package/nodes/accessors/ReflectNode.cjs.js +0 -1
- package/nodes/accessors/SkinningNode.cjs.js +0 -1
- package/nodes/accessors/TextureNode.cjs.js +0 -1
- package/nodes/accessors/UVNode.cjs.js +0 -1
- package/nodes/core/ArrayUniformNode.cjs.js +0 -1
- package/nodes/core/AttributeNode.cjs.js +0 -1
- package/nodes/core/BypassNode.cjs.js +0 -1
- package/nodes/core/CodeNode.cjs.js +0 -1
- package/nodes/core/ConstNode.cjs.js +0 -1
- package/nodes/core/ContextNode.cjs.js +0 -1
- package/nodes/core/ExpressionNode.cjs.js +0 -1
- package/nodes/core/FunctionCallNode.cjs.js +0 -1
- package/nodes/core/FunctionNode.cjs.js +0 -1
- package/nodes/core/InputNode.cjs.js +0 -1
- package/nodes/core/Node.cjs.js +0 -1
- package/nodes/core/NodeAttribute.cjs.js +0 -1
- package/nodes/core/NodeBuilder.cjs.js +0 -1
- package/nodes/core/NodeCode.cjs.js +0 -1
- package/nodes/core/NodeFrame.cjs.js +0 -1
- package/nodes/core/NodeFunction.cjs.js +0 -1
- package/nodes/core/NodeFunction.js +0 -17
- package/nodes/core/NodeFunctionInput.cjs.js +0 -1
- package/nodes/core/NodeKeywords.cjs.js +0 -1
- package/nodes/core/NodeParser.cjs.js +0 -1
- package/nodes/core/NodeParser.js +0 -8
- package/nodes/core/NodeUniform.cjs.js +0 -1
- package/nodes/core/NodeUtils.cjs.js +0 -1
- package/nodes/core/NodeVar.cjs.js +0 -1
- package/nodes/core/NodeVary.cjs.js +0 -1
- package/nodes/core/PropertyNode.cjs.js +0 -1
- package/nodes/core/TempNode.cjs.js +0 -1
- package/nodes/core/UniformNode.cjs.js +0 -1
- package/nodes/core/VarNode.cjs.js +0 -1
- package/nodes/core/VaryNode.cjs.js +0 -1
- package/nodes/core/constants.cjs.js +0 -1
- package/nodes/display/ColorSpaceNode.cjs.js +0 -1
- package/nodes/display/NormalMapNode.cjs.js +0 -1
- package/nodes/fog/FogNode.cjs.js +0 -1
- package/nodes/fog/FogRangeNode.cjs.js +0 -1
- package/nodes/functions/BSDFs.cjs.js +0 -1
- package/nodes/functions/PhysicalMaterialFunctions.cjs.js +0 -1
- package/nodes/functions/PhysicalMaterialFunctions.js +0 -57
- package/nodes/lights/LightContextNode.cjs.js +0 -1
- package/nodes/lights/LightNode.cjs.js +0 -1
- package/nodes/lights/LightsNode.cjs.js +0 -1
- package/nodes/loaders/NodeLoader.cjs.js +0 -1
- package/nodes/loaders/NodeMaterialLoader.cjs.js +0 -1
- package/nodes/loaders/NodeObjectLoader.cjs.js +0 -1
- package/nodes/materials/LineBasicNodeMaterial.cjs.js +0 -1
- package/nodes/materials/Materials.cjs.js +0 -1
- package/nodes/materials/MeshBasicNodeMaterial.cjs.js +0 -1
- package/nodes/materials/MeshStandardNodeMaterial.cjs.js +0 -1
- package/nodes/materials/NodeMaterial.cjs.js +0 -1
- package/nodes/materials/PointsNodeMaterial.cjs.js +0 -1
- package/nodes/math/CondNode.cjs.js +0 -1
- package/nodes/math/MathNode.cjs.js +0 -1
- package/nodes/math/OperatorNode.cjs.js +0 -1
- package/nodes/parsers/GLSLNodeFunction.cjs.js +0 -1
- package/nodes/parsers/GLSLNodeFunction.js +0 -101
- package/nodes/parsers/GLSLNodeParser.cjs.js +0 -1
- package/nodes/parsers/GLSLNodeParser.js +0 -13
- package/nodes/parsers/WGSLNodeFunction.cjs.js +0 -1
- package/nodes/parsers/WGSLNodeFunction.js +0 -71
- package/nodes/parsers/WGSLNodeParser.cjs.js +0 -1
- package/nodes/parsers/WGSLNodeParser.js +0 -13
- package/nodes/procedural/CheckerNode.cjs.js +0 -1
- package/nodes/utils/ArrayElementNode.cjs.js +0 -1
- package/nodes/utils/ConvertNode.cjs.js +0 -1
- package/nodes/utils/JoinNode.cjs.js +0 -1
- package/nodes/utils/MatcapUVNode.cjs.js +0 -1
- package/nodes/utils/OscNode.cjs.js +0 -1
- package/nodes/utils/SplitNode.cjs.js +0 -1
- package/nodes/utils/SpriteSheetUVNode.cjs.js +0 -1
- package/nodes/utils/TimerNode.cjs.js +0 -1
- package/objects/GroundProjectedEnv.cjs.js +0 -1
- package/objects/Lensflare.cjs.js +0 -1
- package/objects/LightningStorm.cjs.js +0 -1
- package/objects/MarchingCubes.cjs.js +0 -1
- package/objects/Reflector.cjs.js +0 -1
- package/objects/ReflectorForSSRPass.cjs.js +0 -1
- package/objects/ReflectorRTT.cjs.js +0 -1
- package/objects/Refractor.cjs.js +0 -1
- package/objects/ShadowMesh.cjs.js +0 -1
- package/objects/Sky.cjs.js +0 -1
- package/objects/Water.cjs.js +0 -1
- package/objects/Water2.cjs.js +0 -1
- package/offscreen/jank.cjs.js +0 -1
- package/offscreen/offscreen.cjs.js +0 -1
- package/offscreen/scene.cjs.js +0 -1
- package/physics/AmmoPhysics.cjs.js +0 -1
- package/postprocessing/AdaptiveToneMappingPass.cjs.js +0 -1
- package/postprocessing/AfterimagePass.cjs.js +0 -1
- package/postprocessing/BloomPass.cjs.js +0 -1
- package/postprocessing/BokehPass.cjs.js +0 -1
- package/postprocessing/ClearPass.cjs.js +0 -1
- package/postprocessing/CubeTexturePass.cjs.js +0 -1
- package/postprocessing/DotScreenPass.cjs.js +0 -1
- package/postprocessing/EffectComposer.cjs.js +0 -1
- package/postprocessing/FilmPass.cjs.js +0 -1
- package/postprocessing/GlitchPass.cjs.js +0 -1
- package/postprocessing/HalftonePass.cjs.js +0 -1
- package/postprocessing/LUTPass.cjs.js +0 -1
- package/postprocessing/MaskPass.cjs.js +0 -1
- package/postprocessing/OutlinePass.cjs.js +0 -1
- package/postprocessing/Pass.cjs.js +0 -1
- package/postprocessing/RenderPass.cjs.js +0 -1
- package/postprocessing/RenderPixelatedPass.cjs.js +0 -1
- package/postprocessing/SAOPass.cjs.js +0 -1
- package/postprocessing/SMAAPass.cjs.js +0 -1
- package/postprocessing/SSAARenderPass.cjs.js +0 -1
- package/postprocessing/SSAOPass.cjs.js +0 -1
- package/postprocessing/SSRPass.cjs.js +0 -1
- package/postprocessing/SavePass.cjs.js +0 -1
- package/postprocessing/ShaderPass.cjs.js +0 -1
- package/postprocessing/TAARenderPass.cjs.js +0 -1
- package/postprocessing/TexturePass.cjs.js +0 -1
- package/postprocessing/UnrealBloomPass.cjs.js +0 -1
- package/renderers/CSS2DRenderer.cjs.js +0 -1
- package/renderers/CSS3DRenderer.cjs.js +0 -1
- package/renderers/Projector.cjs.js +0 -1
- package/renderers/SVGRenderer.cjs.js +0 -1
- package/renderers/nodes/accessors/CameraNode.cjs.js +0 -1
- package/renderers/nodes/accessors/ModelNode.cjs.js +0 -1
- package/renderers/nodes/accessors/ModelViewProjectionNode.cjs.js +0 -1
- package/renderers/nodes/accessors/NormalNode.cjs.js +0 -1
- package/renderers/nodes/accessors/PositionNode.cjs.js +0 -1
- package/renderers/nodes/accessors/UVNode.cjs.js +0 -1
- package/renderers/nodes/core/AttributeNode.cjs.js +0 -1
- package/renderers/nodes/core/InputNode.cjs.js +0 -1
- package/renderers/nodes/core/Node.cjs.js +0 -1
- package/renderers/nodes/core/NodeAttribute.cjs.js +0 -1
- package/renderers/nodes/core/NodeBuilder.cjs.js +0 -1
- package/renderers/nodes/core/NodeFrame.cjs.js +0 -1
- package/renderers/nodes/core/NodeSlot.cjs.js +0 -1
- package/renderers/nodes/core/NodeUniform.cjs.js +0 -1
- package/renderers/nodes/core/NodeVary.cjs.js +0 -1
- package/renderers/nodes/core/VaryNode.cjs.js +0 -1
- package/renderers/nodes/core/constants.cjs.js +0 -1
- package/renderers/nodes/inputs/ColorNode.cjs.js +0 -1
- package/renderers/nodes/inputs/FloatNode.cjs.js +0 -1
- package/renderers/nodes/inputs/Matrix3Node.cjs.js +0 -1
- package/renderers/nodes/inputs/Matrix4Node.cjs.js +0 -1
- package/renderers/nodes/inputs/TextureNode.cjs.js +0 -1
- package/renderers/nodes/inputs/Vector2Node.cjs.js +0 -1
- package/renderers/nodes/inputs/Vector3Node.cjs.js +0 -1
- package/renderers/nodes/inputs/Vector4Node.cjs.js +0 -1
- package/renderers/nodes/math/MathNode.cjs.js +0 -1
- package/renderers/nodes/math/OperatorNode.cjs.js +0 -1
- package/renderers/nodes/utils/SwitchNode.cjs.js +0 -1
- package/renderers/nodes/utils/TimerNode.cjs.js +0 -1
- package/renderers/webgpu/WebGPU.cjs.js +0 -1
- package/renderers/webgpu/WebGPUAttributes.cjs.js +0 -1
- package/renderers/webgpu/WebGPUBackground.cjs.js +0 -1
- package/renderers/webgpu/WebGPUBinding.cjs.js +0 -1
- package/renderers/webgpu/WebGPUBindings.cjs.js +0 -1
- package/renderers/webgpu/WebGPUComputePipelines.cjs.js +0 -1
- package/renderers/webgpu/WebGPUGeometries.cjs.js +0 -1
- package/renderers/webgpu/WebGPUInfo.cjs.js +0 -1
- package/renderers/webgpu/WebGPUObjects.cjs.js +0 -1
- package/renderers/webgpu/WebGPUProperties.cjs.js +0 -1
- package/renderers/webgpu/WebGPURenderLists.cjs.js +0 -1
- package/renderers/webgpu/WebGPURenderPipelines.cjs.js +0 -1
- package/renderers/webgpu/WebGPURenderer.cjs.js +0 -1
- package/renderers/webgpu/WebGPUSampledTexture.cjs.js +0 -1
- package/renderers/webgpu/WebGPUSampler.cjs.js +0 -1
- package/renderers/webgpu/WebGPUStorageBuffer.cjs.js +0 -1
- package/renderers/webgpu/WebGPUTextureRenderer.cjs.js +0 -1
- package/renderers/webgpu/WebGPUTextureUtils.cjs.js +0 -1
- package/renderers/webgpu/WebGPUTextures.cjs.js +0 -1
- package/renderers/webgpu/WebGPUUniform.cjs.js +0 -1
- package/renderers/webgpu/WebGPUUniformsGroup.cjs.js +0 -1
- package/renderers/webgpu/constants.cjs.js +0 -1
- package/renderers/webgpu/nodes/ShaderLib.cjs.js +0 -1
- package/renderers/webgpu/nodes/WebGPUNodeBuilder.cjs.js +0 -1
- package/renderers/webgpu/nodes/WebGPUNodeUniform.cjs.js +0 -1
- package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.cjs.js +0 -1
- package/renderers/webgpu/nodes/WebGPUNodes.cjs.js +0 -1
- package/shaders/ACESFilmicToneMappingShader.cjs.js +0 -1
- package/shaders/AfterimageShader.cjs.js +0 -1
- package/shaders/BasicShader.cjs.js +0 -1
- package/shaders/BleachBypassShader.cjs.js +0 -1
- package/shaders/BlendShader.cjs.js +0 -1
- package/shaders/BokehShader.cjs.js +0 -1
- package/shaders/BokehShader2.cjs.js +0 -1
- package/shaders/BrightnessContrastShader.cjs.js +0 -1
- package/shaders/ColorCorrectionShader.cjs.js +0 -1
- package/shaders/ColorifyShader.cjs.js +0 -1
- package/shaders/ConvolutionShader.cjs.js +0 -1
- package/shaders/CopyShader.cjs.js +0 -1
- package/shaders/DOFMipMapShader.cjs.js +0 -1
- package/shaders/DepthLimitedBlurShader.cjs.js +0 -1
- package/shaders/DigitalGlitch.cjs.js +0 -1
- package/shaders/DotScreenShader.cjs.js +0 -1
- package/shaders/FXAAShader.cjs.js +0 -1
- package/shaders/FilmShader.cjs.js +0 -1
- package/shaders/FocusShader.cjs.js +0 -1
- package/shaders/FreiChenShader.cjs.js +0 -1
- package/shaders/FresnelShader.cjs.js +0 -1
- package/shaders/GammaCorrectionShader.cjs.js +0 -1
- package/shaders/GodRaysShader.cjs.js +0 -1
- package/shaders/HalftoneShader.cjs.js +0 -1
- package/shaders/HorizontalBlurShader.cjs.js +0 -1
- package/shaders/HorizontalTiltShiftShader.cjs.js +0 -1
- package/shaders/HueSaturationShader.cjs.js +0 -1
- package/shaders/KaleidoShader.cjs.js +0 -1
- package/shaders/LuminosityHighPassShader.cjs.js +0 -1
- package/shaders/LuminosityShader.cjs.js +0 -1
- package/shaders/MirrorShader.cjs.js +0 -1
- package/shaders/NormalMapShader.cjs.js +0 -1
- package/shaders/ParallaxShader.cjs.js +0 -1
- package/shaders/PixelShader.cjs.js +0 -1
- package/shaders/RGBShiftShader.cjs.js +0 -1
- package/shaders/SAOShader.cjs.js +0 -1
- package/shaders/SMAAShader.cjs.js +0 -1
- package/shaders/SSAOShader.cjs.js +0 -1
- package/shaders/SSRShader.cjs.js +0 -1
- package/shaders/SepiaShader.cjs.js +0 -1
- package/shaders/SobelOperatorShader.cjs.js +0 -1
- package/shaders/SubsurfaceScatteringShader.cjs.js +0 -1
- package/shaders/TechnicolorShader.cjs.js +0 -1
- package/shaders/ToneMapShader.cjs.js +0 -1
- package/shaders/ToonShader.cjs.js +0 -1
- package/shaders/TriangleBlurShader.cjs.js +0 -1
- package/shaders/UnpackDepthRGBAShader.cjs.js +0 -1
- package/shaders/VerticalBlurShader.cjs.js +0 -1
- package/shaders/VerticalTiltShiftShader.cjs.js +0 -1
- package/shaders/VignetteShader.cjs.js +0 -1
- package/shaders/VolumeShader.cjs.js +0 -1
- package/shaders/WaterRefractionShader.cjs.js +0 -1
- package/shaders/types.cjs.js +0 -1
- package/textures/FlakesTexture.cjs.js +0 -1
- package/types/helpers.cjs.js +0 -1
- package/types/shared.cjs.js +0 -1
- package/types/shared.js +0 -1
- package/types/utils.cjs.js +0 -1
- package/types/utils.js +0 -1
- package/utils/BufferGeometryUtils.cjs.js +0 -1
- package/utils/GeometryCompressionUtils.cjs.js +0 -1
- package/utils/GeometryUtils.cjs.js +0 -1
- package/utils/LDrawUtils.cjs.js +0 -1
- package/utils/LDrawUtils.d.ts +0 -5
- package/utils/LDrawUtils.js +0 -144
- package/utils/RoughnessMipmapper.cjs.js +0 -1
- package/utils/SceneUtils.cjs.js +0 -1
- package/utils/ShadowMapViewer.cjs.js +0 -1
- package/utils/SkeletonUtils.cjs.js +0 -1
- package/utils/UVsDebug.cjs.js +0 -1
- package/utils/WorkerPool.cjs.js +0 -1
- package/webxr/ARButton.cjs.js +0 -1
- package/webxr/OculusHandModel.cjs.js +0 -1
- package/webxr/OculusHandPointerModel.cjs.js +0 -1
- package/webxr/Text2D.cjs.js +0 -1
- package/webxr/VRButton.cjs.js +0 -1
- package/webxr/XRControllerModelFactory.cjs.js +0 -1
- package/webxr/XREstimatedLight.cjs.js +0 -1
- package/webxr/XRHandMeshModel.cjs.js +0 -1
- package/webxr/XRHandModelFactory.cjs.js +0 -1
- package/webxr/XRHandPrimitiveModel.cjs.js +0 -1
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("three");t.UniformsLib.line={worldUnits:{value:1},linewidth:{value:1},resolution:{value:new t.Vector2(1,1)},dashOffset:{value:0},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1}},t.ShaderLib.line={uniforms:t.UniformsUtils.merge([t.UniformsLib.common,t.UniformsLib.fog,t.UniformsLib.line]),vertexShader:"\n\t\t#include <common>\n\t\t#include <color_pars_vertex>\n\t\t#include <fog_pars_vertex>\n\t\t#include <logdepthbuf_pars_vertex>\n\t\t#include <clipping_planes_pars_vertex>\n\n\t\tuniform float linewidth;\n\t\tuniform vec2 resolution;\n\n\t\tattribute vec3 instanceStart;\n\t\tattribute vec3 instanceEnd;\n\n\t\tattribute vec3 instanceColorStart;\n\t\tattribute vec3 instanceColorEnd;\n\n\t\t#ifdef WORLD_UNITS\n\n\t\t\tvarying vec4 worldPos;\n\t\t\tvarying vec3 worldStart;\n\t\t\tvarying vec3 worldEnd;\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t#endif\n\n\t\t#else\n\n\t\t\tvarying vec2 vUv;\n\n\t\t#endif\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashScale;\n\t\t\tattribute float instanceDistanceStart;\n\t\t\tattribute float instanceDistanceEnd;\n\t\t\tvarying float vLineDistance;\n\n\t\t#endif\n\n\t\tvoid trimSegment( const in vec4 start, inout vec4 end ) {\n\n\t\t\t// trim end segment so it terminates between the camera plane and the near plane\n\n\t\t\t// conservative estimate of the near plane\n\t\t\tfloat a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n\t\t\tfloat b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n\t\t\tfloat nearEstimate = - 0.5 * b / a;\n\n\t\t\tfloat alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n\t\t\tend.xyz = mix( start.xyz, end.xyz, alpha );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#ifdef USE_COLOR\n\n\t\t\t\tvColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\n\n\t\t\t#endif\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\t\t\t\tvUv = uv;\n\n\t\t\t#endif\n\n\t\t\tfloat aspect = resolution.x / resolution.y;\n\n\t\t\t// camera space\n\t\t\tvec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n\t\t\tvec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\tworldStart = start.xyz;\n\t\t\t\tworldEnd = end.xyz;\n\n\t\t\t#else\n\n\t\t\t\tvUv = uv;\n\n\t\t\t#endif\n\n\t\t\t// special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n\t\t\t// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n\t\t\t// but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n\t\t\t// perhaps there is a more elegant solution -- WestLangley\n\n\t\t\tbool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n\t\t\tif ( perspective ) {\n\n\t\t\t\tif ( start.z < 0.0 && end.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( start, end );\n\n\t\t\t\t} else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( end, start );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// clip space\n\t\t\tvec4 clipStart = projectionMatrix * start;\n\t\t\tvec4 clipEnd = projectionMatrix * end;\n\n\t\t\t// ndc space\n\t\t\tvec3 ndcStart = clipStart.xyz / clipStart.w;\n\t\t\tvec3 ndcEnd = clipEnd.xyz / clipEnd.w;\n\n\t\t\t// direction\n\t\t\tvec2 dir = ndcEnd.xy - ndcStart.xy;\n\n\t\t\t// account for clip-space aspect ratio\n\t\t\tdir.x *= aspect;\n\t\t\tdir = normalize( dir );\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t// get the offset direction as perpendicular to the view vector\n\t\t\t\tvec3 worldDir = normalize( end.xyz - start.xyz );\n\t\t\t\tvec3 offset;\n\t\t\t\tif ( position.y < 0.5 ) {\n\n\t\t\t\t\toffset = normalize( cross( start.xyz, worldDir ) );\n\n\t\t\t\t} else {\n\n\t\t\t\t\toffset = normalize( cross( end.xyz, worldDir ) );\n\n\t\t\t\t}\n\n\t\t\t\t// sign flip\n\t\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\tfloat forwardOffset = dot( worldDir, vec3( 0.0, 0.0, 1.0 ) );\n\n\t\t\t\t// don't extend the line if we're rendering dashes because we\n\t\t\t\t// won't be rendering the endcaps\n\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t// extend the line bounds to encompass endcaps\n\t\t\t\t\tstart.xyz += - worldDir * linewidth * 0.5;\n\t\t\t\t\tend.xyz += worldDir * linewidth * 0.5;\n\n\t\t\t\t\t// shift the position of the quad so it hugs the forward edge of the line\n\t\t\t\t\toffset.xy -= dir * forwardOffset;\n\t\t\t\t\toffset.z += 0.5;\n\n\t\t\t\t#endif\n\n\t\t\t\t// endcaps\n\t\t\t\tif ( position.y > 1.0 || position.y < 0.0 ) {\n\n\t\t\t\t\toffset.xy += dir * 2.0 * forwardOffset;\n\n\t\t\t\t}\n\n\t\t\t\t// adjust for linewidth\n\t\t\t\toffset *= linewidth * 0.5;\n\n\t\t\t\t// set the world position\n\t\t\t\tworldPos = ( position.y < 0.5 ) ? start : end;\n\t\t\t\tworldPos.xyz += offset;\n\n\t\t\t\t// project the worldpos\n\t\t\t\tvec4 clip = projectionMatrix * worldPos;\n\n\t\t\t\t// shift the depth of the projected points so the line\n\t\t\t\t// segments overlap neatly\n\t\t\t\tvec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd;\n\t\t\t\tclip.z = clipPose.z * clip.w;\n\n\t\t\t#else\n\n\t\t\t\tvec2 offset = vec2( dir.y, - dir.x );\n\t\t\t\t// undo aspect ratio adjustment\n\t\t\t\tdir.x /= aspect;\n\t\t\t\toffset.x /= aspect;\n\n\t\t\t\t// sign flip\n\t\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\t// endcaps\n\t\t\t\tif ( position.y < 0.0 ) {\n\n\t\t\t\t\toffset += - dir;\n\n\t\t\t\t} else if ( position.y > 1.0 ) {\n\n\t\t\t\t\toffset += dir;\n\n\t\t\t\t}\n\n\t\t\t\t// adjust for linewidth\n\t\t\t\toffset *= linewidth;\n\n\t\t\t\t// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n\t\t\t\toffset /= resolution.y;\n\n\t\t\t\t// select end\n\t\t\t\tvec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\n\n\t\t\t\t// back to clip space\n\t\t\t\toffset *= clip.w;\n\n\t\t\t\tclip.xy += offset;\n\n\t\t\t#endif\n\n\t\t\tgl_Position = clip;\n\n\t\t\tvec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\n\n\t\t\t#include <logdepthbuf_vertex>\n\t\t\t#include <clipping_planes_vertex>\n\t\t\t#include <fog_vertex>\n\n\t\t}\n\t\t",fragmentShader:"\n\t\tuniform vec3 diffuse;\n\t\tuniform float opacity;\n\t\tuniform float linewidth;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashOffset;\n\t\t\tuniform float dashSize;\n\t\t\tuniform float gapSize;\n\n\t\t#endif\n\n\t\tvarying float vLineDistance;\n\n\t\t#ifdef WORLD_UNITS\n\n\t\t\tvarying vec4 worldPos;\n\t\t\tvarying vec3 worldStart;\n\t\t\tvarying vec3 worldEnd;\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t#endif\n\n\t\t#else\n\n\t\t\tvarying vec2 vUv;\n\n\t\t#endif\n\n\t\t#include <common>\n\t\t#include <color_pars_fragment>\n\t\t#include <fog_pars_fragment>\n\t\t#include <logdepthbuf_pars_fragment>\n\t\t#include <clipping_planes_pars_fragment>\n\n\t\tvec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) {\n\n\t\t\tfloat mua;\n\t\t\tfloat mub;\n\n\t\t\tvec3 p13 = p1 - p3;\n\t\t\tvec3 p43 = p4 - p3;\n\n\t\t\tvec3 p21 = p2 - p1;\n\n\t\t\tfloat d1343 = dot( p13, p43 );\n\t\t\tfloat d4321 = dot( p43, p21 );\n\t\t\tfloat d1321 = dot( p13, p21 );\n\t\t\tfloat d4343 = dot( p43, p43 );\n\t\t\tfloat d2121 = dot( p21, p21 );\n\n\t\t\tfloat denom = d2121 * d4343 - d4321 * d4321;\n\n\t\t\tfloat numer = d1343 * d4321 - d1321 * d4343;\n\n\t\t\tmua = numer / denom;\n\t\t\tmua = clamp( mua, 0.0, 1.0 );\n\t\t\tmub = ( d1343 + d4321 * ( mua ) ) / d4343;\n\t\t\tmub = clamp( mub, 0.0, 1.0 );\n\n\t\t\treturn vec2( mua, mub );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#include <clipping_planes_fragment>\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tif ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n\t\t\t\tif ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n\t\t\t#endif\n\n\t\t\tfloat alpha = opacity;\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t// Find the closest points on the view ray and the line segment\n\t\t\t\tvec3 rayEnd = normalize( worldPos.xyz ) * 1e5;\n\t\t\t\tvec3 lineDir = worldEnd - worldStart;\n\t\t\t\tvec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd );\n\n\t\t\t\tvec3 p1 = worldStart + lineDir * params.x;\n\t\t\t\tvec3 p2 = rayEnd * params.y;\n\t\t\t\tvec3 delta = p1 - p2;\n\t\t\t\tfloat len = length( delta );\n\t\t\t\tfloat norm = len / linewidth;\n\n\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t\tfloat dnorm = fwidth( norm );\n\t\t\t\t\t\talpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm );\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\tif ( norm > 0.5 ) {\n\n\t\t\t\t\t\t\tdiscard;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t#endif\n\n\t\t\t\t#endif\n\n\t\t\t#else\n\n\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t// artifacts appear on some hardware if a derivative is taken within a conditional\n\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\tfloat len2 = a * a + b * b;\n\t\t\t\t\tfloat dlen = fwidth( len2 );\n\n\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\talpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t#else\n\n\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\t\tfloat len2 = a * a + b * b;\n\n\t\t\t\t\t\tif ( len2 > 1.0 ) discard;\n\n\t\t\t\t\t}\n\n\t\t\t\t#endif\n\n\t\t\t#endif\n\n\t\t\tvec4 diffuseColor = vec4( diffuse, alpha );\n\n\t\t\t#include <logdepthbuf_fragment>\n\t\t\t#include <color_fragment>\n\n\t\t\tgl_FragColor = vec4( diffuseColor.rgb, alpha );\n\n\t\t\t#include <tonemapping_fragment>\n\t\t\t#include <encodings_fragment>\n\t\t\t#include <fog_fragment>\n\t\t\t#include <premultiplied_alpha_fragment>\n\n\t\t}\n\t\t"};class n extends t.ShaderMaterial{constructor(n){super({type:"LineMaterial",uniforms:t.UniformsUtils.clone(t.ShaderLib.line.uniforms),vertexShader:t.ShaderLib.line.vertexShader,fragmentShader:t.ShaderLib.line.fragmentShader,clipping:!0}),this.isLineMaterial=!0,Object.defineProperties(this,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(t){this.uniforms.diffuse.value=t}},worldUnits:{enumerable:!0,get:function(){return"WORLD_UNITS"in this.defines},set:function(t){!0===t?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(t){this.uniforms.linewidth.value=t}},dashed:{enumerable:!0,get:function(){return Boolean("USE_DASH"in this.defines)},set(t){Boolean(t)!==Boolean("USE_DASH"in this.defines)&&(this.needsUpdate=!0),!0===t?this.defines.USE_DASH="":delete this.defines.USE_DASH}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(t){this.uniforms.dashScale.value=t}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(t){this.uniforms.dashSize.value=t}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(t){this.uniforms.dashOffset.value=t}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(t){this.uniforms.gapSize.value=t}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(t){this.uniforms.opacity.value=t}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(t){this.uniforms.resolution.value.copy(t)}},alphaToCoverage:{enumerable:!0,get:function(){return Boolean("USE_ALPHA_TO_COVERAGE"in this.defines)},set:function(t){Boolean(t)!==Boolean("USE_ALPHA_TO_COVERAGE"in this.defines)&&(this.needsUpdate=!0),!0===t?(this.defines.USE_ALPHA_TO_COVERAGE="",this.extensions.derivatives=!0):(delete this.defines.USE_ALPHA_TO_COVERAGE,this.extensions.derivatives=!1)}}}),this.setValues(n)}}exports.LineMaterial=n;
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("three"),e=require("./LineSegmentsGeometry.cjs.js"),n=require("./LineMaterial.cjs.js");const r=new t.Vector3,i=new t.Vector3,a=new t.Vector4,o=new t.Vector4,s=new t.Vector4,c=new t.Vector3,l=new t.Matrix4,u=new t.Line3,p=new t.Vector3,d=new t.Box3,f=new t.Sphere,m=new t.Vector4;let y,x,w,h;function b(t,e,n){return m.set(0,0,-e,1).applyMatrix4(t.projectionMatrix),m.multiplyScalar(1/m.w),m.x=h/n.width,m.y=h/n.height,m.applyMatrix4(t.projectionMatrixInverse),m.multiplyScalar(1/m.w),Math.abs(Math.max(m.x,m.y))}class M extends t.Mesh{constructor(t=new e.LineSegmentsGeometry,r=new n.LineMaterial({color:16777215*Math.random()})){super(t,r),this.isLineSegments2=!0,this.type="LineSegments2"}computeLineDistances(){const e=this.geometry,n=e.attributes.instanceStart,a=e.attributes.instanceEnd,o=new Float32Array(2*n.count);for(let t=0,e=0,s=n.count;t<s;t++,e+=2)r.fromBufferAttribute(n,t),i.fromBufferAttribute(a,t),o[e]=0===e?0:o[e-1],o[e+1]=o[e]+r.distanceTo(i);const s=new t.InstancedInterleavedBuffer(o,2,1);return e.setAttribute("instanceDistanceStart",new t.InterleavedBufferAttribute(s,1,0)),e.setAttribute("instanceDistanceEnd",new t.InterleavedBufferAttribute(s,1,1)),this}raycast(e,n){const r=this.material.worldUnits,i=e.camera;null!==i||r||console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2 while worldUnits is set to false.');const m=void 0!==e.params.Line2&&e.params.Line2.threshold||0;y=e.ray;const M=this.matrixWorld,S=this.geometry,g=this.material;let B,z;if(h=g.linewidth+m,x=S.attributes.instanceStart,w=S.attributes.instanceEnd,null===S.boundingSphere&&S.computeBoundingSphere(),f.copy(S.boundingSphere).applyMatrix4(M),r)B=.5*h;else{B=b(i,Math.max(i.near,f.distanceToPoint(y.origin)),g.resolution)}if(f.radius+=B,!1!==y.intersectsSphere(f)){if(null===S.boundingBox&&S.computeBoundingBox(),d.copy(S.boundingBox).applyMatrix4(M),r)z=.5*h;else{z=b(i,Math.max(i.near,d.distanceToPoint(y.origin)),g.resolution)}d.expandByScalar(z),!1!==y.intersectsBox(d)&&(r?function(e,n){for(let r=0,i=x.count;r<i;r++){u.start.fromBufferAttribute(x,r),u.end.fromBufferAttribute(w,r);const i=new t.Vector3,a=new t.Vector3;y.distanceSqToSegment(u.start,u.end,a,i),a.distanceTo(i)<.5*h&&n.push({point:a,pointOnLine:i,distance:y.origin.distanceTo(a),object:e,face:null,faceIndex:r,uv:null,uv2:null})}}(this,n):function(e,n,r){const i=n.projectionMatrix,d=e.material.resolution,f=e.matrixWorld,m=e.geometry,x=m.attributes.instanceStart,w=m.attributes.instanceEnd,b=-n.near;y.at(1,s),s.w=1,s.applyMatrix4(n.matrixWorldInverse),s.applyMatrix4(i),s.multiplyScalar(1/s.w),s.x*=d.x/2,s.y*=d.y/2,s.z=0,c.copy(s),l.multiplyMatrices(n.matrixWorldInverse,f);for(let n=0,s=x.count;n<s;n++){if(a.fromBufferAttribute(x,n),o.fromBufferAttribute(w,n),a.w=1,o.w=1,a.applyMatrix4(l),o.applyMatrix4(l),a.z>b&&o.z>b)continue;if(a.z>b){const t=a.z-o.z,e=(a.z-b)/t;a.lerp(o,e)}else if(o.z>b){const t=o.z-a.z,e=(o.z-b)/t;o.lerp(a,e)}a.applyMatrix4(i),o.applyMatrix4(i),a.multiplyScalar(1/a.w),o.multiplyScalar(1/o.w),a.x*=d.x/2,a.y*=d.y/2,o.x*=d.x/2,o.y*=d.y/2,u.start.copy(a),u.start.z=0,u.end.copy(o),u.end.z=0;const s=u.closestPointToPointParameter(c,!0);u.at(s,p);const m=t.MathUtils.lerp(a.z,o.z,s),M=m>=-1&&m<=1,S=c.distanceTo(p)<.5*h;if(M&&S){u.start.fromBufferAttribute(x,n),u.end.fromBufferAttribute(w,n),u.start.applyMatrix4(f),u.end.applyMatrix4(f);const i=new t.Vector3,a=new t.Vector3;y.distanceSqToSegment(u.start,u.end,a,i),r.push({point:a,pointOnLine:i,distance:y.origin.distanceTo(a),object:e,face:null,faceIndex:n,uv:null,uv2:null})}}}(this,i,n))}}}exports.LineSegments2=M;
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("three");const e=new t.Box3,r=new t.Vector3;class i extends t.InstancedBufferGeometry{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry";this.setIndex([0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5]),this.setAttribute("position",new t.Float32BufferAttribute([-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],3)),this.setAttribute("uv",new t.Float32BufferAttribute([-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],2))}applyMatrix4(t){const e=this.attributes.instanceStart,r=this.attributes.instanceEnd;return void 0!==e&&(e.applyMatrix4(t),r.applyMatrix4(t),e.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}setPositions(e){let r;e instanceof Float32Array?r=e:Array.isArray(e)&&(r=new Float32Array(e));const i=new t.InstancedInterleavedBuffer(r,6,1);return this.setAttribute("instanceStart",new t.InterleavedBufferAttribute(i,3,0)),this.setAttribute("instanceEnd",new t.InterleavedBufferAttribute(i,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(e){let r;e instanceof Float32Array?r=e:Array.isArray(e)&&(r=new Float32Array(e));const i=new t.InstancedInterleavedBuffer(r,6,1);return this.setAttribute("instanceColorStart",new t.InterleavedBufferAttribute(i,3,0)),this.setAttribute("instanceColorEnd",new t.InterleavedBufferAttribute(i,3,3)),this}fromWireframeGeometry(t){return this.setPositions(t.attributes.position.array),this}fromEdgesGeometry(t){return this.setPositions(t.attributes.position.array),this}fromMesh(e){return this.fromWireframeGeometry(new t.WireframeGeometry(e.geometry)),this}fromLineSegments(t){const e=t.geometry;return this.setPositions(e.attributes.position.array),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new t.Box3);const r=this.attributes.instanceStart,i=this.attributes.instanceEnd;void 0!==r&&void 0!==i&&(this.boundingBox.setFromBufferAttribute(r),e.setFromBufferAttribute(i),this.boundingBox.union(e))}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new t.Sphere),null===this.boundingBox&&this.computeBoundingBox();const e=this.attributes.instanceStart,i=this.attributes.instanceEnd;if(void 0!==e&&void 0!==i){const t=this.boundingSphere.center;this.boundingBox.getCenter(t);let n=0;for(let s=0,o=e.count;s<o;s++)r.fromBufferAttribute(e,s),n=Math.max(n,t.distanceToSquared(r)),r.fromBufferAttribute(i,s),n=Math.max(n,t.distanceToSquared(r));this.boundingSphere.radius=Math.sqrt(n),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}}toJSON(){}applyMatrix(t){return console.warn("THREE.LineSegmentsGeometry: applyMatrix() has been renamed to applyMatrix4()."),this.applyMatrix4(t)}}exports.LineSegmentsGeometry=i;
|
package/lines/Wireframe.cjs.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("./LineSegmentsGeometry.cjs.js"),r=require("./LineMaterial.cjs.js");const n=new e.Vector3,s=new e.Vector3;class i extends e.Mesh{constructor(e=new t.LineSegmentsGeometry,n=new r.LineMaterial({color:16777215*Math.random()})){super(e,n),this.isWireframe=!0,this.type="Wireframe"}computeLineDistances(){const t=this.geometry,r=t.attributes.instanceStart,i=t.attributes.instanceEnd,a=new Float32Array(2*r.count);for(let e=0,t=0,c=r.count;e<c;e++,t+=2)n.fromBufferAttribute(r,e),s.fromBufferAttribute(i,e),a[t]=0===t?0:a[t-1],a[t+1]=a[t]+n.distanceTo(s);const c=new e.InstancedInterleavedBuffer(a,2,1);return t.setAttribute("instanceDistanceStart",new e.InterleavedBufferAttribute(c,1,0)),t.setAttribute("instanceDistanceEnd",new e.InterleavedBufferAttribute(c,1,1)),this}}exports.Wireframe=i;
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("./LineSegmentsGeometry.cjs.js");class t extends r.LineSegmentsGeometry{constructor(r){super(),this.isWireframeGeometry2=!0,this.type="WireframeGeometry2",this.fromWireframeGeometry(new e.WireframeGeometry(r))}}exports.WireframeGeometry2=t;
|
package/loaders/3DMLoader.cjs.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");const t=new WeakMap;class r extends e.Loader{constructor(e){super(e),this.libraryPath="",this.libraryPending=null,this.libraryBinary=null,this.libraryConfig={},this.url="",this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.workerConfig={},this.materials=[]}setLibraryPath(e){return this.libraryPath=e,this}setWorkerLimit(e){return this.workerLimit=e,this}load(r,s,o,a){const n=new e.FileLoader(this.manager);n.setPath(this.path),n.setResponseType("arraybuffer"),n.setRequestHeader(this.requestHeader),this.url=r,n.load(r,(e=>{if(t.has(e)){return t.get(e).promise.then(s).catch(a)}this.decodeObjects(e,r).then(s).catch(a)}),o,a)}debug(){console.log("Task load: ",this.workerPool.map((e=>e._taskLoad)))}decodeObjects(e,r){let s,o;const a=e.byteLength,n=this._getWorker(a).then((t=>(s=t,o=this.workerNextTaskID++,new Promise(((t,r)=>{s._callbacks[o]={resolve:t,reject:r},s.postMessage({type:"decode",id:o,buffer:e},[e])}))))).then((e=>this._createGeometry(e.data)));return n.catch((()=>!0)).then((()=>{s&&o&&this._releaseTask(s,o)})),t.set(e,{url:r,promise:n}),n}parse(e,t,r){this.decodeObjects(e,"").then(t).catch(r)}_compareMaterials(e){const t={};t.name=e.name,t.color={},t.color.r=e.color.r,t.color.g=e.color.g,t.color.b=e.color.b,t.type=e.type;for(let e=0;e<this.materials.length;e++){const r=this.materials[e],s={};if(s.name=r.name,s.color={},s.color.r=r.color.r,s.color.g=r.color.g,s.color.b=r.color.b,s.type=r.type,JSON.stringify(t)===JSON.stringify(s))return r}return this.materials.push(e),e}_createMaterial(t){if(void 0===t)return new e.MeshStandardMaterial({color:new e.Color(1,1,1),metalness:.8,name:"default",side:2});const r=t.diffuseColor,s=new e.Color(r.r/255,r.g/255,r.b/255);0===r.r&&0===r.g&&0===r.b&&(s.r=1,s.g=1,s.b=1);const o=new e.MeshStandardMaterial({color:s,name:t.name,side:2,transparent:t.transparency>0,opacity:1-t.transparency}),a=new e.TextureLoader;for(let e=0;e<t.textures.length;e++){const r=t.textures[e];if(null!==r.image){const e=a.load(r.image);switch(r.type){case"Diffuse":o.map=e;break;case"Bump":o.bumpMap=e;break;case"Transparency":o.alphaMap=e,o.transparent=!0;break;case"Emap":o.envMap=e}}}return o}_createGeometry(t){const r=new e.Object3D,s=[],o=[],a=[];r.userData.layers=t.layers,r.userData.groups=t.groups,r.userData.settings=t.settings,r.userData.objectType="File3dm",r.userData.materials=null,r.name=this.url;let n=t.objects;const i=t.materials;for(let e=0;e<n.length;e++){const c=n[e],l=c.attributes;switch(c.objectType){case"InstanceDefinition":o.push(c);break;case"InstanceReference":a.push(c);break;default:let e;if(l.materialIndex>=0){const t=i[l.materialIndex];let r=this._createMaterial(t);r=this._compareMaterials(r),e=this._createObject(c,r)}else{const t=this._createMaterial();e=this._createObject(c,t)}if(void 0===e)continue;const n=t.layers[l.layerIndex];e.visible=!n||t.layers[l.layerIndex].visible,l.isInstanceDefinitionObject?s.push(e):r.add(e)}}for(let t=0;t<o.length;t++){const i=o[t];n=[];for(let e=0;e<i.attributes.objectIds.length;e++){const t=i.attributes.objectIds[e];for(let e=0;e<s.length;e++){t===s[e].userData.attributes.id&&n.push(s[e])}}for(let t=0;t<a.length;t++){const s=a[t];if(s.geometry.parentIdefId===i.attributes.id){const t=new e.Object3D,o=s.geometry.xform.array,a=new e.Matrix4;a.set(o[0],o[1],o[2],o[3],o[4],o[5],o[6],o[7],o[8],o[9],o[10],o[11],o[12],o[13],o[14],o[15]),t.applyMatrix4(a);for(let e=0;e<n.length;e++)t.add(n[e].clone(!0));r.add(t)}}}return r.userData.materials=this.materials,r}_createObject(t,r){const s=new e.BufferGeometryLoader,o=t.attributes;let a,n,i,c;switch(t.objectType){case"Point":case"PointSet":a=s.parse(t.geometry),a.attributes.hasOwnProperty("color")?n=new e.PointsMaterial({vertexColors:!0,sizeAttenuation:!1,size:2}):(i=o.drawColor,c=new e.Color(i.r/255,i.g/255,i.b/255),n=new e.PointsMaterial({color:c,sizeAttenuation:!1,size:2})),n=this._compareMaterials(n);const l=new e.Points(a,n);return l.userData.attributes=o,l.userData.objectType=t.objectType,o.name&&(l.name=o.name),l;case"Mesh":case"Extrusion":case"SubD":case"Brep":if(null===t.geometry)return;a=s.parse(t.geometry),a.attributes.hasOwnProperty("color")&&(r.vertexColors=!0),null===r&&(r=this._createMaterial(),r=this._compareMaterials(r));const u=new e.Mesh(a,r);return u.castShadow=o.castsShadows,u.receiveShadow=o.receivesShadows,u.userData.attributes=o,u.userData.objectType=t.objectType,o.name&&(u.name=o.name),u;case"Curve":a=s.parse(t.geometry),i=o.drawColor,c=new e.Color(i.r/255,i.g/255,i.b/255),n=new e.LineBasicMaterial({color:c}),n=this._compareMaterials(n);const h=new e.Line(a,n);return h.userData.attributes=o,h.userData.objectType=t.objectType,o.name&&(h.name=o.name),h;case"TextDot":a=t.geometry;const p=document.createElement("canvas").getContext("2d"),d=`${a.fontHeight}px ${a.fontFace}`;p.font=d;const y=p.measureText(a.text).width+10,g=a.fontHeight+10,m=window.devicePixelRatio;p.canvas.width=y*m,p.canvas.height=g*m,p.canvas.style.width=y+"px",p.canvas.style.height=g+"px",p.setTransform(m,0,0,m,0,0),p.font=d,p.textBaseline="middle",p.textAlign="center",c=o.drawColor,p.fillStyle=`rgba(${c.r},${c.g},${c.b},${c.a})`,p.fillRect(0,0,y,g),p.fillStyle="white",p.fillText(a.text,y/2,g/2);const b=new e.CanvasTexture(p.canvas);b.minFilter=e.LinearFilter,b.wrapS=e.ClampToEdgeWrapping,b.wrapT=e.ClampToEdgeWrapping,n=new e.SpriteMaterial({map:b,depthTest:!1});const f=new e.Sprite(n);return f.position.set(a.point[0],a.point[1],a.point[2]),f.scale.set(y/10,g/10,1),f.userData.attributes=o,f.userData.objectType=t.objectType,o.name&&(f.name=o.name),f;case"Light":let T;if(a=t.geometry,a.isDirectionalLight)T=new e.DirectionalLight,T.castShadow=o.castsShadows,T.position.set(a.location[0],a.location[1],a.location[2]),T.target.position.set(a.direction[0],a.direction[1],a.direction[2]),T.shadow.normalBias=.1;else if(a.isPointLight)T=new e.PointLight,T.castShadow=o.castsShadows,T.position.set(a.location[0],a.location[1],a.location[2]),T.shadow.normalBias=.1;else if(a.isRectangularLight){T=new e.RectAreaLight;const t=Math.abs(a.width[2]),r=Math.abs(a.length[0]);T.position.set(a.location[0]-r/2,a.location[1],a.location[2]-t/2),T.height=r,T.width=t,T.lookAt(new e.Vector3(a.direction[0],a.direction[1],a.direction[2]))}else if(a.isSpotLight)T=new e.SpotLight,T.castShadow=o.castsShadows,T.position.set(a.location[0],a.location[1],a.location[2]),T.target.position.set(a.direction[0],a.direction[1],a.direction[2]),T.angle=a.spotAngleRadians,T.shadow.normalBias=.1;else if(a.isLinearLight)return void console.warn("THREE.3DMLoader: No conversion exists for linear lights.");return T&&(T.intensity=a.intensity,i=a.diffuse,c=new e.Color(i.r/255,i.g/255,i.b/255),T.color=c,T.userData.attributes=o,T.userData.objectType=t.objectType),T}}_initLibrary(){if(!this.libraryPending){const t=new e.FileLoader(this.manager);t.setPath(this.libraryPath);const r=new Promise(((e,r)=>{t.load("rhino3dm.js",e,void 0,r)})),o=new e.FileLoader(this.manager);o.setPath(this.libraryPath),o.setResponseType("arraybuffer");const a=new Promise(((e,t)=>{o.load("rhino3dm.wasm",e,void 0,t)}));this.libraryPending=Promise.all([r,a]).then((([e,t])=>{this.libraryConfig.wasmBinary=t;const r=s.toString(),o=["/* rhino3dm.js */",e,"/* worker */",r.substring(r.indexOf("{")+1,r.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([o]))}))}return this.libraryPending}_getWorker(e){return this._initLibrary().then((()=>{if(this.workerPool.length<this.workerLimit){const e=new Worker(this.workerSourceURL);e._callbacks={},e._taskCosts={},e._taskLoad=0,e.postMessage({type:"init",libraryConfig:this.libraryConfig}),e.onmessage=function(t){const r=t.data;switch(r.type){case"decode":e._callbacks[r.id].resolve(r);break;case"error":e._callbacks[r.id].reject(r);break;default:console.error('THREE.Rhino3dmLoader: Unexpected message, "'+r.type+'"')}},this.workerPool.push(e)}else this.workerPool.sort((function(e,t){return e._taskLoad>t._taskLoad?-1:1}));const t=this.workerPool[this.workerPool.length-1];return t._taskLoad+=e,t}))}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}dispose(){for(let e=0;e<this.workerPool.length;++e)this.workerPool[e].terminate();return this.workerPool.length=0,this}}function s(){let e,t,r;function s(e,t){const s=e.geometry(),n=e.attributes();let i,c,l,u,h,p=s.objectType;switch(p){case r.ObjectType.Curve:const e=a(s,100);l={},c={},u={},l.itemSize=3,l.type="Float32Array",l.array=[];for(let t=0;t<e.length;t++)l.array.push(e[t][0]),l.array.push(e[t][1]),l.array.push(e[t][2]);c.position=l,u.attributes=c,i={data:u};break;case r.ObjectType.Point:const d=s.location;l={};const y={};c={},u={},l.itemSize=3,l.type="Float32Array",l.array=[d[0],d[1],d[2]];const g=n.drawColor(t);y.itemSize=3,y.type="Float32Array",y.array=[g.r/255,g.g/255,g.b/255],c.position=l,c.color=y,u.attributes=c,i={data:u};break;case r.ObjectType.PointSet:case r.ObjectType.Mesh:i=s.toThreejsJSON();break;case r.ObjectType.Brep:const m=s.faces();h=new r.Mesh;for(let e=0;e<m.count;e++){const t=m.get(e),s=t.getMesh(r.MeshType.Any);s&&(h.append(s),s.delete()),t.delete()}h.faces().count>0&&(h.compact(),i=h.toThreejsJSON(),m.delete()),h.delete();break;case r.ObjectType.Extrusion:h=s.getMesh(r.MeshType.Any),h&&(i=h.toThreejsJSON(),h.delete());break;case r.ObjectType.TextDot:case r.ObjectType.Light:i=o(s);break;case r.ObjectType.InstanceReference:i=o(s),i.xform=o(s.xform),i.xform.array=s.xform.toFloatArray(!0);break;case r.ObjectType.SubD:s.subdivide(3),h=r.Mesh.createFromSubDControlNet(s),h&&(i=h.toThreejsJSON(),h.delete());break;default:console.warn(`THREE.3DMLoader: TODO: Implement ${p.constructor.name}`)}if(i)return c=o(n),c.geometry=o(s),n.groupCount>0&&(c.groupIds=n.getGroupList()),n.userStringCount>0&&(c.userStrings=n.getUserStrings()),s.userStringCount>0&&(c.geometry.userStrings=s.getUserStrings()),c.drawColor=n.drawColor(t),p=p.constructor.name,p=p.substring(11,p.length),{geometry:i,attributes:c,objectType:p};console.warn(`THREE.3DMLoader: ${p.constructor.name} has no associated mesh geometry.`)}function o(e){const t={};for(const r in e){const s=e[r];"function"!=typeof s&&("object"==typeof s&&null!==s&&s.hasOwnProperty("constructor")?t[r]={name:s.constructor.name,value:s.value}:t[r]=s)}return t}function a(e,t){let s=t,o=[];const n=[];if(e instanceof r.LineCurve)return[e.pointAtStart,e.pointAtEnd];if(e instanceof r.PolylineCurve){s=e.pointCount;for(let t=0;t<s;t++)o.push(e.point(t));return o}if(e instanceof r.PolyCurve){const t=e.segmentCount;for(let r=0;r<t;r++){const t=e.segmentCurve(r),n=a(t,s);o=o.concat(n),t.delete()}return o}if(e instanceof r.ArcCurve&&(s=Math.floor(e.angleDegrees/5),s=s<2?2:s),e instanceof r.NurbsCurve&&1===e.degree){const t=e.tryGetPolyline();for(let e=0;e<t.count;e++)o.push(t.get(e));return t.delete(),o}const i=e.domain,c=s-1;for(let t=0;t<s;t++){const r=i[0]+t/c*(i[1]-i[0]);if(r===i[0]||r===i[1]){n.push(r);continue}const s=e.tangentAt(r),o=e.tangentAt(n.slice(-1)[0]),a=s[0]*s[0]+s[1]*s[1]+s[2]*s[2],l=o[0]*o[0]+o[1]*o[1]+o[2]*o[2],u=Math.sqrt(a*l);let h;if(0===u)h=Math.PI/2;else{const e=(s.x*o.x+s.y*o.y+s.z*o.z)/u;h=Math.acos(Math.max(-1,Math.min(1,e)))}h<.1||n.push(r)}return o=n.map((t=>e.pointAt(t))),o}onmessage=function(a){const n=a.data;switch(n.type){case"init":t=n.libraryConfig;const a=t.wasmBinary;let i;e=new Promise((function(e){i={wasmBinary:a,onRuntimeInitialized:e},rhino3dm(i)})).then((()=>{r=i}));break;case"decode":const c=n.buffer;e.then((()=>{const e=function(e,t){const r=new Uint8Array(t),a=e.File3dm.fromByteArray(r),n=[],i=[],c=[],l=[],u=[],h=[],p=a.objects(),d=p.count;for(let e=0;e<d;e++){const t=p.get(e),r=s(t,a);t.delete(),r&&n.push(r)}for(let e=0;e<a.instanceDefinitions().count();e++){const t=a.instanceDefinitions().get(e),r=o(t);r.objectIds=t.getObjectIds(),n.push({geometry:null,attributes:r,objectType:"InstanceDefinition"})}const y=[e.TextureType.Diffuse,e.TextureType.Bump,e.TextureType.Transparency,e.TextureType.Opacity,e.TextureType.Emap],g=[e.TextureType.PBR_BaseColor,e.TextureType.PBR_Subsurface,e.TextureType.PBR_SubsurfaceScattering,e.TextureType.PBR_SubsurfaceScatteringRadius,e.TextureType.PBR_Metallic,e.TextureType.PBR_Specular,e.TextureType.PBR_SpecularTint,e.TextureType.PBR_Roughness,e.TextureType.PBR_Anisotropic,e.TextureType.PBR_Anisotropic_Rotation,e.TextureType.PBR_Sheen,e.TextureType.PBR_SheenTint,e.TextureType.PBR_Clearcoat,e.TextureType.PBR_ClearcoatBump,e.TextureType.PBR_ClearcoatRoughness,e.TextureType.PBR_OpacityIor,e.TextureType.PBR_OpacityRoughness,e.TextureType.PBR_Emission,e.TextureType.PBR_AmbientOcclusion,e.TextureType.PBR_Displacement];for(let e=0;e<a.materials().count();e++){const t=a.materials().get(e),r=t.physicallyBased();let s=o(t);const n=[];for(let e=0;e<y.length;e++){const r=t.getTexture(y[e]);if(r){let t=y[e].constructor.name;t=t.substring(12,t.length);const s={type:t},o=a.getEmbeddedFileAsBase64(r.fileName);o?s.image="data:image/png;base64,"+o:(console.warn(`THREE.3DMLoader: Image for ${t} texture not embedded in file.`),s.image=null),n.push(s),r.delete()}}if(s.textures=n,r.supported){console.log("pbr true");for(let e=0;e<g.length;e++){const r=t.getTexture(y[e]);if(r){const t=a.getEmbeddedFileAsBase64(r.fileName);let s=y[e].constructor.name;s=s.substring(12,s.length);const o={type:s,image:"data:image/png;base64,"+t};n.push(o),r.delete()}}const e=o(t.physicallyBased());s=Object.assign(e,s)}i.push(s),t.delete(),r.delete()}for(let e=0;e<a.layers().count();e++){const t=a.layers().get(e),r=o(t);c.push(r),t.delete()}for(let e=0;e<a.views().count();e++){const t=a.views().get(e),r=o(t);l.push(r),t.delete()}for(let e=0;e<a.namedViews().count();e++){const t=a.namedViews().get(e),r=o(t);u.push(r),t.delete()}for(let e=0;e<a.groups().count();e++){const t=a.groups().get(e),r=o(t);h.push(r),t.delete()}const m=o(a.settings());return a.delete(),{objects:n,materials:i,layers:c,views:l,namedViews:u,groups:h,settings:m}}(r,c);self.postMessage({type:"decode",id:n.id,data:e})}))}}}exports.Rhino3dmLoader=r;
|
package/loaders/3MFLoader.cjs.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("fflate");class r extends e.Loader{constructor(e){super(e),this.availableExtensions=[]}load(t,r,n,o){const s=this,i=new e.FileLoader(s.manager);i.setPath(s.path),i.setResponseType("arraybuffer"),i.setRequestHeader(s.requestHeader),i.setWithCredentials(s.withCredentials),i.load(t,(function(e){try{r(s.parse(e))}catch(e){o?o(e):console.error(e),s.manager.itemError(t)}}),n,o)}parse(r){const n=this,o=new e.TextureLoader(this.manager);function s(e){const t=[],r=(new DOMParser).parseFromString(e,"application/xml").querySelectorAll("Relationship");for(let e=0;e<r.length;e++){const n=r[e],o={target:n.getAttribute("Target"),id:n.getAttribute("Id"),type:n.getAttribute("Type")};t.push(o)}return t}function i(e){const t={id:e.getAttribute("id"),basematerials:[]},r=e.querySelectorAll("base");for(let e=0;e<r.length;e++){const n=c(r[e]);n.index=e,t.basematerials.push(n)}return t}function l(e){const t={id:e.getAttribute("id"),texid:e.getAttribute("texid"),displaypropertiesid:e.getAttribute("displaypropertiesid")},r=e.querySelectorAll("tex2coord"),n=[];for(let e=0;e<r.length;e++){const t=r[e],o=t.getAttribute("u"),s=t.getAttribute("v");n.push(parseFloat(o),parseFloat(s))}return t.uvs=new Float32Array(n),t}function a(t){const r={id:t.getAttribute("id"),displaypropertiesid:t.getAttribute("displaypropertiesid")},n=t.querySelectorAll("color"),o=[],s=new e.Color;for(let e=0;e<n.length;e++){const t=n[e].getAttribute("color");s.setStyle(t.substring(0,7)),s.convertSRGBToLinear(),o.push(s.r,s.g,s.b)}return r.colors=new Float32Array(o),r}function u(e){const t={id:e.getAttribute("id")},r=e.querySelectorAll("pbmetallic"),n=[];for(let e=0;e<r.length;e++){const t=r[e];n.push({name:t.getAttribute("name"),metallicness:parseFloat(t.getAttribute("metallicness")),roughness:parseFloat(t.getAttribute("roughness"))})}return t.data=n,t}function c(e){const t={};return t.name=e.getAttribute("name"),t.displaycolor=e.getAttribute("displaycolor"),t.displaypropertiesid=e.getAttribute("displaypropertiesid"),t}function p(e){const t={};t.objectId=e.getAttribute("objectid");const r=e.getAttribute("transform");return r&&(t.transform=d(r)),t}function d(t){const r=[];t.split(" ").forEach((function(e){r.push(parseFloat(e))}));const n=new e.Matrix4;return n.set(r[0],r[3],r[6],r[9],r[1],r[4],r[7],r[10],r[2],r[5],r[8],r[11],0,0,0,1),n}function h(e){const t={type:e.getAttribute("type")},r=e.getAttribute("id");r&&(t.id=r);const n=e.getAttribute("pid");n&&(t.pid=n);const o=e.getAttribute("pindex");o&&(t.pindex=o);const s=e.getAttribute("thumbnail");s&&(t.thumbnail=s);const i=e.getAttribute("partnumber");i&&(t.partnumber=i);const l=e.getAttribute("name");l&&(t.name=l);const a=e.querySelector("mesh");a&&(t.mesh=function(e){const t={},r=[],n=e.querySelectorAll("vertices vertex");for(let e=0;e<n.length;e++){const t=n[e],o=t.getAttribute("x"),s=t.getAttribute("y"),i=t.getAttribute("z");r.push(parseFloat(o),parseFloat(s),parseFloat(i))}t.vertices=new Float32Array(r);const o=[],s=[],i=e.querySelectorAll("triangles triangle");for(let e=0;e<i.length;e++){const t=i[e],r=t.getAttribute("v1"),n=t.getAttribute("v2"),l=t.getAttribute("v3"),a=t.getAttribute("p1"),u=t.getAttribute("p2"),c=t.getAttribute("p3"),p=t.getAttribute("pid"),d={};d.v1=parseInt(r,10),d.v2=parseInt(n,10),d.v3=parseInt(l,10),s.push(d.v1,d.v2,d.v3),a&&(d.p1=parseInt(a,10)),u&&(d.p2=parseInt(u,10)),c&&(d.p3=parseInt(c,10)),p&&(d.pid=p),0<Object.keys(d).length&&o.push(d)}return t.triangleProperties=o,t.triangles=new Uint32Array(s),t}(a));const u=e.querySelector("components");return u&&(t.components=function(e){const t=[],r=e.querySelectorAll("component");for(let e=0;e<r.length;e++){const n=p(r[e]);t.push(n)}return t}(u)),t}function g(e){const t={unit:e.getAttribute("unit")||"millimeter"},r=e.querySelectorAll("metadata");r&&(t.metadata=function(e){const t={};for(let r=0;r<e.length;r++){const n=e[r],o=n.getAttribute("name");0<=["Title","Designer","Description","Copyright","LicenseTerms","Rating","CreationDate","ModificationDate"].indexOf(o)&&(t[o]=n.textContent)}return t}(r));const n=e.querySelector("resources");n&&(t.resources=function(e){const t={basematerials:{}},r=e.querySelectorAll("basematerials");for(let e=0;e<r.length;e++){const n=i(r[e]);t.basematerials[n.id]=n}t.texture2d={};const n=e.querySelectorAll("texture2d");for(let e=0;e<n.length;e++){const r={id:(o=n[e]).getAttribute("id"),path:o.getAttribute("path"),contenttype:o.getAttribute("contenttype"),tilestyleu:o.getAttribute("tilestyleu"),tilestylev:o.getAttribute("tilestylev"),filter:o.getAttribute("filter")};t.texture2d[r.id]=r}var o;t.colorgroup={};const s=e.querySelectorAll("colorgroup");for(let e=0;e<s.length;e++){const r=a(s[e]);t.colorgroup[r.id]=r}t.pbmetallicdisplayproperties={};const c=e.querySelectorAll("pbmetallicdisplayproperties");for(let e=0;e<c.length;e++){const r=u(c[e]);t.pbmetallicdisplayproperties[r.id]=r}t.texture2dgroup={};const p=e.querySelectorAll("texture2dgroup");for(let e=0;e<p.length;e++){const r=l(p[e]);t.texture2dgroup[r.id]=r}t.object={};const d=e.querySelectorAll("object");for(let e=0;e<d.length;e++){const r=h(d[e]);t.object[r.id]=r}return t}(n));const o=e.querySelector("build");return o&&(t.build=function(e){const t=[],r=e.querySelectorAll("item");for(let e=0;e<r.length;e++){const n=r[e],o={objectId:n.getAttribute("objectid")},s=n.getAttribute("transform");s&&(o.transform=d(s)),t.push(o)}return t}(o)),t}function f(t,r,n,s){const i=t.texid,l=n.resources.texture2d[i];if(l){const t=s[l.path],r=l.contenttype,n=new Blob([t],{type:r}),i=URL.createObjectURL(n),a=o.load(i,(function(){URL.revokeObjectURL(i)}));switch(a.encoding=e.sRGBEncoding,l.tilestyleu){case"wrap":a.wrapS=e.RepeatWrapping;break;case"mirror":a.wrapS=e.MirroredRepeatWrapping;break;case"none":case"clamp":a.wrapS=e.ClampToEdgeWrapping;break;default:a.wrapS=e.RepeatWrapping}switch(l.tilestylev){case"wrap":a.wrapT=e.RepeatWrapping;break;case"mirror":a.wrapT=e.MirroredRepeatWrapping;break;case"none":case"clamp":a.wrapT=e.ClampToEdgeWrapping;break;default:a.wrapT=e.RepeatWrapping}switch(l.filter){case"auto":a.magFilter=e.LinearFilter,a.minFilter=e.LinearMipmapLinearFilter;break;case"linear":a.magFilter=e.LinearFilter,a.minFilter=e.LinearFilter;break;case"nearest":a.magFilter=e.NearestFilter,a.minFilter=e.NearestFilter;break;default:a.magFilter=e.LinearFilter,a.minFilter=e.LinearMipmapLinearFilter}return a}return null}function b(t,r,n,o,s,i,l){const a=l.pindex,u={};for(let e=0,t=r.length;e<t;e++){const t=r[e],n=void 0!==t.p1?t.p1:a;void 0===u[n]&&(u[n]=[]),u[n].push(t)}const c=Object.keys(u),p=[];for(let r=0,a=c.length;r<a;r++){const a=c[r],d=u[a],h=w(t.basematerials[a],o,s,i,l,F),g=new e.BufferGeometry,f=[],b=n.vertices;for(let e=0,t=d.length;e<t;e++){const t=d[e];f.push(b[3*t.v1+0]),f.push(b[3*t.v1+1]),f.push(b[3*t.v1+2]),f.push(b[3*t.v2+0]),f.push(b[3*t.v2+1]),f.push(b[3*t.v2+2]),f.push(b[3*t.v3+0]),f.push(b[3*t.v3+1]),f.push(b[3*t.v3+2])}g.setAttribute("position",new e.Float32BufferAttribute(f,3));const m=new e.Mesh(g,h);p.push(m)}return p}function m(t,r,n,o,s,i,l){const a=new e.BufferGeometry,u=[],c=[],p=n.vertices,d=t.uvs;for(let e=0,t=r.length;e<t;e++){const t=r[e];u.push(p[3*t.v1+0]),u.push(p[3*t.v1+1]),u.push(p[3*t.v1+2]),u.push(p[3*t.v2+0]),u.push(p[3*t.v2+1]),u.push(p[3*t.v2+2]),u.push(p[3*t.v3+0]),u.push(p[3*t.v3+1]),u.push(p[3*t.v3+2]),c.push(d[2*t.p1+0]),c.push(d[2*t.p1+1]),c.push(d[2*t.p2+0]),c.push(d[2*t.p2+1]),c.push(d[2*t.p3+0]),c.push(d[2*t.p3+1])}a.setAttribute("position",new e.Float32BufferAttribute(u,3)),a.setAttribute("uv",new e.Float32BufferAttribute(c,2));const h=w(t,o,s,i,l,f),g=new e.MeshPhongMaterial({map:h,flatShading:!0});return new e.Mesh(a,g)}function A(t,r,n,o,s,i){const l=new e.BufferGeometry,a=[],u=[],c=n.vertices,p=t.colors;for(let e=0,t=r.length;e<t;e++){const t=r[e],n=t.v1,o=t.v2,s=t.v3;a.push(c[3*n+0]),a.push(c[3*n+1]),a.push(c[3*n+2]),a.push(c[3*o+0]),a.push(c[3*o+1]),a.push(c[3*o+2]),a.push(c[3*s+0]),a.push(c[3*s+1]),a.push(c[3*s+2]);const l=void 0!==t.p1?t.p1:i.pindex,d=void 0!==t.p2?t.p2:l,h=void 0!==t.p3?t.p3:l;u.push(p[3*l+0]),u.push(p[3*l+1]),u.push(p[3*l+2]),u.push(p[3*d+0]),u.push(p[3*d+1]),u.push(p[3*d+2]),u.push(p[3*h+0]),u.push(p[3*h+1]),u.push(p[3*h+2])}l.setAttribute("position",new e.Float32BufferAttribute(a,3)),l.setAttribute("color",new e.Float32BufferAttribute(u,3));const d=new e.MeshPhongMaterial({vertexColors:!0,flatShading:!0});return new e.Mesh(l,d)}function y(t){const r=new e.BufferGeometry;r.setIndex(new e.BufferAttribute(t.triangles,1)),r.setAttribute("position",new e.BufferAttribute(t.vertices,3));const n=new e.MeshPhongMaterial({color:11184895,flatShading:!0});return new e.Mesh(r,n)}function v(e,t){return void 0!==t.resources.texture2dgroup[e]?"texture":void 0!==t.resources.basematerials[e]?"material":void 0!==t.resources.colorgroup[e]?"vertexColors":"default"===e?"default":void 0}function x(t,r,n,o,s){const i=new e.Group,l=function(e,t,r,n,o,s){const i=Object.keys(e),l=[];for(let a=0,u=i.length;a<u;a++){const u=i[a],c=e[u];switch(v(u,n)){case"material":const e=b(n.resources.basematerials[u],c,t,r,n,o,s);for(let t=0,r=e.length;t<r;t++)l.push(e[t]);break;case"texture":const i=n.resources.texture2dgroup[u];l.push(m(i,c,t,r,n,o,s));break;case"vertexColors":const a=n.resources.colorgroup[u];l.push(A(a,c,t,0,0,s));break;case"default":l.push(y(t));break;default:console.error("THREE.3MFLoader: Unsupported resource type.")}}return l}(function(e,t,r){const n={},o=t.triangleProperties,s=r.pid;for(let e=0,t=o.length;e<t;e++){const t=o[e];let r=void 0!==t.pid?t.pid:s;void 0===r&&(r="default"),void 0===n[r]&&(n[r]=[]),n[r].push(t)}return n}(0,t,s),t,r,n,o,s);for(let e=0,t=l.length;e<t;e++)i.add(l[e]);return i}function w(e,t,r,n,o,s){return void 0!==e.build||(e.build=s(e,t,r,n,o)),e.build}function F(t,r,n){let o;const s=t.displaypropertiesid,i=n.resources.pbmetallicdisplayproperties;if(null!==s&&void 0!==i[s]){const r=i[s].data[t.index];o=new e.MeshStandardMaterial({flatShading:!0,roughness:r.roughness,metalness:r.metallicness})}else o=new e.MeshPhongMaterial({flatShading:!0});o.name=t.name;const l=t.displaycolor,a=l.substring(0,7);return o.color.setStyle(a),o.color.convertSRGBToLinear(),9===l.length&&(o.opacity=parseInt(l.charAt(7)+l.charAt(8),16)/255),o}function S(t,r,n,o){const s=new e.Group;for(let e=0;e<t.length;e++){const i=t[e];let l=r[i.objectId];void 0===l&&(M(i.objectId,r,n,o),l=r[i.objectId]);const a=l.clone(),u=i.transform;u&&a.applyMatrix4(u),s.add(a)}return s}function M(e,t,r,o){const s=r.resources.object[e];if(s.mesh){const e=s.mesh;!function(e,t,r){if(!e)return;const o=[],s=Object.keys(e);for(let e=0;e<s.length;e++){const t=s[e];for(let e=0;e<n.availableExtensions.length;e++){const r=n.availableExtensions[e];r.ns===t&&o.push(r)}}for(let n=0;n<o.length;n++){const s=o[n];s.apply(r,e[s.ns],t)}}(r.extensions,e,r.xml),t[s.id]=w(e,t,r,o,s,x)}else{const e=s.components;t[s.id]=w(e,t,r,o,s,S)}}const L=function(r){let n,o,i=null,l=null;const a=[],u=[];let c;const p={},d={};try{i=t.unzipSync(new Uint8Array(r))}catch(e){if(e instanceof ReferenceError)return console.error("THREE.3MFLoader: fflate missing and file is compressed."),null}for(l in i)l.match(/\_rels\/.rels$/)?n=l:l.match(/3D\/_rels\/.*\.model\.rels$/)?o=l:l.match(/^3D\/.*\.model$/)?a.push(l):l.match(/^3D\/Metadata\/.*\.xml$/)||(l.match(/^3D\/Textures?\/.*/)?u.push(l):l.match(/^3D\/Other\/.*/));const h=i[n],f=s(e.LoaderUtils.decodeText(h));if(o){const t=i[o];c=s(e.LoaderUtils.decodeText(t))}for(let t=0;t<a.length;t++){const r=a[t],n=i[r],o=e.LoaderUtils.decodeText(n),s=(new DOMParser).parseFromString(o,"application/xml");"model"!==s.documentElement.nodeName.toLowerCase()&&console.error("THREE.3MFLoader: Error loading 3MF - no 3MF document found: ",r);const l=s.querySelector("model"),u={};for(let e=0;e<l.attributes.length;e++){const t=l.attributes[e];t.name.match(/^xmlns:(.+)$/)&&(u[t.value]=RegExp.$1)}const c=g(l);c.xml=l,0<Object.keys(u).length&&(c.extensions=u),p[r]=c}for(let e=0;e<u.length;e++){const t=u[e];d[t]=i[t].buffer}return{rels:f,modelRels:c,model:p,printTicket:{},texture:d,other:{}}}(r);return function(t,r){const n=new e.Group,o=function(e){for(let t=0;t<e.length;t++){const r=e[t];if("model"===r.target.split(".").pop().toLowerCase())return r}}(r.rels),s=r.model[o.target.substring(1)].build;for(let e=0;e<s.length;e++){const r=s[e],o=t[r.objectId],i=r.transform;i&&o.applyMatrix4(i),n.add(o)}return n}(function(e){const t=e.model,r=e.modelRels,n={},o=Object.keys(t),s={};if(r)for(let t=0,n=r.length;t<n;t++){const n=r[t],o=n.target.substring(1);e.texture[o]&&(s[n.target]=e.texture[o])}for(let e=0;e<o.length;e++){const r=t[o[e]],i=Object.keys(r.resources.object);for(let e=0;e<i.length;e++){M(i[e],n,r,s)}}return n}(L),L)}addExtension(e){this.availableExtensions.push(e)}}exports.ThreeMFLoader=r;
|
package/loaders/AMFLoader.cjs.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("fflate");class n extends e.Loader{constructor(e){super(e)}load(t,n,o,a){const r=this,l=new e.FileLoader(r.manager);l.setPath(r.path),l.setResponseType("arraybuffer"),l.setRequestHeader(r.requestHeader),l.setWithCredentials(r.withCredentials),l.load(t,(function(e){try{n(r.parse(e))}catch(e){a?a(e):console.error(e),r.manager.itemError(t)}}),o,a)}parse(n){function o(t){let n="AMF Material";const o=t.attributes.id.textContent;let r={r:1,g:1,b:1,a:1},l=null;for(let e=0;e<t.childNodes.length;e++){const o=t.childNodes[e];"metadata"===o.nodeName&&void 0!==o.attributes.type?"name"===o.attributes.type.value&&(n=o.textContent):"color"===o.nodeName&&(r=a(o))}return l=new e.MeshPhongMaterial({flatShading:!0,color:new e.Color(r.r,r.g,r.b),name:n}),1!==r.a&&(l.transparent=!0,l.opacity=r.a),{id:o,material:l}}function a(e){const t={r:1,g:1,b:1,a:1};for(let n=0;n<e.childNodes.length;n++){const o=e.childNodes[n];"r"===o.nodeName?t.r=o.textContent:"g"===o.nodeName?t.g=o.textContent:"b"===o.nodeName?t.b=o.textContent:"a"===o.nodeName&&(t.a=o.textContent)}return t}function r(e){const t={name:"",triangles:[],materialid:null};let n=e.firstElementChild;for(void 0!==e.attributes.materialid&&(t.materialId=e.attributes.materialid.nodeValue);n;){if("metadata"===n.nodeName)void 0!==n.attributes.type&&"name"===n.attributes.type.value&&(t.name=n.textContent);else if("triangle"===n.nodeName){const e=n.getElementsByTagName("v1")[0].textContent,o=n.getElementsByTagName("v2")[0].textContent,a=n.getElementsByTagName("v3")[0].textContent;t.triangles.push(e,o,a)}n=n.nextElementSibling}return t}function l(e){const t=[],n=[];let o=e.firstElementChild;for(;o;){if("vertex"===o.nodeName){let e=o.firstElementChild;for(;e;){if("coordinates"===e.nodeName){const n=e.getElementsByTagName("x")[0].textContent,o=e.getElementsByTagName("y")[0].textContent,a=e.getElementsByTagName("z")[0].textContent;t.push(n,o,a)}else if("normal"===e.nodeName){const t=e.getElementsByTagName("nx")[0].textContent,o=e.getElementsByTagName("ny")[0].textContent,a=e.getElementsByTagName("nz")[0].textContent;n.push(t,o,a)}e=e.nextElementSibling}}o=o.nextElementSibling}return{vertices:t,normals:n}}function s(e){const t=e.attributes.id.textContent,n={name:"amfobject",meshes:[]};let o=null,s=e.firstElementChild;for(;s;){if("metadata"===s.nodeName)void 0!==s.attributes.type&&"name"===s.attributes.type.value&&(n.name=s.textContent);else if("color"===s.nodeName)o=a(s);else if("mesh"===s.nodeName){let e=s.firstElementChild;const t={vertices:[],normals:[],volumes:[],color:o};for(;e;){if("vertices"===e.nodeName){const n=l(e);t.normals=t.normals.concat(n.normals),t.vertices=t.vertices.concat(n.vertices)}else"volume"===e.nodeName&&t.volumes.push(r(e));e=e.nextElementSibling}n.meshes.push(t)}s=s.nextElementSibling}return{id:t,obj:n}}const i=function(n){let o=new DataView(n);if("PK"===String.fromCharCode(o.getUint8(0),o.getUint8(1))){let e=null,a=null;console.log("THREE.AMFLoader: Loading Zip");try{e=t.unzipSync(new Uint8Array(n))}catch(e){if(e instanceof ReferenceError)return console.log("THREE.AMFLoader: fflate missing and file is compressed."),null}for(a in e)if(".amf"===a.toLowerCase().substr(-4))break;console.log("THREE.AMFLoader: Trying to load file asset: "+a),o=new DataView(e[a].buffer)}const a=e.LoaderUtils.decodeText(o),r=(new DOMParser).parseFromString(a,"application/xml");return"amf"!==r.documentElement.nodeName.toLowerCase()?(console.log("THREE.AMFLoader: Error loading AMF - no AMF document found."),null):r}(n);let m="",d="";const c=function(e){let t=1,n="millimeter";void 0!==e.documentElement.attributes.unit&&(n=e.documentElement.attributes.unit.value.toLowerCase());const o={millimeter:1,inch:25.4,feet:304.8,meter:1e3,micron:.001};return void 0!==o[n]&&(t=o[n]),console.log("THREE.AMFLoader: Unit scale: "+t),t}(i),u={},f={},g=i.documentElement.childNodes;let h,b;for(h=0;h<g.length;h++){const e=g[h];if("metadata"===e.nodeName)void 0!==e.attributes.type&&("name"===e.attributes.type.value?m=e.textContent:"author"===e.attributes.type.value&&(d=e.textContent));else if("material"===e.nodeName){const t=o(e);u[t.id]=t.material}else if("object"===e.nodeName){const t=s(e);f[t.id]=t.obj}}const p=new e.Group,E=new e.MeshPhongMaterial({color:11184895,flatShading:!0});p.name=m,p.userData.author=d,p.userData.loader="AMF";for(const t in f){const n=f[t],o=n.meshes,a=new e.Group;for(a.name=n.name||"",h=0;h<o.length;h++){let t=E;const n=o[h],r=new e.Float32BufferAttribute(n.vertices,3);let l=null;if(n.normals.length&&(l=new e.Float32BufferAttribute(n.normals,3)),n.color){const o=n.color;t=E.clone(),t.color=new e.Color(o.r,o.g,o.b),1!==o.a&&(t.transparent=!0,t.opacity=o.a)}const s=n.volumes;for(b=0;b<s.length;b++){const n=s[b],o=new e.BufferGeometry;let i=t;o.setIndex(n.triangles),o.setAttribute("position",r.clone()),l&&o.setAttribute("normal",l.clone()),void 0!==u[n.materialId]&&(i=u[n.materialId]),o.scale(c,c,c),a.add(new e.Mesh(o,i.clone()))}}p.add(a)}return p}}exports.AMFLoader=n;
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=function(t){e.Loader.call(this,t)};t.prototype=Object.assign(Object.create(e.Loader.prototype),{constructor:t,load:function(t,i,s,r){var n=this,m=""===n.path?e.LoaderUtils.extractUrlBase(t):n.path,a=new e.FileLoader(n.manager);a.setPath(n.path),a.setResponseType("arraybuffer"),a.setRequestHeader(n.requestHeader),a.setWithCredentials(n.withCredentials),a.load(t,(function(e){try{i(n.parse(e,m))}catch(e){r?r(e):console.error(e),n.manager.itemError(t)}}),s,r)},parse:function(t,i){var s=new e.TextureLoader(this.manager);s.setPath(this.resourcePath||i).setCrossOrigin(this.crossOrigin);var r={KeyFrame:function(t,i){this.time=t,this.matrix=i.clone(),this.position=new e.Vector3,this.quaternion=new e.Quaternion,this.scale=new e.Vector3(1,1,1),this.matrix.decompose(this.position,this.quaternion,this.scale),this.clone=function(){return new r.KeyFrame(this.time,this.matrix)},this.lerp=function(e,t){var i=(t-=this.time)/(e.time-this.time),s=1-i,n=this.position,m=this.quaternion,a=e.position,o=e.quaternion;return r.KeyFrame.tempAniPos.x=n.x*s+a.x*i,r.KeyFrame.tempAniPos.y=n.y*s+a.y*i,r.KeyFrame.tempAniPos.z=n.z*s+a.z*i,r.KeyFrame.tempAniQuat.set(m.x,m.y,m.z,m.w),r.KeyFrame.tempAniQuat.slerp(o,i),r.KeyFrame.tempAniMatrix.compose(r.KeyFrame.tempAniPos,r.KeyFrame.tempAniQuat,r.KeyFrame.tempAniScale)}}};r.KeyFrame.tempAniPos=new e.Vector3,r.KeyFrame.tempAniQuat=new e.Quaternion,r.KeyFrame.tempAniScale=new e.Vector3(1,1,1),r.KeyFrame.tempAniMatrix=new e.Matrix4,r.KeyFrameTrack=function(){this.keys=[],this.target=null,this.time=0,this.length=0,this._accelTable={},this.fps=20,this.addKey=function(e){this.keys.push(e)},this.init=function(){if(this.sortKeys(),this.keys.length>0?this.length=this.keys[this.keys.length-1].time:this.length=0,this.fps)for(let e=0;e<this.length*this.fps;e++)for(let t=0;t<this.keys.length;t++){if(this.keys[t].time==e){this._accelTable[e]=t;break}if(this.keys[t].time<e/this.fps&&this.keys[t+1]&&this.keys[t+1].time>=e/this.fps){this._accelTable[e]=t;break}}},this.parseFromThree=function(e){var t=e.fps;this.target=e.node;var i=e.hierarchy[0].keys;for(let e=0;e<i.length;e++)this.addKey(new r.KeyFrame(e/t||i[e].time,i[e].targets[0].data));this.init()},this.parseFromCollada=function(e){var t=e.keys,i=this.fps;for(let e=0;e<t.length;e++)this.addKey(new r.KeyFrame(e/i||t[e].time,t[e].matrix));this.init()},this.sortKeys=function(){this.keys.sort(this.keySortFunc)},this.keySortFunc=function(e,t){return e.time-t.time},this.clone=function(){var e=new r.KeyFrameTrack;e.target=this.target,e.time=this.time,e.length=this.length;for(let t=0;t<this.keys.length;t++)e.addKey(this.keys[t].clone());return e.init(),e},this.reTarget=function(e,t){t||(t=r.TrackTargetNodeNameCompare),this.target=t(e,this.target)},this.keySearchAccel=function(e){return e*=this.fps,e=Math.floor(e),this._accelTable[e]||0},this.setTime=function(e){e=Math.abs(e),this.length&&(e=e%this.length+.05);var t=null,i=null;for(let s=this.keySearchAccel(e);s<this.keys.length;s++){if(this.keys[s].time==e){t=this.keys[s],i=this.keys[s];break}if(this.keys[s].time<e&&this.keys[s+1]&&this.keys[s+1].time>e){t=this.keys[s],i=this.keys[s+1];break}if(this.keys[s].time<e&&s==this.keys.length-1){t=this.keys[s],(i=this.keys[0].clone()).time+=this.length+.05;break}}return t&&i&&t!==i?(this.target.matrixAutoUpdate=!1,this.target.matrix.copy(t.lerp(i,e)),void(this.target.matrixWorldNeedsUpdate=!0)):t&&i&&t==i?(this.target.matrixAutoUpdate=!1,this.target.matrix.copy(t.matrix),void(this.target.matrixWorldNeedsUpdate=!0)):void 0}},r.TrackTargetNodeNameCompare=function(e,t){return function e(t,i){if(t.name==i)return t;for(let r=0;r<t.children.length;r++){var s=e(t.children[r],i);if(s)return s}return null}(e,t.name)},r.Animation=function(){this.tracks=[],this.length=0,this.addTrack=function(e){this.tracks.push(e),this.length=Math.max(e.length,this.length)},this.setTime=function(e){this.time=e;for(let t=0;t<this.tracks.length;t++)this.tracks[t].setTime(e)},this.clone=function(e,t){t||(t=r.TrackTargetNodeNameCompare);var i=new r.Animation;i.target=e;for(let r=0;r<this.tracks.length;r++){var s=this.tracks[r].clone();s.reTarget(e,t),i.addTrack(s)}return i}};function n(e){return 256<<e}function m(e){return 65536<<e}function a(t,i){var s=new e.Bone;s.matrix.copy(t.matrix),s.matrixWorld.copy(t.matrixWorld),s.position.copy(t.position),s.quaternion.copy(t.quaternion),s.scale.copy(t.scale),i.nodeCount++,s.name="bone_"+t.name+i.nodeCount.toString(),i.nodeToBoneMap[t.name]||(i.nodeToBoneMap[t.name]=[]),i.nodeToBoneMap[t.name].push(s);for(let e in t.children){var r=a(t.children[e],i);s.add(r)}return s}function o(e,t){var i=[];for(let s=0;s<e.length;s++)i.push({i:e[s],w:t[s]});for(i.sort((function(e,t){return t.w-e.w}));i.length<4;)i.push({i:0,w:0});i.length>4&&(i.length=4);var s=0;for(let e=0;e<4;e++)s+=i[e].w*i[e].w;s=Math.sqrt(s);for(let r=0;r<4;r++)i[r].w=i[r].w/s,e[r]=i[r].i,t[r]=i[r].w}function h(e,t){if(0==e.name.indexOf("bone_"+t))return e;for(let s in e.children){var i=h(e.children[s],t);if(i)return i}}function u(){this.mPrimitiveTypes=0,this.mNumVertices=0,this.mNumFaces=0,this.mNumBones=0,this.mMaterialIndex=0,this.mVertices=[],this.mNormals=[],this.mTangents=[],this.mBitangents=[],this.mColors=[[]],this.mTextureCoords=[[]],this.mFaces=[],this.mBones=[],this.hookupSkeletons=function(t){if(0!=this.mBones.length){for(var i=[],s=[],r=t.findNode(this.mBones[0].mName);r.mParent&&r.mParent.isBone;)r=r.mParent;var n=a(r.toTHREE(t),t);this.threeNode.add(n);for(let e=0;e<this.mBones.length;e++){if(o=h(n,this.mBones[e].mName)){var m=o;i.push(m),s.push(this.mBones[e].mOffsetMatrix.toTHREE())}else{if(!(r=t.findNode(this.mBones[e].mName)))return;n=a(r.toTHREE(t),t);this.threeNode.add(n);var o;m=o=h(n,this.mBones[e].mName);i.push(m),s.push(this.mBones[e].mOffsetMatrix.toTHREE())}}var u=new e.Skeleton(i,s);this.threeNode.bind(u,new e.Matrix4),this.threeNode.material.skinning=!0}},this.toTHREE=function(t){if(this.threeNode)return this.threeNode;var i,s,r=new e.BufferGeometry;if(i=t.mMaterials[this.mMaterialIndex]?t.mMaterials[this.mMaterialIndex].toTHREE(t):new e.MeshLambertMaterial,r.setIndex(new e.BufferAttribute(new Uint32Array(this.mIndexArray),1)),r.setAttribute("position",new e.BufferAttribute(this.mVertexBuffer,3)),this.mNormalBuffer&&this.mNormalBuffer.length>0&&r.setAttribute("normal",new e.BufferAttribute(this.mNormalBuffer,3)),this.mColorBuffer&&this.mColorBuffer.length>0&&r.setAttribute("color",new e.BufferAttribute(this.mColorBuffer,4)),this.mTexCoordsBuffers[0]&&this.mTexCoordsBuffers[0].length>0&&r.setAttribute("uv",new e.BufferAttribute(new Float32Array(this.mTexCoordsBuffers[0]),2)),this.mTexCoordsBuffers[1]&&this.mTexCoordsBuffers[1].length>0&&r.setAttribute("uv1",new e.BufferAttribute(new Float32Array(this.mTexCoordsBuffers[1]),2)),this.mTangentBuffer&&this.mTangentBuffer.length>0&&r.setAttribute("tangents",new e.BufferAttribute(this.mTangentBuffer,3)),this.mBitangentBuffer&&this.mBitangentBuffer.length>0&&r.setAttribute("bitangents",new e.BufferAttribute(this.mBitangentBuffer,3)),this.mBones.length>0){var n=[],m=[];for(let e=0;e<this.mBones.length;e++)for(let t=0;t<this.mBones[e].mWeights.length;t++){var a=this.mBones[e].mWeights[t];a&&(n[a.mVertexId]||(n[a.mVertexId]=[]),m[a.mVertexId]||(m[a.mVertexId]=[]),n[a.mVertexId].push(a.mWeight),m[a.mVertexId].push(parseInt(e)))}for(let e in m)o(m[e],n[e]);var h=[],u=[];for(let e=0;e<n.length;e++)for(let t=0;t<4;t++)n[e]&&m[e]?(h.push(n[e][t]),u.push(m[e][t])):(h.push(0),u.push(0));r.setAttribute("skinWeight",new e.BufferAttribute(new Float32Array(h),4)),r.setAttribute("skinIndex",new e.BufferAttribute(new Float32Array(u),4))}return 0==this.mBones.length&&(s=new e.Mesh(r,i)),this.mBones.length>0&&(s=new e.SkinnedMesh(r,i)).normalizeSkinWeights(),this.threeNode=s,s}}function f(){this.mNumIndices=0,this.mIndices=[]}function l(){this.x=0,this.y=0,this.z=0,this.toTHREE=function(){return new e.Vector3(this.x,this.y,this.z)}}function c(){this.r=0,this.g=0,this.b=0,this.a=0,this.toTHREE=function(){return new e.Color(this.r,this.g,this.b)}}function d(){this.x=0,this.y=0,this.z=0,this.w=0,this.toTHREE=function(){return new e.Quaternion(this.x,this.y,this.z,this.w)}}function p(){this.mVertexId=0,this.mWeight=0}function y(){this.data=[],this.toString=function(){var e="";return this.data.forEach((function(t){e+=String.fromCharCode(t)})),e.replace(/[^\x20-\x7E]+/g,"")}}function g(){this.mTime=0,this.mValue=null}function N(){this.mTime=0,this.mValue=null}function T(){this.mName="",this.mTransformation=[],this.mNumChildren=0,this.mNumMeshes=0,this.mMeshes=[],this.mChildren=[],this.toTHREE=function(t){if(this.threeNode)return this.threeNode;var i=new e.Object3D;i.name=this.mName,i.matrix=this.mTransformation.toTHREE();for(let e=0;e<this.mChildren.length;e++)i.add(this.mChildren[e].toTHREE(t));for(let e=0;e<this.mMeshes.length;e++)i.add(t.mMeshes[this.mMeshes[e]].toTHREE(t));return this.threeNode=i,i.matrix.decompose(i.position,i.quaternion,i.scale),i}}function A(){this.mName="",this.mNumWeights=0,this.mOffsetMatrix=0}function w(){this.mKey="",this.mSemantic=0,this.mIndex=0,this.mData=[],this.mDataLength=0,this.mType=0,this.dataAsColor=function(){var t=new Uint8Array(this.mData).buffer,i=new DataView(t),s=i.getFloat32(0,!0),r=i.getFloat32(4,!0),n=i.getFloat32(8,!0);return new e.Color(s,r,n)},this.dataAsFloat=function(){var e=new Uint8Array(this.mData).buffer;return new DataView(e).getFloat32(0,!0)},this.dataAsBool=function(){var e=new Uint8Array(this.mData).buffer;return!!new DataView(e).getFloat32(0,!0)},this.dataAsString=function(){var e=new y;return e.data=this.mData,e.toString()},this.dataAsMap=function(){var e=new y;e.data=this.mData;var t=e.toString();return-1!=(t=t.replace(/\\/g,"/")).indexOf("/")&&(t=t.substr(t.lastIndexOf("/")+1)),s.load(t)}}var v={"?mat.name":"name","$mat.shadingm":"shading","$mat.twosided":"twoSided","$mat.wireframe":"wireframe","$clr.ambient":"ambient","$clr.diffuse":"color","$clr.specular":"specular","$clr.emissive":"emissive","$clr.transparent":"transparent","$clr.reflective":"reflect","$mat.shininess":"shininess","$mat.reflectivity":"reflectivity","$mat.refracti":"refraction","$tex.file":"map"},x={"?mat.name":"string","$mat.shadingm":"bool","$mat.twosided":"bool","$mat.wireframe":"bool","$clr.ambient":"color","$clr.diffuse":"color","$clr.specular":"color","$clr.emissive":"color","$clr.transparent":"color","$clr.reflective":"color","$mat.shininess":"float","$mat.reflectivity":"float","$mat.refracti":"float","$tex.file":"map"};function B(){this.mNumAllocated=0,this.mNumProperties=0,this.mProperties=[],this.toTHREE=function(){var t=new e.MeshPhongMaterial;for(let e=0;e<this.mProperties.length;e++)if("float"==x[this.mProperties[e].mKey]&&(t[v[this.mProperties[e].mKey]]=this.mProperties[e].dataAsFloat()),"color"==x[this.mProperties[e].mKey]&&(t[v[this.mProperties[e].mKey]]=this.mProperties[e].dataAsColor()),"bool"==x[this.mProperties[e].mKey]&&(t[v[this.mProperties[e].mKey]]=this.mProperties[e].dataAsBool()),"string"==x[this.mProperties[e].mKey]&&(t[v[this.mProperties[e].mKey]]=this.mProperties[e].dataAsString()),"map"==x[this.mProperties[e].mKey]){var i=this.mProperties[e];1==i.mSemantic&&(t.map=this.mProperties[e].dataAsMap()),6==i.mSemantic&&(t.normalMap=this.mProperties[e].dataAsMap()),10==i.mSemantic&&(t.lightMap=this.mProperties[e].dataAsMap()),8==i.mSemantic&&(t.alphaMap=this.mProperties[e].dataAsMap())}return t.ambient.r=.53,t.ambient.g=.53,t.ambient.b=.53,t.color.r=1,t.color.g=1,t.color.b=1,t}}function C(t,i,s){var r=new e.Vector3,n=1-s;return r.x=t.x*s+i.x*n,r.y=t.y*s+i.y*n,r.z=t.z*s+i.z*n,r}function M(e,t,i){return e.clone().slerp(t,1-i)}function K(e,t,i,s){if(1==e.length)return e[0].mValue.toTHREE();var r=1/0,n=null,m=null;for(let i=0;i<e.length;i++){var a=Math.abs(e[i].mTime-t);a<r&&e[i].mTime<=t&&(r=a,n=e[i],m=e[i+1])}if(n){if(m){var o=m.mTime-n.mTime,h=(n.mTime-t)/o;return s(n.mValue.toTHREE(),m.mValue.toTHREE(),h)}(m=e[0].clone()).mTime+=i;o=m.mTime-n.mTime,h=(n.mTime-t)/o;return s(n.mValue.toTHREE(),m.mValue.toTHREE(),h)}return null}function k(){this.mNodeName="",this.mNumPositionKeys=0,this.mNumRotationKeys=0,this.mNumScalingKeys=0,this.mPositionKeys=[],this.mRotationKeys=[],this.mScalingKeys=[],this.mPreState="",this.mPostState="",this.init=function(e){function t(t){t.mTime/=e}e||(e=1),this.mPositionKeys.forEach(t),this.mRotationKeys.forEach(t),this.mScalingKeys.forEach(t)},this.sortKeys=function(){function e(e,t){return e.mTime-t.mTime}this.mPositionKeys.sort(e),this.mRotationKeys.sort(e),this.mScalingKeys.sort(e)},this.getLength=function(){return Math.max(Math.max.apply(null,this.mPositionKeys.map((function(e){return e.mTime}))),Math.max.apply(null,this.mRotationKeys.map((function(e){return e.mTime}))),Math.max.apply(null,this.mScalingKeys.map((function(e){return e.mTime}))))},this.toTHREE=function(t){this.sortKeys();var i=this.getLength(),s=new r.KeyFrameTrack;for(let t=0;t<i;t+=.05){var n=new e.Matrix4,m=t,a=K(this.mPositionKeys,m,i,C),o=K(this.mScalingKeys,m,i,C),h=K(this.mRotationKeys,m,i,M);n.compose(a,h,o);var u=new r.KeyFrame(m,n);s.addKey(u)}s.target=t.findNode(this.mNodeName).toTHREE();var f=[s];if(t.nodeToBoneMap[this.mNodeName])for(let e=0;e<t.nodeToBoneMap[this.mNodeName].length;e++){var l=s.clone();l.target=t.nodeToBoneMap[this.mNodeName][e],f.push(l)}return f}}function b(){this.mName="",this.mDuration=0,this.mTicksPerSecond=0,this.mNumChannels=0,this.mChannels=[],this.toTHREE=function(e){var t=new r.Animation;for(let s in this.mChannels){this.mChannels[s].init(this.mTicksPerSecond);var i=this.mChannels[s].toTHREE(e);for(let e in i)i[e].init(),t.addTrack(i[e])}return t.length=Math.max.apply(null,t.tracks.map((function(e){return e.length}))),t}}function P(){this.mWidth=0,this.mHeight=0,this.texAchFormatHint=[],this.pcData=[]}function E(){this.mName="",this.mType=0,this.mAttenuationConstant=0,this.mAttenuationLinear=0,this.mAttenuationQuadratic=0,this.mAngleInnerCone=0,this.mAngleOuterCone=0,this.mColorDiffuse=null,this.mColorSpecular=null,this.mColorAmbient=null}function S(){this.mName="",this.mPosition=null,this.mLookAt=null,this.mUp=null,this.mHorizontalFOV=0,this.mClipPlaneNear=0,this.mClipPlaneFar=0,this.mAspect=0}function F(){this.versionMajor=0,this.versionMinor=0,this.versionRevision=0,this.compileFlags=0,this.mFlags=0,this.mNumMeshes=0,this.mNumMaterials=0,this.mNumAnimations=0,this.mNumTextures=0,this.mNumLights=0,this.mNumCameras=0,this.mRootNode=null,this.mMeshes=[],this.mMaterials=[],this.mAnimations=[],this.mLights=[],this.mCameras=[],this.nodeToBoneMap={},this.findNode=function(e,t){if(t||(t=this.mRootNode),t.mName==e)return t;for(let s=0;s<t.mChildren.length;s++){var i=this.findNode(e,t.mChildren[s]);if(i)return i}return null},this.toTHREE=function(){this.nodeCount=0,function(e){for(let s in e.mMeshes){var t=e.mMeshes[s];for(let s in t.mBones){var i=e.findNode(t.mBones[s].mName);i&&(i.isBone=!0)}}}(this);var e=this.mRootNode.toTHREE(this);for(let e in this.mMeshes)this.mMeshes[e].hookupSkeletons(this);if(this.mAnimations.length>0)var t=this.mAnimations[0].toTHREE(this);return{object:e,animation:t}}}function R(){this.elements=[[],[],[],[]],this.toTHREE=function(){var t=new e.Matrix4;for(let e=0;e<4;++e)for(let i=0;i<4;++i)t.elements[4*e+i]=this.elements[i][e];return t}}var V=!0;function I(e){var t=e.getFloat32(e.readOffset,V);return e.readOffset+=4,t}function O(e){var t=e.getFloat64(e.readOffset,V);return e.readOffset+=8,t}function H(e){var t=e.getUint16(e.readOffset,V);return e.readOffset+=2,t}function D(e){var t=e.getUint32(e.readOffset,V);return e.readOffset+=4,t}function $(e){var t=e.getUint32(e.readOffset,V);return e.readOffset+=4,t}function U(e){var t=new l;return t.x=I(e),t.y=I(e),t.z=I(e),t}function L(e){var t=new c;return t.r=I(e),t.g=I(e),t.b=I(e),t}function W(e){var t=new y,i=D(e);return e.ReadBytes(t.data,1,i),t.toString()}function z(e){var t=new p;return t.mVertexId=D(e),t.mWeight=I(e),t}function q(e){var t=new R;for(let i=0;i<4;++i)for(let s=0;s<4;++s)t.elements[i][s]=I(e);return t}function Q(e){var t=new g;return t.mTime=O(e),t.mValue=U(e),t}function _(e){var t=new N;return t.mTime=O(e),t.mValue=function(e){var t=new d;return t.w=I(e),t.x=I(e),t.y=I(e),t.z=I(e),t}(e),t}function j(e,t,i){for(let s=0;s<i;s++)t[s]=Q(e)}function G(e,t,i){return e.Seek(sizeof(t)*i,ue)}function J(e){if(!e)throw"asset failed"}function X(e,t,i){J(4668==$(e)),$(e);var s=new T;if(s.mParent=t,s.mDepth=i,s.mName=W(e),s.mTransformation=q(e),s.mNumChildren=D(e),s.mNumMeshes=D(e),s.mNumMeshes){s.mMeshes=[];for(let t=0;t<s.mNumMeshes;++t)s.mMeshes[t]=D(e)}if(s.mNumChildren){s.mChildren=[];for(let t=0;t<s.mNumChildren;++t){var r=X(e,s,i++);s.mChildren[t]=r}}return s}function Y(e,t){return J(4666==$(e)),$(e),t.mName=W(e),t.mNumWeights=D(e),t.mOffsetMatrix=q(e),oe?G(e,t.mWeights,t.mNumWeights):(t.mWeights=[],function(e,t,i){for(let s=0;s<i;s++)t[s]=z(e)}(e,t.mWeights,t.mNumWeights)),t}function Z(e,t){J(4663==$(e)),$(e),t.mPrimitiveTypes=D(e),t.mNumVertices=D(e),t.mNumFaces=D(e),t.mNumBones=D(e),t.mMaterialIndex=D(e),t.mNumUVComponents=[];var i=D(e);1&i&&(oe?G(e,t.mVertices,t.mNumVertices):(t.mVertices=[],t.mVertexBuffer=e.subArray32(e.readOffset,e.readOffset+3*t.mNumVertices*4),e.Seek(3*t.mNumVertices*4,ue))),2&i&&(oe?G(e,t.mNormals,t.mNumVertices):(t.mNormals=[],t.mNormalBuffer=e.subArray32(e.readOffset,e.readOffset+3*t.mNumVertices*4),e.Seek(3*t.mNumVertices*4,ue))),4&i&&(oe?(G(e,t.mTangents,t.mNumVertices),G(e,t.mBitangents,t.mNumVertices)):(t.mTangents=[],t.mTangentBuffer=e.subArray32(e.readOffset,e.readOffset+3*t.mNumVertices*4),e.Seek(3*t.mNumVertices*4,ue),t.mBitangents=[],t.mBitangentBuffer=e.subArray32(e.readOffset,e.readOffset+3*t.mNumVertices*4),e.Seek(3*t.mNumVertices*4,ue)));for(let s=0;s<1&&i&m(s);++s)oe?G(e,t.mColors[s],t.mNumVertices):(t.mColors[s]=[],t.mColorBuffer=e.subArray32(e.readOffset,e.readOffset+4*t.mNumVertices*4),e.Seek(4*t.mNumVertices*4,ue));t.mTexCoordsBuffers=[];for(let s=0;s<4&&i&n(s);++s)if(t.mNumUVComponents[s]=D(e),oe)G(e,t.mTextureCoords[s],t.mNumVertices);else{t.mTextureCoords[s]=[],t.mTexCoordsBuffers[s]=[];for(let i=0;i<t.mNumVertices;i++)t.mTexCoordsBuffers[s].push(I(e)),t.mTexCoordsBuffers[s].push(I(e)),I(e)}if(oe)D(e);else{t.mFaces=[],t.mIndexArray=[];for(let i=0;i<t.mNumFaces;++i){var s=t.mFaces[i]=new f;s.mNumIndices=H(e),s.mIndices=[];for(let i=0;i<s.mNumIndices;++i)t.mNumVertices<65536?s.mIndices[i]=H(e):s.mIndices[i]=D(e);if(3===s.mNumIndices)t.mIndexArray.push(s.mIndices[0]),t.mIndexArray.push(s.mIndices[1]),t.mIndexArray.push(s.mIndices[2]);else{if(4!==s.mNumIndices)throw new Error("Sorry, can't currently triangulate polys. Use the triangulate preprocessor in Assimp.");t.mIndexArray.push(s.mIndices[0]),t.mIndexArray.push(s.mIndices[1]),t.mIndexArray.push(s.mIndices[2]),t.mIndexArray.push(s.mIndices[2]),t.mIndexArray.push(s.mIndices[3]),t.mIndexArray.push(s.mIndices[0])}}}if(t.mNumBones){t.mBones=[];for(let i=0;i<t.mNumBones;++i)t.mBones[i]=new A,Y(e,t.mBones[i])}}function ee(e,t){J(4670==$(e)),$(e),t.mKey=W(e),t.mSemantic=D(e),t.mIndex=D(e),t.mDataLength=D(e),t.mType=D(e),t.mData=[],e.ReadBytes(t.mData,1,t.mDataLength)}function te(e,t){if(J(4669==$(e)),$(e),t.mNumAllocated=t.mNumProperties=D(e),t.mNumProperties){t.mProperties&&delete t.mProperties,t.mProperties=[];for(let i=0;i<t.mNumProperties;++i)t.mProperties[i]=new w,ee(e,t.mProperties[i])}}function ie(e,t){J(4664==$(e)),$(e),t.mNodeName=W(e),t.mNumPositionKeys=D(e),t.mNumRotationKeys=D(e),t.mNumScalingKeys=D(e),t.mPreState=D(e),t.mPostState=D(e),t.mNumPositionKeys&&(oe?G(e,t.mPositionKeys,t.mNumPositionKeys):(t.mPositionKeys=[],j(e,t.mPositionKeys,t.mNumPositionKeys))),t.mNumRotationKeys&&(oe?G(e,t.mRotationKeys,t.mNumRotationKeys):(t.mRotationKeys=[],function(e,t,i){for(let s=0;s<i;s++)t[s]=_(e)}(e,t.mRotationKeys,t.mNumRotationKeys))),t.mNumScalingKeys&&(oe?G(e,t.mScalingKeys,t.mNumScalingKeys):(t.mScalingKeys=[],j(e,t.mScalingKeys,t.mNumScalingKeys)))}function se(e,t){if(J(4667==$(e)),$(e),t.mName=W(e),t.mDuration=O(e),t.mTicksPerSecond=O(e),t.mNumChannels=D(e),t.mNumChannels){t.mChannels=[];for(let i=0;i<t.mNumChannels;++i)t.mChannels[i]=new k,ie(e,t.mChannels[i])}}function re(e,t){J(4662==$(e)),$(e),t.mWidth=D(e),t.mHeight=D(e),e.ReadBytes(t.achFormatHint,1,4),oe||(t.mHeight?(t.pcData=[],e.ReadBytes(t.pcData,1,t.mWidth*t.mHeight*4)):(t.pcData=[],e.ReadBytes(t.pcData,1,t.mWidth)))}function ne(e,t){J(4661==$(e)),$(e),t.mName=W(e),t.mType=D(e),1!=t.mType&&(t.mAttenuationConstant=I(e),t.mAttenuationLinear=I(e),t.mAttenuationQuadratic=I(e)),t.mColorDiffuse=L(e),t.mColorSpecular=L(e),t.mColorAmbient=L(e),3==t.mType&&(t.mAngleInnerCone=I(e),t.mAngleOuterCone=I(e))}function me(e,t){J(4660==$(e)),$(e),t.mName=W(e),t.mPosition=U(e),t.mLookAt=U(e),t.mUp=U(e),t.mHorizontalFOV=I(e),t.mClipPlaneNear=I(e),t.mClipPlaneFar=I(e),t.mAspect=I(e)}function ae(e,t){if(J(4665==$(e)),$(e),t.mFlags=D(e),t.mNumMeshes=D(e),t.mNumMaterials=D(e),t.mNumAnimations=D(e),t.mNumTextures=D(e),t.mNumLights=D(e),t.mNumCameras=D(e),t.mRootNode=new T,t.mRootNode=X(e,null,0),t.mNumMeshes){t.mMeshes=[];for(let i=0;i<t.mNumMeshes;++i)t.mMeshes[i]=new u,Z(e,t.mMeshes[i])}if(t.mNumMaterials){t.mMaterials=[];for(let i=0;i<t.mNumMaterials;++i)t.mMaterials[i]=new B,te(e,t.mMaterials[i])}if(t.mNumAnimations){t.mAnimations=[];for(let i=0;i<t.mNumAnimations;++i)t.mAnimations[i]=new b,se(e,t.mAnimations[i])}if(t.mNumTextures){t.mTextures=[];for(let i=0;i<t.mNumTextures;++i)t.mTextures[i]=new P,re(e,t.mTextures[i])}if(t.mNumLights){t.mLights=[];for(let i=0;i<t.mNumLights;++i)t.mLights[i]=new E,ne(e,t.mLights[i])}if(t.mNumCameras){t.mCameras=[];for(let i=0;i<t.mNumCameras;++i)t.mCameras[i]=new S,me(e,t.mCameras[i])}}var oe,he,ue=0;return function(e){var t=new F,i=new DataView(e);if(function(e){e.readOffset=0,e.Seek=function(t,i){i==ue&&(e.readOffset+=t),1==i&&(e.readOffset=t)},e.ReadBytes=function(e,t,i){var s,r,n=t*i;for(let t=0;t<n;t++)e[t]=(r=void 0,r=(s=this).getUint8(s.readOffset),s.readOffset+=1,r)},e.subArray32=function(e,t){var i=this.buffer.slice(e,t);return new Float32Array(i)},e.subArrayUint16=function(e,t){var i=this.buffer.slice(e,t);return new Uint16Array(i)},e.subArrayUint8=function(e,t){var i=this.buffer.slice(e,t);return new Uint8Array(i)},e.subArrayUint32=function(e,t){var i=this.buffer.slice(e,t);return new Uint32Array(i)}}(i),i.Seek(44,ue),t.versionMajor=D(i),t.versionMinor=D(i),t.versionRevision=D(i),t.compileFlags=D(i),oe=H(i)>0,he=H(i)>0,oe)throw"Shortened binaries are not supported!";if(i.Seek(256,ue),i.Seek(128,ue),i.Seek(64,ue),he){var s=$(i),r=i.FileSize()-i.Tell(),n=[];i.Read(n,1,r);var m=[];uncompress(m,s,n,r),ae(new ArrayBuffer(m),t)}else ae(i,t);return t.toTHREE()}(t)}}),exports.AssimpLoader=t;
|
package/loaders/BVHLoader.cjs.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.Loader{constructor(e){super(e),this.animateBonePositions=!0,this.animateBoneRotations=!0}load(t,o,n,r){const s=this,a=new e.FileLoader(s.manager);a.setPath(s.path),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(t,(function(e){try{o(s.parse(e))}catch(e){r?r(e):console.error(e),s.manager.itemError(t)}}),n,r)}parse(t){function o(t,n,r){if("ENDSITE"===r.type)return;const s={time:n,position:new e.Vector3,rotation:new e.Quaternion};r.frames.push(s);const a=new e.Quaternion,i=new e.Vector3(1,0,0),l=new e.Vector3(0,1,0),p=new e.Vector3(0,0,1);for(let e=0;e<r.channels.length;e++)switch(r.channels[e]){case"Xposition":s.position.x=parseFloat(t.shift().trim());break;case"Yposition":s.position.y=parseFloat(t.shift().trim());break;case"Zposition":s.position.z=parseFloat(t.shift().trim());break;case"Xrotation":a.setFromAxisAngle(i,parseFloat(t.shift().trim())*Math.PI/180),s.rotation.multiply(a);break;case"Yrotation":a.setFromAxisAngle(l,parseFloat(t.shift().trim())*Math.PI/180),s.rotation.multiply(a);break;case"Zrotation":a.setFromAxisAngle(p,parseFloat(t.shift().trim())*Math.PI/180),s.rotation.multiply(a);break;default:console.warn("THREE.BVHLoader: Invalid channel type.")}for(let e=0;e<r.children.length;e++)o(t,n,r.children[e])}function n(t,o,s){const a={name:"",type:"",frames:[]};s.push(a);let i=o.split(/[\s]+/);"END"===i[0].toUpperCase()&&"SITE"===i[1].toUpperCase()?(a.type="ENDSITE",a.name="ENDSITE"):(a.name=i[1],a.type=i[0].toUpperCase()),"{"!==r(t)&&console.error("THREE.BVHLoader: Expected opening { after type & name"),i=r(t).split(/[\s]+/),"OFFSET"!==i[0]&&console.error("THREE.BVHLoader: Expected OFFSET but got: "+i[0]),4!==i.length&&console.error("THREE.BVHLoader: Invalid number of values for OFFSET.");const l=new e.Vector3(parseFloat(i[1]),parseFloat(i[2]),parseFloat(i[3]));if((isNaN(l.x)||isNaN(l.y)||isNaN(l.z))&&console.error("THREE.BVHLoader: Invalid values of OFFSET."),a.offset=l,"ENDSITE"!==a.type){i=r(t).split(/[\s]+/),"CHANNELS"!==i[0]&&console.error("THREE.BVHLoader: Expected CHANNELS definition.");const e=parseInt(i[1]);a.channels=i.splice(2,e),a.children=[]}for(;;){const e=r(t);if("}"===e)return a;a.children.push(n(t,e,s))}}function r(e){let t;for(;0===(t=e.shift().trim()).length;);return t}const s=this,a=function(e){"HIERARCHY"!==r(e)&&console.error("THREE.BVHLoader: HIERARCHY expected.");const t=[],s=n(e,r(e),t);"MOTION"!==r(e)&&console.error("THREE.BVHLoader: MOTION expected.");let a=r(e).split(/[\s]+/);const i=parseInt(a[1]);isNaN(i)&&console.error("THREE.BVHLoader: Failed to read number of frames."),a=r(e).split(/[\s]+/);const l=parseFloat(a[2]);isNaN(l)&&console.error("THREE.BVHLoader: Failed to read frame time.");for(let t=0;t<i;t++)a=r(e).split(/[\s]+/),o(a,t*l,s);return t}(t.split(/[\r\n]+/g)),i=[];!function t(o,n){const r=new e.Bone;if(n.push(r),r.position.add(o.offset),r.name=o.name,"ENDSITE"!==o.type)for(let e=0;e<o.children.length;e++)r.add(t(o.children[e],n));return r}(a[0],i);const l=function(t){const o=[];for(let n=0;n<t.length;n++){const r=t[n];if("ENDSITE"===r.type)continue;const a=[],i=[],l=[];for(let e=0;e<r.frames.length;e++){const t=r.frames[e];a.push(t.time),i.push(t.position.x+r.offset.x),i.push(t.position.y+r.offset.y),i.push(t.position.z+r.offset.z),l.push(t.rotation.x),l.push(t.rotation.y),l.push(t.rotation.z),l.push(t.rotation.w)}s.animateBonePositions&&o.push(new e.VectorKeyframeTrack(".bones["+r.name+"].position",a,i)),s.animateBoneRotations&&o.push(new e.QuaternionKeyframeTrack(".bones["+r.name+"].quaternion",a,l))}return new e.AnimationClip("animation",-1,o)}(a);return{skeleton:new e.Skeleton(i),clip:l}}}exports.BVHLoader=t;
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");const t=new WeakMap;class r extends e.Loader{constructor(e){super(e),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.workerConfig=null}setTranscoderPath(e){return this.transcoderPath=e,this}setWorkerLimit(e){return this.workerLimit=e,this}detectSupport(e){return this.workerConfig={astcSupported:e.extensions.has("WEBGL_compressed_texture_astc"),etc1Supported:e.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:e.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:e.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:e.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:e.extensions.has("WEBGL_compressed_texture_pvrtc")||e.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},this}load(r,o,a,s){const i=new e.FileLoader(this.manager);i.setResponseType("arraybuffer"),i.setWithCredentials(this.withCredentials);const n=new e.CompressedTexture;return i.load(r,(e=>{if(t.has(e)){return t.get(e).promise.then(o).catch(s)}this._createTexture([e]).then((function(e){n.copy(e),n.needsUpdate=!0,o&&o(n)})).catch(s)}),a,s),n}parseInternalAsync(e){const{levels:t}=e,r=new Set;for(let e=0;e<t.length;e++)r.add(t[e].data.buffer);return this._createTexture(Array.from(r),{...e,lowLevel:!0})}_createTexture(r,o={}){let a,s;const i=o;let n=0;for(let e=0;e<r.length;e++)n+=r[e].byteLength;const d=this._allocateWorker(n).then((e=>(a=e,s=this.workerNextTaskID++,new Promise(((e,t)=>{a._callbacks[s]={resolve:e,reject:t},a.postMessage({type:"transcode",id:s,buffers:r,taskConfig:i},r)}))))).then((t=>{const{mipmaps:r,width:o,height:a,format:s}=t,i=new e.CompressedTexture(r,o,a,s,e.UnsignedByteType);return i.minFilter=1===r.length?e.LinearFilter:e.LinearMipmapLinearFilter,i.magFilter=e.LinearFilter,i.generateMipmaps=!1,i.needsUpdate=!0,i}));return d.catch((()=>!0)).then((()=>{a&&s&&(a._taskLoad-=n,delete a._callbacks[s])})),t.set(r[0],{promise:d}),d}_initTranscoder(){if(!this.transcoderPending){const t=new e.FileLoader(this.manager);t.setPath(this.transcoderPath),t.setWithCredentials(this.withCredentials);const o=new Promise(((e,r)=>{t.load("basis_transcoder.js",e,void 0,r)})),a=new e.FileLoader(this.manager);a.setPath(this.transcoderPath),a.setResponseType("arraybuffer"),a.setWithCredentials(this.withCredentials);const s=new Promise(((e,t)=>{a.load("basis_transcoder.wasm",e,void 0,t)}));this.transcoderPending=Promise.all([o,s]).then((([e,t])=>{const o=r.BasisWorker.toString(),a=["/* constants */","let _EngineFormat = "+JSON.stringify(r.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(r.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(r.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",o.substring(o.indexOf("{")+1,o.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([a])),this.transcoderBinary=t}))}return this.transcoderPending}_allocateWorker(e){return this._initTranscoder().then((()=>{if(this.workerPool.length<this.workerLimit){const e=new Worker(this.workerSourceURL);e._callbacks={},e._taskLoad=0,e.postMessage({type:"init",config:this.workerConfig,transcoderBinary:this.transcoderBinary}),e.onmessage=function(t){const r=t.data;switch(r.type){case"transcode":e._callbacks[r.id].resolve(r);break;case"error":e._callbacks[r.id].reject(r);break;default:console.error('THREE.BasisTextureLoader: Unexpected message, "'+r.type+'"')}},this.workerPool.push(e)}else this.workerPool.sort((function(e,t){return e._taskLoad>t._taskLoad?-1:1}));const t=this.workerPool[this.workerPool.length-1];return t._taskLoad+=e,t}))}dispose(){for(let e=0;e<this.workerPool.length;e++)this.workerPool[e].terminate();return this.workerPool.length=0,this}}r.BasisFormat={ETC1S:0,UASTC_4x4:1},r.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16},r.EngineFormat={RGBAFormat:e.RGBAFormat,RGBA_ASTC_4x4_Format:e.RGBA_ASTC_4x4_Format,RGBA_BPTC_Format:e.RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:e.RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format:e.RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format:e.RGBA_S3TC_DXT5_Format,RGB_ETC1_Format:e.RGB_ETC1_Format,RGB_ETC2_Format:e.RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format:e.RGB_PVRTC_4BPPV1_Format,RGB_S3TC_DXT1_Format:e.RGB_S3TC_DXT1_Format},r.BasisWorker=function(){let e,t,r;const o=_EngineFormat,a=_TranscoderFormat,s=_BasisFormat;onmessage=function(o){const a=o.data;switch(a.type){case"init":e=a.config,i=a.transcoderBinary,t=new Promise((e=>{r={wasmBinary:i,onRuntimeInitialized:e},BASIS(r)})).then((()=>{r.initializeBasis()}));break;case"transcode":t.then((()=>{try{const{width:e,height:t,hasAlpha:o,mipmaps:i,format:n}=a.taskConfig.lowLevel?function(e){const{basisFormat:t,width:o,height:a,hasAlpha:i}=e,{transcoderFormat:n,engineFormat:d}=c(t,o,a,i),T=r.getBytesPerBlockOrPixel(n);h(r.isFormatSupported(n),"THREE.BasisTextureLoader: Unsupported format.");const p=[];if(t===s.ETC1S){const t=new r.LowLevelETC1SImageTranscoder,{endpointCount:o,endpointsData:a,selectorCount:s,selectorsData:d,tablesData:c}=e.globalData;try{let r;r=t.decodePalettes(o,a,s,d),h(r,"THREE.BasisTextureLoader: decodePalettes() failed."),r=t.decodeTables(c),h(r,"THREE.BasisTextureLoader: decodeTables() failed.");for(let o=0;o<e.levels.length;o++){const a=e.levels[o],s=e.globalData.imageDescs[o],d=m(n,a.width,a.height),c=new Uint8Array(d);r=t.transcodeImage(n,c,d/T,a.data,l(n,a.width),_(n,a.height),a.width,a.height,a.index,s.rgbSliceByteOffset,s.rgbSliceByteLength,s.alphaSliceByteOffset,s.alphaSliceByteLength,s.imageFlags,i,!1,0,0),h(r,"THREE.BasisTextureLoader: transcodeImage() failed for level "+a.index+"."),p.push({data:c,width:a.width,height:a.height})}}finally{t.delete()}}else for(let t=0;t<e.levels.length;t++){const o=e.levels[t],a=m(n,o.width,o.height),s=new Uint8Array(a);h(r.transcodeUASTCImage(n,s,a/T,o.data,l(n,o.width),_(n,o.height),o.width,o.height,o.index,0,o.data.byteLength,0,i,!1,0,0,-1,-1),"THREE.BasisTextureLoader: transcodeUASTCImage() failed for level "+o.index+"."),p.push({data:s,width:o.width,height:o.height})}return{width:o,height:a,hasAlpha:i,mipmaps:p,format:d}}(a.taskConfig):function(e){const t=new r.BasisFile(new Uint8Array(e)),o=t.isUASTC()?s.UASTC_4x4:s.ETC1S,a=t.getImageWidth(0,0),i=t.getImageHeight(0,0),n=t.getNumLevels(0),d=t.getHasAlpha();function h(){t.close(),t.delete()}const{transcoderFormat:l,engineFormat:_}=c(o,a,i,d);if(!a||!i||!n)throw h(),new Error("THREE.BasisTextureLoader:\tInvalid texture");if(!t.startTranscoding())throw h(),new Error("THREE.BasisTextureLoader: .startTranscoding failed");const m=[];for(let e=0;e<n;e++){const r=t.getImageWidth(0,e),o=t.getImageHeight(0,e),a=new Uint8Array(t.getImageTranscodedSizeInBytes(0,e,l));if(!t.transcodeImage(a,0,e,l,0,d))throw h(),new Error("THREE.BasisTextureLoader: .transcodeImage failed.");m.push({data:a,width:r,height:o})}return h(),{width:a,height:i,hasAlpha:d,mipmaps:m,format:_}}(a.buffers[0]),d=[];for(let e=0;e<i.length;++e)d.push(i[e].data.buffer);self.postMessage({type:"transcode",id:a.id,width:e,height:t,hasAlpha:o,mipmaps:i,format:n},d)}catch(e){console.error(e),self.postMessage({type:"error",id:a.id,error:e.message})}}))}var i};const i=[{if:"astcSupported",basisFormat:[s.UASTC_4x4],transcoderFormat:[a.ASTC_4x4,a.ASTC_4x4],engineFormat:[o.RGBA_ASTC_4x4_Format,o.RGBA_ASTC_4x4_Format],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[s.ETC1S,s.UASTC_4x4],transcoderFormat:[a.BC7_M5,a.BC7_M5],engineFormat:[o.RGBA_BPTC_Format,o.RGBA_BPTC_Format],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[s.ETC1S,s.UASTC_4x4],transcoderFormat:[a.BC1,a.BC3],engineFormat:[o.RGB_S3TC_DXT1_Format,o.RGBA_S3TC_DXT5_Format],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[s.ETC1S,s.UASTC_4x4],transcoderFormat:[a.ETC1,a.ETC2],engineFormat:[o.RGB_ETC2_Format,o.RGBA_ETC2_EAC_Format],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[s.ETC1S,s.UASTC_4x4],transcoderFormat:[a.ETC1,a.ETC1],engineFormat:[o.RGB_ETC1_Format,o.RGB_ETC1_Format],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[s.ETC1S,s.UASTC_4x4],transcoderFormat:[a.PVRTC1_4_RGB,a.PVRTC1_4_RGBA],engineFormat:[o.RGB_PVRTC_4BPPV1_Format,o.RGBA_PVRTC_4BPPV1_Format],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0}],n=i.sort((function(e,t){return e.priorityETC1S-t.priorityETC1S})),d=i.sort((function(e,t){return e.priorityUASTC-t.priorityUASTC}));function c(t,r,i,c){let h,l;const _=t===s.ETC1S?n:d;for(let o=0;o<_.length;o++){const a=_[o];if(e[a.if]&&(a.basisFormat.includes(t)&&(!a.needsPowerOfTwo||T(r)&&T(i))))return h=a.transcoderFormat[c?1:0],l=a.engineFormat[c?1:0],{transcoderFormat:h,engineFormat:l}}return console.warn("THREE.BasisTextureLoader: No suitable compressed texture format found. Decoding to RGBA32."),h=a.RGBA32,l=o.RGBAFormat,{transcoderFormat:h,engineFormat:l}}function h(e,t){if(!e)throw new Error(t)}function l(e,t){return Math.ceil(t/r.getFormatBlockWidth(e))}function _(e,t){return Math.ceil(t/r.getFormatBlockHeight(e))}function m(e,t,o){const s=r.getBytesPerBlockOrPixel(e);if(r.formatIsUncompressed(e))return t*o*s;if(e===a.PVRTC1_4_RGB||e===a.PVRTC1_4_RGBA){const e=t+3&-4,r=o+3&-4;return(Math.max(8,e)*Math.max(8,r)*4+7)/8}return l(e,t)*_(e,o)*s}function T(e){return e<=2||0==(e&e-1)&&0!==e}},exports.BasisTextureLoader=r;
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("./TGALoader.cjs.js");class n extends e.Loader{constructor(e){super(e)}load(t,n,s,o){const i=this,r=""===i.path?e.LoaderUtils.extractUrlBase(t):i.path,a=new e.FileLoader(i.manager);a.setPath(i.path),a.setRequestHeader(i.requestHeader),a.setWithCredentials(i.withCredentials),a.load(t,(function(e){try{n(i.parse(e,r))}catch(e){o?o(e):console.error(e),i.manager.itemError(t)}}),s,o)}parse(n,s){function o(e,t){const n=[],s=e.childNodes;for(let e=0,o=s.length;e<o;e++){const o=s[e];o.nodeName===t&&n.push(o)}return n}function i(e){if(0===e.length)return[];const t=e.trim().split(/\s+/),n=new Array(t.length);for(let e=0,s=t.length;e<s;e++)n[e]=t[e];return n}function r(e){if(0===e.length)return[];const t=e.trim().split(/\s+/),n=new Array(t.length);for(let e=0,s=t.length;e<s;e++)n[e]=parseFloat(t[e]);return n}function a(e){if(0===e.length)return[];const t=e.trim().split(/\s+/),n=new Array(t.length);for(let e=0,s=t.length;e<s;e++)n[e]=parseInt(t[e]);return n}function c(e){return e.substring(1)}function l(e){return 0===Object.keys(e).length}function d(e){return void 0!==e&&!0===e.hasAttribute("meter")?parseFloat(e.getAttribute("meter")):1}function u(e){return void 0!==e?e.textContent:"Y_UP"}function f(e,t,n,s){const i=o(e,t)[0];if(void 0!==i){const e=o(i,n);for(let t=0;t<e.length;t++)s(e[t])}}function h(e,t){for(const n in e){e[n].build=t(e[n])}}function m(e,t){return void 0!==e.build||(e.build=t(e)),e.build}function p(e){const t={inputs:{}};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"input":const e=c(s.getAttribute("source")),n=s.getAttribute("semantic");t.inputs[n]=e}}return t}function g(e){const t={};let n=e.getAttribute("target").split("/");const s=n.shift();let o=n.shift();const i=-1!==o.indexOf("("),r=-1!==o.indexOf(".");if(r)n=o.split("."),o=n.shift(),t.member=n.shift();else if(i){const e=o.split("(");o=e.shift();for(let t=0;t<e.length;t++)e[t]=parseInt(e[t].replace(/\)/,""));t.indices=e}return t.id=s,t.sid=o,t.arraySyntax=i,t.memberSyntax=r,t.sampler=c(e.getAttribute("source")),t}function b(e){const t=[],n=e.channels,s=e.samplers,o=e.sources;for(const e in n)if(n.hasOwnProperty(e)){const i=n[e],r=s[i.sampler],a=r.inputs.INPUT,c=r.inputs.OUTPUT;A(N(i,o[a],o[c]),t)}return t}function y(e){return m(Qe.animations[e],b)}function N(e,t,n){const s=Qe.nodes[e.id],o=Fe(s.id),i=s.transforms[e.sid],r=s.matrix.clone().transpose();let a,c,l,d,u,f;const h={};switch(i){case"matrix":for(l=0,d=t.array.length;l<d;l++)if(a=t.array[l],c=l*n.stride,void 0===h[a]&&(h[a]={}),!0===e.arraySyntax){const t=n.array[c],s=e.indices[0]+4*e.indices[1];h[a][s]=t}else for(u=0,f=n.stride;u<f;u++)h[a][u]=n.array[c+u];break;case"translate":case"rotate":case"scale":console.warn('THREE.ColladaLoader: Animation transform type "%s" not yet implemented.',i)}const m=function(e,t){const n=[];for(const t in e)n.push({time:parseFloat(t),value:e[t]});n.sort(s);for(let e=0;e<16;e++)v(n,e,t.elements[e]);return n;function s(e,t){return e.time-t.time}}(h,r);return{name:o.uuid,keyframes:m}}const w=new e.Vector3,x=new e.Vector3,k=new e.Quaternion;function A(t,n){const s=t.keyframes,o=t.name,i=[],r=[],a=[],c=[];for(let e=0,t=s.length;e<t;e++){const t=s[e],n=t.time,o=t.value;_e.fromArray(o).transpose(),_e.decompose(w,k,x),i.push(n),r.push(w.x,w.y,w.z),a.push(k.x,k.y,k.z,k.w),c.push(x.x,x.y,x.z)}return r.length>0&&n.push(new e.VectorKeyframeTrack(o+".position",i,r)),a.length>0&&n.push(new e.QuaternionKeyframeTrack(o+".quaternion",i,a)),c.length>0&&n.push(new e.VectorKeyframeTrack(o+".scale",i,c)),n}function v(e,t,n){let s,o,i,r=!0;for(o=0,i=e.length;o<i;o++)s=e[o],void 0===s.value[t]?s.value[t]=null:r=!1;if(!0===r)for(o=0,i=e.length;o<i;o++)s=e[o],s.value[t]=n;else!function(e,t){let n,s;for(let o=0,i=e.length;o<i;o++){const i=e[o];if(null===i.value[t]){if(n=T(e,o,t),s=C(e,o,t),null===n){i.value[t]=s.value[t];continue}if(null===s){i.value[t]=n.value[t];continue}_(i,n,s,t)}}}(e,t)}function T(e,t,n){for(;t>=0;){const s=e[t];if(null!==s.value[n])return s;t--}return null}function C(e,t,n){for(;t<e.length;){const s=e[t];if(null!==s.value[n])return s;t++}return null}function _(e,t,n,s){n.time-t.time!=0?e.value[s]=(e.time-t.time)*(n.value[s]-t.value[s])/(n.time-t.time)+t.value[s]:e.value[s]=t.value[s]}function E(t){const n=[],s=t.name,o=t.end-t.start||-1,i=t.animations;for(let e=0,t=i.length;e<t;e++){const t=y(i[e]);for(let e=0,s=t.length;e<s;e++)n.push(t[e])}return new e.AnimationClip(s,o,n)}function M(e){return m(Qe.clips[e],E)}function L(e){const t={sources:{}};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"bind_shape_matrix":t.bindShapeMatrix=r(s.textContent);break;case"source":const e=s.getAttribute("id");t.sources[e]=ae(s);break;case"joints":t.joints=R(s);break;case"vertex_weights":t.vertexWeights=O(s)}}return t}function R(e){const t={inputs:{}};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"input":const e=s.getAttribute("semantic"),n=c(s.getAttribute("source"));t.inputs[e]=n}}return t}function O(e){const t={inputs:{}};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"input":const e=s.getAttribute("semantic"),n=c(s.getAttribute("source")),o=parseInt(s.getAttribute("offset"));t.inputs[e]={id:n,offset:o};break;case"vcount":t.vcount=a(s.textContent);break;case"v":t.v=a(s.textContent)}}return t}function j(t){const n={id:t.id},s=Qe.geometries[n.id];return void 0!==t.skin&&(n.skin=function(t){const n=4,s={joints:[],indices:{array:[],stride:n},weights:{array:[],stride:n}},o=t.sources,i=t.vertexWeights,r=i.vcount,a=i.v,c=i.inputs.JOINT.offset,l=i.inputs.WEIGHT.offset,d=t.sources[t.joints.inputs.JOINT],u=t.sources[t.joints.inputs.INV_BIND_MATRIX],f=o[i.inputs.WEIGHT.id].array;let h,m,p,g=0;for(h=0,p=r.length;h<p;h++){const e=r[h],t=[];for(m=0;m<e;m++){const e=a[g+c],n=f[a[g+l]];t.push({index:e,weight:n}),g+=2}for(t.sort(b),m=0;m<n;m++){const e=t[m];void 0!==e?(s.indices.array.push(e.index),s.weights.array.push(e.weight)):(s.indices.array.push(0),s.weights.array.push(0))}}t.bindShapeMatrix?s.bindMatrix=(new e.Matrix4).fromArray(t.bindShapeMatrix).transpose():s.bindMatrix=(new e.Matrix4).identity();for(h=0,p=d.array.length;h<p;h++){const t=d.array[h],n=(new e.Matrix4).fromArray(u.array,h*u.stride).transpose();s.joints.push({name:t,boneInverse:n})}return s;function b(e,t){return t.weight-e.weight}}(t.skin),s.sources.skinIndices=n.skin.indices,s.sources.skinWeights=n.skin.weights),n}function q(e){return void 0!==e.build?e.build:e.init_from}function I(e){const t=Qe.images[e];return void 0!==t?m(t,q):(console.warn("THREE.ColladaLoader: Couldn't find image with ID:",e),null)}function S(e){const t={surfaces:{},samplers:{}};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"newparam":U(s,t);break;case"technique":t.technique=B(s);break;case"extra":t.extra=G(s)}}return t}function U(e,t){const n=e.getAttribute("sid");for(let s=0,o=e.childNodes.length;s<o;s++){const o=e.childNodes[s];if(1===o.nodeType)switch(o.nodeName){case"surface":t.surfaces[n]=F(o);break;case"sampler2D":t.samplers[n]=H(o)}}}function F(e){const t={};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"init_from":t.init_from=s.textContent}}return t}function H(e){const t={};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"source":t.source=s.textContent}}return t}function B(e){const t={};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"constant":case"lambert":case"blinn":case"phong":t.type=s.nodeName,t.parameters=V(s);break;case"extra":t.extra=G(s)}}return t}function V(e){const t={};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"emission":case"diffuse":case"specular":case"bump":case"ambient":case"shininess":case"transparency":t[s.nodeName]=P(s);break;case"transparent":t[s.nodeName]={opaque:s.hasAttribute("opaque")?s.getAttribute("opaque"):"A_ONE",data:P(s)}}}return t}function P(e){const t={};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"color":t[s.nodeName]=r(s.textContent);break;case"float":t[s.nodeName]=parseFloat(s.textContent);break;case"texture":t[s.nodeName]={id:s.getAttribute("texture"),extra:D(s)}}}return t}function D(e){const t={technique:{}};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"extra":W(s,t)}}return t}function W(e,t){for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"technique":z(s,t)}}}function z(e,t){for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"repeatU":case"repeatV":case"offsetU":case"offsetV":t.technique[s.nodeName]=parseFloat(s.textContent);break;case"wrapU":case"wrapV":"TRUE"===s.textContent.toUpperCase()?t.technique[s.nodeName]=1:"FALSE"===s.textContent.toUpperCase()?t.technique[s.nodeName]=0:t.technique[s.nodeName]=parseInt(s.textContent);break;case"bump":t[s.nodeName]=X(s)}}}function G(e){const t={};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"technique":t.technique=J(s)}}return t}function J(e){const t={};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"double_sided":t[s.nodeName]=parseInt(s.textContent);break;case"bump":t[s.nodeName]=X(s)}}return t}function X(e){for(var t={},n=0,s=e.childNodes.length;n<s;n++){var o=e.childNodes[n];if(1===o.nodeType)switch(o.nodeName){case"texture":t[o.nodeName]={id:o.getAttribute("texture"),texcoord:o.getAttribute("texcoord"),extra:D(o)}}}return t}function K(e){return e}function Z(t){const n=(s=t.url,m(Qe.effects[s],K));var s;const o=n.profile.technique;let i;switch(o.type){case"phong":case"blinn":i=new e.MeshPhongMaterial;break;case"lambert":i=new e.MeshLambertMaterial;break;default:i=new e.MeshBasicMaterial}function r(t){const s=n.profile.samplers[t.id];let o=null;if(void 0!==s){o=I(n.profile.surfaces[s.source].init_from)}else console.warn("THREE.ColladaLoader: Undefined sampler. Access image directly (see #12530)."),o=I(t.id);if(null!==o){const n=function(e){let t,n=e.slice(2+(e.lastIndexOf(".")-1>>>0));switch(n=n.toLowerCase(),n){case"tga":t=Je;break;default:t=Ge}return t}(o);if(void 0!==n){const s=n.load(o),i=t.extra;if(void 0!==i&&void 0!==i.technique&&!1===l(i.technique)){const t=i.technique;s.wrapS=t.wrapU?e.RepeatWrapping:e.ClampToEdgeWrapping,s.wrapT=t.wrapV?e.RepeatWrapping:e.ClampToEdgeWrapping,s.offset.set(t.offsetU||0,t.offsetV||0),s.repeat.set(t.repeatU||1,t.repeatV||1)}else s.wrapS=e.RepeatWrapping,s.wrapT=e.RepeatWrapping;return s}return console.warn("THREE.ColladaLoader: Loader for texture %s not found.",o),null}return console.warn("THREE.ColladaLoader: Couldn't create texture with ID:",t.id),null}i.name=t.name||"";const a=o.parameters;for(const e in a){const t=a[e];switch(e){case"diffuse":t.color&&i.color.fromArray(t.color),t.texture&&(i.map=r(t.texture));break;case"specular":t.color&&i.specular&&i.specular.fromArray(t.color),t.texture&&(i.specularMap=r(t.texture));break;case"bump":t.texture&&(i.normalMap=r(t.texture));break;case"ambient":t.texture&&(i.lightMap=r(t.texture));break;case"shininess":t.float&&i.shininess&&(i.shininess=t.float);break;case"emission":t.color&&i.emissive&&i.emissive.fromArray(t.color),t.texture&&(i.emissiveMap=r(t.texture))}}let c=a.transparent,d=a.transparency;if(void 0===d&&c&&(d={float:1}),void 0===c&&d&&(c={opaque:"A_ONE",data:{color:[1,1,1,1]}}),c&&d)if(c.data.texture)i.transparent=!0;else{const e=c.data.color;switch(c.opaque){case"A_ONE":i.opacity=e[3]*d.float;break;case"RGB_ZERO":i.opacity=1-e[0]*d.float;break;case"A_ZERO":i.opacity=1-e[3]*d.float;break;case"RGB_ONE":i.opacity=e[0]*d.float;break;default:console.warn('THREE.ColladaLoader: Invalid opaque type "%s" of transparent tag.',c.opaque)}i.opacity<1&&(i.transparent=!0)}if(void 0!==o.extra&&void 0!==o.extra.technique){const t=o.extra.technique;for(const n in t){const s=t[n];switch(n){case"double_sided":i.side=1===s?e.DoubleSide:e.FrontSide;break;case"bump":i.normalMap=r(s.texture),i.normalScale=new e.Vector2(1,1)}}}return i}function Q(e){return m(Qe.materials[e],Z)}function Y(e){for(let t=0;t<e.childNodes.length;t++){const n=e.childNodes[t];switch(n.nodeName){case"technique_common":return $(n)}}return{}}function $(e){const t={};for(let n=0;n<e.childNodes.length;n++){const s=e.childNodes[n];switch(s.nodeName){case"perspective":case"orthographic":t.technique=s.nodeName,t.parameters=ee(s)}}return t}function ee(e){const t={};for(let n=0;n<e.childNodes.length;n++){const s=e.childNodes[n];switch(s.nodeName){case"xfov":case"yfov":case"xmag":case"ymag":case"znear":case"zfar":case"aspect_ratio":t[s.nodeName]=parseFloat(s.textContent)}}return t}function te(t){let n;switch(t.optics.technique){case"perspective":n=new e.PerspectiveCamera(t.optics.parameters.yfov,t.optics.parameters.aspect_ratio,t.optics.parameters.znear,t.optics.parameters.zfar);break;case"orthographic":let s=t.optics.parameters.ymag,o=t.optics.parameters.xmag;const i=t.optics.parameters.aspect_ratio;o=void 0===o?s*i:o,s=void 0===s?o/i:s,o*=.5,s*=.5,n=new e.OrthographicCamera(-o,o,s,-s,t.optics.parameters.znear,t.optics.parameters.zfar);break;default:n=new e.PerspectiveCamera}return n.name=t.name||"",n}function ne(e){const t=Qe.cameras[e];return void 0!==t?m(t,te):(console.warn("THREE.ColladaLoader: Couldn't find camera with ID:",e),null)}function se(e){const t={};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"directional":case"point":case"spot":case"ambient":t.technique=s.nodeName,t.parameters=oe(s)}}return t}function oe(t){const n={};for(let s=0,o=t.childNodes.length;s<o;s++){const o=t.childNodes[s];if(1===o.nodeType)switch(o.nodeName){case"color":const t=r(o.textContent);n.color=(new e.Color).fromArray(t);break;case"falloff_angle":n.falloffAngle=parseFloat(o.textContent);break;case"quadratic_attenuation":const s=parseFloat(o.textContent);n.distance=s?Math.sqrt(1/s):0}}return n}function ie(t){let n;switch(t.technique){case"directional":n=new e.DirectionalLight;break;case"point":n=new e.PointLight;break;case"spot":n=new e.SpotLight;break;case"ambient":n=new e.AmbientLight}return t.parameters.color&&n.color.copy(t.parameters.color),t.parameters.distance&&(n.distance=t.parameters.distance),n}function re(e){const t=Qe.lights[e];return void 0!==t?m(t,ie):(console.warn("THREE.ColladaLoader: Couldn't find light with ID:",e),null)}function ae(e){const t={array:[],stride:3};for(let n=0;n<e.childNodes.length;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"float_array":t.array=r(s.textContent);break;case"Name_array":t.array=i(s.textContent);break;case"technique_common":const e=o(s,"accessor")[0];void 0!==e&&(t.stride=parseInt(e.getAttribute("stride")))}}return t}function ce(e){const t={};for(let n=0;n<e.childNodes.length;n++){const s=e.childNodes[n];1===s.nodeType&&(t[s.getAttribute("semantic")]=c(s.getAttribute("source")))}return t}function le(e){const t={type:e.nodeName,material:e.getAttribute("material"),count:parseInt(e.getAttribute("count")),inputs:{},stride:0,hasUV:!1};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"input":const e=c(s.getAttribute("source")),n=s.getAttribute("semantic"),o=parseInt(s.getAttribute("offset")),i=parseInt(s.getAttribute("set")),r=i>0?n+i:n;t.inputs[r]={id:e,offset:o},t.stride=Math.max(t.stride,o+1),"TEXCOORD"===n&&(t.hasUV=!0);break;case"vcount":t.vcount=a(s.textContent);break;case"p":t.p=a(s.textContent)}}return t}function de(e){let t=0;for(let n=0,s=e.length;n<s;n++){!0===e[n].hasUV&&t++}t>0&&t<e.length&&(e.uvsNeedsFix=!0)}function ue(e){const t={},n=e.sources,s=e.vertices,o=e.primitives;if(0===o.length)return{};const i=function(e){const t={};for(let n=0;n<e.length;n++){const s=e[n];void 0===t[s.type]&&(t[s.type]=[]),t[s.type].push(s)}return t}(o);for(const e in i){const o=i[e];de(o),t[e]=fe(o,n,s)}return t}function fe(t,n,s){const o={},i={array:[],stride:0},r={array:[],stride:0},a={array:[],stride:0},c={array:[],stride:0},l={array:[],stride:0},d=[],u=4,f=[],h=4,m=new e.BufferGeometry,p=[];let g=0;for(let e=0;e<t.length;e++){const o=t[e],u=o.inputs;let h=0;switch(o.type){case"lines":case"linestrips":h=2*o.count;break;case"triangles":h=3*o.count;break;case"polylist":for(let e=0;e<o.count;e++){const t=o.vcount[e];switch(t){case 3:h+=3;break;case 4:h+=6;break;default:h+=3*(t-2)}}break;default:console.warn("THREE.ColladaLoader: Unknow primitive type:",o.type)}m.addGroup(g,h,e),g+=h,o.material&&p.push(o.material);for(const e in u){const h=u[e];switch(e){case"VERTEX":for(const e in s){const u=s[e];switch(e){case"POSITION":const s=i.array.length;if(he(o,n[u],h.offset,i.array),i.stride=n[u].stride,n.skinWeights&&n.skinIndices&&(he(o,n.skinIndices,h.offset,d),he(o,n.skinWeights,h.offset,f)),!1===o.hasUV&&!0===t.uvsNeedsFix){const e=(i.array.length-s)/i.stride;for(let t=0;t<e;t++)a.array.push(0,0)}break;case"NORMAL":he(o,n[u],h.offset,r.array),r.stride=n[u].stride;break;case"COLOR":he(o,n[u],h.offset,l.array),l.stride=n[u].stride;break;case"TEXCOORD":he(o,n[u],h.offset,a.array),a.stride=n[u].stride;break;case"TEXCOORD1":he(o,n[u],h.offset,c.array),a.stride=n[u].stride;break;default:console.warn('THREE.ColladaLoader: Semantic "%s" not handled in geometry build process.',e)}}break;case"NORMAL":he(o,n[h.id],h.offset,r.array),r.stride=n[h.id].stride;break;case"COLOR":he(o,n[h.id],h.offset,l.array),l.stride=n[h.id].stride;break;case"TEXCOORD":he(o,n[h.id],h.offset,a.array),a.stride=n[h.id].stride;break;case"TEXCOORD1":he(o,n[h.id],h.offset,c.array),c.stride=n[h.id].stride}}}return i.array.length>0&&m.setAttribute("position",new e.Float32BufferAttribute(i.array,i.stride)),r.array.length>0&&m.setAttribute("normal",new e.Float32BufferAttribute(r.array,r.stride)),l.array.length>0&&m.setAttribute("color",new e.Float32BufferAttribute(l.array,l.stride)),a.array.length>0&&m.setAttribute("uv",new e.Float32BufferAttribute(a.array,a.stride)),c.array.length>0&&m.setAttribute("uv2",new e.Float32BufferAttribute(c.array,c.stride)),d.length>0&&m.setAttribute("skinIndex",new e.Float32BufferAttribute(d,u)),f.length>0&&m.setAttribute("skinWeight",new e.Float32BufferAttribute(f,h)),o.data=m,o.type=t[0].type,o.materialKeys=p,o}function he(e,t,n,s){const o=e.p,i=e.stride,r=e.vcount;function a(e){let t=o[e+n]*l;const i=t+l;for(;t<i;t++)s.push(c[t])}const c=t.array,l=t.stride;if(void 0!==e.vcount){let e=0;for(let t=0,n=r.length;t<n;t++){const n=r[t];if(4===n){const t=e+1*i,n=e+2*i,s=e+3*i;a(e+0*i),a(t),a(s),a(t),a(n),a(s)}else if(3===n){const t=e+1*i,n=e+2*i;a(e+0*i),a(t),a(n)}else if(n>4)for(let t=1,s=n-2;t<=s;t++){const n=e+i*t,s=e+i*(t+1);a(e+0*i),a(n),a(s)}e+=i*n}}else for(let e=0,t=o.length;e<t;e+=i)a(e)}function me(e){return m(Qe.geometries[e],ue)}function pe(e){return void 0!==e.build?e.build:e}function ge(e,t){for(let n=0;n<e.childNodes.length;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"joint":t.joints[s.getAttribute("sid")]=be(s);break;case"link":t.links.push(Ne(s))}}}function be(e){let t;for(let n=0;n<e.childNodes.length;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"prismatic":case"revolute":t=ye(s)}}return t}function ye(t){const n={sid:t.getAttribute("sid"),name:t.getAttribute("name")||"",axis:new e.Vector3,limits:{min:0,max:0},type:t.nodeName,static:!1,zeroPosition:0,middlePosition:0};for(let e=0;e<t.childNodes.length;e++){const s=t.childNodes[e];if(1===s.nodeType)switch(s.nodeName){case"axis":const e=r(s.textContent);n.axis.fromArray(e);break;case"limits":const t=s.getElementsByTagName("max")[0],o=s.getElementsByTagName("min")[0];n.limits.max=parseFloat(t.textContent),n.limits.min=parseFloat(o.textContent)}}return n.limits.min>=n.limits.max&&(n.static=!0),n.middlePosition=(n.limits.min+n.limits.max)/2,n}function Ne(e){const t={sid:e.getAttribute("sid"),name:e.getAttribute("name")||"",attachments:[],transforms:[]};for(let n=0;n<e.childNodes.length;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"attachment_full":t.attachments.push(we(s));break;case"matrix":case"translate":case"rotate":t.transforms.push(xe(s))}}return t}function we(e){const t={joint:e.getAttribute("joint").split("/").pop(),transforms:[],links:[]};for(let n=0;n<e.childNodes.length;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"link":t.links.push(Ne(s));break;case"matrix":case"translate":case"rotate":t.transforms.push(xe(s))}}return t}function xe(t){const n={type:t.nodeName},s=r(t.textContent);switch(n.type){case"matrix":n.obj=new e.Matrix4,n.obj.fromArray(s).transpose();break;case"translate":n.obj=new e.Vector3,n.obj.fromArray(s);break;case"rotate":n.obj=new e.Vector3,n.obj.fromArray(s),n.angle=e.MathUtils.degToRad(s[3])}return n}function ke(e,t){for(let n=0;n<e.childNodes.length;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"technique_common":Ae(s,t)}}}function Ae(e,t){for(let n=0;n<e.childNodes.length;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"inertia":t.inertia=r(s.textContent);break;case"mass":t.mass=r(s.textContent)[0]}}}function ve(e){const t={target:e.getAttribute("target").split("/").pop()};for(let n=0;n<e.childNodes.length;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"axis":const e=s.getElementsByTagName("param")[0];t.axis=e.textContent;const n=t.axis.split("inst_").pop().split("axis")[0];t.jointIndex=n.substr(0,n.length-1)}}return t}function Te(e){return void 0!==e.build?e.build:e}function Ce(t){const n=[],s=Pe.querySelector('[id="'+t.id+'"]');for(let t=0;t<s.childNodes.length;t++){const o=s.childNodes[t];if(1!==o.nodeType)continue;let i,a;switch(o.nodeName){case"matrix":i=r(o.textContent);const t=(new e.Matrix4).fromArray(i).transpose();n.push({sid:o.getAttribute("sid"),type:o.nodeName,obj:t});break;case"translate":case"scale":i=r(o.textContent),a=(new e.Vector3).fromArray(i),n.push({sid:o.getAttribute("sid"),type:o.nodeName,obj:a});break;case"rotate":i=r(o.textContent),a=(new e.Vector3).fromArray(i);const s=e.MathUtils.degToRad(i[3]);n.push({sid:o.getAttribute("sid"),type:o.nodeName,obj:a,angle:s})}}return n}const _e=new e.Matrix4,Ee=new e.Vector3;function Me(t){const n={name:t.getAttribute("name")||"",type:t.getAttribute("type"),id:t.getAttribute("id"),sid:t.getAttribute("sid"),matrix:new e.Matrix4,nodes:[],instanceCameras:[],instanceControllers:[],instanceLights:[],instanceGeometries:[],instanceNodes:[],transforms:{}};for(let s=0;s<t.childNodes.length;s++){const o=t.childNodes[s];if(1!==o.nodeType)continue;let i;switch(o.nodeName){case"node":n.nodes.push(o.getAttribute("id")),Me(o);break;case"instance_camera":n.instanceCameras.push(c(o.getAttribute("url")));break;case"instance_controller":n.instanceControllers.push(Le(o));break;case"instance_light":n.instanceLights.push(c(o.getAttribute("url")));break;case"instance_geometry":n.instanceGeometries.push(Le(o));break;case"instance_node":n.instanceNodes.push(c(o.getAttribute("url")));break;case"matrix":i=r(o.textContent),n.matrix.multiply(_e.fromArray(i).transpose()),n.transforms[o.getAttribute("sid")]=o.nodeName;break;case"translate":i=r(o.textContent),Ee.fromArray(i),n.matrix.multiply(_e.makeTranslation(Ee.x,Ee.y,Ee.z)),n.transforms[o.getAttribute("sid")]=o.nodeName;break;case"rotate":i=r(o.textContent);const t=e.MathUtils.degToRad(i[3]);n.matrix.multiply(_e.makeRotationAxis(Ee.fromArray(i),t)),n.transforms[o.getAttribute("sid")]=o.nodeName;break;case"scale":i=r(o.textContent),n.matrix.scale(Ee.fromArray(i)),n.transforms[o.getAttribute("sid")]=o.nodeName;break;case"extra":break;default:console.log(o)}}return Ue(n.id)?console.warn("THREE.ColladaLoader: There is already a node with ID %s. Exclude current node from further processing.",n.id):Qe.nodes[n.id]=n,n}function Le(e){const t={id:c(e.getAttribute("url")),materials:{},skeletons:[]};for(let n=0;n<e.childNodes.length;n++){const s=e.childNodes[n];switch(s.nodeName){case"bind_material":const e=s.getElementsByTagName("instance_material");for(let n=0;n<e.length;n++){const s=e[n],o=s.getAttribute("symbol"),i=s.getAttribute("target");t.materials[o]=c(i)}break;case"skeleton":t.skeletons.push(c(s.textContent))}}return t}function Re(t,n){const s=[],o=[];let i,r,a;for(i=0;i<t.length;i++){const e=t[i];let o;if(Ue(e))o=Fe(e),Oe(o,n,s);else if(c=e,void 0!==Qe.visualScenes[c]){const t=Qe.visualScenes[e].children;for(let e=0;e<t.length;e++){const o=t[e];if("JOINT"===o.type){Oe(Fe(o.id),n,s)}}}else console.error("THREE.ColladaLoader: Unable to find root bone of skeleton with ID:",e)}var c;for(i=0;i<n.length;i++)for(r=0;r<s.length;r++)if(a=s[r],a.bone.name===n[i].name){o[i]=a,a.processed=!0;break}for(i=0;i<s.length;i++)a=s[i],!1===a.processed&&(o.push(a),a.processed=!0);const l=[],d=[];for(i=0;i<o.length;i++)a=o[i],l.push(a.bone),d.push(a.boneInverse);return new e.Skeleton(l,d)}function Oe(t,n,s){t.traverse((function(t){if(!0===t.isBone){let o;for(let e=0;e<n.length;e++){const s=n[e];if(s.name===t.name){o=s.boneInverse;break}}void 0===o&&(o=new e.Matrix4),s.push({bone:t,boneInverse:o,processed:!1})}}))}function je(t){const n=[],s=t.matrix,o=t.nodes,i=t.type,r=t.instanceCameras,a=t.instanceControllers,c=t.instanceLights,l=t.instanceGeometries,d=t.instanceNodes;for(let e=0,t=o.length;e<t;e++)n.push(Fe(o[e]));for(let e=0,t=r.length;e<t;e++){const t=ne(r[e]);null!==t&&n.push(t.clone())}for(let e=0,t=a.length;e<t;e++){const t=a[e],s=(u=t.id,m(Qe.controllers[u],j)),o=Se(me(s.id),t.materials),i=Re(t.skeletons,s.skin.joints);for(let e=0,t=o.length;e<t;e++){const t=o[e];t.isSkinnedMesh&&(t.bind(i,s.skin.bindMatrix),t.normalizeSkinWeights()),n.push(t)}}var u;for(let e=0,t=c.length;e<t;e++){const t=re(c[e]);null!==t&&n.push(t.clone())}for(let e=0,t=l.length;e<t;e++){const t=l[e],s=Se(me(t.id),t.materials);for(let e=0,t=s.length;e<t;e++)n.push(s[e])}for(let e=0,t=d.length;e<t;e++)n.push(Fe(d[e]).clone());let f;if(0===o.length&&1===n.length)f=n[0];else{f="JOINT"===i?new e.Bone:new e.Group;for(let e=0;e<n.length;e++)f.add(n[e])}return f.name="JOINT"===i?t.sid:t.name,f.matrix.copy(s),f.matrix.decompose(f.position,f.quaternion,f.scale),f}const qe=new e.MeshBasicMaterial({color:16711935});function Ie(e,t){const n=[];for(let s=0,o=e.length;s<o;s++){const o=t[e[s]];void 0===o?(console.warn("THREE.ColladaLoader: Material with key %s not found. Apply fallback material.",e[s]),n.push(qe)):n.push(Q(o))}return n}function Se(t,n){const s=[];for(const o in t){const i=t[o],r=Ie(i.materialKeys,n);0===r.length&&("lines"===o||"linestrips"===o?r.push(new e.LineBasicMaterial):r.push(new e.MeshPhongMaterial));const a=void 0!==i.data.attributes.skinIndex,c=1===r.length?r[0]:r;let l;switch(o){case"lines":l=new e.LineSegments(i.data,c);break;case"linestrips":l=new e.Line(i.data,c);break;case"triangles":case"polylist":l=a?new e.SkinnedMesh(i.data,c):new e.Mesh(i.data,c)}s.push(l)}return s}function Ue(e){return void 0!==Qe.nodes[e]}function Fe(e){return m(Qe.nodes[e],je)}function He(t){const n=new e.Group;n.name=t.name;const s=t.children;for(let e=0;e<s.length;e++){const t=s[e];n.add(Fe(t.id))}return n}function Be(e){return m(Qe.visualScenes[e],He)}if(0===n.length)return{scene:new e.Scene};const Ve=(new DOMParser).parseFromString(n,"application/xml"),Pe=o(Ve,"COLLADA")[0],De=Ve.getElementsByTagName("parsererror")[0];if(void 0!==De){const e=o(De,"div")[0];let t;return t=e?e.textContent:function(e){let t="";const n=[e];for(;n.length;){const e=n.shift();e.nodeType===Node.TEXT_NODE?t+=e.textContent:(t+="\n",n.push.apply(n,e.childNodes))}return t.trim()}(De),console.error("THREE.ColladaLoader: Failed to parse collada file.\n",t),null}const We=Pe.getAttribute("version");console.log("THREE.ColladaLoader: File version",We);const ze=function(e){return{unit:d(o(e,"unit")[0]),upAxis:u(o(e,"up_axis")[0])}}(o(Pe,"asset")[0]),Ge=new e.TextureLoader(this.manager);let Je;Ge.setPath(this.resourcePath||s).setCrossOrigin(this.crossOrigin),t.TGALoader&&(Je=new t.TGALoader(this.manager),Je.setPath(this.resourcePath||s));const Xe=[];let Ke={},Ze=0;const Qe={animations:{},clips:{},controllers:{},images:{},effects:{},materials:{},cameras:{},lights:{},geometries:{},nodes:{},visualScenes:{},kinematicsModels:{},physicsModels:{},kinematicsScenes:{}};f(Pe,"library_animations","animation",(function t(n){const s={sources:{},samplers:{},channels:{}};let o=!1;for(let e=0,i=n.childNodes.length;e<i;e++){const i=n.childNodes[e];if(1!==i.nodeType)continue;let r;switch(i.nodeName){case"source":r=i.getAttribute("id"),s.sources[r]=ae(i);break;case"sampler":r=i.getAttribute("id"),s.samplers[r]=p(i);break;case"channel":r=i.getAttribute("target"),s.channels[r]=g(i);break;case"animation":t(i),o=!0;break;default:console.log(i)}}!1===o&&(Qe.animations[n.getAttribute("id")||e.MathUtils.generateUUID()]=s)})),f(Pe,"library_animation_clips","animation_clip",(function(e){const t={name:e.getAttribute("id")||"default",start:parseFloat(e.getAttribute("start")||0),end:parseFloat(e.getAttribute("end")||0),animations:[]};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"instance_animation":t.animations.push(c(s.getAttribute("url")))}}Qe.clips[e.getAttribute("id")]=t})),f(Pe,"library_controllers","controller",(function(e){const t={};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"skin":t.id=c(s.getAttribute("source")),t.skin=L(s);break;case"morph":t.id=c(s.getAttribute("source")),console.warn("THREE.ColladaLoader: Morph target animation not supported yet.")}}Qe.controllers[e.getAttribute("id")]=t})),f(Pe,"library_images","image",(function(e){const t={init_from:o(e,"init_from")[0].textContent};Qe.images[e.getAttribute("id")]=t})),f(Pe,"library_effects","effect",(function(e){const t={};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"profile_COMMON":t.profile=S(s)}}Qe.effects[e.getAttribute("id")]=t})),f(Pe,"library_materials","material",(function(e){const t={name:e.getAttribute("name")};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"instance_effect":t.url=c(s.getAttribute("url"))}}Qe.materials[e.getAttribute("id")]=t})),f(Pe,"library_cameras","camera",(function(e){const t={name:e.getAttribute("name")};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"optics":t.optics=Y(s)}}Qe.cameras[e.getAttribute("id")]=t})),f(Pe,"library_lights","light",(function(e){let t={};for(let n=0,s=e.childNodes.length;n<s;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"technique_common":t=se(s)}}Qe.lights[e.getAttribute("id")]=t})),f(Pe,"library_geometries","geometry",(function(e){const t={name:e.getAttribute("name"),sources:{},vertices:{},primitives:[]},n=o(e,"mesh")[0];if(void 0!==n){for(let e=0;e<n.childNodes.length;e++){const s=n.childNodes[e];if(1!==s.nodeType)continue;const o=s.getAttribute("id");switch(s.nodeName){case"source":t.sources[o]=ae(s);break;case"vertices":t.vertices=ce(s);break;case"polygons":console.warn("THREE.ColladaLoader: Unsupported primitive type: ",s.nodeName);break;case"lines":case"linestrips":case"polylist":case"triangles":t.primitives.push(le(s));break;default:console.log(s)}}Qe.geometries[e.getAttribute("id")]=t}})),f(Pe,"library_nodes","node",Me),f(Pe,"library_visual_scenes","visual_scene",(function(e){const t={name:e.getAttribute("name"),children:[]};!function(e){const t=e.getElementsByTagName("node");for(let e=0;e<t.length;e++){const n=t[e];!1===n.hasAttribute("id")&&n.setAttribute("id","three_default_"+Ze++)}}(e);const n=o(e,"node");for(let e=0;e<n.length;e++)t.children.push(Me(n[e]));Qe.visualScenes[e.getAttribute("id")]=t})),f(Pe,"library_kinematics_models","kinematics_model",(function(e){const t={name:e.getAttribute("name")||"",joints:{},links:[]};for(let n=0;n<e.childNodes.length;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"technique_common":ge(s,t)}}Qe.kinematicsModels[e.getAttribute("id")]=t})),f(Pe,"library_physics_models","physics_model",(function(e){const t={name:e.getAttribute("name")||"",rigidBodies:{}};for(let n=0;n<e.childNodes.length;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"rigid_body":t.rigidBodies[s.getAttribute("name")]={},ke(s,t.rigidBodies[s.getAttribute("name")])}}Qe.physicsModels[e.getAttribute("id")]=t})),f(Pe,"scene","instance_kinematics_scene",(function(e){const t={bindJointAxis:[]};for(let n=0;n<e.childNodes.length;n++){const s=e.childNodes[n];if(1===s.nodeType)switch(s.nodeName){case"bind_joint_axis":t.bindJointAxis.push(ve(s))}}Qe.kinematicsScenes[c(e.getAttribute("url"))]=t})),h(Qe.animations,b),h(Qe.clips,E),h(Qe.controllers,j),h(Qe.images,q),h(Qe.effects,K),h(Qe.materials,Z),h(Qe.cameras,te),h(Qe.lights,ie),h(Qe.geometries,ue),h(Qe.visualScenes,He),function(){const t=Qe.clips;if(!0===l(t)){if(!1===l(Qe.animations)){const t=[];for(const e in Qe.animations){const n=y(e);for(let e=0,s=n.length;e<s;e++)t.push(n[e])}Xe.push(new e.AnimationClip("default",-1,t))}}else for(const e in t)Xe.push(M(e))}(),function(){const t=Object.keys(Qe.kinematicsModels)[0],n=Object.keys(Qe.kinematicsScenes)[0],s=Object.keys(Qe.visualScenes)[0];if(void 0===t||void 0===n)return;const o=(i=t,m(Qe.kinematicsModels[i],pe));var i;const r=function(e){return m(Qe.kinematicsScenes[e],Te)}(n),a=Be(s),c=r.bindJointAxis,l={};for(let e=0,t=c.length;e<t;e++){const t=c[e],n=Pe.querySelector('[sid="'+t.target+'"]');if(n){const e=n.parentElement;d(t.jointIndex,e)}}function d(e,t){const n=t.getAttribute("name"),s=o.joints[e];a.traverse((function(o){o.name===n&&(l[e]={object:o,transforms:Ce(t),joint:s,position:s.zeroPosition})}))}const u=new e.Matrix4;Ke={joints:o&&o.joints,getJointValue:function(e){const t=l[e];if(t)return t.position;console.warn("THREE.ColladaLoader: Joint "+e+" doesn't exist.")},setJointValue:function(t,n){const s=l[t];if(s){const o=s.joint;if(n>o.limits.max||n<o.limits.min)console.warn("THREE.ColladaLoader: Joint "+t+" value "+n+" outside of limits (min: "+o.limits.min+", max: "+o.limits.max+").");else if(o.static)console.warn("THREE.ColladaLoader: Joint "+t+" is static.");else{const i=s.object,r=o.axis,a=s.transforms;_e.identity();for(let s=0;s<a.length;s++){const i=a[s];if(i.sid&&-1!==i.sid.indexOf(t))switch(o.type){case"revolute":_e.multiply(u.makeRotationAxis(r,e.MathUtils.degToRad(n)));break;case"prismatic":_e.multiply(u.makeTranslation(r.x*n,r.y*n,r.z*n));break;default:console.warn("THREE.ColladaLoader: Unknown joint type: "+o.type)}else switch(i.type){case"matrix":_e.multiply(i.obj);break;case"translate":_e.multiply(u.makeTranslation(i.obj.x,i.obj.y,i.obj.z));break;case"scale":_e.scale(i.obj);break;case"rotate":_e.multiply(u.makeRotationAxis(i.obj,i.angle))}}i.matrix.copy(_e),i.matrix.decompose(i.position,i.quaternion,i.scale),l[t].position=n}}else console.log("THREE.ColladaLoader: "+t+" does not exist.")}}}();const Ye=function(e){return Be(c(o(e,"instance_visual_scene")[0].getAttribute("url")))}(o(Pe,"scene")[0]);return Ye.animations=Xe,"Z_UP"===ze.upAxis&&Ye.quaternion.setFromEuler(new e.Euler(-Math.PI/2,0,0)),Ye.scale.multiplyScalar(ze.unit),{get animations(){return console.warn("THREE.ColladaLoader: Please access animations over scene.animations now."),Xe},kinematics:Ke,library:Qe,scene:Ye}}}exports.ColladaLoader=n;
|
package/loaders/DDSLoader.cjs.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class r extends e.CompressedTextureLoader{constructor(e){super(e)}parse(r,t){const a={mipmaps:[],width:0,height:0,format:null,mipmapCount:1};function o(e){return e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)}function n(e,r,t,a){const o=t*a*4,n=new Uint8Array(e,r,o),s=new Uint8Array(o);let m=0,c=0;for(let e=0;e<a;e++)for(let e=0;e<t;e++){const e=n[c];c++;const r=n[c];c++;const t=n[c];c++;const a=n[c];c++,s[m]=t,m++,s[m]=r,m++,s[m]=e,m++,s[m]=a,m++}return s}const s=o("DXT1"),m=o("DXT3"),c=o("DXT5"),i=o("ETC1"),u=new Int32Array(r,0,31);if(542327876!==u[0])return console.error("THREE.DDSLoader.parse: Invalid magic number in DDS header."),a;if(4&!u[20])return console.error("THREE.DDSLoader.parse: Unsupported format, must contain a FourCC code."),a;let p;const d=u[21];let h=!1;switch(d){case s:p=8,a.format=e.RGB_S3TC_DXT1_Format;break;case m:p=16,a.format=e.RGBA_S3TC_DXT3_Format;break;case c:p=16,a.format=e.RGBA_S3TC_DXT5_Format;break;case i:p=8,a.format=e.RGB_ETC1_Format;break;default:if(!(32===u[22]&&16711680&u[23]&&65280&u[24]&&255&u[25]&&4278190080&u[26]))return console.error("THREE.DDSLoader.parse: Unsupported FourCC code ",(l=d,String.fromCharCode(255&l,l>>8&255,l>>16&255,l>>24&255))),a;h=!0,p=64,a.format=e.RGBAFormat}var l;a.mipmapCount=1,131072&u[2]&&!1!==t&&(a.mipmapCount=Math.max(1,u[7]));const C=u[28];if(a.isCubemap=!!(512&C),a.isCubemap&&(!(1024&C)||!(2048&C)||!(4096&C)||!(8192&C)||!(16384&C)||!(32768&C)))return console.error("THREE.DDSLoader.parse: Incomplete cubemap faces"),a;a.width=u[4],a.height=u[3];let f=u[1]+4;const D=a.isCubemap?6:1;for(let e=0;e<D;e++){let e=a.width,t=a.height;for(let o=0;o<a.mipmapCount;o++){let o,s;h?(o=n(r,f,e,t),s=o.length):(s=Math.max(4,e)/4*Math.max(4,t)/4*p,o=new Uint8Array(r,f,s));const m={data:o,width:e,height:t};a.mipmaps.push(m),f+=s,e=Math.max(e>>1,1),t=Math.max(t>>1,1)}}return a}}exports.DDSLoader=r;
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");const t=new WeakMap;class r extends e.Loader{constructor(e){super(e),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(e){return this.decoderPath=e,this}setDecoderConfig(e){return this.decoderConfig=e,this}setWorkerLimit(e){return this.workerLimit=e,this}load(t,r,o,s){const i=new e.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(t,(e=>{const t={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(e,t).then(r).catch(s)}),o,s)}decodeDracoFile(e,t,r,o){const s={attributeIDs:r||this.defaultAttributeIDs,attributeTypes:o||this.defaultAttributeTypes,useUniqueIDs:!!r};this.decodeGeometry(e,s).then(t)}decodeGeometry(e,r){for(const e in r.attributeTypes){const t=r.attributeTypes[e];void 0!==t.BYTES_PER_ELEMENT&&(r.attributeTypes[e]=t.name)}const o=JSON.stringify(r);if(t.has(e)){const r=t.get(e);if(r.key===o)return r.promise;if(0===e.byteLength)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let s;const i=this.workerNextTaskID++,n=e.byteLength,a=this._getWorker(i,n).then((t=>(s=t,new Promise(((t,o)=>{s._callbacks[i]={resolve:t,reject:o},s.postMessage({type:"decode",id:i,taskConfig:r,buffer:e},[e])}))))).then((e=>this._createGeometry(e.geometry)));return a.catch((()=>!0)).then((()=>{s&&i&&this._releaseTask(s,i)})),t.set(e,{key:o,promise:a}),a}_createGeometry(t){const r=new e.BufferGeometry;t.index&&r.setIndex(new e.BufferAttribute(t.index.array,1));for(let o=0;o<t.attributes.length;o++){const s=t.attributes[o],i=s.name,n=s.array,a=s.itemSize;r.setAttribute(i,new e.BufferAttribute(n,a))}return r}_loadLibrary(t,r){const o=new e.FileLoader(this.manager);return o.setPath(this.decoderPath),o.setResponseType(r),o.setWithCredentials(this.withCredentials),new Promise(((e,r)=>{o.load(t,e,void 0,r)}))}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then((t=>{const r=t[0];e||(this.decoderConfig.wasmBinary=t[1]);const s=o.toString(),i=["/* draco decoder */",r,"","/* worker */",s.substring(s.indexOf("{")+1,s.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([i]))})),this.decoderPending}_getWorker(e,t){return this._initDecoder().then((()=>{if(this.workerPool.length<this.workerLimit){const e=new Worker(this.workerSourceURL);e._callbacks={},e._taskCosts={},e._taskLoad=0,e.postMessage({type:"init",decoderConfig:this.decoderConfig}),e.onmessage=function(t){const r=t.data;switch(r.type){case"decode":e._callbacks[r.id].resolve(r);break;case"error":e._callbacks[r.id].reject(r);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+r.type+'"')}},this.workerPool.push(e)}else this.workerPool.sort((function(e,t){return e._taskLoad>t._taskLoad?-1:1}));const r=this.workerPool[this.workerPool.length-1];return r._taskCosts[e]=t,r._taskLoad+=t,r}))}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map((e=>e._taskLoad)))}dispose(){for(let e=0;e<this.workerPool.length;++e)this.workerPool[e].terminate();return this.workerPool.length=0,this}}function o(){let e,t;function r(e,t,r,o,s,i){const n=i.num_components(),a=r.num_points()*n,d=a*s.BYTES_PER_ELEMENT,c=function(e,t){switch(t){case Float32Array:return e.DT_FLOAT32;case Int8Array:return e.DT_INT8;case Int16Array:return e.DT_INT16;case Int32Array:return e.DT_INT32;case Uint8Array:return e.DT_UINT8;case Uint16Array:return e.DT_UINT16;case Uint32Array:return e.DT_UINT32}}(e,s),u=e._malloc(d);t.GetAttributeDataArrayForAllPoints(r,i,c,d,u);const l=new s(e.HEAPF32.buffer,u,a).slice();return e._free(u),{name:o,array:l,itemSize:n}}onmessage=function(o){const s=o.data;switch(s.type){case"init":e=s.decoderConfig,t=new Promise((function(t){e.onModuleLoaded=function(e){t({draco:e})},DracoDecoderModule(e)}));break;case"decode":const o=s.buffer,i=s.taskConfig;t.then((e=>{const t=e.draco,n=new t.Decoder,a=new t.DecoderBuffer;a.Init(new Int8Array(o),o.byteLength);try{const e=function(e,t,o,s){const i=s.attributeIDs,n=s.attributeTypes;let a,d;const c=t.GetEncodedGeometryType(o);if(c===e.TRIANGULAR_MESH)a=new e.Mesh,d=t.DecodeBufferToMesh(o,a);else{if(c!==e.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");a=new e.PointCloud,d=t.DecodeBufferToPointCloud(o,a)}if(!d.ok()||0===a.ptr)throw new Error("THREE.DRACOLoader: Decoding failed: "+d.error_msg());const u={index:null,attributes:[]};for(const o in i){const d=self[n[o]];let c,l;if(s.useUniqueIDs)l=i[o],c=t.GetAttributeByUniqueId(a,l);else{if(l=t.GetAttributeId(a,e[i[o]]),-1===l)continue;c=t.GetAttribute(a,l)}u.attributes.push(r(e,t,a,o,d,c))}c===e.TRIANGULAR_MESH&&(u.index=function(e,t,r){const o=3*r.num_faces(),s=4*o,i=e._malloc(s);t.GetTrianglesUInt32Array(r,s,i);const n=new Uint32Array(e.HEAPF32.buffer,i,o).slice();return e._free(i),{array:n,itemSize:1}}(e,t,a));return e.destroy(a),u}(t,n,a,i),o=e.attributes.map((e=>e.array.buffer));e.index&&o.push(e.index.array.buffer),self.postMessage({type:"decode",id:s.id,geometry:e},o)}catch(e){console.error(e),self.postMessage({type:"error",id:s.id,error:e.message})}finally{t.destroy(a),t.destroy(n)}}))}}}exports.DRACOLoader=r;
|
package/loaders/EXRLoader.cjs.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("fflate");class n extends e.DataTextureLoader{constructor(r){super(r),this.type=e.HalfFloatType}parse(n){const t=65536,a=14,i=65537,o=16384,l=Math.pow(2.7182818,2.2);const s={l:0,c:0,lc:0};function u(e,r,n,t,a){for(;n<e;)r=r<<8|V(t,a),n+=8;n-=e,s.l=r>>n&(1<<e)-1,s.c=r,s.lc=n}const c=new Array(59);function f(e,r,n,t,a,o,l){for(var f=n,v=0,h=0;a<=o;a++){if(f.value-n.value>t)return!1;u(6,v,h,e,f);var p=s.l;if(v=s.c,h=s.lc,l[a]=p,63==p){if(f.value-n.value>t)throw"Something wrong with hufUnpackEncTable";u(8,v,h,e,f);var w=s.l+6;if(v=s.c,h=s.lc,a+w>o+1)throw"Something wrong with hufUnpackEncTable";for(;w--;)l[a++]=0;a--}else if(p>=59){if(a+(w=p-59+2)>o+1)throw"Something wrong with hufUnpackEncTable";for(;w--;)l[a++]=0;a--}}!function(e){for(var r=0;r<=58;++r)c[r]=0;for(r=0;r<i;++r)c[e[r]]+=1;var n=0;for(r=58;r>0;--r){var t=n+c[r]>>1;c[r]=n,n=t}for(r=0;r<i;++r){var a=e[r];a>0&&(e[r]=a|c[a]++<<6)}}(l)}function v(e){return 63&e}function h(e){return e>>6}const p={c:0,lc:0};function w(e,r,n,t){e=e<<8|V(n,t),r+=8,p.c=e,p.lc=r}const d={c:0,lc:0};function y(e,r,n,t,a,i,o,l,s,u){if(e==r){t<8&&(w(n,t,a,o),n=p.c,t=p.lc);var c=n>>(t-=8);c=new Uint8Array([c])[0];if(s.value+c>u)return!1;for(var f=l[s.value-1];c-- >0;)l[s.value++]=f}else{if(!(s.value<u))return!1;l[s.value++]=e}d.c=n,d.lc=t}function S(e){return 65535&e}function g(e){var r=S(e);return r>32767?r-65536:r}const b={a:0,b:0};function m(e,r){var n=g(e),t=g(r),a=n+(1&t)+(t>>1),i=a,o=a-t;b.a=i,b.b=o}function A(e,r){var n=S(e),t=S(r),a=n-(t>>1)&65535,i=t+a-32768&65535;b.a=i,b.b=a}function U(e,r,n,t,a,i,o){for(var l,s=o<16384,u=n>a?a:n,c=1;c<=u;)c<<=1;for(l=c>>=1,c>>=1;c>=1;){for(var f,v,h,p,w=0,d=w+i*(a-l),y=i*c,S=i*l,g=t*c,U=t*l;w<=d;w+=S){for(var M=w,z=w+t*(n-l);M<=z;M+=U){var C=M+g,E=(O=M+y)+g;s?(m(e[M+r],e[O+r]),f=b.a,h=b.b,m(e[C+r],e[E+r]),v=b.a,p=b.b,m(f,v),e[M+r]=b.a,e[C+r]=b.b,m(h,p),e[O+r]=b.a,e[E+r]=b.b):(A(e[M+r],e[O+r]),f=b.a,h=b.b,A(e[C+r],e[E+r]),v=b.a,p=b.b,A(f,v),e[M+r]=b.a,e[C+r]=b.b,A(h,p),e[O+r]=b.a,e[E+r]=b.b)}if(n&c){var O=M+y;s?m(e[M+r],e[O+r]):A(e[M+r],e[O+r]),f=b.a,e[O+r]=b.b,e[M+r]=f}}if(a&c)for(M=w,z=w+t*(n-l);M<=z;M+=U){C=M+g;s?m(e[M+r],e[C+r]):A(e[M+r],e[C+r]),f=b.a,e[C+r]=b.b,e[M+r]=f}l=c,c>>=1}return w}function M(e,r,n,t,l,s){var u=n.value,c=H(r,n),S=H(r,n);n.value+=4;var g=H(r,n);if(n.value+=4,c<0||c>=i||S<0||S>=i)throw"Something wrong with HUF_ENCSIZE";var b=new Array(i),m=new Array(o);if(function(e){for(var r=0;r<o;r++)e[r]={},e[r].len=0,e[r].lit=0,e[r].p=null}(m),f(e,0,n,t-(n.value-u),c,S,b),g>8*(t-(n.value-u)))throw"Something wrong with hufUncompress";!function(e,r,n,t){for(;r<=n;r++){var i=h(e[r]),o=v(e[r]);if(i>>o)throw"Invalid table entry";if(o>a){if((c=t[i>>o-a]).len)throw"Invalid table entry";if(c.lit++,c.p){var l=c.p;c.p=new Array(c.lit);for(var s=0;s<c.lit-1;++s)c.p[s]=l[s]}else c.p=new Array(1);c.p[c.lit-1]=r}else if(o){var u=0;for(s=1<<a-o;s>0;s--){var c;if((c=t[(i<<a-o)+u]).len||c.p)throw"Invalid table entry";c.len=o,c.lit=r,u++}}}}(b,c,S,m),function(e,r,n,t,i,o,l,s,u,c){for(var f=0,S=0,g=s,b=Math.trunc(i.value+(o+7)/8);i.value<b;)for(w(f,S,n,i),f=p.c,S=p.lc;S>=a;)if((M=r[f>>S-a&16383]).len)S-=M.len,y(M.lit,l,f,S,n,0,i,u,c,g),f=d.c,S=d.lc;else{if(!M.p)throw"hufDecode issues";var m;for(m=0;m<M.lit;m++){for(var A=v(e[M.p[m]]);S<A&&i.value<b;)w(f,S,n,i),f=p.c,S=p.lc;if(S>=A&&h(e[M.p[m]])==(f>>S-A&(1<<A)-1)){S-=A,y(M.p[m],l,f,S,n,0,i,u,c,g),f=d.c,S=d.lc;break}}if(m==M.lit)throw"hufDecode issues"}var U=8-o&7;for(f>>=U,S-=U;S>0;){var M;if(!(M=r[f<<a-S&16383]).len)throw"hufDecode issues";S-=M.len,y(M.lit,l,f,S,n,0,i,u,c,g),f=d.c,S=d.lc}}(b,m,e,0,n,g,S,s,l,{value:0})}function z(e){for(var r=1;r<e.length;r++){var n=e[r-1]+e[r]-128;e[r]=n}}function C(e,r){for(var n=0,t=Math.floor((e.length+1)/2),a=0,i=e.length-1;!(a>i||(r[a++]=e[n++],a>i));)r[a++]=e[t++]}function E(e){for(var r=e.byteLength,n=new Array,t=0,a=new DataView(e);r>0;){var i=a.getInt8(t++);if(i<0){r-=(l=-i)+1;for(var o=0;o<l;o++)n.push(a.getUint8(t++))}else{var l=i;r-=2;var s=a.getUint8(t++);for(o=0;o<l+1;o++)n.push(s)}}return n}function O(e,r,n){for(var t,a=1;a<64;)65280==(t=r[e.value])?a=64:t>>8==255?a+=255&t:(n[a]=t,a++),e.value++}function R(e,r){r[0]=q(e[0]),r[1]=q(e[1]),r[2]=q(e[5]),r[3]=q(e[6]),r[4]=q(e[14]),r[5]=q(e[15]),r[6]=q(e[27]),r[7]=q(e[28]),r[8]=q(e[2]),r[9]=q(e[4]),r[10]=q(e[7]),r[11]=q(e[13]),r[12]=q(e[16]),r[13]=q(e[26]),r[14]=q(e[29]),r[15]=q(e[42]),r[16]=q(e[3]),r[17]=q(e[8]),r[18]=q(e[12]),r[19]=q(e[17]),r[20]=q(e[25]),r[21]=q(e[30]),r[22]=q(e[41]),r[23]=q(e[43]),r[24]=q(e[9]),r[25]=q(e[11]),r[26]=q(e[18]),r[27]=q(e[24]),r[28]=q(e[31]),r[29]=q(e[40]),r[30]=q(e[44]),r[31]=q(e[53]),r[32]=q(e[10]),r[33]=q(e[19]),r[34]=q(e[23]),r[35]=q(e[32]),r[36]=q(e[39]),r[37]=q(e[45]),r[38]=q(e[52]),r[39]=q(e[54]),r[40]=q(e[20]),r[41]=q(e[22]),r[42]=q(e[33]),r[43]=q(e[38]),r[44]=q(e[46]),r[45]=q(e[51]),r[46]=q(e[55]),r[47]=q(e[60]),r[48]=q(e[21]),r[49]=q(e[34]),r[50]=q(e[37]),r[51]=q(e[47]),r[52]=q(e[50]),r[53]=q(e[56]),r[54]=q(e[59]),r[55]=q(e[61]),r[56]=q(e[35]),r[57]=q(e[36]),r[58]=q(e[48]),r[59]=q(e[49]),r[60]=q(e[57]),r[61]=q(e[58]),r[62]=q(e[62]),r[63]=q(e[63])}function I(e){const r=.5*Math.cos(.7853975),n=.5*Math.cos(3.14159/16),t=.5*Math.cos(3.14159/8),a=.5*Math.cos(3*3.14159/16),i=.5*Math.cos(.981746875),o=.5*Math.cos(3*3.14159/8),l=.5*Math.cos(1.374445625);for(var s=new Array(4),u=new Array(4),c=new Array(4),f=new Array(4),v=0;v<8;++v){var h=8*v;s[0]=t*e[h+2],s[1]=o*e[h+2],s[2]=t*e[h+6],s[3]=o*e[h+6],u[0]=n*e[h+1]+a*e[h+3]+i*e[h+5]+l*e[h+7],u[1]=a*e[h+1]-l*e[h+3]-n*e[h+5]-i*e[h+7],u[2]=i*e[h+1]-n*e[h+3]+l*e[h+5]+a*e[h+7],u[3]=l*e[h+1]-i*e[h+3]+a*e[h+5]-n*e[h+7],c[0]=r*(e[h+0]+e[h+4]),c[3]=r*(e[h+0]-e[h+4]),c[1]=s[0]+s[3],c[2]=s[1]-s[2],f[0]=c[0]+c[1],f[1]=c[3]+c[2],f[2]=c[3]-c[2],f[3]=c[0]-c[1],e[h+0]=f[0]+u[0],e[h+1]=f[1]+u[1],e[h+2]=f[2]+u[2],e[h+3]=f[3]+u[3],e[h+4]=f[3]-u[3],e[h+5]=f[2]-u[2],e[h+6]=f[1]-u[1],e[h+7]=f[0]-u[0]}for(var p=0;p<8;++p)s[0]=t*e[16+p],s[1]=o*e[16+p],s[2]=t*e[48+p],s[3]=o*e[48+p],u[0]=n*e[8+p]+a*e[24+p]+i*e[40+p]+l*e[56+p],u[1]=a*e[8+p]-l*e[24+p]-n*e[40+p]-i*e[56+p],u[2]=i*e[8+p]-n*e[24+p]+l*e[40+p]+a*e[56+p],u[3]=l*e[8+p]-i*e[24+p]+a*e[40+p]-n*e[56+p],c[0]=r*(e[p]+e[32+p]),c[3]=r*(e[p]-e[32+p]),c[1]=s[0]+s[3],c[2]=s[1]-s[2],f[0]=c[0]+c[1],f[1]=c[3]+c[2],f[2]=c[3]-c[2],f[3]=c[0]-c[1],e[0+p]=f[0]+u[0],e[8+p]=f[1]+u[1],e[16+p]=f[2]+u[2],e[24+p]=f[3]+u[3],e[32+p]=f[3]-u[3],e[40+p]=f[2]-u[2],e[48+p]=f[1]-u[1],e[56+p]=f[0]-u[0]}function x(e){for(var r=0;r<64;++r){var n=e[0][r],t=e[1][r],a=e[2][r];e[0][r]=n+1.5747*a,e[1][r]=n-.1873*t-.4682*a,e[2][r]=n+1.8556*t}}function k(r,n,t){for(var a=0;a<64;++a)n[t+a]=e.DataUtils.toHalfFloat(P(r[a]))}function P(e){return e<=1?Math.sign(e)*Math.pow(Math.abs(e),2.2):Math.sign(e)*Math.pow(l,Math.abs(e)-1)}function N(e){return new DataView(e.array.buffer,e.offset.value,e.size)}function D(e){var r=e.viewer.buffer.slice(e.offset.value,e.offset.value+e.size),n=new Uint8Array(E(r)),t=new Uint8Array(n.length);return z(n),C(n,t),new DataView(t.buffer)}function L(e){var n=e.array.slice(e.offset.value,e.offset.value+e.size),t=r.unzlibSync(n),a=new Uint8Array(t.length);return z(t),C(t,a),new DataView(a.buffer)}function _(e){for(var r=e.viewer,n={value:e.offset.value},a=new Uint16Array(e.width*e.scanlineBlockSize*(e.channels*e.type)),i=new Uint8Array(8192),o=0,l=new Array(e.channels),s=0;s<e.channels;s++)l[s]={},l[s].start=o,l[s].end=l[s].start,l[s].nx=e.width,l[s].ny=e.lines,l[s].size=e.type,o+=l[s].nx*l[s].ny*l[s].size;var u=j(r,n),c=j(r,n);if(c>=8192)throw"Something is wrong with PIZ_COMPRESSION BITMAP_SIZE";if(u<=c)for(s=0;s<c-u+1;s++)i[s+u]=W(r,n);var f=new Uint16Array(t),v=function(e,r){for(var n=0,a=0;a<t;++a)(0==a||e[a>>3]&1<<(7&a))&&(r[n++]=a);for(var i=n-1;n<t;)r[n++]=0;return i}(i,f),h=H(r,n);M(e.array,r,n,h,a,o);for(s=0;s<e.channels;++s)for(var p=l[s],w=0;w<l[s].size;++w)U(a,p.start+w,p.nx,p.size,p.ny,p.nx*p.size,v);!function(e,r,n){for(var t=0;t<n;++t)r[t]=e[r[t]]}(f,a,o);for(var d=0,y=new Uint8Array(a.buffer.byteLength),S=0;S<e.lines;S++)for(var g=0;g<e.channels;g++){var b=(p=l[g]).nx*p.size,m=new Uint8Array(a.buffer,2*p.end,2*b);y.set(m,d),d+=2*b,p.end+=b}return new DataView(y.buffer)}function T(e){var n=e.array.slice(e.offset.value,e.offset.value+e.size),t=r.unzlibSync(n);const a=e.lines*e.channels*e.width,i=1==e.type?new Uint16Array(a):new Uint32Array(a);let o=0,l=0;const s=new Array(4);for(let r=0;r<e.lines;r++)for(let r=0;r<e.channels;r++){let r=0;switch(e.type){case 1:s[0]=o,s[1]=s[0]+e.width,o=s[1]+e.width;for(let n=0;n<e.width;++n){r+=t[s[0]++]<<8|t[s[1]++],i[l]=r,l++}break;case 2:s[0]=o,s[1]=s[0]+e.width,s[2]=s[1]+e.width,o=s[2]+e.width;for(let n=0;n<e.width;++n){r+=t[s[0]++]<<24|t[s[1]++]<<16|t[s[2]++]<<8,i[l]=r,l++}}}return new DataView(i.buffer)}function F(e){var n=e.viewer,t={value:e.offset.value},a=new Uint8Array(e.width*e.lines*(e.channels*e.type*2)),i={version:Z(n,t),unknownUncompressedSize:Z(n,t),unknownCompressedSize:Z(n,t),acCompressedSize:Z(n,t),dcCompressedSize:Z(n,t),rleCompressedSize:Z(n,t),rleUncompressedSize:Z(n,t),rleRawSize:Z(n,t),totalAcUncompressedCount:Z(n,t),totalDcUncompressedCount:Z(n,t),acCompression:Z(n,t)};if(i.version<2)throw"EXRLoader.parse: "+re.compression+" version "+i.version+" is unsupported";for(var o=new Array,l=j(n,t)-2;l>0;){var s=B(n.buffer,t),u=W(n,t),c=u>>2&3,f=new Int8Array([(u>>4)-1])[0],v=W(n,t);o.push({name:s,index:f,type:v,compression:c}),l-=s.length+3}for(var h=re.channels,p=new Array(e.channels),w=0;w<e.channels;++w){var d=p[w]={},y=h[w];d.name=y.name,d.compression=0,d.decoded=!1,d.type=y.pixelType,d.pLinear=y.pLinear,d.width=e.width,d.height=e.lines}for(var S={idx:new Array(3)},g=0;g<e.channels;++g)for(d=p[g],w=0;w<o.length;++w){var b=o[w];d.name==b.name&&(d.compression=b.compression,b.index>=0&&(S.idx[b.index]=g),d.offset=g)}if(i.acCompressedSize>0)switch(i.acCompression){case 0:var m=new Uint16Array(i.totalAcUncompressedCount);M(e.array,n,t,i.acCompressedSize,m,i.totalAcUncompressedCount);break;case 1:var A=e.array.slice(t.value,t.value+i.totalAcUncompressedCount),U=r.unzlibSync(A);m=new Uint16Array(U.buffer);t.value+=i.totalAcUncompressedCount}if(i.dcCompressedSize>0){var z={array:e.array,offset:t,size:i.dcCompressedSize},C=new Uint16Array(L(z).buffer);t.value+=i.dcCompressedSize}if(i.rleRawSize>0){A=e.array.slice(t.value,t.value+i.rleCompressedSize);var P=E((U=r.unzlibSync(A)).buffer);t.value+=i.rleCompressedSize}var N=0,D=new Array(p.length);for(w=0;w<D.length;++w)D[w]=new Array;for(var _=0;_<e.lines;++_)for(var T=0;T<p.length;++T)D[T].push(N),N+=p[T].width*e.type*2;!function(e,r,n,t,a,i){var o=new DataView(i.buffer),l=n[e.idx[0]].width,s=n[e.idx[0]].height,u=Math.floor(l/8),c=Math.ceil(l/8),f=Math.ceil(s/8),v=l-8*(c-1),h=s-8*(f-1),p={value:0},w=new Array(3),d=new Array(3),y=new Array(3),S=new Array(3),g=new Array(3);for(let n=0;n<3;++n)g[n]=r[e.idx[n]],w[n]=n<1?0:w[n-1]+c*f,d[n]=new Float32Array(64),y[n]=new Uint16Array(64),S[n]=new Uint16Array(64*c);for(let r=0;r<f;++r){var b=8;r==f-1&&(b=h);var m=8;for(let e=0;e<c;++e){e==c-1&&(m=v);for(let e=0;e<3;++e)y[e].fill(0),y[e][0]=a[w[e]++],O(p,t,y[e]),R(y[e],d[e]),I(d[e]);x(d);for(let r=0;r<3;++r)k(d[r],S[r],64*e)}let i=0;for(let t=0;t<3;++t){const a=n[e.idx[t]].type;for(let e=8*r;e<8*r+b;++e){i=g[t][e];for(let r=0;r<u;++r){const n=64*r+8*(7&e);o.setUint16(i+0*a,S[t][n+0],!0),o.setUint16(i+2*a,S[t][n+1],!0),o.setUint16(i+4*a,S[t][n+2],!0),o.setUint16(i+6*a,S[t][n+3],!0),o.setUint16(i+8*a,S[t][n+4],!0),o.setUint16(i+10*a,S[t][n+5],!0),o.setUint16(i+12*a,S[t][n+6],!0),o.setUint16(i+14*a,S[t][n+7],!0),i+=16*a}}if(u!=c)for(let e=8*r;e<8*r+b;++e){const r=g[t][e]+8*u*2*a,n=64*u+8*(7&e);for(let e=0;e<m;++e)o.setUint16(r+2*e*a,S[t][n+e],!0)}}}for(var A=new Uint16Array(l),U=(o=new DataView(i.buffer),0);U<3;++U){n[e.idx[U]].decoded=!0;var M=n[e.idx[U]].type;if(2==n[U].type)for(var z=0;z<s;++z){const e=g[U][z];for(var C=0;C<l;++C)A[C]=o.getUint16(e+2*C*M,!0);for(C=0;C<l;++C)o.setFloat32(e+2*C*M,q(A[C]),!0)}}}(S,D,p,m,C,a);for(w=0;w<p.length;++w){if(!(d=p[w]).decoded)switch(d.compression){case 2:var F=0,X=0;for(_=0;_<e.lines;++_){for(var H=D[w][F],V=0;V<d.width;++V){for(var Y=0;Y<2*d.type;++Y)a[H++]=P[X+Y*d.width*d.height];X++}F++}break;case 1:default:throw"EXRLoader.parse: unsupported channel compression"}}return new DataView(a.buffer)}function B(e,r){for(var n=new Uint8Array(e),t=0;0!=n[r.value+t];)t+=1;var a=(new TextDecoder).decode(n.slice(r.value,r.value+t));return r.value=r.value+t+1,a}function X(e,r){var n=e.getInt32(r.value,!0);return r.value=r.value+4,n}function H(e,r){var n=e.getUint32(r.value,!0);return r.value=r.value+4,n}function V(e,r){var n=e[r.value];return r.value=r.value+1,n}function W(e,r){var n=e.getUint8(r.value);return r.value=r.value+1,n}const Z=function(e,r){let n;return n="getBigInt64"in DataView.prototype?Number(e.getBigInt64(r.value,!0)):e.getUint32(r.value+4,!0)+Number(e.getUint32(r.value,!0)<<32),r.value+=8,n};function Y(e,r){var n=e.getFloat32(r.value,!0);return r.value+=4,n}function G(r,n){return e.DataUtils.toHalfFloat(Y(r,n))}function q(e){var r=(31744&e)>>10,n=1023&e;return(e>>15?-1:1)*(r?31===r?n?NaN:1/0:Math.pow(2,r-15)*(1+n/1024):n/1024*6103515625e-14)}function j(e,r){var n=e.getUint16(r.value,!0);return r.value+=2,n}function $(e,r){return q(j(e,r))}function J(e,r,n,t,a){return"string"===t||"stringvector"===t||"iccProfile"===t?function(e,r,n){var t=(new TextDecoder).decode(new Uint8Array(e).slice(r.value,r.value+n));return r.value=r.value+n,t}(r,n,a):"chlist"===t?function(e,r,n,t){for(var a=n.value,i=[];n.value<a+t-1;){var o=B(r,n),l=X(e,n),s=W(e,n);n.value+=3;var u=X(e,n),c=X(e,n);i.push({name:o,pixelType:l,pLinear:s,xSampling:u,ySampling:c})}return n.value+=1,i}(e,r,n,a):"chromaticities"===t?function(e,r){return{redX:Y(e,r),redY:Y(e,r),greenX:Y(e,r),greenY:Y(e,r),blueX:Y(e,r),blueY:Y(e,r),whiteX:Y(e,r),whiteY:Y(e,r)}}(e,n):"compression"===t?function(e,r){return["NO_COMPRESSION","RLE_COMPRESSION","ZIPS_COMPRESSION","ZIP_COMPRESSION","PIZ_COMPRESSION","PXR24_COMPRESSION","B44_COMPRESSION","B44A_COMPRESSION","DWAA_COMPRESSION","DWAB_COMPRESSION"][W(e,r)]}(e,n):"box2i"===t?function(e,r){return{xMin:H(e,r),yMin:H(e,r),xMax:H(e,r),yMax:H(e,r)}}(e,n):"lineOrder"===t?function(e,r){return["INCREASING_Y"][W(e,r)]}(e,n):"float"===t?Y(e,n):"v2f"===t?function(e,r){return[Y(e,r),Y(e,r)]}(e,n):"v3f"===t?function(e,r){return[Y(e,r),Y(e,r),Y(e,r)]}(e,n):"int"===t?X(e,n):"rational"===t?function(e,r){return[X(e,r),H(e,r)]}(e,n):"timecode"===t?function(e,r){return[H(e,r),H(e,r)]}(e,n):"preview"===t?(n.value+=a,"skipped"):void(n.value+=a)}const K=new DataView(n),Q=new Uint8Array(n),ee={value:0},re=function(e,r,n){const t={};if(20000630!=e.getUint32(0,!0))throw"THREE.EXRLoader: provided file doesn't appear to be in OpenEXR format.";t.version=e.getUint8(4);const a=e.getUint8(5);t.spec={singleTile:!!(2&a),longName:!!(4&a),deepFormat:!!(8&a),multiPart:!!(16&a)},n.value=8;for(var i=!0;i;){var o=B(r,n);if(0==o)i=!1;else{var l=B(r,n),s=J(e,r,n,l,H(e,n));void 0===s?console.warn(`EXRLoader.parse: skipped unknown header attribute type '${l}'.`):t[o]=s}}if(0!=a)throw console.error("EXRHeader:",t),"THREE.EXRLoader: provided file is currently unsupported.";return t}(K,n,ee),ne=function(r,n,t,a,i){const o={size:0,viewer:n,array:t,offset:a,width:r.dataWindow.xMax-r.dataWindow.xMin+1,height:r.dataWindow.yMax-r.dataWindow.yMin+1,channels:r.channels.length,bytesPerLine:null,lines:null,inputSize:null,type:r.channels[0].pixelType,uncompress:null,getter:null,format:null,encoding:null};switch(r.compression){case"NO_COMPRESSION":o.lines=1,o.uncompress=N;break;case"RLE_COMPRESSION":o.lines=1,o.uncompress=D;break;case"ZIPS_COMPRESSION":o.lines=1,o.uncompress=L;break;case"ZIP_COMPRESSION":o.lines=16,o.uncompress=L;break;case"PIZ_COMPRESSION":o.lines=32,o.uncompress=_;break;case"PXR24_COMPRESSION":o.lines=16,o.uncompress=T;break;case"DWAA_COMPRESSION":o.lines=32,o.uncompress=F;break;case"DWAB_COMPRESSION":o.lines=256,o.uncompress=F;break;default:throw"EXRLoader.parse: "+r.compression+" is unsupported"}if(o.scanlineBlockSize=o.lines,1==o.type)switch(i){case e.FloatType:o.getter=$,o.inputSize=2;break;case e.HalfFloatType:o.getter=j,o.inputSize=2}else{if(2!=o.type)throw"EXRLoader.parse: unsupported pixelType "+o.type+" for "+r.compression+".";switch(i){case e.FloatType:o.getter=Y,o.inputSize=4;break;case e.HalfFloatType:o.getter=G,o.inputSize=4}}o.blockCount=(r.dataWindow.yMax+1)/o.scanlineBlockSize;for(var l=0;l<o.blockCount;l++)Z(n,a);o.outputChannels=3==o.channels?4:o.channels;const s=o.width*o.height*o.outputChannels;switch(i){case e.FloatType:o.byteArray=new Float32Array(s),o.channels<o.outputChannels&&o.byteArray.fill(1,0,s);break;case e.HalfFloatType:o.byteArray=new Uint16Array(s),o.channels<o.outputChannels&&o.byteArray.fill(15360,0,s);break;default:console.error("THREE.EXRLoader: unsupported type: ",i)}return o.bytesPerLine=o.width*o.inputSize*o.channels,4==o.outputChannels?(o.format=e.RGBAFormat,o.encoding=e.LinearEncoding):(o.format=e.RedFormat,o.encoding=e.LinearEncoding),o}(re,K,Q,ee,this.type),te={value:0},ae={R:0,G:1,B:2,A:3,Y:0};for(let e=0;e<ne.height/ne.scanlineBlockSize;e++){const r=H(K,ee);ne.size=H(K,ee),ne.lines=r+ne.scanlineBlockSize>ne.height?ne.height-r:ne.scanlineBlockSize;const n=ne.size<ne.lines*ne.bytesPerLine?ne.uncompress(ne):N(ne);ee.value+=ne.size;for(let r=0;r<ne.scanlineBlockSize;r++){const t=r+e*ne.scanlineBlockSize;if(t>=ne.height)break;for(let e=0;e<ne.channels;e++){const a=ae[re.channels[e].name];for(let i=0;i<ne.width;i++){te.value=(r*(ne.channels*ne.width)+e*ne.width+i)*ne.inputSize;const o=(ne.height-1-t)*(ne.width*ne.outputChannels)+i*ne.outputChannels+a;ne.byteArray[o]=ne.getter(n,te)}}}}return{header:re,width:ne.width,height:ne.height,data:ne.byteArray,format:ne.format,encoding:ne.encoding,type:this.type}}setDataType(e){return this.type=e,this}load(r,n,t,a){return super.load(r,(function(r,t){r.encoding=t.encoding,r.minFilter=e.LinearFilter,r.magFilter=e.LinearFilter,r.generateMipmaps=!1,r.flipY=!1,n&&n(r,t)}),t,a)}}exports.EXRLoader=n;
|
package/loaders/FBXLoader.cjs.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("fflate"),r=require("../curves/NURBSCurve.cjs.js");let n,o,a;require("../curves/NURBSUtils.cjs.js");class s extends e.Loader{constructor(e){super(e)}load(t,r,n,o){const a=this,s=""===a.path?e.LoaderUtils.extractUrlBase(t):a.path,i=new e.FileLoader(this.manager);i.setPath(a.path),i.setResponseType("arraybuffer"),i.setRequestHeader(a.requestHeader),i.setWithCredentials(a.withCredentials),i.load(t,(function(e){try{r(a.parse(e,s))}catch(e){o?o(e):console.error(e),a.manager.itemError(t)}}),n,o)}parse(t,r){if(function(e){const t="Kaydara FBX Binary \0";return e.byteLength>=t.length&&t===T(e,0,t.length)}(t))n=(new p).parse(t);else{const e=T(t);if(!function(e){const t=["K","a","y","d","a","r","a","\\","F","B","X","\\","B","i","n","a","r","y","\\","\\"];let r=0;function n(t){const n=e[t-1];return e=e.slice(r+t),r++,n}for(let e=0;e<t.length;++e){if(n(1)===t[e])return!1}return!0}(e))throw new Error("THREE.FBXLoader: Unknown format.");if(f(e)<7e3)throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: "+f(e));n=(new u).parse(e)}const o=new e.TextureLoader(this.manager).setPath(this.resourcePath||r).setCrossOrigin(this.crossOrigin);return new i(o,this.manager).parse(n)}}class i{constructor(e,t){this.textureLoader=e,this.manager=t}parse(){o=this.parseConnections();const e=this.parseImages(),t=this.parseTextures(e),r=this.parseMaterials(t),n=this.parseDeformers(),s=(new l).parse(n);return this.parseScene(n,s,r),a}parseConnections(){const e=new Map;if("Connections"in n){n.Connections.connections.forEach((function(t){const r=t[0],n=t[1],o=t[2];e.has(r)||e.set(r,{parents:[],children:[]});const a={ID:n,relationship:o};e.get(r).parents.push(a),e.has(n)||e.set(n,{parents:[],children:[]});const s={ID:r,relationship:o};e.get(n).children.push(s)}))}return e}parseImages(){const e={},t={};if("Video"in n.Objects){const r=n.Objects.Video;for(const n in r){const o=r[n];if(e[parseInt(n)]=o.RelativeFilename||o.Filename,"Content"in o){const e=o.Content instanceof ArrayBuffer&&o.Content.byteLength>0,a="string"==typeof o.Content&&""!==o.Content;if(e||a){const e=this.parseImage(r[n]);t[o.RelativeFilename||o.Filename]=e}}}}for(const r in e){const n=e[r];void 0!==t[n]?e[r]=t[n]:e[r]=e[r].split("\\").pop()}return e}parseImage(e){const t=e.Content,r=e.RelativeFilename||e.Filename,n=r.slice(r.lastIndexOf(".")+1).toLowerCase();let o;switch(n){case"bmp":o="image/bmp";break;case"jpg":case"jpeg":o="image/jpeg";break;case"png":o="image/png";break;case"tif":o="image/tiff";break;case"tga":null===this.manager.getHandler(".tga")&&console.warn("FBXLoader: TGA loader not found, skipping ",r),o="image/tga";break;default:return void console.warn('FBXLoader: Image type "'+n+'" is not supported.')}if("string"==typeof t)return"data:"+o+";base64,"+t;{const e=new Uint8Array(t);return window.URL.createObjectURL(new Blob([e],{type:o}))}}parseTextures(e){const t=new Map;if("Texture"in n.Objects){const r=n.Objects.Texture;for(const n in r){const o=this.parseTexture(r[n],e);t.set(parseInt(n),o)}}return t}parseTexture(t,r){const n=this.loadTexture(t,r);n.ID=t.id,n.name=t.attrName;const o=t.WrapModeU,a=t.WrapModeV,s=void 0!==o?o.value:0,i=void 0!==a?a.value:0;if(n.wrapS=0===s?e.RepeatWrapping:e.ClampToEdgeWrapping,n.wrapT=0===i?e.RepeatWrapping:e.ClampToEdgeWrapping,"Scaling"in t){const e=t.Scaling.value;n.repeat.x=e[0],n.repeat.y=e[1]}return n}loadTexture(t,r){let n;const a=this.textureLoader.path,s=o.get(t.id).children;let i;void 0!==s&&s.length>0&&void 0!==r[s[0].ID]&&(n=r[s[0].ID],0!==n.indexOf("blob:")&&0!==n.indexOf("data:")||this.textureLoader.setPath(void 0));const l=t.FileName.slice(-3).toLowerCase();if("tga"===l){const r=this.manager.getHandler(".tga");null===r?(console.warn("FBXLoader: TGA loader not found, creating placeholder texture for",t.RelativeFilename),i=new e.Texture):(r.setPath(this.textureLoader.path),i=r.load(n))}else"psd"===l?(console.warn("FBXLoader: PSD textures are not supported, creating placeholder texture for",t.RelativeFilename),i=new e.Texture):i=this.textureLoader.load(n);return this.textureLoader.setPath(a),i}parseMaterials(e){const t=new Map;if("Material"in n.Objects){const r=n.Objects.Material;for(const n in r){const o=this.parseMaterial(r[n],e);null!==o&&t.set(parseInt(n),o)}}return t}parseMaterial(t,r){const n=t.id,a=t.attrName;let s=t.ShadingModel;if("object"==typeof s&&(s=s.value),!o.has(n))return null;const i=this.parseParameters(t,r,n);let l;switch(s.toLowerCase()){case"phong":l=new e.MeshPhongMaterial;break;case"lambert":l=new e.MeshLambertMaterial;break;default:console.warn('THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.',s),l=new e.MeshPhongMaterial}return l.setValues(i),l.name=a,l}parseParameters(t,r,n){const a={};t.BumpFactor&&(a.bumpScale=t.BumpFactor.value),t.Diffuse?a.color=(new e.Color).fromArray(t.Diffuse.value):!t.DiffuseColor||"Color"!==t.DiffuseColor.type&&"ColorRGB"!==t.DiffuseColor.type||(a.color=(new e.Color).fromArray(t.DiffuseColor.value)),t.DisplacementFactor&&(a.displacementScale=t.DisplacementFactor.value),t.Emissive?a.emissive=(new e.Color).fromArray(t.Emissive.value):!t.EmissiveColor||"Color"!==t.EmissiveColor.type&&"ColorRGB"!==t.EmissiveColor.type||(a.emissive=(new e.Color).fromArray(t.EmissiveColor.value)),t.EmissiveFactor&&(a.emissiveIntensity=parseFloat(t.EmissiveFactor.value)),t.Opacity&&(a.opacity=parseFloat(t.Opacity.value)),a.opacity<1&&(a.transparent=!0),t.ReflectionFactor&&(a.reflectivity=t.ReflectionFactor.value),t.Shininess&&(a.shininess=t.Shininess.value),t.Specular?a.specular=(new e.Color).fromArray(t.Specular.value):t.SpecularColor&&"Color"===t.SpecularColor.type&&(a.specular=(new e.Color).fromArray(t.SpecularColor.value));const s=this;return o.get(n).children.forEach((function(t){const n=t.relationship;switch(n){case"Bump":a.bumpMap=s.getTexture(r,t.ID);break;case"Maya|TEX_ao_map":a.aoMap=s.getTexture(r,t.ID);break;case"DiffuseColor":case"Maya|TEX_color_map":a.map=s.getTexture(r,t.ID),void 0!==a.map&&(a.map.encoding=e.sRGBEncoding);break;case"DisplacementColor":a.displacementMap=s.getTexture(r,t.ID);break;case"EmissiveColor":a.emissiveMap=s.getTexture(r,t.ID),void 0!==a.emissiveMap&&(a.emissiveMap.encoding=e.sRGBEncoding);break;case"NormalMap":case"Maya|TEX_normal_map":a.normalMap=s.getTexture(r,t.ID);break;case"ReflectionColor":a.envMap=s.getTexture(r,t.ID),void 0!==a.envMap&&(a.envMap.mapping=e.EquirectangularReflectionMapping,a.envMap.encoding=e.sRGBEncoding);break;case"SpecularColor":a.specularMap=s.getTexture(r,t.ID),void 0!==a.specularMap&&(a.specularMap.encoding=e.sRGBEncoding);break;case"TransparentColor":case"TransparencyFactor":a.alphaMap=s.getTexture(r,t.ID),a.transparent=!0;break;case"AmbientColor":case"ShininessExponent":case"SpecularFactor":case"VectorDisplacementColor":default:console.warn("THREE.FBXLoader: %s map is not supported in three.js, skipping texture.",n)}})),a}getTexture(e,t){return"LayeredTexture"in n.Objects&&t in n.Objects.LayeredTexture&&(console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."),t=o.get(t).children[0].ID),e.get(t)}parseDeformers(){const e={},t={};if("Deformer"in n.Objects){const r=n.Objects.Deformer;for(const n in r){const a=r[n],s=o.get(parseInt(n));if("Skin"===a.attrType){const t=this.parseSkeleton(s,r);t.ID=n,s.parents.length>1&&console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."),t.geometryID=s.parents[0].ID,e[n]=t}else if("BlendShape"===a.attrType){const e={id:n};e.rawTargets=this.parseMorphTargets(s,r),e.id=n,s.parents.length>1&&console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."),t[n]=e}}}return{skeletons:e,morphTargets:t}}parseSkeleton(t,r){const n=[];return t.children.forEach((function(t){const o=r[t.ID];if("Cluster"!==o.attrType)return;const a={ID:t.ID,indices:[],weights:[],transformLink:(new e.Matrix4).fromArray(o.TransformLink.a)};"Indexes"in o&&(a.indices=o.Indexes.a,a.weights=o.Weights.a),n.push(a)})),{rawBones:n,bones:[]}}parseMorphTargets(e,t){const r=[];for(let n=0;n<e.children.length;n++){const a=e.children[n],s=t[a.ID],i={name:s.attrName,initialWeight:s.DeformPercent,id:s.id,fullWeights:s.FullWeights.a};if("BlendShapeChannel"!==s.attrType)return;i.geoID=o.get(parseInt(a.ID)).children.filter((function(e){return void 0===e.relationship}))[0].ID,r.push(i)}return r}parseScene(t,r,s){a=new e.Group;const i=this.parseModels(t.skeletons,r,s),l=n.Objects.Model,u=this;i.forEach((function(e){const t=l[e.ID];u.setLookAtProperties(e,t);o.get(e.ID).parents.forEach((function(t){const r=i.get(t.ID);void 0!==r&&r.add(e)})),null===e.parent&&a.add(e)})),this.bindSkeleton(t.skeletons,r,i),this.createAmbientLight(),a.traverse((function(e){if(e.userData.transformData){e.parent&&(e.userData.transformData.parentMatrix=e.parent.matrix,e.userData.transformData.parentMatrixWorld=e.parent.matrixWorld);const t=I(e.userData.transformData);e.applyMatrix4(t),e.updateWorldMatrix()}}));const p=(new c).parse();1===a.children.length&&a.children[0].isGroup&&(a.children[0].animations=p,a=a.children[0]),a.animations=p}parseModels(t,r,a){const s=new Map,i=n.Objects.Model;for(const n in i){const l=parseInt(n),c=i[n],u=o.get(l);let p=this.buildSkeleton(u,t,l,c.attrName);if(!p){switch(c.attrType){case"Camera":p=this.createCamera(u);break;case"Light":p=this.createLight(u);break;case"Mesh":p=this.createMesh(u,r,a);break;case"NurbsCurve":p=this.createCurve(u,r);break;case"LimbNode":case"Root":p=new e.Bone;break;case"Null":default:p=new e.Group}p.name=c.attrName?e.PropertyBinding.sanitizeNodeName(c.attrName):"",p.ID=l}this.getTransformData(p,c),s.set(l,p)}return s}buildSkeleton(t,r,n,o){let a=null;return t.parents.forEach((function(t){for(const s in r){const i=r[s];i.rawBones.forEach((function(r,s){if(r.ID===t.ID){const t=a;a=new e.Bone,a.matrixWorld.copy(r.transformLink),a.name=o?e.PropertyBinding.sanitizeNodeName(o):"",a.ID=n,i.bones[s]=a,null!==t&&a.add(t)}}))}})),a}createCamera(t){let r,o;if(t.children.forEach((function(e){const t=n.Objects.NodeAttribute[e.ID];void 0!==t&&(o=t)})),void 0===o)r=new e.Object3D;else{let t=0;void 0!==o.CameraProjectionType&&1===o.CameraProjectionType.value&&(t=1);let n=1;void 0!==o.NearPlane&&(n=o.NearPlane.value/1e3);let a=1e3;void 0!==o.FarPlane&&(a=o.FarPlane.value/1e3);let s=window.innerWidth,i=window.innerHeight;void 0!==o.AspectWidth&&void 0!==o.AspectHeight&&(s=o.AspectWidth.value,i=o.AspectHeight.value);const l=s/i;let c=45;void 0!==o.FieldOfView&&(c=o.FieldOfView.value);const u=o.FocalLength?o.FocalLength.value:null;switch(t){case 0:r=new e.PerspectiveCamera(c,l,n,a),null!==u&&r.setFocalLength(u);break;case 1:r=new e.OrthographicCamera(-s/2,s/2,i/2,-i/2,n,a);break;default:console.warn("THREE.FBXLoader: Unknown camera type "+t+"."),r=new e.Object3D}}return r}createLight(t){let r,o;if(t.children.forEach((function(e){const t=n.Objects.NodeAttribute[e.ID];void 0!==t&&(o=t)})),void 0===o)r=new e.Object3D;else{let t;t=void 0===o.LightType?0:o.LightType.value;let n=16777215;void 0!==o.Color&&(n=(new e.Color).fromArray(o.Color.value));let a=void 0===o.Intensity?1:o.Intensity.value/100;void 0!==o.CastLightOnObject&&0===o.CastLightOnObject.value&&(a=0);let s=0;void 0!==o.FarAttenuationEnd&&(s=void 0!==o.EnableFarAttenuation&&0===o.EnableFarAttenuation.value?0:o.FarAttenuationEnd.value);const i=1;switch(t){case 0:r=new e.PointLight(n,a,s,i);break;case 1:r=new e.DirectionalLight(n,a);break;case 2:let t=Math.PI/3;void 0!==o.InnerAngle&&(t=e.MathUtils.degToRad(o.InnerAngle.value));let l=0;void 0!==o.OuterAngle&&(l=e.MathUtils.degToRad(o.OuterAngle.value),l=Math.max(l,1)),r=new e.SpotLight(n,a,s,t,l,i);break;default:console.warn("THREE.FBXLoader: Unknown light type "+o.LightType.value+", defaulting to a PointLight."),r=new e.PointLight(n,a)}void 0!==o.CastShadows&&1===o.CastShadows.value&&(r.castShadow=!0)}return r}createMesh(t,r,n){let o,a=null,s=null;const i=[];return t.children.forEach((function(e){r.has(e.ID)&&(a=r.get(e.ID)),n.has(e.ID)&&i.push(n.get(e.ID))})),i.length>1?s=i:i.length>0?s=i[0]:(s=new e.MeshPhongMaterial({color:13421772}),i.push(s)),"color"in a.attributes&&i.forEach((function(e){e.vertexColors=!0})),a.FBX_Deformer?(o=new e.SkinnedMesh(a,s),o.normalizeSkinWeights()):o=new e.Mesh(a,s),o}createCurve(t,r){const n=t.children.reduce((function(e,t){return r.has(t.ID)&&(e=r.get(t.ID)),e}),null),o=new e.LineBasicMaterial({color:3342591,linewidth:1});return new e.Line(n,o)}getTransformData(e,t){const r={};"InheritType"in t&&(r.inheritType=parseInt(t.InheritType.value)),r.eulerOrder="RotationOrder"in t?x(t.RotationOrder.value):"ZYX","Lcl_Translation"in t&&(r.translation=t.Lcl_Translation.value),"PreRotation"in t&&(r.preRotation=t.PreRotation.value),"Lcl_Rotation"in t&&(r.rotation=t.Lcl_Rotation.value),"PostRotation"in t&&(r.postRotation=t.PostRotation.value),"Lcl_Scaling"in t&&(r.scale=t.Lcl_Scaling.value),"ScalingOffset"in t&&(r.scalingOffset=t.ScalingOffset.value),"ScalingPivot"in t&&(r.scalingPivot=t.ScalingPivot.value),"RotationOffset"in t&&(r.rotationOffset=t.RotationOffset.value),"RotationPivot"in t&&(r.rotationPivot=t.RotationPivot.value),e.userData.transformData=r}setLookAtProperties(t,r){if("LookAtProperty"in r){o.get(t.ID).children.forEach((function(r){if("LookAtProperty"===r.relationship){const o=n.Objects.Model[r.ID];if("Lcl_Translation"in o){const r=o.Lcl_Translation.value;void 0!==t.target?(t.target.position.fromArray(r),a.add(t.target)):t.lookAt((new e.Vector3).fromArray(r))}}}))}}bindSkeleton(t,r,n){const a=this.parsePoseNodes();for(const s in t){const i=t[s];o.get(parseInt(i.ID)).parents.forEach((function(t){if(r.has(t.ID)){const r=t.ID;o.get(r).parents.forEach((function(t){if(n.has(t.ID)){n.get(t.ID).bind(new e.Skeleton(i.bones),a[t.ID])}}))}}))}}parsePoseNodes(){const t={};if("Pose"in n.Objects){const r=n.Objects.Pose;for(const n in r)if("BindPose"===r[n].attrType&&r[n].NbPoseNodes>0){const o=r[n].PoseNode;Array.isArray(o)?o.forEach((function(r){t[r.Node]=(new e.Matrix4).fromArray(r.Matrix.a)})):t[o.Node]=(new e.Matrix4).fromArray(o.Matrix.a)}}return t}createAmbientLight(){if("GlobalSettings"in n&&"AmbientColor"in n.GlobalSettings){const t=n.GlobalSettings.AmbientColor.value,r=t[0],o=t[1],s=t[2];if(0!==r||0!==o||0!==s){const t=new e.Color(r,o,s);a.add(new e.AmbientLight(t,1))}}}}class l{parse(e){const t=new Map;if("Geometry"in n.Objects){const r=n.Objects.Geometry;for(const n in r){const a=o.get(parseInt(n)),s=this.parseGeometry(a,r[n],e);t.set(parseInt(n),s)}}return t}parseGeometry(e,t,r){switch(t.attrType){case"Mesh":return this.parseMeshGeometry(e,t,r);case"NurbsCurve":return this.parseNurbsGeometry(t)}}parseMeshGeometry(e,t,r){const o=r.skeletons,a=[],s=e.parents.map((function(e){return n.Objects.Model[e.ID]}));if(0===s.length)return;const i=e.children.reduce((function(e,t){return void 0!==o[t.ID]&&(e=o[t.ID]),e}),null);e.children.forEach((function(e){void 0!==r.morphTargets[e.ID]&&a.push(r.morphTargets[e.ID])}));const l=s[0],c={};"RotationOrder"in l&&(c.eulerOrder=x(l.RotationOrder.value)),"InheritType"in l&&(c.inheritType=parseInt(l.InheritType.value)),"GeometricTranslation"in l&&(c.translation=l.GeometricTranslation.value),"GeometricRotation"in l&&(c.rotation=l.GeometricRotation.value),"GeometricScaling"in l&&(c.scale=l.GeometricScaling.value);const u=I(c);return this.genGeometry(t,i,a,u)}genGeometry(t,r,n,o){const a=new e.BufferGeometry;t.attrName&&(a.name=t.attrName);const s=this.parseGeoNode(t,r),i=this.genBuffers(s),l=new e.Float32BufferAttribute(i.vertex,3);if(l.applyMatrix4(o),a.setAttribute("position",l),i.colors.length>0&&a.setAttribute("color",new e.Float32BufferAttribute(i.colors,3)),r&&(a.setAttribute("skinIndex",new e.Uint16BufferAttribute(i.weightsIndices,4)),a.setAttribute("skinWeight",new e.Float32BufferAttribute(i.vertexWeights,4)),a.FBX_Deformer=r),i.normal.length>0){const t=(new e.Matrix3).getNormalMatrix(o),r=new e.Float32BufferAttribute(i.normal,3);r.applyNormalMatrix(t),a.setAttribute("normal",r)}if(i.uvs.forEach((function(t,r){let n="uv"+(r+1).toString();0===r&&(n="uv"),a.setAttribute(n,new e.Float32BufferAttribute(i.uvs[r],2))})),s.material&&"AllSame"!==s.material.mappingType){let e=i.materialIndex[0],t=0;if(i.materialIndex.forEach((function(r,n){r!==e&&(a.addGroup(t,n-t,e),e=r,t=n)})),a.groups.length>0){const t=a.groups[a.groups.length-1],r=t.start+t.count;r!==i.materialIndex.length&&a.addGroup(r,i.materialIndex.length-r,e)}0===a.groups.length&&a.addGroup(0,i.materialIndex.length,i.materialIndex[0])}return this.addMorphTargets(a,t,n,o),a}parseGeoNode(e,t){const r={};if(r.vertexPositions=void 0!==e.Vertices?e.Vertices.a:[],r.vertexIndices=void 0!==e.PolygonVertexIndex?e.PolygonVertexIndex.a:[],e.LayerElementColor&&(r.color=this.parseVertexColors(e.LayerElementColor[0])),e.LayerElementMaterial&&(r.material=this.parseMaterialIndices(e.LayerElementMaterial[0])),e.LayerElementNormal&&(r.normal=this.parseNormals(e.LayerElementNormal[0])),e.LayerElementUV){r.uv=[];let t=0;for(;e.LayerElementUV[t];)e.LayerElementUV[t].UV&&r.uv.push(this.parseUVs(e.LayerElementUV[t])),t++}return r.weightTable={},null!==t&&(r.skeleton=t,t.rawBones.forEach((function(e,t){e.indices.forEach((function(n,o){void 0===r.weightTable[n]&&(r.weightTable[n]=[]),r.weightTable[n].push({id:t,weight:e.weights[o]})}))}))),r}genBuffers(e){const t={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]};let r=0,n=0,o=!1,a=[],s=[],i=[],l=[],c=[],u=[];const p=this;return e.vertexIndices.forEach((function(h,d){let f,m=!1;h<0&&(h^=-1,m=!0);let g=[],y=[];if(a.push(3*h,3*h+1,3*h+2),e.color){const t=v(d,r,h,e.color);i.push(t[0],t[1],t[2])}if(e.skeleton){if(void 0!==e.weightTable[h]&&e.weightTable[h].forEach((function(e){y.push(e.weight),g.push(e.id)})),y.length>4){o||(console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."),o=!0);const e=[0,0,0,0],t=[0,0,0,0];y.forEach((function(r,n){let o=r,a=g[n];t.forEach((function(t,r,n){if(o>t){n[r]=o,o=t;const s=e[r];e[r]=a,a=s}}))})),g=e,y=t}for(;y.length<4;)y.push(0),g.push(0);for(let e=0;e<4;++e)c.push(y[e]),u.push(g[e])}if(e.normal){const t=v(d,r,h,e.normal);s.push(t[0],t[1],t[2])}e.material&&"AllSame"!==e.material.mappingType&&(f=v(d,r,h,e.material)[0]),e.uv&&e.uv.forEach((function(e,t){const n=v(d,r,h,e);void 0===l[t]&&(l[t]=[]),l[t].push(n[0]),l[t].push(n[1])})),n++,m&&(p.genFace(t,e,a,f,s,i,l,c,u,n),r++,n=0,a=[],s=[],i=[],l=[],c=[],u=[])})),t}genFace(e,t,r,n,o,a,s,i,l,c){for(let u=2;u<c;u++)e.vertex.push(t.vertexPositions[r[0]]),e.vertex.push(t.vertexPositions[r[1]]),e.vertex.push(t.vertexPositions[r[2]]),e.vertex.push(t.vertexPositions[r[3*(u-1)]]),e.vertex.push(t.vertexPositions[r[3*(u-1)+1]]),e.vertex.push(t.vertexPositions[r[3*(u-1)+2]]),e.vertex.push(t.vertexPositions[r[3*u]]),e.vertex.push(t.vertexPositions[r[3*u+1]]),e.vertex.push(t.vertexPositions[r[3*u+2]]),t.skeleton&&(e.vertexWeights.push(i[0]),e.vertexWeights.push(i[1]),e.vertexWeights.push(i[2]),e.vertexWeights.push(i[3]),e.vertexWeights.push(i[4*(u-1)]),e.vertexWeights.push(i[4*(u-1)+1]),e.vertexWeights.push(i[4*(u-1)+2]),e.vertexWeights.push(i[4*(u-1)+3]),e.vertexWeights.push(i[4*u]),e.vertexWeights.push(i[4*u+1]),e.vertexWeights.push(i[4*u+2]),e.vertexWeights.push(i[4*u+3]),e.weightsIndices.push(l[0]),e.weightsIndices.push(l[1]),e.weightsIndices.push(l[2]),e.weightsIndices.push(l[3]),e.weightsIndices.push(l[4*(u-1)]),e.weightsIndices.push(l[4*(u-1)+1]),e.weightsIndices.push(l[4*(u-1)+2]),e.weightsIndices.push(l[4*(u-1)+3]),e.weightsIndices.push(l[4*u]),e.weightsIndices.push(l[4*u+1]),e.weightsIndices.push(l[4*u+2]),e.weightsIndices.push(l[4*u+3])),t.color&&(e.colors.push(a[0]),e.colors.push(a[1]),e.colors.push(a[2]),e.colors.push(a[3*(u-1)]),e.colors.push(a[3*(u-1)+1]),e.colors.push(a[3*(u-1)+2]),e.colors.push(a[3*u]),e.colors.push(a[3*u+1]),e.colors.push(a[3*u+2])),t.material&&"AllSame"!==t.material.mappingType&&(e.materialIndex.push(n),e.materialIndex.push(n),e.materialIndex.push(n)),t.normal&&(e.normal.push(o[0]),e.normal.push(o[1]),e.normal.push(o[2]),e.normal.push(o[3*(u-1)]),e.normal.push(o[3*(u-1)+1]),e.normal.push(o[3*(u-1)+2]),e.normal.push(o[3*u]),e.normal.push(o[3*u+1]),e.normal.push(o[3*u+2])),t.uv&&t.uv.forEach((function(t,r){void 0===e.uvs[r]&&(e.uvs[r]=[]),e.uvs[r].push(s[r][0]),e.uvs[r].push(s[r][1]),e.uvs[r].push(s[r][2*(u-1)]),e.uvs[r].push(s[r][2*(u-1)+1]),e.uvs[r].push(s[r][2*u]),e.uvs[r].push(s[r][2*u+1])}))}addMorphTargets(e,t,r,o){if(0===r.length)return;e.morphTargetsRelative=!0,e.morphAttributes.position=[];const a=this;r.forEach((function(r){r.rawTargets.forEach((function(r){const s=n.Objects.Geometry[r.geoID];void 0!==s&&a.genMorphGeometry(e,t,s,o,r.name)}))}))}genMorphGeometry(t,r,n,o,a){const s=void 0!==r.PolygonVertexIndex?r.PolygonVertexIndex.a:[],i=void 0!==n.Vertices?n.Vertices.a:[],l=void 0!==n.Indexes?n.Indexes.a:[],c=3*t.attributes.position.count,u=new Float32Array(c);for(let e=0;e<l.length;e++){const t=3*l[e];u[t]=i[3*e],u[t+1]=i[3*e+1],u[t+2]=i[3*e+2]}const p={vertexIndices:s,vertexPositions:u},h=this.genBuffers(p),d=new e.Float32BufferAttribute(h.vertex,3);d.name=a||n.attrName,d.applyMatrix4(o),t.morphAttributes.position.push(d)}parseNormals(e){const t=e.MappingInformationType,r=e.ReferenceInformationType,n=e.Normals.a;let o=[];return"IndexToDirect"===r&&("NormalIndex"in e?o=e.NormalIndex.a:"NormalsIndex"in e&&(o=e.NormalsIndex.a)),{dataSize:3,buffer:n,indices:o,mappingType:t,referenceType:r}}parseUVs(e){const t=e.MappingInformationType,r=e.ReferenceInformationType,n=e.UV.a;let o=[];return"IndexToDirect"===r&&(o=e.UVIndex.a),{dataSize:2,buffer:n,indices:o,mappingType:t,referenceType:r}}parseVertexColors(e){const t=e.MappingInformationType,r=e.ReferenceInformationType,n=e.Colors.a;let o=[];return"IndexToDirect"===r&&(o=e.ColorIndex.a),{dataSize:4,buffer:n,indices:o,mappingType:t,referenceType:r}}parseMaterialIndices(e){const t=e.MappingInformationType,r=e.ReferenceInformationType;if("NoMappingInformation"===t)return{dataSize:1,buffer:[0],indices:[0],mappingType:"AllSame",referenceType:r};const n=e.Materials.a,o=[];for(let e=0;e<n.length;++e)o.push(e);return{dataSize:1,buffer:n,indices:o,mappingType:t,referenceType:r}}parseNurbsGeometry(t){if(void 0===r.NURBSCurve)return console.error("THREE.FBXLoader: The loader relies on NURBSCurve for any nurbs present in the model. Nurbs will show up as empty geometry."),new e.BufferGeometry;const n=parseInt(t.Order);if(isNaN(n))return console.error("THREE.FBXLoader: Invalid Order %s given for geometry ID: %s",t.Order,t.id),new e.BufferGeometry;const o=n-1,a=t.KnotVector.a,s=[],i=t.Points.a;for(let t=0,r=i.length;t<r;t+=4)s.push((new e.Vector4).fromArray(i,t));let l,c;if("Closed"===t.Form)s.push(s[0]);else if("Periodic"===t.Form){l=o,c=a.length-1-l;for(let e=0;e<o;++e)s.push(s[e])}const u=new r.NURBSCurve(o,a,s,l,c).getPoints(12*s.length);return(new e.BufferGeometry).setFromPoints(u)}}class c{parse(){const e=[],t=this.parseClips();if(void 0!==t)for(const r in t){const n=t[r],o=this.addClip(n);e.push(o)}return e}parseClips(){if(void 0===n.Objects.AnimationCurve)return;const e=this.parseAnimationCurveNodes();this.parseAnimationCurves(e);const t=this.parseAnimationLayers(e);return this.parseAnimStacks(t)}parseAnimationCurveNodes(){const e=n.Objects.AnimationCurveNode,t=new Map;for(const r in e){const n=e[r];if(null!==n.attrName.match(/S|R|T|DeformPercent/)){const e={id:n.id,attr:n.attrName,curves:{}};t.set(e.id,e)}}return t}parseAnimationCurves(e){const t=n.Objects.AnimationCurve;for(const r in t){const n={id:t[r].id,times:t[r].KeyTime.a.map(m),values:t[r].KeyValueFloat.a},a=o.get(n.id);if(void 0!==a){const t=a.parents[0].ID,r=a.parents[0].relationship;r.match(/X/)?e.get(t).curves.x=n:r.match(/Y/)?e.get(t).curves.y=n:r.match(/Z/)?e.get(t).curves.z=n:r.match(/d|DeformPercent/)&&e.has(t)&&(e.get(t).curves.morph=n)}}}parseAnimationLayers(t){const r=n.Objects.AnimationLayer,s=new Map;for(const i in r){const r=[],l=o.get(parseInt(i));if(void 0!==l){l.children.forEach((function(s,i){if(t.has(s.ID)){const l=t.get(s.ID);if(void 0!==l.curves.x||void 0!==l.curves.y||void 0!==l.curves.z){if(void 0===r[i]){const t=o.get(s.ID).parents.filter((function(e){return void 0!==e.relationship}))[0].ID;if(void 0!==t){const o=n.Objects.Model[t.toString()];if(void 0===o)return void console.warn("THREE.FBXLoader: Encountered a unused curve.",s);const l={modelName:o.attrName?e.PropertyBinding.sanitizeNodeName(o.attrName):"",ID:o.id,initialPosition:[0,0,0],initialRotation:[0,0,0],initialScale:[1,1,1]};a.traverse((function(e){e.ID===o.id&&(l.transform=e.matrix,e.userData.transformData&&(l.eulerOrder=e.userData.transformData.eulerOrder))})),l.transform||(l.transform=new e.Matrix4),"PreRotation"in o&&(l.preRotation=o.PreRotation.value),"PostRotation"in o&&(l.postRotation=o.PostRotation.value),r[i]=l}}r[i]&&(r[i][l.attr]=l)}else if(void 0!==l.curves.morph){if(void 0===r[i]){const t=o.get(s.ID).parents.filter((function(e){return void 0!==e.relationship}))[0].ID,a=o.get(t).parents[0].ID,l=o.get(a).parents[0].ID,c=o.get(l).parents[0].ID,u=n.Objects.Model[c],p={modelName:u.attrName?e.PropertyBinding.sanitizeNodeName(u.attrName):"",morphName:n.Objects.Deformer[t].attrName};r[i]=p}r[i][l.attr]=l}}})),s.set(parseInt(i),r)}}return s}parseAnimStacks(e){const t=n.Objects.AnimationStack,r={};for(const n in t){const a=o.get(parseInt(n)).children;a.length>1&&console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.");const s=e.get(a[0].ID);r[n]={name:t[n].attrName,layer:s}}return r}addClip(t){let r=[];const n=this;return t.layer.forEach((function(e){r=r.concat(n.generateTracks(e))})),new e.AnimationClip(t.name,-1,r)}generateTracks(t){const r=[];let n=new e.Vector3,o=new e.Quaternion,a=new e.Vector3;if(t.transform&&t.transform.decompose(n,o,a),n=n.toArray(),o=(new e.Euler).setFromQuaternion(o,t.eulerOrder).toArray(),a=a.toArray(),void 0!==t.T&&Object.keys(t.T.curves).length>0){const e=this.generateVectorTrack(t.modelName,t.T.curves,n,"position");void 0!==e&&r.push(e)}if(void 0!==t.R&&Object.keys(t.R.curves).length>0){const e=this.generateRotationTrack(t.modelName,t.R.curves,o,t.preRotation,t.postRotation,t.eulerOrder);void 0!==e&&r.push(e)}if(void 0!==t.S&&Object.keys(t.S.curves).length>0){const e=this.generateVectorTrack(t.modelName,t.S.curves,a,"scale");void 0!==e&&r.push(e)}if(void 0!==t.DeformPercent){const e=this.generateMorphTrack(t);void 0!==e&&r.push(e)}return r}generateVectorTrack(t,r,n,o){const a=this.getTimesForAllAxes(r),s=this.getKeyframeTrackValues(a,r,n);return new e.VectorKeyframeTrack(t+"."+o,a,s)}generateRotationTrack(t,r,n,o,a,s){void 0!==r.x&&(this.interpolateRotations(r.x),r.x.values=r.x.values.map(e.MathUtils.degToRad)),void 0!==r.y&&(this.interpolateRotations(r.y),r.y.values=r.y.values.map(e.MathUtils.degToRad)),void 0!==r.z&&(this.interpolateRotations(r.z),r.z.values=r.z.values.map(e.MathUtils.degToRad));const i=this.getTimesForAllAxes(r),l=this.getKeyframeTrackValues(i,r,n);void 0!==o&&((o=o.map(e.MathUtils.degToRad)).push(s),o=(new e.Euler).fromArray(o),o=(new e.Quaternion).setFromEuler(o)),void 0!==a&&((a=a.map(e.MathUtils.degToRad)).push(s),a=(new e.Euler).fromArray(a),a=(new e.Quaternion).setFromEuler(a).invert());const c=new e.Quaternion,u=new e.Euler,p=[];for(let e=0;e<l.length;e+=3)u.set(l[e],l[e+1],l[e+2],s),c.setFromEuler(u),void 0!==o&&c.premultiply(o),void 0!==a&&c.multiply(a),c.toArray(p,e/3*4);return new e.QuaternionKeyframeTrack(t+".quaternion",i,p)}generateMorphTrack(t){const r=t.DeformPercent.curves.morph,n=r.values.map((function(e){return e/100})),o=a.getObjectByName(t.modelName).morphTargetDictionary[t.morphName];return new e.NumberKeyframeTrack(t.modelName+".morphTargetInfluences["+o+"]",r.times,n)}getTimesForAllAxes(e){let t=[];if(void 0!==e.x&&(t=t.concat(e.x.times)),void 0!==e.y&&(t=t.concat(e.y.times)),void 0!==e.z&&(t=t.concat(e.z.times)),t=t.sort((function(e,t){return e-t})),t.length>1){let e=1,r=t[0];for(let n=1;n<t.length;n++){const o=t[n];o!==r&&(t[e]=o,r=o,e++)}t=t.slice(0,e)}return t}getKeyframeTrackValues(e,t,r){const n=r,o=[];let a=-1,s=-1,i=-1;return e.forEach((function(e){if(t.x&&(a=t.x.times.indexOf(e)),t.y&&(s=t.y.times.indexOf(e)),t.z&&(i=t.z.times.indexOf(e)),-1!==a){const e=t.x.values[a];o.push(e),n[0]=e}else o.push(n[0]);if(-1!==s){const e=t.y.values[s];o.push(e),n[1]=e}else o.push(n[1]);if(-1!==i){const e=t.z.values[i];o.push(e),n[2]=e}else o.push(n[2])})),o}interpolateRotations(e){for(let t=1;t<e.values.length;t++){const r=e.values[t-1],n=e.values[t]-r,o=Math.abs(n);if(o>=180){const a=o/180,s=n/a;let i=r+s;const l=e.times[t-1],c=(e.times[t]-l)/a;let u=l+c;const p=[],h=[];for(;u<e.times[t];)p.push(u),u+=c,h.push(i),i+=s;e.times=E(e.times,t,p),e.values=E(e.values,t,h)}}}}class u{getPrevNode(){return this.nodeStack[this.currentIndent-2]}getCurrentNode(){return this.nodeStack[this.currentIndent-1]}getCurrentProp(){return this.currentProp}pushStack(e){this.nodeStack.push(e),this.currentIndent+=1}popStack(){this.nodeStack.pop(),this.currentIndent-=1}setCurrentProp(e,t){this.currentProp=e,this.currentPropName=t}parse(e){this.currentIndent=0,this.allNodes=new d,this.nodeStack=[],this.currentProp=[],this.currentPropName="";const t=this,r=e.split(/[\r\n]+/);return r.forEach((function(e,n){const o=e.match(/^[\s\t]*;/),a=e.match(/^[\s\t]*$/);if(o||a)return;const s=e.match("^\\t{"+t.currentIndent+"}(\\w+):(.*){",""),i=e.match("^\\t{"+t.currentIndent+"}(\\w+):[\\s\\t\\r\\n](.*)"),l=e.match("^\\t{"+(t.currentIndent-1)+"}}");s?t.parseNodeBegin(e,s):i?t.parseNodeProperty(e,i,r[++n]):l?t.popStack():e.match(/^[^\s\t}]/)&&t.parseNodePropertyContinued(e)})),this.allNodes}parseNodeBegin(e,t){const r=t[1].trim().replace(/^"/,"").replace(/"$/,""),n=t[2].split(",").map((function(e){return e.trim().replace(/^"/,"").replace(/"$/,"")})),o={name:r},a=this.parseNodeAttr(n),s=this.getCurrentNode();0===this.currentIndent?this.allNodes.add(r,o):r in s?("PoseNode"===r?s.PoseNode.push(o):void 0!==s[r].id&&(s[r]={},s[r][s[r].id]=s[r]),""!==a.id&&(s[r][a.id]=o)):"number"==typeof a.id?(s[r]={},s[r][a.id]=o):"Properties70"!==r&&(s[r]="PoseNode"===r?[o]:o),"number"==typeof a.id&&(o.id=a.id),""!==a.name&&(o.attrName=a.name),""!==a.type&&(o.attrType=a.type),this.pushStack(o)}parseNodeAttr(e){let t=e[0];""!==e[0]&&(t=parseInt(e[0]),isNaN(t)&&(t=e[0]));let r="",n="";return e.length>1&&(r=e[1].replace(/^(\w+)::/,""),n=e[2]),{id:t,name:r,type:n}}parseNodeProperty(e,t,r){let n=t[1].replace(/^"/,"").replace(/"$/,"").trim(),o=t[2].replace(/^"/,"").replace(/"$/,"").trim();"Content"===n&&","===o&&(o=r.replace(/"/g,"").replace(/,$/,"").trim());const a=this.getCurrentNode();if("Properties70"!==a.name){if("C"===n){const e=o.split(",").slice(1),t=parseInt(e[0]),r=parseInt(e[1]);let s=o.split(",").slice(3);s=s.map((function(e){return e.trim().replace(/^"/,"")})),n="connections",o=[t,r],function(e,t){for(let r=0,n=e.length,o=t.length;r<o;r++,n++)e[n]=t[r]}(o,s),void 0===a[n]&&(a[n]=[])}"Node"===n&&(a.id=o),n in a&&Array.isArray(a[n])?a[n].push(o):"a"!==n?a[n]=o:a.a=o,this.setCurrentProp(a,n),"a"===n&&","!==o.slice(-1)&&(a.a=b(o))}else this.parseNodeSpecialProperty(e,n,o)}parseNodePropertyContinued(e){const t=this.getCurrentNode();t.a+=e,","!==e.slice(-1)&&(t.a=b(t.a))}parseNodeSpecialProperty(e,t,r){const n=r.split('",').map((function(e){return e.trim().replace(/^\"/,"").replace(/\s/,"_")})),o=n[0],a=n[1],s=n[2],i=n[3];let l=n[4];switch(a){case"int":case"enum":case"bool":case"ULongLong":case"double":case"Number":case"FieldOfView":l=parseFloat(l);break;case"Color":case"ColorRGB":case"Vector3D":case"Lcl_Translation":case"Lcl_Rotation":case"Lcl_Scaling":l=b(l)}this.getPrevNode()[o]={type:a,type2:s,flag:i,value:l},this.setCurrentProp(this.getPrevNode(),o)}}class p{parse(e){const t=new h(e);t.skip(23);const r=t.getUint32();if(r<6400)throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: "+r);const n=new d;for(;!this.endOfContent(t);){const e=this.parseNode(t,r);null!==e&&n.add(e.name,e)}return n}endOfContent(e){return e.size()%16==0?(e.getOffset()+160+16&-16)>=e.size():e.getOffset()+160+16>=e.size()}parseNode(e,t){const r={},n=t>=7500?e.getUint64():e.getUint32(),o=t>=7500?e.getUint64():e.getUint32();t>=7500?e.getUint64():e.getUint32();const a=e.getUint8(),s=e.getString(a);if(0===n)return null;const i=[];for(let t=0;t<o;t++)i.push(this.parseProperty(e));const l=i.length>0?i[0]:"",c=i.length>1?i[1]:"",u=i.length>2?i[2]:"";for(r.singleProperty=1===o&&e.getOffset()===n;n>e.getOffset();){const n=this.parseNode(e,t);null!==n&&this.parseSubNode(s,r,n)}return r.propertyList=i,"number"==typeof l&&(r.id=l),""!==c&&(r.attrName=c),""!==u&&(r.attrType=u),""!==s&&(r.name=s),r}parseSubNode(e,t,r){if(!0===r.singleProperty){const e=r.propertyList[0];Array.isArray(e)?(t[r.name]=r,r.a=e):t[r.name]=e}else if("Connections"===e&&"C"===r.name){const e=[];r.propertyList.forEach((function(t,r){0!==r&&e.push(t)})),void 0===t.connections&&(t.connections=[]),t.connections.push(e)}else if("Properties70"===r.name){Object.keys(r).forEach((function(e){t[e]=r[e]}))}else if("Properties70"===e&&"P"===r.name){let e=r.propertyList[0],n=r.propertyList[1];const o=r.propertyList[2],a=r.propertyList[3];let s;0===e.indexOf("Lcl ")&&(e=e.replace("Lcl ","Lcl_")),0===n.indexOf("Lcl ")&&(n=n.replace("Lcl ","Lcl_")),s="Color"===n||"ColorRGB"===n||"Vector"===n||"Vector3D"===n||0===n.indexOf("Lcl_")?[r.propertyList[4],r.propertyList[5],r.propertyList[6]]:r.propertyList[4],t[e]={type:n,type2:o,flag:a,value:s}}else void 0===t[r.name]?"number"==typeof r.id?(t[r.name]={},t[r.name][r.id]=r):t[r.name]=r:"PoseNode"===r.name?(Array.isArray(t[r.name])||(t[r.name]=[t[r.name]]),t[r.name].push(r)):void 0===t[r.name][r.id]&&(t[r.name][r.id]=r)}parseProperty(e){const r=e.getString(1);let n;switch(r){case"C":return e.getBoolean();case"D":return e.getFloat64();case"F":return e.getFloat32();case"I":return e.getInt32();case"L":return e.getInt64();case"R":return n=e.getUint32(),e.getArrayBuffer(n);case"S":return n=e.getUint32(),e.getString(n);case"Y":return e.getInt16();case"b":case"c":case"d":case"f":case"i":case"l":const o=e.getUint32(),a=e.getUint32(),s=e.getUint32();if(0===a)switch(r){case"b":case"c":return e.getBooleanArray(o);case"d":return e.getFloat64Array(o);case"f":return e.getFloat32Array(o);case"i":return e.getInt32Array(o);case"l":return e.getInt64Array(o)}const i=t.unzlibSync(new Uint8Array(e.getArrayBuffer(s))),l=new h(i.buffer);switch(r){case"b":case"c":return l.getBooleanArray(o);case"d":return l.getFloat64Array(o);case"f":return l.getFloat32Array(o);case"i":return l.getInt32Array(o);case"l":return l.getInt64Array(o)}default:throw new Error("THREE.FBXLoader: Unknown property type "+r)}}}class h{constructor(e,t){this.dv=new DataView(e),this.offset=0,this.littleEndian=void 0===t||t}getOffset(){return this.offset}size(){return this.dv.buffer.byteLength}skip(e){this.offset+=e}getBoolean(){return 1==(1&this.getUint8())}getBooleanArray(e){const t=[];for(let r=0;r<e;r++)t.push(this.getBoolean());return t}getUint8(){const e=this.dv.getUint8(this.offset);return this.offset+=1,e}getInt16(){const e=this.dv.getInt16(this.offset,this.littleEndian);return this.offset+=2,e}getInt32(){const e=this.dv.getInt32(this.offset,this.littleEndian);return this.offset+=4,e}getInt32Array(e){const t=[];for(let r=0;r<e;r++)t.push(this.getInt32());return t}getUint32(){const e=this.dv.getUint32(this.offset,this.littleEndian);return this.offset+=4,e}getInt64(){let e,t;return this.littleEndian?(e=this.getUint32(),t=this.getUint32()):(t=this.getUint32(),e=this.getUint32()),2147483648&t?(t=4294967295&~t,e=4294967295&~e,4294967295===e&&(t=t+1&4294967295),e=e+1&4294967295,-(4294967296*t+e)):4294967296*t+e}getInt64Array(e){const t=[];for(let r=0;r<e;r++)t.push(this.getInt64());return t}getUint64(){let e,t;return this.littleEndian?(e=this.getUint32(),t=this.getUint32()):(t=this.getUint32(),e=this.getUint32()),4294967296*t+e}getFloat32(){const e=this.dv.getFloat32(this.offset,this.littleEndian);return this.offset+=4,e}getFloat32Array(e){const t=[];for(let r=0;r<e;r++)t.push(this.getFloat32());return t}getFloat64(){const e=this.dv.getFloat64(this.offset,this.littleEndian);return this.offset+=8,e}getFloat64Array(e){const t=[];for(let r=0;r<e;r++)t.push(this.getFloat64());return t}getArrayBuffer(e){const t=this.dv.buffer.slice(this.offset,this.offset+e);return this.offset+=e,t}getString(t){let r=[];for(let e=0;e<t;e++)r[e]=this.getUint8();const n=r.indexOf(0);return n>=0&&(r=r.slice(0,n)),e.LoaderUtils.decodeText(new Uint8Array(r))}}class d{add(e,t){this[e]=t}}function f(e){const t=e.match(/FBXVersion: (\d+)/);if(t){return parseInt(t[1])}throw new Error("THREE.FBXLoader: Cannot find the version number for the file given.")}function m(e){return e/46186158e3}const g=[];function v(e,t,r,n){let o;switch(n.mappingType){case"ByPolygonVertex":o=e;break;case"ByPolygon":o=t;break;case"ByVertice":o=r;break;case"AllSame":o=n.indices[0];break;default:console.warn("THREE.FBXLoader: unknown attribute mapping type "+n.mappingType)}"IndexToDirect"===n.referenceType&&(o=n.indices[o]);const a=o*n.dataSize,s=a+n.dataSize;return function(e,t,r,n){for(let o=r,a=0;o<n;o++,a++)e[a]=t[o];return e}(g,n.buffer,a,s)}const y=new e.Euler,w=new e.Vector3;function I(t){const r=new e.Matrix4,n=new e.Matrix4,o=new e.Matrix4,a=new e.Matrix4,s=new e.Matrix4,i=new e.Matrix4,l=new e.Matrix4,c=new e.Matrix4,u=new e.Matrix4,p=new e.Matrix4,h=new e.Matrix4,d=new e.Matrix4,f=t.inheritType?t.inheritType:0;if(t.translation&&r.setPosition(w.fromArray(t.translation)),t.preRotation){const r=t.preRotation.map(e.MathUtils.degToRad);r.push(t.eulerOrder),n.makeRotationFromEuler(y.fromArray(r))}if(t.rotation){const r=t.rotation.map(e.MathUtils.degToRad);r.push(t.eulerOrder),o.makeRotationFromEuler(y.fromArray(r))}if(t.postRotation){const r=t.postRotation.map(e.MathUtils.degToRad);r.push(t.eulerOrder),a.makeRotationFromEuler(y.fromArray(r)),a.invert()}t.scale&&s.scale(w.fromArray(t.scale)),t.scalingOffset&&l.setPosition(w.fromArray(t.scalingOffset)),t.scalingPivot&&i.setPosition(w.fromArray(t.scalingPivot)),t.rotationOffset&&c.setPosition(w.fromArray(t.rotationOffset)),t.rotationPivot&&u.setPosition(w.fromArray(t.rotationPivot)),t.parentMatrixWorld&&(h.copy(t.parentMatrix),p.copy(t.parentMatrixWorld));const m=n.clone().multiply(o).multiply(a),g=new e.Matrix4;g.extractRotation(p);const v=new e.Matrix4;v.copyPosition(p);const I=v.clone().invert().multiply(p),x=g.clone().invert().multiply(I),b=s,T=new e.Matrix4;if(0===f)T.copy(g).multiply(m).multiply(x).multiply(b);else if(1===f)T.copy(g).multiply(x).multiply(m).multiply(b);else{const t=(new e.Matrix4).scale((new e.Vector3).setFromMatrixScale(h)).clone().invert(),r=x.clone().multiply(t);T.copy(g).multiply(m).multiply(r).multiply(b)}const E=u.clone().invert(),M=i.clone().invert();let A=r.clone().multiply(c).multiply(u).multiply(n).multiply(o).multiply(a).multiply(E).multiply(l).multiply(i).multiply(s).multiply(M);const D=(new e.Matrix4).copyPosition(A),P=p.clone().multiply(D);return d.copyPosition(P),A=d.clone().multiply(T),A.premultiply(p.invert()),A}function x(e){const t=["ZYX","YZX","XZY","ZXY","YXZ","XYZ"];return 6===(e=e||0)?(console.warn("THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect."),t[0]):t[e]}function b(e){return e.split(",").map((function(e){return parseFloat(e)}))}function T(t,r,n){return void 0===r&&(r=0),void 0===n&&(n=t.byteLength),e.LoaderUtils.decodeText(new Uint8Array(t,r,n))}function E(e,t,r){return e.slice(0,t).concat(r).concat(e.slice(t))}exports.FBXLoader=s;
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),t=require("three");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=r(e);class n extends t.Loader{constructor(e){super(e)}load(e,r,s,n){const a=new t.FileLoader(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,(e=>{if("string"!=typeof e)throw new Error("unsupported data type");const t=JSON.parse(e),s=this.parse(t);r&&r(s)}),s,n)}parse(e){return new a(e)}}class a{constructor(e){s.default(this,"data",void 0),this.data=e}generateShapes(e,t=100,r){const s=[],n={letterSpacing:0,lineHeight:1,...r},a=function(e,t,r,s){const n=Array.from(e),a=t/r.resolution,i=(r.boundingBox.yMax-r.boundingBox.yMin+r.underlineThickness)*a,p=[];let l=0,u=0;for(let e=0;e<n.length;e++){const t=n[e];if("\n"===t)l=0,u-=i*s.lineHeight;else{const e=o(t,a,l,u,r);e&&(l+=e.offsetX+s.letterSpacing,p.push(e.path))}}return p}(e,t,this.data,n);for(let e=0,t=a.length;e<t;e++)Array.prototype.push.apply(s,a[e].toShapes(!1));return s}}function o(e,r,s,n,a){const o=a.glyphs[e]||a.glyphs["?"];if(!o)return void console.error('THREE.Font: character "'+e+'" does not exists in font family '+a.familyName+".");const i=new t.ShapePath;let p,l,u,c,h,d,f,y;if(o.o){const e=o._cachedOutline||(o._cachedOutline=o.o.split(" "));for(let t=0,a=e.length;t<a;){switch(e[t++]){case"m":p=parseInt(e[t++])*r+s,l=parseInt(e[t++])*r+n,i.moveTo(p,l);break;case"l":p=parseInt(e[t++])*r+s,l=parseInt(e[t++])*r+n,i.lineTo(p,l);break;case"q":u=parseInt(e[t++])*r+s,c=parseInt(e[t++])*r+n,h=parseInt(e[t++])*r+s,d=parseInt(e[t++])*r+n,i.quadraticCurveTo(h,d,u,c);break;case"b":u=parseInt(e[t++])*r+s,c=parseInt(e[t++])*r+n,h=parseInt(e[t++])*r+s,d=parseInt(e[t++])*r+n,f=parseInt(e[t++])*r+s,y=parseInt(e[t++])*r+n,i.bezierCurveTo(h,d,f,y,u,c)}}}return{offsetX:o.ha*r,path:i}}s.default(a,"isFont",void 0),s.default(a,"type",void 0),exports.Font=a,exports.FontLoader=n;
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.Loader{constructor(e){super(e),this.splitLayer=!1}load(t,r,i,n){const o=this,l=new e.FileLoader(o.manager);l.setPath(o.path),l.setRequestHeader(o.requestHeader),l.setWithCredentials(o.withCredentials),l.load(t,(function(e){try{r(o.parse(e))}catch(e){n?n(e):console.error(e),o.manager.itemError(t)}}),i,n)}parse(t){let r,i={x:0,y:0,z:0,e:0,f:0,extruding:!1,relative:!1},n=[];const o=new e.LineBasicMaterial({color:16711680});o.name="path";const l=new e.LineBasicMaterial({color:65280});function a(e){r={vertex:[],pathVertex:[],z:e.z},n.push(r)}function s(e,t){return i.relative?t:t-e}function u(e,t){return i.relative?e+t:t}l.name="extruded";let d=t.replace(/;.+/g,"").split("\n");for(let e=0;e<d.length;e++){let t=d[e].split(" "),n=t[0].toUpperCase(),o={};if(t.splice(1).forEach((function(e){if(void 0!==e[0]){let t=e[0].toLowerCase(),r=parseFloat(e.substring(1));o[t]=r}})),"G0"===n||"G1"===n){let e={x:void 0!==o.x?u(i.x,o.x):i.x,y:void 0!==o.y?u(i.y,o.y):i.y,z:void 0!==o.z?u(i.z,o.z):i.z,e:void 0!==o.e?u(i.e,o.e):i.e,f:void 0!==o.f?u(i.f,o.f):i.f};s(i.e,e.e)>0&&(e.extruding=s(i.e,e.e)>0,null!=r&&e.z==r.z||a(e)),h=i,p=e,void 0===r&&a(h),i.extruding?(r.vertex.push(h.x,h.y,h.z),r.vertex.push(p.x,p.y,p.z)):(r.pathVertex.push(h.x,h.y,h.z),r.pathVertex.push(p.x,p.y,p.z)),i=e}else if("G2"===n||"G3"===n);else if("G90"===n)i.relative=!1;else if("G91"===n)i.relative=!0;else if("G92"===n){let e=i;e.x=void 0!==o.x?o.x:e.x,e.y=void 0!==o.y?o.y:e.y,e.z=void 0!==o.z?o.z:e.z,e.e=void 0!==o.e?o.e:e.e,i=e}}var h,p;function x(t,r,i){let n=new e.BufferGeometry;n.setAttribute("position",new e.Float32BufferAttribute(t,3));let a=new e.LineSegments(n,r?l:o);a.name="layer"+i,f.add(a)}const f=new e.Group;if(f.name="gcode",this.splitLayer)for(let e=0;e<n.length;e++){let t=n[e];x(t.vertex,!0,e),x(t.pathVertex,!1,e)}else{const e=[],t=[];for(let r=0;r<n.length;r++){let i=n[r],o=i.vertex,l=i.pathVertex;for(let t=0;t<o.length;t++)e.push(o[t]);for(let e=0;e<l.length;e++)t.push(l[e])}x(e,!0,n.length),x(t,!1,n.length)}return f.quaternion.setFromEuler(new e.Euler(-Math.PI/2,0,0)),f}}exports.GCodeLoader=t;
|