three-stdlib 2.16.0 → 2.16.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BufferGeometryUtils-1a7a235c.js +655 -0
- package/BufferGeometryUtils-971dfde3.js +1 -0
- package/Nodes-4f766d71.js +471 -0
- package/Nodes-9aa16d74.js +1 -0
- package/animation/AnimationClipCreator.cjs.js +1 -0
- package/animation/AnimationClipCreator.js +52 -32
- package/animation/CCDIKSolver.cjs.js +1 -0
- package/animation/CCDIKSolver.js +143 -64
- package/animation/MMDAnimationHelper.cjs.js +1 -0
- package/animation/MMDAnimationHelper.js +341 -150
- package/animation/MMDPhysics.cjs.js +1 -0
- package/animation/MMDPhysics.js +361 -154
- package/cameras/CinematicCamera.cjs.js +1 -0
- package/cameras/CinematicCamera.js +77 -67
- package/controls/ArcballControls.cjs.js +1 -0
- package/controls/ArcballControls.js +1449 -544
- package/controls/DeviceOrientationControls.cjs.js +1 -0
- package/controls/DeviceOrientationControls.js +97 -52
- package/controls/DragControls.cjs.js +1 -0
- package/controls/DragControls.js +187 -85
- package/controls/FirstPersonControls.cjs.js +1 -0
- package/controls/FirstPersonControls.js +193 -123
- package/controls/FlyControls.cjs.js +1 -0
- package/controls/FlyControls.d.ts +5 -4
- package/controls/FlyControls.js +160 -90
- package/controls/OrbitControls.cjs.js +1 -0
- package/controls/OrbitControls.js +481 -232
- package/controls/PointerLockControls.cjs.js +1 -0
- package/controls/PointerLockControls.js +99 -63
- package/controls/TrackballControls.cjs.js +1 -0
- package/controls/TrackballControls.js +383 -211
- package/controls/TransformControls.cjs.js +1 -0
- package/controls/TransformControls.js +782 -575
- package/controls/experimental/CameraControls.cjs.js +1 -0
- package/controls/experimental/CameraControls.js +609 -329
- package/csm/CSM.cjs.js +1 -0
- package/csm/CSM.js +108 -47
- package/csm/CSMFrustum.cjs.js +1 -0
- package/csm/CSMFrustum.js +29 -14
- package/csm/CSMHelper.cjs.js +1 -0
- package/csm/CSMHelper.js +34 -20
- package/csm/CSMShader.cjs.js +1 -0
- package/csm/CSMShader.js +11 -7
- package/curves/CurveExtras.cjs.js +1 -0
- package/curves/CurveExtras.js +115 -73
- package/curves/NURBSCurve.cjs.js +1 -0
- package/curves/NURBSCurve.js +43 -15
- package/curves/NURBSSurface.cjs.js +1 -0
- package/curves/NURBSSurface.js +27 -11
- package/curves/NURBSUtils.cjs.js +1 -0
- package/curves/NURBSUtils.js +203 -54
- package/custom.d.cjs.js +1 -0
- package/{shaders/types.mjs → custom.d.js} +0 -0
- package/deprecated/Geometry.cjs.js +1 -0
- package/deprecated/Geometry.js +486 -191
- package/effects/AnaglyphEffect.cjs.js +1 -0
- package/effects/AnaglyphEffect.js +60 -95
- package/effects/AsciiEffect.cjs.js +1 -0
- package/effects/AsciiEffect.js +110 -80
- package/effects/OutlineEffect.cjs.js +1 -0
- package/effects/OutlineEffect.js +204 -121
- package/effects/ParallaxBarrierEffect.cjs.js +1 -0
- package/effects/ParallaxBarrierEffect.js +38 -39
- package/effects/PeppersGhostEffect.cjs.js +1 -0
- package/effects/PeppersGhostEffect.js +68 -19
- package/effects/StereoEffect.cjs.js +1 -0
- package/effects/StereoEffect.js +16 -12
- package/environments/RoomEnvironment.cjs.js +1 -0
- package/environments/RoomEnvironment.js +47 -52
- package/exporters/ColladaExporter.cjs.js +1 -0
- package/exporters/ColladaExporter.js +241 -115
- package/exporters/DRACOExporter.cjs.js +1 -0
- package/exporters/DRACOExporter.js +121 -67
- package/exporters/GLTFExporter.cjs.js +1 -0
- package/exporters/GLTFExporter.js +1014 -463
- package/exporters/MMDExporter.cjs.js +1 -0
- package/exporters/MMDExporter.js +102 -44
- package/exporters/OBJExporter.cjs.js +1 -0
- package/exporters/OBJExporter.js +140 -78
- package/exporters/PLYExporter.cjs.js +1 -0
- package/exporters/PLYExporter.js +154 -93
- package/exporters/STLExporter.cjs.js +1 -0
- package/exporters/STLExporter.js +81 -30
- package/exporters/USDZExporter.cjs.js +1 -0
- package/exporters/USDZExporter.js +144 -84
- package/geometries/BoxLineGeometry.cjs.js +1 -0
- package/geometries/BoxLineGeometry.js +14 -7
- package/geometries/ConvexGeometry.cjs.js +1 -0
- package/geometries/ConvexGeometry.js +23 -14
- package/geometries/DecalGeometry.cjs.js +1 -0
- package/geometries/DecalGeometry.js +162 -108
- package/geometries/LightningStrike.cjs.js +1 -0
- package/geometries/LightningStrike.js +294 -101
- package/geometries/ParametricGeometries.cjs.js +1 -0
- package/geometries/ParametricGeometries.js +76 -26
- package/geometries/ParametricGeometry.cjs.js +1 -0
- package/geometries/ParametricGeometry.js +48 -24
- package/geometries/RoundedBoxGeometry.cjs.js +1 -0
- package/geometries/RoundedBoxGeometry.js +64 -33
- package/geometries/TeapotGeometry.cjs.js +1 -0
- package/geometries/TeapotGeometry.js +174 -1434
- package/geometries/TextGeometry.cjs.js +1 -0
- package/geometries/TextGeometry.js +17 -9
- package/helpers/LightProbeHelper.cjs.js +1 -0
- package/helpers/LightProbeHelper.js +21 -53
- package/helpers/PositionalAudioHelper.cjs.js +1 -0
- package/helpers/PositionalAudioHelper.js +30 -23
- package/helpers/RectAreaLightHelper.cjs.js +1 -0
- package/helpers/RectAreaLightHelper.js +33 -17
- package/helpers/VertexNormalsHelper.cjs.js +1 -0
- package/helpers/VertexNormalsHelper.js +41 -20
- package/helpers/VertexTangentsHelper.cjs.js +1 -0
- package/helpers/VertexTangentsHelper.js +36 -18
- package/index.cjs.js +1 -0
- package/index.js +333 -969
- package/interactive/InteractiveGroup.cjs.js +1 -0
- package/interactive/InteractiveGroup.d.ts +5 -0
- package/interactive/InteractiveGroup.js +87 -0
- package/interactive/SelectionBox.cjs.js +1 -0
- package/interactive/SelectionBox.js +46 -31
- package/interactive/SelectionHelper.cjs.js +1 -0
- package/interactive/SelectionHelper.js +21 -16
- package/libs/MeshoptDecoder.cjs.js +1 -0
- package/libs/MeshoptDecoder.js +58 -147
- package/libs/MotionControllers.cjs.js +1 -0
- package/libs/MotionControllers.js +208 -66
- package/lights/LightProbeGenerator.cjs.js +1 -0
- package/lights/LightProbeGenerator.js +96 -40
- package/lights/RectAreaLightUniformsLib.cjs.js +1 -0
- package/lights/RectAreaLightUniformsLib.js +9 -32842
- package/lines/Line2.cjs.js +1 -0
- package/lines/Line2.js +12 -9
- package/lines/LineGeometry.cjs.js +1 -0
- package/lines/LineGeometry.js +19 -7
- package/lines/LineMaterial.cjs.js +1 -0
- package/lines/LineMaterial.js +89 -51
- package/lines/LineSegments2.cjs.js +1 -0
- package/lines/LineSegments2.js +165 -56
- package/lines/LineSegmentsGeometry.cjs.js +1 -0
- package/lines/LineSegmentsGeometry.js +71 -29
- package/lines/Wireframe.cjs.js +1 -0
- package/lines/Wireframe.js +29 -15
- package/lines/WireframeGeometry2.cjs.js +1 -0
- package/lines/WireframeGeometry2.js +9 -8
- package/loaders/3DMLoader.cjs.js +1 -0
- package/loaders/3DMLoader.js +469 -234
- package/loaders/3MFLoader.cjs.js +1 -0
- package/loaders/3MFLoader.js +555 -340
- package/loaders/AMFLoader.cjs.js +1 -0
- package/loaders/AMFLoader.js +219 -114
- package/loaders/AssimpLoader.cjs.js +1 -0
- package/loaders/AssimpLoader.js +725 -328
- package/loaders/BVHLoader.cjs.js +1 -0
- package/loaders/BVHLoader.js +200 -94
- package/loaders/BasisTextureLoader.cjs.js +1 -0
- package/loaders/BasisTextureLoader.js +357 -229
- package/loaders/ColladaLoader.cjs.js +1 -0
- package/loaders/ColladaLoader.js +1522 -932
- package/loaders/DDSLoader.cjs.js +1 -0
- package/loaders/DDSLoader.js +108 -42
- package/loaders/DRACOLoader.cjs.js +1 -0
- package/loaders/DRACOLoader.js +210 -103
- package/loaders/EXRLoader.cjs.js +1 -0
- package/loaders/EXRLoader.js +809 -461
- package/loaders/FBXLoader.cjs.js +1 -0
- package/loaders/FBXLoader.js +1397 -842
- package/loaders/FontLoader.cjs.js +1 -0
- package/loaders/FontLoader.js +66 -33
- package/loaders/GCodeLoader.cjs.js +1 -0
- package/loaders/GCodeLoader.js +111 -63
- package/loaders/GLTFLoader.cjs.js +1 -0
- package/loaders/GLTFLoader.js +1484 -771
- package/loaders/HDRCubeTextureLoader.cjs.js +1 -0
- package/loaders/HDRCubeTextureLoader.js +50 -45
- package/loaders/KMZLoader.cjs.js +1 -0
- package/loaders/KMZLoader.js +55 -42
- package/loaders/KTX2Loader.cjs.js +1 -0
- package/loaders/KTX2Loader.js +362 -229
- package/loaders/KTXLoader.cjs.js +1 -0
- package/loaders/KTXLoader.js +99 -37
- package/loaders/LDrawLoader.cjs.js +1 -0
- package/loaders/LDrawLoader.js +746 -313
- package/loaders/LUT3dlLoader.cjs.js +1 -0
- package/loaders/LUT3dlLoader.js +62 -50
- package/loaders/LUTCubeLoader.cjs.js +1 -0
- package/loaders/LUTCubeLoader.js +56 -45
- package/loaders/LWOLoader.cjs.js +1 -0
- package/loaders/LWOLoader.js +339 -227
- package/loaders/LottieLoader.cjs.js +1 -0
- package/loaders/LottieLoader.js +38 -36
- package/loaders/MD2Loader.cjs.js +1 -0
- package/loaders/MD2Loader.js +91 -248
- package/loaders/MDDLoader.cjs.js +1 -0
- package/loaders/MDDLoader.js +45 -25
- package/loaders/MMDLoader.cjs.js +1 -0
- package/loaders/MMDLoader.js +795 -359
- package/loaders/MTLLoader.cjs.js +1 -0
- package/loaders/MTLLoader.js +201 -91
- package/loaders/NRRDLoader.cjs.js +1 -0
- package/loaders/NRRDLoader.js +263 -182
- package/loaders/NodeMaterialLoader.cjs.js +1 -0
- package/loaders/NodeMaterialLoader.js +14 -121
- package/loaders/OBJLoader.cjs.js +1 -0
- package/loaders/OBJLoader.js +283 -161
- package/loaders/PCDLoader.cjs.js +1 -0
- package/loaders/PCDLoader.js +164 -145
- package/loaders/PDBLoader.cjs.js +1 -0
- package/loaders/PDBLoader.js +63 -45
- package/loaders/PLYLoader.cjs.js +1 -0
- package/loaders/PLYLoader.js +203 -106
- package/loaders/PRWMLoader.cjs.js +1 -0
- package/loaders/PRWMLoader.js +110 -73
- package/loaders/PVRLoader.cjs.js +1 -0
- package/loaders/PVRLoader.js +93 -32
- package/loaders/RGBELoader.cjs.js +1 -0
- package/loaders/RGBELoader.js +233 -96
- package/loaders/RGBMLoader.cjs.js +1 -0
- package/loaders/RGBMLoader.js +514 -344
- package/loaders/STLLoader.cjs.js +1 -0
- package/loaders/STLLoader.js +165 -59
- package/loaders/SVGLoader.cjs.js +1 -0
- package/loaders/SVGLoader.js +851 -481
- package/loaders/TDSLoader.cjs.js +1 -0
- package/loaders/TDSLoader.js +527 -137
- package/loaders/TGALoader.cjs.js +1 -0
- package/loaders/TGALoader.js +205 -94
- package/loaders/TTFLoader.cjs.js +1 -0
- package/loaders/TTFLoader.js +79 -58
- package/loaders/TiltLoader.cjs.js +1 -0
- package/loaders/TiltLoader.js +167 -129
- package/loaders/VOXLoader.cjs.js +1 -0
- package/loaders/VOXLoader.js +84 -320
- package/loaders/VRMLLoader.cjs.js +1 -0
- package/loaders/VRMLLoader.js +1268 -786
- package/loaders/VRMLoader.cjs.js +1 -0
- package/loaders/VRMLoader.js +31 -23
- package/loaders/VTKLoader.cjs.js +1 -0
- package/loaders/VTKLoader.js +407 -219
- package/loaders/XLoader.cjs.js +1 -0
- package/loaders/XLoader.js +1259 -1083
- package/loaders/XYZLoader.cjs.js +1 -0
- package/loaders/XYZLoader.js +34 -28
- package/loaders/lwo/IFFParser.cjs.js +1 -0
- package/loaders/lwo/IFFParser.js +492 -238
- package/loaders/lwo/LWO2Parser.cjs.js +1 -0
- package/loaders/lwo/LWO2Parser.js +279 -176
- package/loaders/lwo/LWO3Parser.cjs.js +1 -0
- package/loaders/lwo/LWO3Parser.js +247 -160
- package/math/Capsule.cjs.js +1 -0
- package/math/Capsule.js +43 -56
- package/math/ColorConverter.cjs.js +1 -0
- package/math/ColorConverter.js +32 -18
- package/math/ConvexHull.cjs.js +1 -0
- package/math/ConvexHull.js +357 -97
- package/math/ImprovedNoise.cjs.js +1 -0
- package/math/ImprovedNoise.js +32 -282
- package/math/Lut.cjs.js +1 -0
- package/math/Lut.js +35 -51
- package/math/MeshSurfaceSampler.cjs.js +1 -0
- package/math/MeshSurfaceSampler.js +68 -25
- package/math/OBB.cjs.js +1 -0
- package/math/OBB.js +152 -91
- package/math/Octree.cjs.js +1 -0
- package/math/Octree.js +139 -76
- package/math/SimplexNoise.cjs.js +1 -0
- package/math/SimplexNoise.js +238 -217
- package/misc/ConvexObjectBreaker.cjs.js +1 -0
- package/misc/ConvexObjectBreaker.js +185 -79
- package/misc/GPUComputationRenderer.cjs.js +1 -0
- package/misc/GPUComputationRenderer.js +194 -69
- package/misc/Gyroscope.cjs.js +1 -0
- package/misc/Gyroscope.js +22 -16
- package/misc/MD2Character.cjs.js +1 -0
- package/misc/MD2Character.js +74 -52
- package/misc/MD2CharacterComplex.cjs.js +1 -0
- package/misc/MD2CharacterComplex.js +163 -112
- package/misc/MorphAnimMesh.cjs.js +1 -0
- package/misc/MorphAnimMesh.js +28 -20
- package/misc/MorphBlendMesh.cjs.js +1 -0
- package/misc/MorphBlendMesh.js +69 -45
- package/misc/ProgressiveLightmap.cjs.js +1 -0
- package/misc/ProgressiveLightmap.js +187 -70
- package/misc/RollerCoaster.cjs.js +1 -0
- package/misc/RollerCoaster.js +135 -106
- package/misc/TubePainter.cjs.js +1 -0
- package/misc/TubePainter.js +92 -74
- package/misc/Volume.cjs.js +1 -0
- package/misc/Volume.js +270 -108
- package/misc/VolumeSlice.cjs.js +1 -0
- package/misc/VolumeSlice.js +122 -34
- package/misc/WebGL.cjs.js +1 -0
- package/misc/WebGL.js +34 -37
- package/modifiers/CurveModifier.cjs.js +1 -0
- package/modifiers/CurveModifier.js +151 -46
- package/modifiers/EdgeSplitModifier.cjs.js +1 -0
- package/modifiers/EdgeSplitModifier.js +90 -46
- package/modifiers/SimplifyModifier.cjs.js +1 -0
- package/modifiers/SimplifyModifier.js +202 -77
- package/modifiers/TessellateModifier.cjs.js +1 -0
- package/modifiers/TessellateModifier.js +90 -65
- package/nodes/Nodes.cjs.js +1 -0
- package/nodes/Nodes.js +140 -274
- package/nodes/ShaderNode.cjs.js +1 -0
- package/nodes/ShaderNode.js +196 -296
- package/nodes/accessors/BufferNode.cjs.js +1 -0
- package/nodes/accessors/BufferNode.js +8 -4
- package/nodes/accessors/CameraNode.cjs.js +1 -0
- package/nodes/accessors/CameraNode.js +25 -20
- package/nodes/accessors/CubeTextureNode.cjs.js +1 -0
- package/nodes/accessors/CubeTextureNode.js +26 -14
- package/nodes/accessors/MaterialNode.cjs.js +1 -0
- package/nodes/accessors/MaterialNode.js +53 -43
- package/nodes/accessors/MaterialReferenceNode.cjs.js +1 -0
- package/nodes/accessors/MaterialReferenceNode.js +6 -3
- package/nodes/accessors/ModelNode.cjs.js +1 -0
- package/nodes/accessors/ModelNode.js +5 -3
- package/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
- package/nodes/accessors/ModelViewProjectionNode.js +13 -14
- package/nodes/accessors/NormalNode.cjs.js +1 -0
- package/nodes/accessors/NormalNode.js +39 -40
- package/nodes/accessors/Object3DNode.cjs.js +1 -0
- package/nodes/accessors/Object3DNode.js +50 -40
- package/nodes/accessors/PointUVNode.cjs.js +1 -0
- package/nodes/accessors/PointUVNode.js +9 -5
- package/nodes/accessors/PositionNode.cjs.js +1 -0
- package/nodes/accessors/PositionNode.js +41 -42
- package/nodes/accessors/ReferenceNode.cjs.js +1 -0
- package/nodes/accessors/ReferenceNode.js +17 -10
- package/nodes/accessors/ReflectNode.cjs.js +1 -0
- package/nodes/accessors/ReflectNode.js +26 -23
- package/nodes/accessors/SkinningNode.cjs.js +1 -0
- package/nodes/accessors/SkinningNode.js +48 -46
- package/nodes/accessors/TextureNode.cjs.js +1 -0
- package/nodes/accessors/TextureNode.js +29 -14
- package/nodes/accessors/UVNode.cjs.js +1 -0
- package/nodes/accessors/UVNode.js +11 -5
- package/nodes/core/ArrayUniformNode.cjs.js +1 -0
- package/nodes/core/ArrayUniformNode.js +7 -3
- package/nodes/core/AttributeNode.cjs.js +1 -0
- package/nodes/core/AttributeNode.js +12 -5
- package/nodes/core/BypassNode.cjs.js +1 -0
- package/nodes/core/BypassNode.js +12 -5
- package/nodes/core/CodeNode.cjs.js +1 -0
- package/nodes/core/CodeNode.js +12 -4
- package/nodes/core/ConstNode.cjs.js +1 -0
- package/nodes/core/ConstNode.js +7 -3
- package/nodes/core/ContextNode.cjs.js +1 -0
- package/nodes/core/ContextNode.js +8 -3
- package/nodes/core/ExpressionNode.cjs.js +1 -0
- package/nodes/core/ExpressionNode.js +9 -5
- package/nodes/core/FunctionCallNode.cjs.js +1 -0
- package/nodes/core/FunctionCallNode.js +15 -6
- package/nodes/core/FunctionNode.cjs.js +1 -0
- package/nodes/core/FunctionNode.js +25 -10
- package/nodes/core/InputNode.cjs.js +1 -0
- package/nodes/core/InputNode.js +23 -12
- package/nodes/core/Node.cjs.js +1 -0
- package/nodes/core/Node.js +75 -35
- package/nodes/core/NodeAttribute.cjs.js +1 -0
- package/nodes/core/NodeAttribute.js +4 -2
- package/nodes/core/NodeBuilder.cjs.js +1 -0
- package/nodes/core/NodeBuilder.js +224 -110
- package/nodes/core/NodeCode.cjs.js +1 -0
- package/nodes/core/NodeCode.js +7 -4
- package/nodes/core/NodeFrame.cjs.js +1 -0
- package/nodes/core/NodeFrame.js +12 -9
- package/nodes/core/NodeFunction.cjs.js +1 -0
- package/nodes/core/NodeFunction.js +17 -0
- package/nodes/core/NodeFunctionInput.cjs.js +1 -0
- package/nodes/core/NodeFunctionInput.js +5 -3
- package/nodes/core/NodeKeywords.cjs.js +1 -0
- package/nodes/core/NodeKeywords.js +16 -5
- package/nodes/core/NodeParser.cjs.js +1 -0
- package/nodes/core/NodeParser.js +8 -0
- package/nodes/core/NodeUniform.cjs.js +1 -0
- package/nodes/core/NodeUniform.js +7 -3
- package/nodes/core/NodeUtils.cjs.js +1 -0
- package/nodes/core/NodeUtils.js +43 -39
- package/nodes/core/NodeVar.cjs.js +1 -0
- package/nodes/core/NodeVar.js +4 -2
- package/nodes/core/NodeVary.cjs.js +1 -0
- package/nodes/core/NodeVary.js +4 -2
- package/nodes/core/PropertyNode.cjs.js +1 -0
- package/nodes/core/PropertyNode.js +10 -4
- package/nodes/core/TempNode.cjs.js +1 -0
- package/nodes/core/TempNode.js +11 -5
- package/nodes/core/UniformNode.cjs.js +1 -0
- package/nodes/core/UniformNode.js +10 -4
- package/nodes/core/VarNode.cjs.js +1 -0
- package/nodes/core/VarNode.js +11 -3
- package/nodes/core/VaryNode.cjs.js +1 -0
- package/nodes/core/VaryNode.js +15 -6
- package/nodes/core/constants.cjs.js +1 -0
- package/nodes/core/constants.js +7 -20
- package/nodes/display/ColorSpaceNode.cjs.js +1 -0
- package/nodes/display/ColorSpaceNode.js +38 -34
- package/nodes/display/NormalMapNode.cjs.js +1 -0
- package/nodes/display/NormalMapNode.js +53 -35
- package/nodes/fog/FogNode.cjs.js +1 -0
- package/nodes/fog/FogNode.js +9 -5
- package/nodes/fog/FogRangeNode.cjs.js +1 -0
- package/nodes/fog/FogRangeNode.js +9 -5
- package/nodes/functions/BSDFs.cjs.js +1 -0
- package/nodes/functions/BSDFs.js +118 -61
- package/nodes/functions/PhysicalMaterialFunctions.cjs.js +1 -0
- package/nodes/functions/PhysicalMaterialFunctions.js +57 -0
- package/nodes/lights/LightContextNode.cjs.js +1 -0
- package/nodes/lights/LightContextNode.js +23 -14
- package/nodes/lights/LightNode.cjs.js +1 -0
- package/nodes/lights/LightNode.js +31 -27
- package/nodes/lights/LightsNode.cjs.js +1 -0
- package/nodes/lights/LightsNode.js +28 -9
- package/nodes/loaders/NodeLoader.cjs.js +1 -0
- package/nodes/loaders/NodeLoader.js +42 -27
- package/nodes/loaders/NodeMaterialLoader.cjs.js +1 -0
- package/nodes/loaders/NodeMaterialLoader.js +10 -4
- package/nodes/loaders/NodeObjectLoader.cjs.js +1 -0
- package/nodes/loaders/NodeObjectLoader.js +19 -9
- package/nodes/materials/LineBasicNodeMaterial.cjs.js +1 -0
- package/nodes/materials/LineBasicNodeMaterial.js +10 -5
- package/nodes/materials/Materials.cjs.js +1 -0
- package/nodes/materials/Materials.js +17 -14
- package/nodes/materials/MeshBasicNodeMaterial.cjs.js +1 -0
- package/nodes/materials/MeshBasicNodeMaterial.js +10 -5
- package/nodes/materials/MeshStandardNodeMaterial.cjs.js +1 -0
- package/nodes/materials/MeshStandardNodeMaterial.js +8 -5
- package/nodes/materials/NodeMaterial.cjs.js +1 -0
- package/nodes/materials/NodeMaterial.js +36 -20
- package/nodes/materials/PointsNodeMaterial.cjs.js +1 -0
- package/nodes/materials/PointsNodeMaterial.js +10 -5
- package/nodes/math/CondNode.cjs.js +1 -0
- package/nodes/math/CondNode.js +23 -11
- package/nodes/math/MathNode.cjs.js +1 -0
- package/nodes/math/MathNode.js +142 -98
- package/nodes/math/OperatorNode.cjs.js +1 -0
- package/nodes/math/OperatorNode.js +46 -24
- package/nodes/parsers/GLSLNodeFunction.cjs.js +1 -0
- package/nodes/parsers/GLSLNodeFunction.js +101 -0
- package/nodes/parsers/GLSLNodeParser.cjs.js +1 -0
- package/nodes/parsers/GLSLNodeParser.js +13 -0
- package/nodes/parsers/WGSLNodeFunction.cjs.js +1 -0
- package/nodes/parsers/WGSLNodeFunction.js +71 -0
- package/nodes/parsers/WGSLNodeParser.cjs.js +1 -0
- package/nodes/parsers/WGSLNodeParser.js +13 -0
- package/nodes/procedural/CheckerNode.cjs.js +1 -0
- package/nodes/procedural/CheckerNode.js +19 -13
- package/nodes/utils/ArrayElementNode.cjs.js +1 -0
- package/nodes/utils/ArrayElementNode.js +8 -4
- package/nodes/utils/ConvertNode.cjs.js +1 -0
- package/nodes/utils/ConvertNode.js +8 -3
- package/nodes/utils/JoinNode.cjs.js +1 -0
- package/nodes/utils/JoinNode.js +11 -7
- package/nodes/utils/MatcapUVNode.cjs.js +1 -0
- package/nodes/utils/MatcapUVNode.js +11 -8
- package/nodes/utils/OscNode.cjs.js +1 -0
- package/nodes/utils/OscNode.js +33 -27
- package/nodes/utils/SplitNode.cjs.js +1 -0
- package/nodes/utils/SplitNode.js +20 -6
- package/nodes/utils/SpriteSheetUVNode.cjs.js +1 -0
- package/nodes/utils/SpriteSheetUVNode.js +23 -23
- package/nodes/utils/TimerNode.cjs.js +1 -0
- package/nodes/utils/TimerNode.js +24 -20
- package/objects/GroundProjectedEnv.cjs.js +1 -0
- package/objects/GroundProjectedEnv.js +37 -22
- package/objects/Lensflare.cjs.js +1 -0
- package/objects/Lensflare.js +156 -86
- package/objects/LightningStorm.cjs.js +1 -0
- package/objects/LightningStorm.js +102 -38
- package/objects/MarchingCubes.cjs.js +1 -0
- package/objects/MarchingCubes.js +303 -150
- package/objects/Reflector.cjs.js +1 -0
- package/objects/Reflector.js +72 -50
- package/objects/ReflectorForSSRPass.cjs.js +1 -0
- package/objects/ReflectorForSSRPass.js +131 -80
- package/objects/ReflectorRTT.cjs.js +1 -0
- package/objects/ReflectorRTT.js +7 -6
- package/objects/Refractor.cjs.js +1 -0
- package/objects/Refractor.js +106 -64
- package/objects/ShadowMesh.cjs.js +1 -0
- package/objects/ShadowMesh.js +17 -8
- package/objects/Sky.cjs.js +1 -0
- package/objects/Sky.js +80 -119
- package/objects/Water.cjs.js +1 -0
- package/objects/Water.js +127 -83
- package/objects/Water2.cjs.js +1 -0
- package/objects/Water2.js +108 -72
- package/offscreen/jank.cjs.js +1 -0
- package/offscreen/jank.js +14 -10
- package/offscreen/offscreen.cjs.js +1 -0
- package/offscreen/offscreen.js +5 -4
- package/offscreen/scene.cjs.js +1 -0
- package/offscreen/scene.js +48 -45
- package/package.json +3 -3
- package/physics/AmmoPhysics.cjs.js +1 -0
- package/physics/AmmoPhysics.js +71 -30
- package/postprocessing/AdaptiveToneMappingPass.cjs.js +1 -0
- package/postprocessing/AdaptiveToneMappingPass.js +123 -97
- package/postprocessing/AfterimagePass.cjs.js +1 -0
- package/postprocessing/AfterimagePass.js +49 -28
- package/postprocessing/BloomPass.cjs.js +1 -0
- package/postprocessing/BloomPass.js +69 -43
- package/postprocessing/BokehPass.cjs.js +1 -0
- package/postprocessing/BokehPass.js +69 -39
- package/postprocessing/ClearPass.cjs.js +1 -0
- package/postprocessing/ClearPass.js +25 -10
- package/postprocessing/CubeTexturePass.cjs.js +1 -0
- package/postprocessing/CubeTexturePass.js +27 -28
- package/postprocessing/DotScreenPass.cjs.js +1 -0
- package/postprocessing/DotScreenPass.js +32 -24
- package/postprocessing/EffectComposer.cjs.js +1 -0
- package/postprocessing/EffectComposer.js +86 -39
- package/postprocessing/FilmPass.cjs.js +1 -0
- package/postprocessing/FilmPass.js +30 -25
- package/postprocessing/GlitchPass.cjs.js +1 -0
- package/postprocessing/GlitchPass.js +61 -38
- package/postprocessing/HalftonePass.cjs.js +1 -0
- package/postprocessing/HalftonePass.js +39 -19
- package/postprocessing/LUTPass.cjs.js +1 -0
- package/postprocessing/LUTPass.js +38 -13
- package/postprocessing/MaskPass.cjs.js +1 -0
- package/postprocessing/MaskPass.js +38 -19
- package/postprocessing/OutlinePass.cjs.js +1 -0
- package/postprocessing/OutlinePass.js +277 -135
- package/postprocessing/Pass.cjs.js +1 -0
- package/postprocessing/Pass.js +44 -20
- package/postprocessing/RenderPass.cjs.js +1 -0
- package/postprocessing/RenderPass.js +36 -13
- package/postprocessing/RenderPixelatedPass.cjs.js +1 -0
- package/postprocessing/RenderPixelatedPass.js +58 -44
- package/postprocessing/SAOPass.cjs.js +1 -0
- package/postprocessing/SAOPass.js +189 -154
- package/postprocessing/SMAAPass.cjs.js +1 -0
- package/postprocessing/SMAAPass.js +84 -64
- package/postprocessing/SSAARenderPass.cjs.js +1 -0
- package/postprocessing/SSAARenderPass.js +69 -121
- package/postprocessing/SSAOPass.cjs.js +1 -0
- package/postprocessing/SSAOPass.js +172 -123
- package/postprocessing/SSRPass.cjs.js +1 -0
- package/postprocessing/SSRPass.js +280 -211
- package/postprocessing/SavePass.cjs.js +1 -0
- package/postprocessing/SavePass.js +25 -20
- package/postprocessing/ShaderPass.cjs.js +1 -0
- package/postprocessing/ShaderPass.js +30 -14
- package/postprocessing/TAARenderPass.cjs.js +1 -0
- package/postprocessing/TAARenderPass.js +61 -42
- package/postprocessing/TexturePass.cjs.js +1 -0
- package/postprocessing/TexturePass.js +22 -21
- package/postprocessing/UnrealBloomPass.cjs.js +1 -0
- package/postprocessing/UnrealBloomPass.js +213 -105
- package/renderers/CSS2DRenderer.cjs.js +1 -0
- package/renderers/CSS2DRenderer.js +56 -44
- package/renderers/CSS3DRenderer.cjs.js +1 -0
- package/renderers/CSS3DRenderer.js +86 -53
- package/renderers/Projector.cjs.js +1 -0
- package/renderers/Projector.js +274 -107
- package/renderers/SVGRenderer.cjs.js +1 -0
- package/renderers/SVGRenderer.js +182 -72
- package/renderers/nodes/accessors/CameraNode.cjs.js +1 -0
- package/renderers/nodes/accessors/CameraNode.js +40 -29
- package/renderers/nodes/accessors/ModelNode.cjs.js +1 -0
- package/renderers/nodes/accessors/ModelNode.js +37 -28
- package/renderers/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
- package/renderers/nodes/accessors/ModelViewProjectionNode.js +23 -10
- package/renderers/nodes/accessors/NormalNode.cjs.js +1 -0
- package/renderers/nodes/accessors/NormalNode.js +45 -35
- package/renderers/nodes/accessors/PositionNode.cjs.js +1 -0
- package/renderers/nodes/accessors/PositionNode.js +19 -18
- package/renderers/nodes/accessors/UVNode.cjs.js +1 -0
- package/renderers/nodes/accessors/UVNode.js +10 -5
- package/renderers/nodes/core/AttributeNode.cjs.js +1 -0
- package/renderers/nodes/core/AttributeNode.js +14 -5
- package/renderers/nodes/core/InputNode.cjs.js +1 -0
- package/renderers/nodes/core/InputNode.js +14 -4
- package/renderers/nodes/core/Node.cjs.js +1 -0
- package/renderers/nodes/core/Node.js +17 -7
- package/renderers/nodes/core/NodeAttribute.cjs.js +1 -0
- package/renderers/nodes/core/NodeAttribute.js +6 -3
- package/renderers/nodes/core/NodeBuilder.cjs.js +1 -0
- package/renderers/nodes/core/NodeBuilder.js +154 -87
- package/renderers/nodes/core/NodeFrame.cjs.js +1 -0
- package/renderers/nodes/core/NodeFrame.js +12 -9
- package/renderers/nodes/core/NodeSlot.cjs.js +1 -0
- package/renderers/nodes/core/NodeSlot.js +3 -2
- package/renderers/nodes/core/NodeUniform.cjs.js +1 -0
- package/renderers/nodes/core/NodeUniform.js +9 -4
- package/renderers/nodes/core/NodeVary.cjs.js +1 -0
- package/renderers/nodes/core/NodeVary.js +7 -4
- package/renderers/nodes/core/VaryNode.cjs.js +1 -0
- package/renderers/nodes/core/VaryNode.js +12 -6
- package/renderers/nodes/core/constants.cjs.js +1 -0
- package/renderers/nodes/core/constants.js +13 -16
- package/renderers/nodes/inputs/ColorNode.cjs.js +1 -0
- package/renderers/nodes/inputs/ColorNode.js +11 -5
- package/renderers/nodes/inputs/FloatNode.cjs.js +1 -0
- package/renderers/nodes/inputs/FloatNode.js +11 -5
- package/renderers/nodes/inputs/Matrix3Node.cjs.js +1 -0
- package/renderers/nodes/inputs/Matrix3Node.js +13 -7
- package/renderers/nodes/inputs/Matrix4Node.cjs.js +1 -0
- package/renderers/nodes/inputs/Matrix4Node.js +13 -7
- package/renderers/nodes/inputs/TextureNode.cjs.js +1 -0
- package/renderers/nodes/inputs/TextureNode.js +15 -7
- package/renderers/nodes/inputs/Vector2Node.cjs.js +1 -0
- package/renderers/nodes/inputs/Vector2Node.js +11 -5
- package/renderers/nodes/inputs/Vector3Node.cjs.js +1 -0
- package/renderers/nodes/inputs/Vector3Node.js +13 -7
- package/renderers/nodes/inputs/Vector4Node.cjs.js +1 -0
- package/renderers/nodes/inputs/Vector4Node.js +13 -7
- package/renderers/nodes/math/MathNode.cjs.js +1 -0
- package/renderers/nodes/math/MathNode.js +30 -20
- package/renderers/nodes/math/OperatorNode.cjs.js +1 -0
- package/renderers/nodes/math/OperatorNode.js +20 -4
- package/renderers/nodes/utils/SwitchNode.cjs.js +1 -0
- package/renderers/nodes/utils/SwitchNode.js +9 -4
- package/renderers/nodes/utils/TimerNode.cjs.js +1 -0
- package/renderers/nodes/utils/TimerNode.js +10 -5
- package/renderers/webgpu/WebGPU.cjs.js +1 -0
- package/renderers/webgpu/WebGPU.js +16 -14
- package/renderers/webgpu/WebGPUAttributes.cjs.js +1 -0
- package/renderers/webgpu/WebGPUAttributes.js +23 -16
- package/renderers/webgpu/WebGPUBackground.cjs.js +1 -0
- package/renderers/webgpu/WebGPUBackground.js +30 -13
- package/renderers/webgpu/WebGPUBinding.cjs.js +1 -0
- package/renderers/webgpu/WebGPUBinding.js +7 -4
- package/renderers/webgpu/WebGPUBindings.cjs.js +1 -0
- package/renderers/webgpu/WebGPUBindings.js +57 -21
- package/renderers/webgpu/WebGPUComputePipelines.cjs.js +1 -0
- package/renderers/webgpu/WebGPUComputePipelines.js +25 -14
- package/renderers/webgpu/WebGPUGeometries.cjs.js +1 -0
- package/renderers/webgpu/WebGPUGeometries.js +15 -5
- package/renderers/webgpu/WebGPUInfo.cjs.js +1 -0
- package/renderers/webgpu/WebGPUInfo.js +8 -3
- package/renderers/webgpu/WebGPUObjects.cjs.js +1 -0
- package/renderers/webgpu/WebGPUObjects.js +10 -5
- package/renderers/webgpu/WebGPUProperties.cjs.js +1 -0
- package/renderers/webgpu/WebGPUProperties.js +11 -5
- package/renderers/webgpu/WebGPURenderLists.cjs.js +1 -0
- package/renderers/webgpu/WebGPURenderLists.js +36 -20
- package/renderers/webgpu/WebGPURenderPipelines.cjs.js +1 -0
- package/renderers/webgpu/WebGPURenderPipelines.js +387 -260
- package/renderers/webgpu/WebGPURenderer.cjs.js +1 -0
- package/renderers/webgpu/WebGPURenderer.js +262 -124
- package/renderers/webgpu/WebGPUSampledTexture.cjs.js +1 -0
- package/renderers/webgpu/WebGPUSampledTexture.js +31 -18
- package/renderers/webgpu/WebGPUSampler.cjs.js +1 -0
- package/renderers/webgpu/WebGPUSampler.js +12 -7
- package/renderers/webgpu/WebGPUStorageBuffer.cjs.js +1 -0
- package/renderers/webgpu/WebGPUStorageBuffer.js +12 -7
- package/renderers/webgpu/WebGPUTextureRenderer.cjs.js +1 -0
- package/renderers/webgpu/WebGPUTextureRenderer.js +11 -5
- package/renderers/webgpu/WebGPUTextureUtils.cjs.js +1 -0
- package/renderers/webgpu/WebGPUTextureUtils.js +40 -29
- package/renderers/webgpu/WebGPUTextures.cjs.js +1 -0
- package/renderers/webgpu/WebGPUTextures.js +333 -186
- package/renderers/webgpu/WebGPUUniform.cjs.js +1 -0
- package/renderers/webgpu/WebGPUUniform.js +51 -25
- package/renderers/webgpu/WebGPUUniformsGroup.cjs.js +1 -0
- package/renderers/webgpu/WebGPUUniformsGroup.js +72 -32
- package/renderers/webgpu/constants.cjs.js +1 -0
- package/renderers/webgpu/constants.js +181 -190
- package/renderers/webgpu/nodes/ShaderLib.cjs.js +1 -0
- package/renderers/webgpu/nodes/ShaderLib.js +2 -2
- package/renderers/webgpu/nodes/WebGPUNodeBuilder.cjs.js +1 -0
- package/renderers/webgpu/nodes/WebGPUNodeBuilder.js +124 -53
- package/renderers/webgpu/nodes/WebGPUNodeUniform.cjs.js +1 -0
- package/renderers/webgpu/nodes/WebGPUNodeUniform.js +31 -17
- package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.cjs.js +1 -0
- package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +9 -8
- package/renderers/webgpu/nodes/WebGPUNodes.cjs.js +1 -0
- package/renderers/webgpu/nodes/WebGPUNodes.js +45 -7
- package/shaders/ACESFilmicToneMappingShader.cjs.js +1 -0
- package/shaders/ACESFilmicToneMappingShader.js +24 -44
- package/shaders/AfterimageShader.cjs.js +1 -0
- package/shaders/AfterimageShader.js +18 -28
- package/shaders/BasicShader.cjs.js +1 -0
- package/shaders/BasicShader.js +7 -9
- package/shaders/BleachBypassShader.cjs.js +1 -0
- package/shaders/BleachBypassShader.js +15 -31
- package/shaders/BlendShader.cjs.js +1 -0
- package/shaders/BlendShader.js +19 -26
- package/shaders/BokehShader.cjs.js +1 -0
- package/shaders/BokehShader.js +36 -98
- package/shaders/BokehShader2.cjs.js +1 -0
- package/shaders/BokehShader2.js +90 -261
- package/shaders/BrightnessContrastShader.cjs.js +1 -0
- package/shaders/BrightnessContrastShader.js +19 -28
- package/shaders/ColorCorrectionShader.cjs.js +1 -0
- package/shaders/ColorCorrectionShader.js +22 -26
- package/shaders/ColorifyShader.cjs.js +1 -0
- package/shaders/ColorifyShader.js +16 -24
- package/shaders/ConvolutionShader.cjs.js +1 -0
- package/shaders/ConvolutionShader.js +36 -40
- package/shaders/CopyShader.cjs.js +1 -0
- package/shaders/CopyShader.js +13 -21
- package/shaders/DOFMipMapShader.cjs.js +1 -0
- package/shaders/DOFMipMapShader.js +21 -28
- package/shaders/DepthLimitedBlurShader.cjs.js +1 -0
- package/shaders/DepthLimitedBlurShader.js +40 -85
- package/shaders/DigitalGlitch.cjs.js +1 -0
- package/shaders/DigitalGlitch.js +46 -74
- package/shaders/DotScreenShader.cjs.js +1 -0
- package/shaders/DotScreenShader.js +27 -35
- package/shaders/FXAAShader.cjs.js +1 -0
- package/shaders/FXAAShader.js +19 -1094
- package/shaders/FilmShader.cjs.js +1 -0
- package/shaders/FilmShader.js +52 -38
- package/shaders/FocusShader.cjs.js +1 -0
- package/shaders/FocusShader.js +24 -51
- package/shaders/FreiChenShader.cjs.js +1 -0
- package/shaders/FreiChenShader.js +24 -57
- package/shaders/FresnelShader.cjs.js +1 -0
- package/shaders/FresnelShader.js +22 -43
- package/shaders/GammaCorrectionShader.cjs.js +1 -0
- package/shaders/GammaCorrectionShader.js +11 -19
- package/shaders/GodRaysShader.cjs.js +1 -0
- package/shaders/GodRaysShader.js +94 -103
- package/shaders/HalftoneShader.cjs.js +1 -0
- package/shaders/HalftoneShader.js +65 -208
- package/shaders/HorizontalBlurShader.cjs.js +1 -0
- package/shaders/HorizontalBlurShader.js +23 -7
- package/shaders/HorizontalTiltShiftShader.cjs.js +1 -0
- package/shaders/HorizontalTiltShiftShader.js +21 -33
- package/shaders/HueSaturationShader.cjs.js +1 -0
- package/shaders/HueSaturationShader.js +21 -37
- package/shaders/KaleidoShader.cjs.js +1 -0
- package/shaders/KaleidoShader.js +22 -30
- package/shaders/LuminosityHighPassShader.cjs.js +1 -0
- package/shaders/LuminosityHighPassShader.js +27 -33
- package/shaders/LuminosityShader.cjs.js +1 -0
- package/shaders/LuminosityShader.js +11 -21
- package/shaders/MirrorShader.cjs.js +1 -0
- package/shaders/MirrorShader.js +16 -31
- package/shaders/NormalMapShader.cjs.js +1 -0
- package/shaders/NormalMapShader.js +23 -27
- package/shaders/ParallaxShader.cjs.js +1 -0
- package/shaders/ParallaxShader.js +48 -107
- package/shaders/PixelShader.cjs.js +1 -0
- package/shaders/PixelShader.js +16 -24
- package/shaders/RGBShiftShader.cjs.js +1 -0
- package/shaders/RGBShiftShader.js +22 -26
- package/shaders/SAOShader.cjs.js +1 -0
- package/shaders/SAOShader.js +48 -132
- package/shaders/SMAAShader.cjs.js +1 -0
- package/shaders/SMAAShader.js +135 -256
- package/shaders/SSAOShader.cjs.js +1 -0
- package/shaders/SSAOShader.js +81 -153
- package/shaders/SSRShader.cjs.js +1 -0
- package/shaders/SSRShader.js +87 -32
- package/shaders/SepiaShader.cjs.js +1 -0
- package/shaders/SepiaShader.js +15 -25
- package/shaders/SobelOperatorShader.cjs.js +1 -0
- package/shaders/SobelOperatorShader.js +29 -40
- package/shaders/SubsurfaceScatteringShader.cjs.js +1 -0
- package/shaders/SubsurfaceScatteringShader.js +39 -53
- package/shaders/TechnicolorShader.cjs.js +1 -0
- package/shaders/TechnicolorShader.js +13 -20
- package/shaders/ToneMapShader.cjs.js +1 -0
- package/shaders/ToneMapShader.js +28 -44
- package/shaders/ToonShader.cjs.js +1 -0
- package/shaders/ToonShader.js +96 -172
- package/shaders/TriangleBlurShader.cjs.js +1 -0
- package/shaders/TriangleBlurShader.js +23 -32
- package/shaders/UnpackDepthRGBAShader.cjs.js +1 -0
- package/shaders/UnpackDepthRGBAShader.js +14 -22
- package/shaders/VerticalBlurShader.cjs.js +1 -0
- package/shaders/VerticalBlurShader.js +23 -7
- package/shaders/VerticalTiltShiftShader.cjs.js +1 -0
- package/shaders/VerticalTiltShiftShader.js +21 -33
- package/shaders/VignetteShader.cjs.js +1 -0
- package/shaders/VignetteShader.js +28 -24
- package/shaders/VolumeShader.cjs.js +1 -0
- package/shaders/VolumeShader.js +77 -174
- package/shaders/WaterRefractionShader.cjs.js +1 -0
- package/shaders/WaterRefractionShader.js +6 -38
- package/shaders/types.cjs.js +1 -0
- package/shaders/types.js +1 -1
- package/textures/FlakesTexture.cjs.js +1 -0
- package/textures/FlakesTexture.js +10 -8
- package/types/helpers.cjs.js +1 -0
- package/types/helpers.js +2 -3
- package/types/shared.cjs.js +1 -0
- package/types/shared.js +1 -0
- package/types/utils.cjs.js +1 -0
- package/types/utils.js +1 -0
- package/utils/BufferGeometryUtils.cjs.js +1 -0
- package/utils/BufferGeometryUtils.js +325 -251
- package/utils/GeometryCompressionUtils.cjs.js +1 -0
- package/utils/GeometryCompressionUtils.js +239 -241
- package/utils/GeometryUtils.cjs.js +1 -0
- package/utils/GeometryUtils.js +94 -41
- package/utils/LDrawUtils.cjs.js +1 -0
- package/utils/LDrawUtils.d.ts +5 -0
- package/utils/LDrawUtils.js +144 -0
- package/utils/RoughnessMipmapper.cjs.js +1 -0
- package/utils/RoughnessMipmapper.js +82 -38
- package/utils/SceneUtils.cjs.js +1 -0
- package/utils/SceneUtils.js +20 -15
- package/utils/ShadowMapViewer.cjs.js +1 -0
- package/utils/ShadowMapViewer.js +95 -49
- package/utils/SkeletonUtils.cjs.js +1 -0
- package/utils/SkeletonUtils.js +165 -74
- package/utils/UVsDebug.cjs.js +1 -0
- package/utils/UVsDebug.js +62 -32
- package/utils/WorkerPool.cjs.js +1 -0
- package/utils/WorkerPool.js +33 -13
- package/webxr/ARButton.cjs.js +1 -0
- package/webxr/ARButton.js +98 -72
- package/webxr/OculusHandModel.cjs.js +1 -0
- package/webxr/OculusHandModel.js +37 -18
- package/webxr/OculusHandPointerModel.cjs.js +1 -0
- package/webxr/OculusHandPointerModel.js +80 -58
- package/webxr/Text2D.cjs.js +1 -0
- package/webxr/Text2D.js +19 -37
- package/webxr/VRButton.cjs.js +1 -0
- package/webxr/VRButton.js +90 -59
- package/webxr/XRControllerModelFactory.cjs.js +1 -0
- package/webxr/XRControllerModelFactory.js +116 -58
- package/webxr/XREstimatedLight.cjs.js +1 -0
- package/webxr/XREstimatedLight.js +66 -39
- package/webxr/XRHandMeshModel.cjs.js +1 -0
- package/webxr/XRHandMeshModel.js +29 -40
- package/webxr/XRHandModelFactory.cjs.js +1 -0
- package/webxr/XRHandModelFactory.js +31 -28
- package/webxr/XRHandPrimitiveModel.cjs.js +1 -0
- package/webxr/XRHandPrimitiveModel.js +27 -41
- package/animation/AnimationClipCreator.mjs +0 -57
- package/animation/CCDIKSolver.mjs +0 -223
- package/animation/MMDAnimationHelper.mjs +0 -514
- package/animation/MMDPhysics.mjs +0 -769
- package/cameras/CinematicCamera.mjs +0 -129
- package/controls/ArcballControls.mjs +0 -1737
- package/controls/DeviceOrientationControls.mjs +0 -74
- package/controls/DragControls.mjs +0 -172
- package/controls/FirstPersonControls.mjs +0 -220
- package/controls/FlyControls.mjs +0 -239
- package/controls/OrbitControls.mjs +0 -731
- package/controls/PointerLockControls.mjs +0 -88
- package/controls/TrackballControls.mjs +0 -481
- package/controls/TransformControls.mjs +0 -1068
- package/controls/experimental/CameraControls.mjs +0 -673
- package/csm/CSM.mjs +0 -244
- package/csm/CSMFrustum.mjs +0 -75
- package/csm/CSMHelper.mjs +0 -114
- package/csm/CSMShader.mjs +0 -251
- package/curves/CurveExtras.mjs +0 -224
- package/curves/NURBSCurve.mjs +0 -35
- package/curves/NURBSSurface.mjs +0 -28
- package/curves/NURBSUtils.mjs +0 -226
- package/deprecated/Geometry.mjs +0 -966
- package/effects/AnaglyphEffect.mjs +0 -120
- package/effects/AsciiEffect.mjs +0 -173
- package/effects/OutlineEffect.mjs +0 -295
- package/effects/ParallaxBarrierEffect.mjs +0 -64
- package/effects/PeppersGhostEffect.mjs +0 -85
- package/effects/StereoEffect.mjs +0 -32
- package/environments/RoomEnvironment.mjs +0 -78
- package/exporters/ColladaExporter.mjs +0 -299
- package/exporters/DRACOExporter.mjs +0 -132
- package/exporters/GLTFExporter.mjs +0 -1381
- package/exporters/MMDExporter.mjs +0 -102
- package/exporters/OBJExporter.mjs +0 -166
- package/exporters/PLYExporter.mjs +0 -278
- package/exporters/STLExporter.mjs +0 -129
- package/exporters/USDZExporter.mjs +0 -328
- package/geometries/BoxLineGeometry.mjs +0 -45
- package/geometries/ConvexGeometry.mjs +0 -29
- package/geometries/DecalGeometry.mjs +0 -184
- package/geometries/LightningStrike.mjs +0 -547
- package/geometries/ParametricGeometries.mjs +0 -129
- package/geometries/ParametricGeometry.mjs +0 -63
- package/geometries/RoundedBoxGeometry.mjs +0 -91
- package/geometries/TeapotGeometry.mjs +0 -1557
- package/geometries/TextGeometry.mjs +0 -23
- package/helpers/LightProbeHelper.mjs +0 -72
- package/helpers/PositionalAudioHelper.mjs +0 -68
- package/helpers/RectAreaLightHelper.mjs +0 -44
- package/helpers/VertexNormalsHelper.mjs +0 -54
- package/helpers/VertexTangentsHelper.mjs +0 -45
- package/index.mjs +0 -969
- package/interactive/SelectionBox.mjs +0 -137
- package/interactive/SelectionHelper.mjs +0 -54
- package/libs/MeshoptDecoder.mjs +0 -210
- package/libs/MotionControllers.mjs +0 -261
- package/lights/LightProbeGenerator.mjs +0 -145
- package/lights/RectAreaLightUniformsLib.mjs +0 -32842
- package/lines/Line2.mjs +0 -13
- package/lines/LineGeometry.mjs +0 -44
- package/lines/LineMaterial.mjs +0 -539
- package/lines/LineSegments2.mjs +0 -202
- package/lines/LineSegmentsGeometry.mjs +0 -124
- package/lines/Wireframe.mjs +0 -31
- package/lines/WireframeGeometry2.mjs +0 -13
- package/loaders/3DMLoader.mjs +0 -802
- package/loaders/3MFLoader.mjs +0 -837
- package/loaders/AMFLoader.mjs +0 -284
- package/loaders/AssimpLoader.mjs +0 -1396
- package/loaders/BVHLoader.mjs +0 -207
- package/loaders/BasisTextureLoader.mjs +0 -474
- package/loaders/ColladaLoader.mjs +0 -2403
- package/loaders/DDSLoader.mjs +0 -148
- package/loaders/DRACOLoader.mjs +0 -340
- package/loaders/EXRLoader.mjs +0 -1351
- package/loaders/FBXLoader.mjs +0 -2362
- package/loaders/FontLoader.mjs +0 -111
- package/loaders/GCodeLoader.mjs +0 -141
- package/loaders/GLTFLoader.mjs +0 -2316
- package/loaders/HDRCubeTextureLoader.mjs +0 -77
- package/loaders/KMZLoader.mjs +0 -75
- package/loaders/KTX2Loader.mjs +0 -427
- package/loaders/KTXLoader.mjs +0 -87
- package/loaders/LDrawLoader.mjs +0 -1409
- package/loaders/LUT3dlLoader.mjs +0 -100
- package/loaders/LUTCubeLoader.mjs +0 -104
- package/loaders/LWOLoader.mjs +0 -625
- package/loaders/LottieLoader.mjs +0 -47
- package/loaders/MD2Loader.mjs +0 -359
- package/loaders/MDDLoader.mjs +0 -58
- package/loaders/MMDLoader.mjs +0 -998
- package/loaders/MTLLoader.mjs +0 -280
- package/loaders/NRRDLoader.mjs +0 -401
- package/loaders/NodeMaterialLoader.mjs +0 -146
- package/loaders/OBJLoader.mjs +0 -487
- package/loaders/PCDLoader.mjs +0 -248
- package/loaders/PDBLoader.mjs +0 -246
- package/loaders/PLYLoader.mjs +0 -317
- package/loaders/PRWMLoader.mjs +0 -160
- package/loaders/PVRLoader.mjs +0 -131
- package/loaders/RGBELoader.mjs +0 -244
- package/loaders/RGBMLoader.mjs +0 -998
- package/loaders/STLLoader.mjs +0 -190
- package/loaders/SVGLoader.mjs +0 -1709
- package/loaders/TDSLoader.mjs +0 -480
- package/loaders/TGALoader.mjs +0 -285
- package/loaders/TTFLoader.mjs +0 -131
- package/loaders/TiltLoader.mjs +0 -373
- package/loaders/VOXLoader.mjs +0 -431
- package/loaders/VRMLLoader.mjs +0 -2093
- package/loaders/VRMLoader.mjs +0 -38
- package/loaders/VTKLoader.mjs +0 -646
- package/loaders/XLoader.mjs +0 -1258
- package/loaders/XYZLoader.mjs +0 -60
- package/loaders/lwo/IFFParser.mjs +0 -697
- package/loaders/lwo/LWO2Parser.mjs +0 -327
- package/loaders/lwo/LWO3Parser.mjs +0 -298
- package/math/Capsule.mjs +0 -100
- package/math/ColorConverter.mjs +0 -51
- package/math/ConvexHull.mjs +0 -574
- package/math/ImprovedNoise.mjs +0 -302
- package/math/Lut.mjs +0 -135
- package/math/MeshSurfaceSampler.mjs +0 -107
- package/math/OBB.mjs +0 -235
- package/math/Octree.mjs +0 -278
- package/math/SimplexNoise.mjs +0 -425
- package/misc/ConvexObjectBreaker.mjs +0 -292
- package/misc/GPUComputationRenderer.mjs +0 -171
- package/misc/Gyroscope.mjs +0 -35
- package/misc/MD2Character.mjs +0 -162
- package/misc/MD2CharacterComplex.mjs +0 -328
- package/misc/MorphAnimMesh.mjs +0 -40
- package/misc/MorphBlendMesh.mjs +0 -179
- package/misc/ProgressiveLightmap.mjs +0 -166
- package/misc/RollerCoaster.mjs +0 -346
- package/misc/TubePainter.mjs +0 -123
- package/misc/Volume.mjs +0 -244
- package/misc/VolumeSlice.mjs +0 -106
- package/misc/WebGL.mjs +0 -74
- package/modifiers/CurveModifier.mjs +0 -182
- package/modifiers/EdgeSplitModifier.mjs +0 -162
- package/modifiers/SimplifyModifier.mjs +0 -282
- package/modifiers/TessellateModifier.mjs +0 -206
- package/nodes/Nodes.mjs +0 -400
- package/nodes/ShaderNode.mjs +0 -408
- package/nodes/accessors/BufferNode.mjs +0 -15
- package/nodes/accessors/CameraNode.mjs +0 -44
- package/nodes/accessors/CubeTextureNode.mjs +0 -42
- package/nodes/accessors/MaterialNode.mjs +0 -71
- package/nodes/accessors/MaterialReferenceNode.mjs +0 -14
- package/nodes/accessors/ModelNode.mjs +0 -9
- package/nodes/accessors/ModelViewProjectionNode.mjs +0 -24
- package/nodes/accessors/NormalNode.mjs +0 -62
- package/nodes/accessors/Object3DNode.mjs +0 -76
- package/nodes/accessors/PointUVNode.mjs +0 -13
- package/nodes/accessors/PositionNode.mjs +0 -65
- package/nodes/accessors/ReferenceNode.mjs +0 -37
- package/nodes/accessors/ReflectNode.mjs +0 -43
- package/nodes/accessors/SkinningNode.mjs +0 -58
- package/nodes/accessors/TextureNode.mjs +0 -54
- package/nodes/accessors/UVNode.mjs +0 -23
- package/nodes/core/ArrayUniformNode.mjs +0 -14
- package/nodes/core/AttributeNode.mjs +0 -30
- package/nodes/core/BypassNode.mjs +0 -22
- package/nodes/core/CodeNode.mjs +0 -28
- package/nodes/core/ConstNode.mjs +0 -14
- package/nodes/core/ContextNode.mjs +0 -22
- package/nodes/core/ExpressionNode.mjs +0 -19
- package/nodes/core/FunctionCallNode.mjs +0 -37
- package/nodes/core/FunctionNode.mjs +0 -56
- package/nodes/core/InputNode.mjs +0 -38
- package/nodes/core/Node.mjs +0 -139
- package/nodes/core/NodeAttribute.mjs +0 -10
- package/nodes/core/NodeBuilder.mjs +0 -395
- package/nodes/core/NodeCode.mjs +0 -11
- package/nodes/core/NodeFrame.mjs +0 -35
- package/nodes/core/NodeFunctionInput.mjs +0 -13
- package/nodes/core/NodeKeywords.mjs +0 -44
- package/nodes/core/NodeUniform.mjs +0 -18
- package/nodes/core/NodeUtils.mjs +0 -57
- package/nodes/core/NodeVar.mjs +0 -10
- package/nodes/core/NodeVary.mjs +0 -10
- package/nodes/core/PropertyNode.mjs +0 -21
- package/nodes/core/TempNode.mjs +0 -25
- package/nodes/core/UniformNode.mjs +0 -23
- package/nodes/core/VarNode.mjs +0 -31
- package/nodes/core/VaryNode.mjs +0 -30
- package/nodes/core/constants.mjs +0 -24
- package/nodes/display/ColorSpaceNode.mjs +0 -63
- package/nodes/display/NormalMapNode.mjs +0 -54
- package/nodes/fog/FogNode.mjs +0 -15
- package/nodes/fog/FogRangeNode.mjs +0 -17
- package/nodes/functions/BSDFs.mjs +0 -64
- package/nodes/lights/LightContextNode.mjs +0 -35
- package/nodes/lights/LightNode.mjs +0 -58
- package/nodes/lights/LightsNode.mjs +0 -59
- package/nodes/loaders/NodeLoader.mjs +0 -66
- package/nodes/loaders/NodeMaterialLoader.mjs +0 -24
- package/nodes/loaders/NodeObjectLoader.mjs +0 -40
- package/nodes/materials/LineBasicNodeMaterial.mjs +0 -27
- package/nodes/materials/Materials.mjs +0 -28
- package/nodes/materials/MeshBasicNodeMaterial.mjs +0 -28
- package/nodes/materials/MeshStandardNodeMaterial.mjs +0 -41
- package/nodes/materials/NodeMaterial.mjs +0 -64
- package/nodes/materials/PointsNodeMaterial.mjs +0 -30
- package/nodes/math/CondNode.mjs +0 -38
- package/nodes/math/MathNode.mjs +0 -163
- package/nodes/math/OperatorNode.mjs +0 -103
- package/nodes/procedural/CheckerNode.mjs +0 -21
- package/nodes/utils/ArrayElementNode.mjs +0 -19
- package/nodes/utils/ConvertNode.mjs +0 -25
- package/nodes/utils/JoinNode.mjs +0 -26
- package/nodes/utils/MatcapUVNode.mjs +0 -16
- package/nodes/utils/OscNode.mjs +0 -50
- package/nodes/utils/SplitNode.mjs +0 -45
- package/nodes/utils/SpriteSheetUVNode.mjs +0 -40
- package/nodes/utils/TimerNode.mjs +0 -44
- package/objects/GroundProjectedEnv.mjs +0 -130
- package/objects/Lensflare.mjs +0 -262
- package/objects/LightningStorm.mjs +0 -110
- package/objects/MarchingCubes.mjs +0 -457
- package/objects/Reflector.mjs +0 -166
- package/objects/ReflectorForSSRPass.mjs +0 -247
- package/objects/ReflectorRTT.mjs +0 -10
- package/objects/Refractor.mjs +0 -178
- package/objects/ShadowMesh.mjs +0 -41
- package/objects/Sky.mjs +0 -124
- package/objects/Water.mjs +0 -235
- package/objects/Water2.mjs +0 -252
- package/offscreen/jank.mjs +0 -27
- package/offscreen/offscreen.mjs +0 -5
- package/offscreen/scene.mjs +0 -52
- package/physics/AmmoPhysics.mjs +0 -165
- package/postprocessing/AdaptiveToneMappingPass.mjs +0 -221
- package/postprocessing/AfterimagePass.mjs +0 -55
- package/postprocessing/BloomPass.mjs +0 -90
- package/postprocessing/BokehPass.mjs +0 -76
- package/postprocessing/ClearPass.mjs +0 -27
- package/postprocessing/CubeTexturePass.mjs +0 -49
- package/postprocessing/DotScreenPass.mjs +0 -40
- package/postprocessing/EffectComposer.mjs +0 -139
- package/postprocessing/FilmPass.mjs +0 -42
- package/postprocessing/GlitchPass.mjs +0 -75
- package/postprocessing/HalftonePass.mjs +0 -44
- package/postprocessing/LUTPass.mjs +0 -136
- package/postprocessing/MaskPass.mjs +0 -60
- package/postprocessing/OutlinePass.mjs +0 -438
- package/postprocessing/Pass.mjs +0 -37
- package/postprocessing/RenderPass.mjs +0 -48
- package/postprocessing/RenderPixelatedPass.mjs +0 -199
- package/postprocessing/SAOPass.mjs +0 -282
- package/postprocessing/SMAAPass.mjs +0 -112
- package/postprocessing/SSAARenderPass.mjs +0 -170
- package/postprocessing/SSAOPass.mjs +0 -265
- package/postprocessing/SSRPass.mjs +0 -432
- package/postprocessing/SavePass.mjs +0 -37
- package/postprocessing/ShaderPass.mjs +0 -39
- package/postprocessing/TAARenderPass.mjs +0 -88
- package/postprocessing/TexturePass.mjs +0 -39
- package/postprocessing/UnrealBloomPass.mjs +0 -220
- package/renderers/CSS2DRenderer.mjs +0 -112
- package/renderers/CSS3DRenderer.mjs +0 -133
- package/renderers/Projector.mjs +0 -511
- package/renderers/SVGRenderer.mjs +0 -306
- package/renderers/nodes/accessors/CameraNode.mjs +0 -63
- package/renderers/nodes/accessors/ModelNode.mjs +0 -61
- package/renderers/nodes/accessors/ModelViewProjectionNode.mjs +0 -21
- package/renderers/nodes/accessors/NormalNode.mjs +0 -61
- package/renderers/nodes/accessors/PositionNode.mjs +0 -30
- package/renderers/nodes/accessors/UVNode.mjs +0 -13
- package/renderers/nodes/core/AttributeNode.mjs +0 -35
- package/renderers/nodes/core/InputNode.mjs +0 -31
- package/renderers/nodes/core/Node.mjs +0 -34
- package/renderers/nodes/core/NodeAttribute.mjs +0 -10
- package/renderers/nodes/core/NodeBuilder.mjs +0 -243
- package/renderers/nodes/core/NodeFrame.mjs +0 -35
- package/renderers/nodes/core/NodeSlot.mjs +0 -10
- package/renderers/nodes/core/NodeUniform.mjs +0 -18
- package/renderers/nodes/core/NodeVary.mjs +0 -11
- package/renderers/nodes/core/VaryNode.mjs +0 -22
- package/renderers/nodes/core/constants.mjs +0 -22
- package/renderers/nodes/inputs/ColorNode.mjs +0 -11
- package/renderers/nodes/inputs/FloatNode.mjs +0 -11
- package/renderers/nodes/inputs/Matrix3Node.mjs +0 -12
- package/renderers/nodes/inputs/Matrix4Node.mjs +0 -12
- package/renderers/nodes/inputs/TextureNode.mjs +0 -20
- package/renderers/nodes/inputs/Vector2Node.mjs +0 -11
- package/renderers/nodes/inputs/Vector3Node.mjs +0 -12
- package/renderers/nodes/inputs/Vector4Node.mjs +0 -12
- package/renderers/nodes/math/MathNode.mjs +0 -55
- package/renderers/nodes/math/OperatorNode.mjs +0 -42
- package/renderers/nodes/utils/SwitchNode.mjs +0 -20
- package/renderers/nodes/utils/TimerNode.mjs +0 -14
- package/renderers/webgpu/WebGPU.mjs +0 -24
- package/renderers/webgpu/WebGPUAttributes.mjs +0 -69
- package/renderers/webgpu/WebGPUBackground.mjs +0 -61
- package/renderers/webgpu/WebGPUBinding.mjs +0 -14
- package/renderers/webgpu/WebGPUBindings.mjs +0 -155
- package/renderers/webgpu/WebGPUComputePipelines.mjs +0 -44
- package/renderers/webgpu/WebGPUGeometries.mjs +0 -41
- package/renderers/webgpu/WebGPUInfo.mjs +0 -46
- package/renderers/webgpu/WebGPUObjects.mjs +0 -25
- package/renderers/webgpu/WebGPUProperties.mjs +0 -22
- package/renderers/webgpu/WebGPURenderLists.mjs +0 -119
- package/renderers/webgpu/WebGPURenderPipelines.mjs +0 -545
- package/renderers/webgpu/WebGPURenderer.mjs +0 -574
- package/renderers/webgpu/WebGPUSampledTexture.mjs +0 -40
- package/renderers/webgpu/WebGPUSampler.mjs +0 -15
- package/renderers/webgpu/WebGPUStorageBuffer.mjs +0 -15
- package/renderers/webgpu/WebGPUTextureRenderer.mjs +0 -23
- package/renderers/webgpu/WebGPUTextureUtils.mjs +0 -98
- package/renderers/webgpu/WebGPUTextures.mjs +0 -484
- package/renderers/webgpu/WebGPUUniform.mjs +0 -81
- package/renderers/webgpu/WebGPUUniformsGroup.mjs +0 -176
- package/renderers/webgpu/constants.mjs +0 -230
- package/renderers/webgpu/nodes/ShaderLib.mjs +0 -42
- package/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +0 -165
- package/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +0 -73
- package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +0 -15
- package/renderers/webgpu/nodes/WebGPUNodes.mjs +0 -40
- package/shaders/ACESFilmicToneMappingShader.mjs +0 -48
- package/shaders/AfterimageShader.mjs +0 -32
- package/shaders/BasicShader.mjs +0 -12
- package/shaders/BleachBypassShader.mjs +0 -35
- package/shaders/BlendShader.mjs +0 -30
- package/shaders/BokehShader.mjs +0 -106
- package/shaders/BokehShader2.mjs +0 -269
- package/shaders/BrightnessContrastShader.mjs +0 -32
- package/shaders/ColorCorrectionShader.mjs +0 -30
- package/shaders/ColorifyShader.mjs +0 -28
- package/shaders/ConvolutionShader.mjs +0 -55
- package/shaders/CopyShader.mjs +0 -25
- package/shaders/DOFMipMapShader.mjs +0 -32
- package/shaders/DepthLimitedBlurShader.mjs +0 -114
- package/shaders/DigitalGlitch.mjs +0 -78
- package/shaders/DotScreenShader.mjs +0 -39
- package/shaders/FXAAShader.mjs +0 -1098
- package/shaders/FilmShader.mjs +0 -42
- package/shaders/FocusShader.mjs +0 -55
- package/shaders/FreiChenShader.mjs +0 -61
- package/shaders/FresnelShader.mjs +0 -47
- package/shaders/GammaCorrectionShader.mjs +0 -23
- package/shaders/GodRaysShader.mjs +0 -146
- package/shaders/HalftoneShader.mjs +0 -212
- package/shaders/HorizontalBlurShader.mjs +0 -43
- package/shaders/HorizontalTiltShiftShader.mjs +0 -37
- package/shaders/HueSaturationShader.mjs +0 -41
- package/shaders/KaleidoShader.mjs +0 -34
- package/shaders/LuminosityHighPassShader.mjs +0 -37
- package/shaders/LuminosityShader.mjs +0 -25
- package/shaders/MirrorShader.mjs +0 -35
- package/shaders/NormalMapShader.mjs +0 -31
- package/shaders/ParallaxShader.mjs +0 -113
- package/shaders/PixelShader.mjs +0 -28
- package/shaders/RGBShiftShader.mjs +0 -30
- package/shaders/SAOShader.mjs +0 -144
- package/shaders/SMAAShader.mjs +0 -272
- package/shaders/SSAOShader.mjs +0 -172
- package/shaders/SSRShader.mjs +0 -324
- package/shaders/SepiaShader.mjs +0 -29
- package/shaders/SobelOperatorShader.mjs +0 -44
- package/shaders/SubsurfaceScatteringShader.mjs +0 -59
- package/shaders/TechnicolorShader.mjs +0 -24
- package/shaders/ToneMapShader.mjs +0 -48
- package/shaders/ToonShader.mjs +0 -188
- package/shaders/TriangleBlurShader.mjs +0 -36
- package/shaders/UnpackDepthRGBAShader.mjs +0 -26
- package/shaders/VerticalBlurShader.mjs +0 -44
- package/shaders/VerticalTiltShiftShader.mjs +0 -37
- package/shaders/VignetteShader.mjs +0 -28
- package/shaders/VolumeShader.mjs +0 -178
- package/shaders/WaterRefractionShader.mjs +0 -57
- package/textures/FlakesTexture.mjs +0 -30
- package/types/helpers.mjs +0 -4
- package/utils/BufferGeometryUtils.mjs +0 -570
- package/utils/GeometryCompressionUtils.mjs +0 -547
- package/utils/GeometryUtils.mjs +0 -108
- package/utils/RoughnessMipmapper.mjs +0 -213
- package/utils/SceneUtils.mjs +0 -36
- package/utils/ShadowMapViewer.mjs +0 -114
- package/utils/SkeletonUtils.mjs +0 -292
- package/utils/UVsDebug.mjs +0 -85
- package/utils/WorkerPool.mjs +0 -62
- package/webxr/ARButton.mjs +0 -119
- package/webxr/OculusHandModel.mjs +0 -71
- package/webxr/OculusHandPointerModel.mjs +0 -207
- package/webxr/Text2D.mjs +0 -31
- package/webxr/VRButton.mjs +0 -105
- package/webxr/XRControllerModelFactory.mjs +0 -146
- package/webxr/XREstimatedLight.mjs +0 -126
- package/webxr/XRHandMeshModel.mjs +0 -73
- package/webxr/XRHandModelFactory.mjs +0 -61
- package/webxr/XRHandPrimitiveModel.mjs +0 -68
package/loaders/VTKLoader.js
CHANGED
|
@@ -1,52 +1,64 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class VTKLoader extends THREE.Loader {
|
|
1
|
+
import { Loader, FileLoader, LoaderUtils, BufferGeometry, Float32BufferAttribute, BufferAttribute } from 'three';
|
|
2
|
+
import { unzlibSync } from 'fflate';
|
|
3
|
+
|
|
4
|
+
class VTKLoader extends Loader {
|
|
6
5
|
constructor(manager) {
|
|
7
6
|
super(manager);
|
|
8
7
|
}
|
|
8
|
+
|
|
9
9
|
load(url, onLoad, onProgress, onError) {
|
|
10
10
|
const scope = this;
|
|
11
|
-
const loader = new
|
|
11
|
+
const loader = new FileLoader(scope.manager);
|
|
12
12
|
loader.setPath(scope.path);
|
|
13
|
-
loader.setResponseType(
|
|
13
|
+
loader.setResponseType('arraybuffer');
|
|
14
14
|
loader.setRequestHeader(scope.requestHeader);
|
|
15
15
|
loader.setWithCredentials(scope.withCredentials);
|
|
16
|
-
loader.load(
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
} else {
|
|
25
|
-
console.error(e);
|
|
26
|
-
}
|
|
27
|
-
scope.manager.itemError(url);
|
|
16
|
+
loader.load(url, function (text) {
|
|
17
|
+
try {
|
|
18
|
+
onLoad(scope.parse(text));
|
|
19
|
+
} catch (e) {
|
|
20
|
+
if (onError) {
|
|
21
|
+
onError(e);
|
|
22
|
+
} else {
|
|
23
|
+
console.error(e);
|
|
28
24
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
);
|
|
25
|
+
|
|
26
|
+
scope.manager.itemError(url);
|
|
27
|
+
}
|
|
28
|
+
}, onProgress, onError);
|
|
33
29
|
}
|
|
30
|
+
|
|
34
31
|
parse(data) {
|
|
35
|
-
function parseASCII(
|
|
36
|
-
|
|
37
|
-
var
|
|
38
|
-
|
|
32
|
+
function parseASCII(data) {
|
|
33
|
+
// connectivity of the triangles
|
|
34
|
+
var indices = []; // triangles vertices
|
|
35
|
+
|
|
36
|
+
var positions = []; // red, green, blue colors in the range 0 to 1
|
|
37
|
+
|
|
38
|
+
var colors = []; // normal vector, one per vertex
|
|
39
|
+
|
|
39
40
|
var normals = [];
|
|
40
|
-
var result;
|
|
41
|
-
|
|
42
|
-
var
|
|
43
|
-
|
|
44
|
-
var
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
var
|
|
48
|
-
|
|
49
|
-
var
|
|
41
|
+
var result; // pattern for detecting the end of a number sequence
|
|
42
|
+
|
|
43
|
+
var patWord = /^[^\d.\s-]+/; // pattern for reading vertices, 3 floats or integers
|
|
44
|
+
|
|
45
|
+
var pat3Floats = /(\-?\d+\.?[\d\-\+e]*)\s+(\-?\d+\.?[\d\-\+e]*)\s+(\-?\d+\.?[\d\-\+e]*)/g; // pattern for connectivity, an integer followed by any number of ints
|
|
46
|
+
// the first integer is the number of polygon nodes
|
|
47
|
+
|
|
48
|
+
var patConnectivity = /^(\d+)\s+([\s\d]*)/; // indicates start of vertex data section
|
|
49
|
+
|
|
50
|
+
var patPOINTS = /^POINTS /; // indicates start of polygon connectivity section
|
|
51
|
+
|
|
52
|
+
var patPOLYGONS = /^POLYGONS /; // indicates start of triangle strips section
|
|
53
|
+
|
|
54
|
+
var patTRIANGLE_STRIPS = /^TRIANGLE_STRIPS /; // POINT_DATA number_of_values
|
|
55
|
+
|
|
56
|
+
var patPOINT_DATA = /^POINT_DATA[ ]+(\d+)/; // CELL_DATA number_of_polys
|
|
57
|
+
|
|
58
|
+
var patCELL_DATA = /^CELL_DATA[ ]+(\d+)/; // Start of color section
|
|
59
|
+
|
|
60
|
+
var patCOLOR_SCALARS = /^COLOR_SCALARS[ ]+(\w+)[ ]+3/; // NORMALS Normals float
|
|
61
|
+
|
|
50
62
|
var patNORMALS = /^NORMALS[ ]+(\w+)[ ]+(\w+)/;
|
|
51
63
|
var inPointsSection = false;
|
|
52
64
|
var inPolygonsSection = false;
|
|
@@ -55,17 +67,18 @@ class VTKLoader extends THREE.Loader {
|
|
|
55
67
|
var inCellDataSection = false;
|
|
56
68
|
var inColorSection = false;
|
|
57
69
|
var inNormalsSection = false;
|
|
58
|
-
var lines =
|
|
70
|
+
var lines = data.split('\n');
|
|
71
|
+
|
|
59
72
|
for (var i in lines) {
|
|
60
73
|
var line = lines[i].trim();
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
74
|
+
|
|
75
|
+
if (line.indexOf('DATASET') === 0) {
|
|
76
|
+
var dataset = line.split(' ')[1];
|
|
77
|
+
if (dataset !== 'POLYDATA') throw new Error('Unsupported DATASET type: ' + dataset);
|
|
65
78
|
} else if (inPointsSection) {
|
|
79
|
+
// get the vertices
|
|
66
80
|
while ((result = pat3Floats.exec(line)) !== null) {
|
|
67
|
-
if (patWord.exec(line) !== null)
|
|
68
|
-
break;
|
|
81
|
+
if (patWord.exec(line) !== null) break;
|
|
69
82
|
var x = parseFloat(result[1]);
|
|
70
83
|
var y = parseFloat(result[2]);
|
|
71
84
|
var z = parseFloat(result[3]);
|
|
@@ -73,12 +86,15 @@ class VTKLoader extends THREE.Loader {
|
|
|
73
86
|
}
|
|
74
87
|
} else if (inPolygonsSection) {
|
|
75
88
|
if ((result = patConnectivity.exec(line)) !== null) {
|
|
89
|
+
// numVertices i0 i1 i2 ...
|
|
76
90
|
var numVertices = parseInt(result[1]);
|
|
77
91
|
var inds = result[2].split(/\s+/);
|
|
92
|
+
|
|
78
93
|
if (numVertices >= 3) {
|
|
79
94
|
var i0 = parseInt(inds[0]);
|
|
80
95
|
var i1, i2;
|
|
81
|
-
var k = 1;
|
|
96
|
+
var k = 1; // split the polygon in numVertices - 2 triangles
|
|
97
|
+
|
|
82
98
|
for (var j = 0; j < numVertices - 2; ++j) {
|
|
83
99
|
i1 = parseInt(inds[k]);
|
|
84
100
|
i2 = parseInt(inds[k + 1]);
|
|
@@ -89,10 +105,13 @@ class VTKLoader extends THREE.Loader {
|
|
|
89
105
|
}
|
|
90
106
|
} else if (inTriangleStripSection) {
|
|
91
107
|
if ((result = patConnectivity.exec(line)) !== null) {
|
|
108
|
+
// numVertices i0 i1 i2 ...
|
|
92
109
|
var numVertices = parseInt(result[1]);
|
|
93
110
|
var inds = result[2].split(/\s+/);
|
|
111
|
+
|
|
94
112
|
if (numVertices >= 3) {
|
|
95
|
-
var i0, i1, i2;
|
|
113
|
+
var i0, i1, i2; // split the polygon in numVertices - 2 triangles
|
|
114
|
+
|
|
96
115
|
for (var j = 0; j < numVertices - 2; j++) {
|
|
97
116
|
if (j % 2 === 1) {
|
|
98
117
|
i0 = parseInt(inds[j]);
|
|
@@ -110,18 +129,18 @@ class VTKLoader extends THREE.Loader {
|
|
|
110
129
|
}
|
|
111
130
|
} else if (inPointDataSection || inCellDataSection) {
|
|
112
131
|
if (inColorSection) {
|
|
132
|
+
// Get the colors
|
|
113
133
|
while ((result = pat3Floats.exec(line)) !== null) {
|
|
114
|
-
if (patWord.exec(line) !== null)
|
|
115
|
-
break;
|
|
134
|
+
if (patWord.exec(line) !== null) break;
|
|
116
135
|
var r = parseFloat(result[1]);
|
|
117
136
|
var g = parseFloat(result[2]);
|
|
118
137
|
var b = parseFloat(result[3]);
|
|
119
138
|
colors.push(r, g, b);
|
|
120
139
|
}
|
|
121
140
|
} else if (inNormalsSection) {
|
|
141
|
+
// Get the normal vectors
|
|
122
142
|
while ((result = pat3Floats.exec(line)) !== null) {
|
|
123
|
-
if (patWord.exec(line) !== null)
|
|
124
|
-
break;
|
|
143
|
+
if (patWord.exec(line) !== null) break;
|
|
125
144
|
var nx = parseFloat(result[1]);
|
|
126
145
|
var ny = parseFloat(result[2]);
|
|
127
146
|
var nz = parseFloat(result[3]);
|
|
@@ -129,6 +148,7 @@ class VTKLoader extends THREE.Loader {
|
|
|
129
148
|
}
|
|
130
149
|
}
|
|
131
150
|
}
|
|
151
|
+
|
|
132
152
|
if (patPOLYGONS.exec(line) !== null) {
|
|
133
153
|
inPolygonsSection = true;
|
|
134
154
|
inPointsSection = false;
|
|
@@ -165,21 +185,28 @@ class VTKLoader extends THREE.Loader {
|
|
|
165
185
|
inTriangleStripSection = false;
|
|
166
186
|
}
|
|
167
187
|
}
|
|
168
|
-
|
|
188
|
+
|
|
189
|
+
var geometry = new BufferGeometry();
|
|
169
190
|
geometry.setIndex(indices);
|
|
170
|
-
geometry.setAttribute(
|
|
191
|
+
geometry.setAttribute('position', new Float32BufferAttribute(positions, 3));
|
|
192
|
+
|
|
171
193
|
if (normals.length === positions.length) {
|
|
172
|
-
geometry.setAttribute(
|
|
194
|
+
geometry.setAttribute('normal', new Float32BufferAttribute(normals, 3));
|
|
173
195
|
}
|
|
196
|
+
|
|
174
197
|
if (colors.length !== indices.length) {
|
|
198
|
+
// stagger
|
|
175
199
|
if (colors.length === positions.length) {
|
|
176
|
-
geometry.setAttribute(
|
|
200
|
+
geometry.setAttribute('color', new Float32BufferAttribute(colors, 3));
|
|
177
201
|
}
|
|
178
202
|
} else {
|
|
203
|
+
// cell
|
|
179
204
|
geometry = geometry.toNonIndexed();
|
|
180
205
|
var numTriangles = geometry.attributes.position.count / 3;
|
|
206
|
+
|
|
181
207
|
if (colors.length === numTriangles * 3) {
|
|
182
208
|
var newColors = [];
|
|
209
|
+
|
|
183
210
|
for (var i = 0; i < numTriangles; i++) {
|
|
184
211
|
var r = colors[3 * i + 0];
|
|
185
212
|
var g = colors[3 * i + 1];
|
|
@@ -188,67 +215,91 @@ class VTKLoader extends THREE.Loader {
|
|
|
188
215
|
newColors.push(r, g, b);
|
|
189
216
|
newColors.push(r, g, b);
|
|
190
217
|
}
|
|
191
|
-
|
|
218
|
+
|
|
219
|
+
geometry.setAttribute('color', new Float32BufferAttribute(newColors, 3));
|
|
192
220
|
}
|
|
193
221
|
}
|
|
222
|
+
|
|
194
223
|
return geometry;
|
|
195
224
|
}
|
|
196
|
-
|
|
225
|
+
|
|
226
|
+
function parseBinary(data) {
|
|
197
227
|
var count, pointIndex, i, numberOfPoints, s;
|
|
198
|
-
var buffer = new Uint8Array(
|
|
199
|
-
var dataView = new DataView(
|
|
228
|
+
var buffer = new Uint8Array(data);
|
|
229
|
+
var dataView = new DataView(data); // Points and normals, by default, are empty
|
|
230
|
+
|
|
200
231
|
var points = [];
|
|
201
232
|
var normals = [];
|
|
202
|
-
var indices = [];
|
|
203
|
-
var vtk = [];
|
|
233
|
+
var indices = []; // Going to make a big array of strings
|
|
204
234
|
var index = 0;
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
var
|
|
208
|
-
var
|
|
235
|
+
|
|
236
|
+
function findString(buffer, start) {
|
|
237
|
+
var index = start;
|
|
238
|
+
var c = buffer[index];
|
|
239
|
+
var s = [];
|
|
240
|
+
|
|
209
241
|
while (c !== 10) {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
c =
|
|
242
|
+
s.push(String.fromCharCode(c));
|
|
243
|
+
index++;
|
|
244
|
+
c = buffer[index];
|
|
213
245
|
}
|
|
214
|
-
|
|
246
|
+
|
|
247
|
+
return {
|
|
248
|
+
start: start,
|
|
249
|
+
end: index,
|
|
250
|
+
next: index + 1,
|
|
251
|
+
parsedString: s.join('')
|
|
252
|
+
};
|
|
215
253
|
}
|
|
254
|
+
|
|
216
255
|
var state, line;
|
|
256
|
+
|
|
217
257
|
while (true) {
|
|
258
|
+
// Get a string
|
|
218
259
|
state = findString(buffer, index);
|
|
219
260
|
line = state.parsedString;
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
} else if (line.indexOf(
|
|
225
|
-
|
|
226
|
-
numberOfPoints = parseInt(line.split(
|
|
261
|
+
|
|
262
|
+
if (line.indexOf('DATASET') === 0) {
|
|
263
|
+
var dataset = line.split(' ')[1];
|
|
264
|
+
if (dataset !== 'POLYDATA') throw new Error('Unsupported DATASET type: ' + dataset);
|
|
265
|
+
} else if (line.indexOf('POINTS') === 0) {
|
|
266
|
+
|
|
267
|
+
numberOfPoints = parseInt(line.split(' ')[1], 10); // Each point is 3 4-byte floats
|
|
268
|
+
|
|
227
269
|
count = numberOfPoints * 4 * 3;
|
|
228
270
|
points = new Float32Array(numberOfPoints * 3);
|
|
229
271
|
pointIndex = state.next;
|
|
272
|
+
|
|
230
273
|
for (i = 0; i < numberOfPoints; i++) {
|
|
231
274
|
points[3 * i] = dataView.getFloat32(pointIndex, false);
|
|
232
275
|
points[3 * i + 1] = dataView.getFloat32(pointIndex + 4, false);
|
|
233
276
|
points[3 * i + 2] = dataView.getFloat32(pointIndex + 8, false);
|
|
234
277
|
pointIndex = pointIndex + 12;
|
|
235
|
-
}
|
|
278
|
+
} // increment our next pointer
|
|
279
|
+
|
|
280
|
+
|
|
236
281
|
state.next = state.next + count + 1;
|
|
237
|
-
} else if (line.indexOf(
|
|
238
|
-
var numberOfStrips = parseInt(line.split(
|
|
239
|
-
var size = parseInt(line.split(
|
|
282
|
+
} else if (line.indexOf('TRIANGLE_STRIPS') === 0) {
|
|
283
|
+
var numberOfStrips = parseInt(line.split(' ')[1], 10);
|
|
284
|
+
var size = parseInt(line.split(' ')[2], 10); // 4 byte integers
|
|
285
|
+
|
|
240
286
|
count = size * 4;
|
|
241
287
|
indices = new Uint32Array(3 * size - 9 * numberOfStrips);
|
|
242
288
|
var indicesIndex = 0;
|
|
243
289
|
pointIndex = state.next;
|
|
290
|
+
|
|
244
291
|
for (i = 0; i < numberOfStrips; i++) {
|
|
292
|
+
// For each strip, read the first value, then record that many more points
|
|
245
293
|
var indexCount = dataView.getInt32(pointIndex, false);
|
|
246
294
|
var strip = [];
|
|
247
295
|
pointIndex += 4;
|
|
296
|
+
|
|
248
297
|
for (s = 0; s < indexCount; s++) {
|
|
249
298
|
strip.push(dataView.getInt32(pointIndex, false));
|
|
250
299
|
pointIndex += 4;
|
|
251
|
-
}
|
|
300
|
+
} // retrieves the n-2 triangles from the triangle strip
|
|
301
|
+
|
|
302
|
+
|
|
252
303
|
for (var j = 0; j < indexCount - 2; j++) {
|
|
253
304
|
if (j % 2) {
|
|
254
305
|
indices[indicesIndex++] = strip[j];
|
|
@@ -260,243 +311,330 @@ class VTKLoader extends THREE.Loader {
|
|
|
260
311
|
indices[indicesIndex++] = strip[j + 2];
|
|
261
312
|
}
|
|
262
313
|
}
|
|
263
|
-
}
|
|
314
|
+
} // increment our next pointer
|
|
315
|
+
|
|
316
|
+
|
|
264
317
|
state.next = state.next + count + 1;
|
|
265
|
-
} else if (line.indexOf(
|
|
266
|
-
var numberOfStrips = parseInt(line.split(
|
|
267
|
-
var size = parseInt(line.split(
|
|
318
|
+
} else if (line.indexOf('POLYGONS') === 0) {
|
|
319
|
+
var numberOfStrips = parseInt(line.split(' ')[1], 10);
|
|
320
|
+
var size = parseInt(line.split(' ')[2], 10); // 4 byte integers
|
|
321
|
+
|
|
268
322
|
count = size * 4;
|
|
269
323
|
indices = new Uint32Array(3 * size - 9 * numberOfStrips);
|
|
270
324
|
var indicesIndex = 0;
|
|
271
325
|
pointIndex = state.next;
|
|
326
|
+
|
|
272
327
|
for (i = 0; i < numberOfStrips; i++) {
|
|
328
|
+
// For each strip, read the first value, then record that many more points
|
|
273
329
|
var indexCount = dataView.getInt32(pointIndex, false);
|
|
274
330
|
var strip = [];
|
|
275
331
|
pointIndex += 4;
|
|
332
|
+
|
|
276
333
|
for (s = 0; s < indexCount; s++) {
|
|
277
334
|
strip.push(dataView.getInt32(pointIndex, false));
|
|
278
335
|
pointIndex += 4;
|
|
279
|
-
}
|
|
336
|
+
} // divide the polygon in n-2 triangle
|
|
337
|
+
|
|
338
|
+
|
|
280
339
|
for (var j = 1; j < indexCount - 1; j++) {
|
|
281
340
|
indices[indicesIndex++] = strip[0];
|
|
282
341
|
indices[indicesIndex++] = strip[j];
|
|
283
342
|
indices[indicesIndex++] = strip[j + 1];
|
|
284
343
|
}
|
|
285
|
-
}
|
|
344
|
+
} // increment our next pointer
|
|
345
|
+
|
|
346
|
+
|
|
286
347
|
state.next = state.next + count + 1;
|
|
287
|
-
} else if (line.indexOf(
|
|
288
|
-
numberOfPoints = parseInt(line.split(
|
|
289
|
-
|
|
348
|
+
} else if (line.indexOf('POINT_DATA') === 0) {
|
|
349
|
+
numberOfPoints = parseInt(line.split(' ')[1], 10); // Grab the next line
|
|
350
|
+
|
|
351
|
+
state = findString(buffer, state.next); // Now grab the binary data
|
|
352
|
+
|
|
290
353
|
count = numberOfPoints * 4 * 3;
|
|
291
354
|
normals = new Float32Array(numberOfPoints * 3);
|
|
292
355
|
pointIndex = state.next;
|
|
356
|
+
|
|
293
357
|
for (i = 0; i < numberOfPoints; i++) {
|
|
294
358
|
normals[3 * i] = dataView.getFloat32(pointIndex, false);
|
|
295
359
|
normals[3 * i + 1] = dataView.getFloat32(pointIndex + 4, false);
|
|
296
360
|
normals[3 * i + 2] = dataView.getFloat32(pointIndex + 8, false);
|
|
297
361
|
pointIndex += 12;
|
|
298
|
-
}
|
|
362
|
+
} // Increment past our data
|
|
363
|
+
|
|
364
|
+
|
|
299
365
|
state.next = state.next + count;
|
|
300
|
-
}
|
|
366
|
+
} // Increment index
|
|
367
|
+
|
|
368
|
+
|
|
301
369
|
index = state.next;
|
|
370
|
+
|
|
302
371
|
if (index >= buffer.byteLength) {
|
|
303
372
|
break;
|
|
304
373
|
}
|
|
305
374
|
}
|
|
306
|
-
|
|
307
|
-
geometry
|
|
308
|
-
geometry.
|
|
375
|
+
|
|
376
|
+
var geometry = new BufferGeometry();
|
|
377
|
+
geometry.setIndex(new BufferAttribute(indices, 1));
|
|
378
|
+
geometry.setAttribute('position', new BufferAttribute(points, 3));
|
|
379
|
+
|
|
309
380
|
if (normals.length === points.length) {
|
|
310
|
-
geometry.setAttribute(
|
|
381
|
+
geometry.setAttribute('normal', new BufferAttribute(normals, 3));
|
|
311
382
|
}
|
|
383
|
+
|
|
312
384
|
return geometry;
|
|
313
385
|
}
|
|
386
|
+
|
|
314
387
|
function Float32Concat(first, second) {
|
|
315
|
-
const firstLength = first.length,
|
|
388
|
+
const firstLength = first.length,
|
|
389
|
+
result = new Float32Array(firstLength + second.length);
|
|
316
390
|
result.set(first);
|
|
317
391
|
result.set(second, firstLength);
|
|
318
392
|
return result;
|
|
319
393
|
}
|
|
394
|
+
|
|
320
395
|
function Int32Concat(first, second) {
|
|
321
|
-
var firstLength = first.length,
|
|
396
|
+
var firstLength = first.length,
|
|
397
|
+
result = new Int32Array(firstLength + second.length);
|
|
322
398
|
result.set(first);
|
|
323
399
|
result.set(second, firstLength);
|
|
324
400
|
return result;
|
|
325
401
|
}
|
|
402
|
+
|
|
326
403
|
function parseXML(stringFile) {
|
|
404
|
+
// Changes XML to JSON, based on https://davidwalsh.name/convert-xml-json
|
|
327
405
|
function xmlToJson(xml) {
|
|
406
|
+
// Create the return object
|
|
328
407
|
var obj = {};
|
|
408
|
+
|
|
329
409
|
if (xml.nodeType === 1) {
|
|
410
|
+
// element
|
|
411
|
+
// do attributes
|
|
330
412
|
if (xml.attributes) {
|
|
331
413
|
if (xml.attributes.length > 0) {
|
|
332
|
-
obj[
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
414
|
+
obj['attributes'] = {};
|
|
415
|
+
|
|
416
|
+
for (var j = 0; j < xml.attributes.length; j++) {
|
|
417
|
+
var attribute = xml.attributes.item(j);
|
|
418
|
+
obj['attributes'][attribute.nodeName] = attribute.nodeValue.trim();
|
|
336
419
|
}
|
|
337
420
|
}
|
|
338
421
|
}
|
|
339
422
|
} else if (xml.nodeType === 3) {
|
|
423
|
+
// text
|
|
340
424
|
obj = xml.nodeValue.trim();
|
|
341
|
-
}
|
|
425
|
+
} // do children
|
|
426
|
+
|
|
427
|
+
|
|
342
428
|
if (xml.hasChildNodes()) {
|
|
343
|
-
for (var
|
|
344
|
-
var item = xml.childNodes.item(
|
|
429
|
+
for (var i = 0; i < xml.childNodes.length; i++) {
|
|
430
|
+
var item = xml.childNodes.item(i);
|
|
345
431
|
var nodeName = item.nodeName;
|
|
346
|
-
|
|
432
|
+
|
|
433
|
+
if (typeof obj[nodeName] === 'undefined') {
|
|
347
434
|
var tmp = xmlToJson(item);
|
|
348
|
-
if (tmp !==
|
|
349
|
-
obj[nodeName] = tmp;
|
|
435
|
+
if (tmp !== '') obj[nodeName] = tmp;
|
|
350
436
|
} else {
|
|
351
|
-
if (typeof obj[nodeName].push ===
|
|
437
|
+
if (typeof obj[nodeName].push === 'undefined') {
|
|
352
438
|
var old = obj[nodeName];
|
|
353
439
|
obj[nodeName] = [old];
|
|
354
440
|
}
|
|
441
|
+
|
|
355
442
|
var tmp = xmlToJson(item);
|
|
356
|
-
if (tmp !==
|
|
357
|
-
obj[nodeName].push(tmp);
|
|
443
|
+
if (tmp !== '') obj[nodeName].push(tmp);
|
|
358
444
|
}
|
|
359
445
|
}
|
|
360
446
|
}
|
|
447
|
+
|
|
361
448
|
return obj;
|
|
362
|
-
}
|
|
449
|
+
} // Taken from Base64-js
|
|
450
|
+
|
|
451
|
+
|
|
363
452
|
function Base64toByteArray(b64) {
|
|
364
|
-
var Arr = typeof Uint8Array !==
|
|
365
|
-
var
|
|
453
|
+
var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;
|
|
454
|
+
var i;
|
|
366
455
|
var lookup = [];
|
|
367
456
|
var revLookup = [];
|
|
368
|
-
var code =
|
|
369
|
-
var
|
|
370
|
-
|
|
371
|
-
|
|
457
|
+
var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
458
|
+
var len = code.length;
|
|
459
|
+
|
|
460
|
+
for (i = 0; i < len; i++) {
|
|
461
|
+
lookup[i] = code[i];
|
|
372
462
|
}
|
|
373
|
-
|
|
374
|
-
|
|
463
|
+
|
|
464
|
+
for (i = 0; i < len; ++i) {
|
|
465
|
+
revLookup[code.charCodeAt(i)] = i;
|
|
375
466
|
}
|
|
376
|
-
|
|
377
|
-
revLookup[
|
|
378
|
-
|
|
379
|
-
var
|
|
380
|
-
|
|
381
|
-
|
|
467
|
+
|
|
468
|
+
revLookup['-'.charCodeAt(0)] = 62;
|
|
469
|
+
revLookup['_'.charCodeAt(0)] = 63;
|
|
470
|
+
var j, l, tmp, placeHolders, arr;
|
|
471
|
+
var len = b64.length;
|
|
472
|
+
|
|
473
|
+
if (len % 4 > 0) {
|
|
474
|
+
throw new Error('Invalid string. Length must be a multiple of 4');
|
|
382
475
|
}
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
476
|
+
|
|
477
|
+
placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;
|
|
478
|
+
arr = new Arr(len * 3 / 4 - placeHolders);
|
|
479
|
+
l = placeHolders > 0 ? len - 4 : len;
|
|
386
480
|
var L = 0;
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
481
|
+
|
|
482
|
+
for (i = 0, j = 0; i < l; i += 4, j += 3) {
|
|
483
|
+
tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];
|
|
484
|
+
arr[L++] = (tmp & 0xff0000) >> 16;
|
|
485
|
+
arr[L++] = (tmp & 0xff00) >> 8;
|
|
486
|
+
arr[L++] = tmp & 0xff;
|
|
392
487
|
}
|
|
488
|
+
|
|
393
489
|
if (placeHolders === 2) {
|
|
394
|
-
tmp = revLookup[b64.charCodeAt(
|
|
395
|
-
|
|
490
|
+
tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;
|
|
491
|
+
arr[L++] = tmp & 0xff;
|
|
396
492
|
} else if (placeHolders === 1) {
|
|
397
|
-
tmp = revLookup[b64.charCodeAt(
|
|
398
|
-
|
|
399
|
-
|
|
493
|
+
tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;
|
|
494
|
+
arr[L++] = tmp >> 8 & 0xff;
|
|
495
|
+
arr[L++] = tmp & 0xff;
|
|
400
496
|
}
|
|
401
|
-
|
|
497
|
+
|
|
498
|
+
return arr;
|
|
402
499
|
}
|
|
403
|
-
|
|
500
|
+
|
|
501
|
+
function parseDataArray(ele, compressed) {
|
|
404
502
|
var numBytes = 0;
|
|
405
|
-
|
|
503
|
+
|
|
504
|
+
if (json.attributes.header_type === 'UInt64') {
|
|
406
505
|
numBytes = 8;
|
|
407
|
-
} else if (json.attributes.header_type ===
|
|
506
|
+
} else if (json.attributes.header_type === 'UInt32') {
|
|
408
507
|
numBytes = 4;
|
|
409
|
-
}
|
|
410
|
-
|
|
508
|
+
} // Check the format
|
|
509
|
+
|
|
510
|
+
|
|
511
|
+
if (ele.attributes.format === 'binary' && compressed) {
|
|
411
512
|
var rawData, content, byteData, blocks, cSizeStart, headerSize, padding, dataOffsets, currentOffset;
|
|
412
|
-
|
|
513
|
+
|
|
514
|
+
if (ele.attributes.type === 'Float32') {
|
|
413
515
|
var txt = new Float32Array();
|
|
414
|
-
} else if (ele.attributes.type ===
|
|
516
|
+
} else if (ele.attributes.type === 'Int64') {
|
|
415
517
|
var txt = new Int32Array();
|
|
416
|
-
}
|
|
417
|
-
|
|
518
|
+
} // VTP data with the header has the following structure:
|
|
519
|
+
// [#blocks][#u-size][#p-size][#c-size-1][#c-size-2]...[#c-size-#blocks][DATA]
|
|
520
|
+
//
|
|
521
|
+
// Each token is an integer value whose type is specified by "header_type" at the top of the file (UInt32 if no type specified). The token meanings are:
|
|
522
|
+
// [#blocks] = Number of blocks
|
|
523
|
+
// [#u-size] = Block size before compression
|
|
524
|
+
// [#p-size] = Size of last partial block (zero if it not needed)
|
|
525
|
+
// [#c-size-i] = Size in bytes of block i after compression
|
|
526
|
+
//
|
|
527
|
+
// The [DATA] portion stores contiguously every block appended together. The offset from the beginning of the data section to the beginning of a block is
|
|
528
|
+
// computed by summing the compressed block sizes from preceding blocks according to the header.
|
|
529
|
+
|
|
530
|
+
|
|
531
|
+
rawData = ele['#text'];
|
|
418
532
|
byteData = Base64toByteArray(rawData);
|
|
419
533
|
blocks = byteData[0];
|
|
420
|
-
|
|
421
|
-
|
|
534
|
+
|
|
535
|
+
for (var i = 1; i < numBytes - 1; i++) {
|
|
536
|
+
blocks = blocks | byteData[i] << i * numBytes;
|
|
422
537
|
}
|
|
538
|
+
|
|
423
539
|
headerSize = (blocks + 3) * numBytes;
|
|
424
540
|
padding = headerSize % 3 > 0 ? 3 - headerSize % 3 : 0;
|
|
425
541
|
headerSize = headerSize + padding;
|
|
426
542
|
dataOffsets = [];
|
|
427
543
|
currentOffset = headerSize;
|
|
428
|
-
dataOffsets.push(currentOffset);
|
|
544
|
+
dataOffsets.push(currentOffset); // Get the blocks sizes after the compression.
|
|
545
|
+
// There are three blocks before c-size-i, so we skip 3*numBytes
|
|
546
|
+
|
|
429
547
|
cSizeStart = 3 * numBytes;
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
548
|
+
|
|
549
|
+
for (var i = 0; i < blocks; i++) {
|
|
550
|
+
var currentBlockSize = byteData[i * numBytes + cSizeStart];
|
|
551
|
+
|
|
552
|
+
for (var j = 1; j < numBytes - 1; j++) {
|
|
553
|
+
// Each data point consists of 8 bytes regardless of the header type
|
|
554
|
+
currentBlockSize = currentBlockSize | byteData[i * numBytes + cSizeStart + j] << j * 8;
|
|
434
555
|
}
|
|
556
|
+
|
|
435
557
|
currentOffset = currentOffset + currentBlockSize;
|
|
436
558
|
dataOffsets.push(currentOffset);
|
|
437
559
|
}
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
560
|
+
|
|
561
|
+
for (var i = 0; i < dataOffsets.length - 1; i++) {
|
|
562
|
+
var data = unzlibSync(byteData.slice(dataOffsets[i], dataOffsets[i + 1])); // eslint-disable-line no-undef
|
|
563
|
+
|
|
564
|
+
content = data.buffer;
|
|
565
|
+
|
|
566
|
+
if (ele.attributes.type === 'Float32') {
|
|
442
567
|
content = new Float32Array(content);
|
|
443
568
|
txt = Float32Concat(txt, content);
|
|
444
|
-
} else if (ele.attributes.type ===
|
|
569
|
+
} else if (ele.attributes.type === 'Int64') {
|
|
445
570
|
content = new Int32Array(content);
|
|
446
571
|
txt = Int32Concat(txt, content);
|
|
447
572
|
}
|
|
448
573
|
}
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
574
|
+
|
|
575
|
+
delete ele['#text'];
|
|
576
|
+
|
|
577
|
+
if (ele.attributes.type === 'Int64') {
|
|
578
|
+
if (ele.attributes.format === 'binary') {
|
|
579
|
+
txt = txt.filter(function (el, idx) {
|
|
580
|
+
if (idx % 2 !== 1) return true;
|
|
455
581
|
});
|
|
456
582
|
}
|
|
457
583
|
}
|
|
458
584
|
} else {
|
|
459
|
-
if (ele.attributes.format ===
|
|
460
|
-
var content = Base64toByteArray(ele[
|
|
585
|
+
if (ele.attributes.format === 'binary' && !compressed) {
|
|
586
|
+
var content = Base64toByteArray(ele['#text']); // VTP data for the uncompressed case has the following structure:
|
|
587
|
+
// [#bytes][DATA]
|
|
588
|
+
// where "[#bytes]" is an integer value specifying the number of bytes in the block of data following it.
|
|
589
|
+
|
|
461
590
|
content = content.slice(numBytes).buffer;
|
|
462
591
|
} else {
|
|
463
|
-
if (ele[
|
|
464
|
-
var content = ele[
|
|
465
|
-
if (el !==
|
|
466
|
-
return el;
|
|
592
|
+
if (ele['#text']) {
|
|
593
|
+
var content = ele['#text'].split(/\s+/).filter(function (el) {
|
|
594
|
+
if (el !== '') return el;
|
|
467
595
|
});
|
|
468
596
|
} else {
|
|
469
597
|
var content = new Int32Array(0).buffer;
|
|
470
598
|
}
|
|
471
599
|
}
|
|
472
|
-
|
|
473
|
-
|
|
600
|
+
|
|
601
|
+
delete ele['#text']; // Get the content and optimize it
|
|
602
|
+
|
|
603
|
+
if (ele.attributes.type === 'Float32') {
|
|
474
604
|
var txt = new Float32Array(content);
|
|
475
|
-
} else if (ele.attributes.type ===
|
|
605
|
+
} else if (ele.attributes.type === 'Int32') {
|
|
476
606
|
var txt = new Int32Array(content);
|
|
477
|
-
} else if (ele.attributes.type ===
|
|
607
|
+
} else if (ele.attributes.type === 'Int64') {
|
|
478
608
|
var txt = new Int32Array(content);
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
609
|
+
|
|
610
|
+
if (ele.attributes.format === 'binary') {
|
|
611
|
+
txt = txt.filter(function (el, idx) {
|
|
612
|
+
if (idx % 2 !== 1) return true;
|
|
483
613
|
});
|
|
484
614
|
}
|
|
485
615
|
}
|
|
486
|
-
}
|
|
616
|
+
} // endif ( ele.attributes.format === 'binary' && compressed )
|
|
617
|
+
|
|
618
|
+
|
|
487
619
|
return txt;
|
|
488
|
-
}
|
|
620
|
+
} // Main part
|
|
621
|
+
// Get Dom
|
|
622
|
+
|
|
623
|
+
|
|
489
624
|
var dom = null;
|
|
625
|
+
|
|
490
626
|
if (window.DOMParser) {
|
|
491
627
|
try {
|
|
492
|
-
dom = new DOMParser().parseFromString(stringFile,
|
|
628
|
+
dom = new DOMParser().parseFromString(stringFile, 'text/xml');
|
|
493
629
|
} catch (e) {
|
|
494
630
|
dom = null;
|
|
495
631
|
}
|
|
496
632
|
} else if (window.ActiveXObject) {
|
|
497
633
|
try {
|
|
498
|
-
dom = new ActiveXObject(
|
|
634
|
+
dom = new ActiveXObject('Microsoft.XMLDOM'); // eslint-disable-line no-undef
|
|
635
|
+
|
|
499
636
|
dom.async = false;
|
|
637
|
+
|
|
500
638
|
if (!dom.loadXML()) {
|
|
501
639
|
throw new Error(dom.parseError.reason + dom.parseError.srcText);
|
|
502
640
|
}
|
|
@@ -504,37 +642,56 @@ class VTKLoader extends THREE.Loader {
|
|
|
504
642
|
dom = null;
|
|
505
643
|
}
|
|
506
644
|
} else {
|
|
507
|
-
throw new Error(
|
|
508
|
-
}
|
|
509
|
-
|
|
645
|
+
throw new Error('Cannot parse xml string!');
|
|
646
|
+
} // Get the doc
|
|
647
|
+
|
|
648
|
+
|
|
649
|
+
var doc = dom.documentElement; // Convert to json
|
|
650
|
+
|
|
510
651
|
var json = xmlToJson(doc);
|
|
511
652
|
var points = [];
|
|
512
653
|
var normals = [];
|
|
513
654
|
var indices = [];
|
|
655
|
+
|
|
514
656
|
if (json.PolyData) {
|
|
515
657
|
var piece = json.PolyData.Piece;
|
|
516
|
-
var compressed = json.attributes.hasOwnProperty(
|
|
517
|
-
|
|
518
|
-
|
|
658
|
+
var compressed = json.attributes.hasOwnProperty('compressor'); // Can be optimized
|
|
659
|
+
// Loop through the sections
|
|
660
|
+
|
|
661
|
+
var sections = ['PointData', 'Points', 'Strips', 'Polys']; // +['CellData', 'Verts', 'Lines'];
|
|
662
|
+
|
|
663
|
+
var sectionIndex = 0,
|
|
664
|
+
numberOfSections = sections.length;
|
|
665
|
+
|
|
519
666
|
while (sectionIndex < numberOfSections) {
|
|
520
|
-
var section = piece[sections[sectionIndex]];
|
|
667
|
+
var section = piece[sections[sectionIndex]]; // If it has a DataArray in it
|
|
668
|
+
|
|
521
669
|
if (section && section.DataArray) {
|
|
522
|
-
|
|
670
|
+
// Depending on the number of DataArrays
|
|
671
|
+
if (Object.prototype.toString.call(section.DataArray) === '[object Array]') {
|
|
523
672
|
var arr = section.DataArray;
|
|
524
673
|
} else {
|
|
525
674
|
var arr = [section.DataArray];
|
|
526
675
|
}
|
|
527
|
-
|
|
676
|
+
|
|
677
|
+
var dataArrayIndex = 0,
|
|
678
|
+
numberOfDataArrays = arr.length;
|
|
679
|
+
|
|
528
680
|
while (dataArrayIndex < numberOfDataArrays) {
|
|
529
|
-
|
|
681
|
+
// Parse the DataArray
|
|
682
|
+
if ('#text' in arr[dataArrayIndex] && arr[dataArrayIndex]['#text'].length > 0) {
|
|
530
683
|
arr[dataArrayIndex].text = parseDataArray(arr[dataArrayIndex], compressed);
|
|
531
684
|
}
|
|
685
|
+
|
|
532
686
|
dataArrayIndex++;
|
|
533
687
|
}
|
|
688
|
+
|
|
534
689
|
switch (sections[sectionIndex]) {
|
|
535
|
-
|
|
690
|
+
// if iti is point data
|
|
691
|
+
case 'PointData':
|
|
536
692
|
var numberOfPoints = parseInt(piece.attributes.NumberOfPoints);
|
|
537
693
|
var normalsName = section.attributes.Normals;
|
|
694
|
+
|
|
538
695
|
if (numberOfPoints > 0) {
|
|
539
696
|
for (var i = 0, len = arr.length; i < len; i++) {
|
|
540
697
|
if (normalsName === arr[i].attributes.Name) {
|
|
@@ -544,17 +701,25 @@ class VTKLoader extends THREE.Loader {
|
|
|
544
701
|
}
|
|
545
702
|
}
|
|
546
703
|
}
|
|
704
|
+
|
|
547
705
|
break;
|
|
548
|
-
|
|
706
|
+
// if it is points
|
|
707
|
+
|
|
708
|
+
case 'Points':
|
|
549
709
|
var numberOfPoints = parseInt(piece.attributes.NumberOfPoints);
|
|
710
|
+
|
|
550
711
|
if (numberOfPoints > 0) {
|
|
551
712
|
var components = section.DataArray.attributes.NumberOfComponents;
|
|
552
713
|
points = new Float32Array(numberOfPoints * components);
|
|
553
714
|
points.set(section.DataArray.text, 0);
|
|
554
715
|
}
|
|
716
|
+
|
|
555
717
|
break;
|
|
556
|
-
|
|
718
|
+
// if it is strips
|
|
719
|
+
|
|
720
|
+
case 'Strips':
|
|
557
721
|
var numberOfStrips = parseInt(piece.attributes.NumberOfStrips);
|
|
722
|
+
|
|
558
723
|
if (numberOfStrips > 0) {
|
|
559
724
|
var connectivity = new Int32Array(section.DataArray[0].text.length);
|
|
560
725
|
var offset = new Int32Array(section.DataArray[1].text.length);
|
|
@@ -563,13 +728,15 @@ class VTKLoader extends THREE.Loader {
|
|
|
563
728
|
var size = numberOfStrips + connectivity.length;
|
|
564
729
|
indices = new Uint32Array(3 * size - 9 * numberOfStrips);
|
|
565
730
|
var indicesIndex = 0;
|
|
731
|
+
|
|
566
732
|
for (var i = 0, len = numberOfStrips; i < len; i++) {
|
|
567
733
|
var strip = [];
|
|
734
|
+
|
|
568
735
|
for (var s = 0, len1 = offset[i], len0 = 0; s < len1 - len0; s++) {
|
|
569
736
|
strip.push(connectivity[s]);
|
|
570
|
-
if (i > 0)
|
|
571
|
-
len0 = offset[i - 1];
|
|
737
|
+
if (i > 0) len0 = offset[i - 1];
|
|
572
738
|
}
|
|
739
|
+
|
|
573
740
|
for (var j = 0, len1 = offset[i], len0 = 0; j < len1 - len0 - 2; j++) {
|
|
574
741
|
if (j % 2) {
|
|
575
742
|
indices[indicesIndex++] = strip[j];
|
|
@@ -580,14 +747,18 @@ class VTKLoader extends THREE.Loader {
|
|
|
580
747
|
indices[indicesIndex++] = strip[j + 1];
|
|
581
748
|
indices[indicesIndex++] = strip[j + 2];
|
|
582
749
|
}
|
|
583
|
-
|
|
584
|
-
|
|
750
|
+
|
|
751
|
+
if (i > 0) len0 = offset[i - 1];
|
|
585
752
|
}
|
|
586
753
|
}
|
|
587
754
|
}
|
|
755
|
+
|
|
588
756
|
break;
|
|
589
|
-
|
|
757
|
+
// if it is polys
|
|
758
|
+
|
|
759
|
+
case 'Polys':
|
|
590
760
|
var numberOfPolys = parseInt(piece.attributes.NumberOfPolys);
|
|
761
|
+
|
|
591
762
|
if (numberOfPolys > 0) {
|
|
592
763
|
var connectivity = new Int32Array(section.DataArray[0].text.length);
|
|
593
764
|
var offset = new Int32Array(section.DataArray[1].text.length);
|
|
@@ -595,52 +766,69 @@ class VTKLoader extends THREE.Loader {
|
|
|
595
766
|
offset.set(section.DataArray[1].text, 0);
|
|
596
767
|
var size = numberOfPolys + connectivity.length;
|
|
597
768
|
indices = new Uint32Array(3 * size - 9 * numberOfPolys);
|
|
598
|
-
var indicesIndex = 0,
|
|
599
|
-
|
|
769
|
+
var indicesIndex = 0,
|
|
770
|
+
connectivityIndex = 0;
|
|
771
|
+
var i = 0,
|
|
772
|
+
len = numberOfPolys,
|
|
773
|
+
len0 = 0;
|
|
774
|
+
|
|
600
775
|
while (i < len) {
|
|
601
776
|
var poly = [];
|
|
602
|
-
var s = 0,
|
|
777
|
+
var s = 0,
|
|
778
|
+
len1 = offset[i];
|
|
779
|
+
|
|
603
780
|
while (s < len1 - len0) {
|
|
604
781
|
poly.push(connectivity[connectivityIndex++]);
|
|
605
782
|
s++;
|
|
606
783
|
}
|
|
784
|
+
|
|
607
785
|
var j = 1;
|
|
786
|
+
|
|
608
787
|
while (j < len1 - len0 - 1) {
|
|
609
788
|
indices[indicesIndex++] = poly[0];
|
|
610
789
|
indices[indicesIndex++] = poly[j];
|
|
611
790
|
indices[indicesIndex++] = poly[j + 1];
|
|
612
791
|
j++;
|
|
613
792
|
}
|
|
793
|
+
|
|
614
794
|
i++;
|
|
615
795
|
len0 = offset[i - 1];
|
|
616
796
|
}
|
|
617
797
|
}
|
|
618
|
-
|
|
619
|
-
default:
|
|
798
|
+
|
|
620
799
|
break;
|
|
621
800
|
}
|
|
622
801
|
}
|
|
802
|
+
|
|
623
803
|
sectionIndex++;
|
|
624
804
|
}
|
|
625
|
-
|
|
626
|
-
geometry
|
|
627
|
-
geometry.
|
|
805
|
+
|
|
806
|
+
var geometry = new BufferGeometry();
|
|
807
|
+
geometry.setIndex(new BufferAttribute(indices, 1));
|
|
808
|
+
geometry.setAttribute('position', new BufferAttribute(points, 3));
|
|
809
|
+
|
|
628
810
|
if (normals.length === points.length) {
|
|
629
|
-
geometry.setAttribute(
|
|
811
|
+
geometry.setAttribute('normal', new BufferAttribute(normals, 3));
|
|
630
812
|
}
|
|
813
|
+
|
|
631
814
|
return geometry;
|
|
632
815
|
} else {
|
|
633
|
-
throw new Error(
|
|
816
|
+
throw new Error('Unsupported DATASET type');
|
|
634
817
|
}
|
|
635
|
-
}
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
818
|
+
} // get the 5 first lines of the files to check if there is the key word binary
|
|
819
|
+
|
|
820
|
+
|
|
821
|
+
var meta = LoaderUtils.decodeText(new Uint8Array(data, 0, 250)).split('\n');
|
|
822
|
+
|
|
823
|
+
if (meta[0].indexOf('xml') !== -1) {
|
|
824
|
+
return parseXML(LoaderUtils.decodeText(data));
|
|
825
|
+
} else if (meta[2].includes('ASCII')) {
|
|
826
|
+
return parseASCII(LoaderUtils.decodeText(data));
|
|
641
827
|
} else {
|
|
642
828
|
return parseBinary(data);
|
|
643
829
|
}
|
|
644
830
|
}
|
|
831
|
+
|
|
645
832
|
}
|
|
646
|
-
|
|
833
|
+
|
|
834
|
+
export { VTKLoader };
|