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
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { BufferGeometry, BufferAttribute, InterleavedBuffer, InterleavedBufferAttribute, TrianglesDrawMode, TriangleFanDrawMode, TriangleStripDrawMode, Vector3, Float32BufferAttribute } from 'three';
|
|
2
|
+
import { getWithKey } from '../types/helpers.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @param {Array<BufferGeometry>} geometries
|
|
6
|
+
* @param {Boolean} useGroups
|
|
7
|
+
* @return {BufferGeometry}
|
|
8
|
+
*/
|
|
5
9
|
const mergeBufferGeometries = (geometries, useGroups) => {
|
|
6
10
|
const isIndexed = geometries[0].index !== null;
|
|
7
11
|
const attributesUsed = new Set(Object.keys(geometries[0].attributes));
|
|
@@ -9,241 +13,309 @@ const mergeBufferGeometries = (geometries, useGroups) => {
|
|
|
9
13
|
const attributes = {};
|
|
10
14
|
const morphAttributes = {};
|
|
11
15
|
const morphTargetsRelative = geometries[0].morphTargetsRelative;
|
|
12
|
-
const mergedGeometry = new
|
|
16
|
+
const mergedGeometry = new BufferGeometry();
|
|
13
17
|
let offset = 0;
|
|
14
18
|
geometries.forEach((geom, i) => {
|
|
15
|
-
let attributesCount = 0;
|
|
19
|
+
let attributesCount = 0; // ensure that all geometries are indexed, or none
|
|
20
|
+
|
|
16
21
|
if (isIndexed !== (geom.index !== null)) {
|
|
17
|
-
console.error(
|
|
18
|
-
"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index " + i + ". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."
|
|
19
|
-
);
|
|
22
|
+
console.error('THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.');
|
|
20
23
|
return null;
|
|
21
|
-
}
|
|
24
|
+
} // gather attributes, exit early if they're different
|
|
25
|
+
|
|
26
|
+
|
|
22
27
|
for (let name in geom.attributes) {
|
|
23
28
|
if (!attributesUsed.has(name)) {
|
|
24
|
-
console.error(
|
|
25
|
-
"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index " + i + '. All geometries must have compatible attributes; make sure "' + name + '" attribute exists among all geometries, or in none of them.'
|
|
26
|
-
);
|
|
29
|
+
console.error('THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. All geometries must have compatible attributes; make sure "' + name + '" attribute exists among all geometries, or in none of them.');
|
|
27
30
|
return null;
|
|
28
31
|
}
|
|
29
|
-
|
|
32
|
+
|
|
33
|
+
if (attributes[name] === undefined) {
|
|
30
34
|
attributes[name] = [];
|
|
31
35
|
}
|
|
36
|
+
|
|
32
37
|
attributes[name].push(geom.attributes[name]);
|
|
33
38
|
attributesCount++;
|
|
34
|
-
}
|
|
39
|
+
} // ensure geometries have the same number of attributes
|
|
40
|
+
|
|
41
|
+
|
|
35
42
|
if (attributesCount !== attributesUsed.size) {
|
|
36
|
-
console.error(
|
|
37
|
-
"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index " + i + ". Make sure all geometries have the same number of attributes."
|
|
38
|
-
);
|
|
43
|
+
console.error('THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. Make sure all geometries have the same number of attributes.');
|
|
39
44
|
return null;
|
|
40
|
-
}
|
|
45
|
+
} // gather morph attributes, exit early if they're different
|
|
46
|
+
|
|
47
|
+
|
|
41
48
|
if (morphTargetsRelative !== geom.morphTargetsRelative) {
|
|
42
|
-
console.error(
|
|
43
|
-
"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index " + i + ". .morphTargetsRelative must be consistent throughout all geometries."
|
|
44
|
-
);
|
|
49
|
+
console.error('THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. .morphTargetsRelative must be consistent throughout all geometries.');
|
|
45
50
|
return null;
|
|
46
51
|
}
|
|
52
|
+
|
|
47
53
|
for (let name in geom.morphAttributes) {
|
|
48
54
|
if (!morphAttributesUsed.has(name)) {
|
|
49
|
-
console.error(
|
|
50
|
-
"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index " + i + ". .morphAttributes must be consistent throughout all geometries."
|
|
51
|
-
);
|
|
55
|
+
console.error('THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. .morphAttributes must be consistent throughout all geometries.');
|
|
52
56
|
return null;
|
|
53
57
|
}
|
|
54
|
-
|
|
55
|
-
|
|
58
|
+
|
|
59
|
+
if (morphAttributes[name] === undefined) morphAttributes[name] = [];
|
|
56
60
|
morphAttributes[name].push(geom.morphAttributes[name]);
|
|
57
|
-
}
|
|
61
|
+
} // gather .userData
|
|
62
|
+
|
|
63
|
+
|
|
58
64
|
mergedGeometry.userData.mergedUserData = mergedGeometry.userData.mergedUserData || [];
|
|
59
65
|
mergedGeometry.userData.mergedUserData.push(geom.userData);
|
|
66
|
+
|
|
60
67
|
if (useGroups) {
|
|
61
68
|
let count;
|
|
69
|
+
|
|
62
70
|
if (geom.index) {
|
|
63
71
|
count = geom.index.count;
|
|
64
|
-
} else if (geom.attributes.position !==
|
|
72
|
+
} else if (geom.attributes.position !== undefined) {
|
|
65
73
|
count = geom.attributes.position.count;
|
|
66
74
|
} else {
|
|
67
|
-
console.error(
|
|
68
|
-
"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index " + i + ". The geometry must have either an index or a position attribute"
|
|
69
|
-
);
|
|
75
|
+
console.error('THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. The geometry must have either an index or a position attribute');
|
|
70
76
|
return null;
|
|
71
77
|
}
|
|
78
|
+
|
|
72
79
|
mergedGeometry.addGroup(offset, count, i);
|
|
73
80
|
offset += count;
|
|
74
81
|
}
|
|
75
|
-
});
|
|
82
|
+
}); // merge indices
|
|
83
|
+
|
|
76
84
|
if (isIndexed) {
|
|
77
85
|
let indexOffset = 0;
|
|
78
86
|
const mergedIndex = [];
|
|
79
|
-
geometries.forEach(
|
|
87
|
+
geometries.forEach(geom => {
|
|
80
88
|
const index = geom.index;
|
|
89
|
+
|
|
81
90
|
for (let j = 0; j < index.count; ++j) {
|
|
82
91
|
mergedIndex.push(index.getX(j) + indexOffset);
|
|
83
92
|
}
|
|
93
|
+
|
|
84
94
|
indexOffset += geom.attributes.position.count;
|
|
85
95
|
});
|
|
86
96
|
mergedGeometry.setIndex(mergedIndex);
|
|
87
|
-
}
|
|
97
|
+
} // merge attributes
|
|
98
|
+
|
|
99
|
+
|
|
88
100
|
for (let name in attributes) {
|
|
89
101
|
const mergedAttribute = mergeBufferAttributes(attributes[name]);
|
|
102
|
+
|
|
90
103
|
if (!mergedAttribute) {
|
|
91
|
-
console.error(
|
|
92
|
-
"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the " + name + " attribute."
|
|
93
|
-
);
|
|
104
|
+
console.error('THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the ' + name + ' attribute.');
|
|
94
105
|
return null;
|
|
95
106
|
}
|
|
107
|
+
|
|
96
108
|
mergedGeometry.setAttribute(name, mergedAttribute);
|
|
97
|
-
}
|
|
109
|
+
} // merge morph attributes
|
|
110
|
+
|
|
111
|
+
|
|
98
112
|
for (let name in morphAttributes) {
|
|
99
113
|
const numMorphTargets = morphAttributes[name][0].length;
|
|
100
|
-
if (numMorphTargets === 0)
|
|
101
|
-
break;
|
|
114
|
+
if (numMorphTargets === 0) break;
|
|
102
115
|
mergedGeometry.morphAttributes = mergedGeometry.morphAttributes || {};
|
|
103
116
|
mergedGeometry.morphAttributes[name] = [];
|
|
117
|
+
|
|
104
118
|
for (let i = 0; i < numMorphTargets; ++i) {
|
|
105
119
|
const morphAttributesToMerge = [];
|
|
120
|
+
|
|
106
121
|
for (let j = 0; j < morphAttributes[name].length; ++j) {
|
|
107
122
|
morphAttributesToMerge.push(morphAttributes[name][j][i]);
|
|
108
123
|
}
|
|
124
|
+
|
|
109
125
|
const mergedMorphAttribute = mergeBufferAttributes(morphAttributesToMerge);
|
|
126
|
+
|
|
110
127
|
if (!mergedMorphAttribute) {
|
|
111
|
-
console.error(
|
|
112
|
-
"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the " + name + " morphAttribute."
|
|
113
|
-
);
|
|
128
|
+
console.error('THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the ' + name + ' morphAttribute.');
|
|
114
129
|
return null;
|
|
115
130
|
}
|
|
131
|
+
|
|
116
132
|
mergedGeometry.morphAttributes[name].push(mergedMorphAttribute);
|
|
117
133
|
}
|
|
118
134
|
}
|
|
135
|
+
|
|
119
136
|
return mergedGeometry;
|
|
120
137
|
};
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
138
|
+
/**
|
|
139
|
+
* @param {Array<BufferAttribute>} attributes
|
|
140
|
+
* @return {BufferAttribute}
|
|
141
|
+
*/
|
|
142
|
+
|
|
143
|
+
const mergeBufferAttributes = attributes => {
|
|
144
|
+
let TypedArray = undefined;
|
|
145
|
+
let itemSize = undefined;
|
|
146
|
+
let normalized = undefined;
|
|
125
147
|
let arrayLength = 0;
|
|
126
|
-
attributes.forEach(
|
|
127
|
-
if (TypedArray ===
|
|
148
|
+
attributes.forEach(attr => {
|
|
149
|
+
if (TypedArray === undefined) {
|
|
128
150
|
TypedArray = attr.array.constructor;
|
|
129
151
|
}
|
|
152
|
+
|
|
130
153
|
if (TypedArray !== attr.array.constructor) {
|
|
131
|
-
console.error(
|
|
132
|
-
"THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."
|
|
133
|
-
);
|
|
154
|
+
console.error('THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes.');
|
|
134
155
|
return null;
|
|
135
156
|
}
|
|
136
|
-
|
|
137
|
-
|
|
157
|
+
|
|
158
|
+
if (itemSize === undefined) itemSize = attr.itemSize;
|
|
159
|
+
|
|
138
160
|
if (itemSize !== attr.itemSize) {
|
|
139
|
-
console.error(
|
|
140
|
-
"THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."
|
|
141
|
-
);
|
|
161
|
+
console.error('THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes.');
|
|
142
162
|
return null;
|
|
143
163
|
}
|
|
144
|
-
|
|
145
|
-
|
|
164
|
+
|
|
165
|
+
if (normalized === undefined) normalized = attr.normalized;
|
|
166
|
+
|
|
146
167
|
if (normalized !== attr.normalized) {
|
|
147
|
-
console.error(
|
|
148
|
-
"THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."
|
|
149
|
-
);
|
|
168
|
+
console.error('THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes.');
|
|
150
169
|
return null;
|
|
151
170
|
}
|
|
171
|
+
|
|
152
172
|
arrayLength += attr.array.length;
|
|
153
173
|
});
|
|
174
|
+
|
|
154
175
|
if (TypedArray && itemSize) {
|
|
176
|
+
// @ts-expect-error this works in JS and TS is complaining but it's such a tiny thing I can live with the guilt
|
|
155
177
|
const array = new TypedArray(arrayLength);
|
|
156
178
|
let offset = 0;
|
|
157
|
-
attributes.forEach(
|
|
179
|
+
attributes.forEach(attr => {
|
|
158
180
|
array.set(attr.array, offset);
|
|
159
181
|
offset += attr.array.length;
|
|
160
182
|
});
|
|
161
|
-
return new
|
|
183
|
+
return new BufferAttribute(array, itemSize, normalized);
|
|
162
184
|
}
|
|
163
185
|
};
|
|
164
|
-
|
|
165
|
-
|
|
186
|
+
/**
|
|
187
|
+
* @param {Array<BufferAttribute>} attributes
|
|
188
|
+
* @return {Array<InterleavedBufferAttribute>}
|
|
189
|
+
*/
|
|
190
|
+
|
|
191
|
+
const interleaveAttributes = attributes => {
|
|
192
|
+
// Interleaves the provided attributes into an InterleavedBuffer and returns
|
|
193
|
+
// a set of InterleavedBufferAttributes for each attribute
|
|
194
|
+
let TypedArray = undefined;
|
|
166
195
|
let arrayLength = 0;
|
|
167
|
-
let stride = 0;
|
|
196
|
+
let stride = 0; // calculate the the length and type of the interleavedBuffer
|
|
197
|
+
|
|
168
198
|
for (let i = 0, l = attributes.length; i < l; ++i) {
|
|
169
199
|
const attribute = attributes[i];
|
|
170
|
-
if (TypedArray ===
|
|
171
|
-
|
|
200
|
+
if (TypedArray === undefined) TypedArray = attribute.array.constructor;
|
|
201
|
+
|
|
172
202
|
if (TypedArray !== attribute.array.constructor) {
|
|
173
|
-
console.error(
|
|
203
|
+
console.error('AttributeBuffers of different types cannot be interleaved');
|
|
174
204
|
return null;
|
|
175
205
|
}
|
|
206
|
+
|
|
176
207
|
arrayLength += attribute.array.length;
|
|
177
208
|
stride += attribute.itemSize;
|
|
178
|
-
}
|
|
179
|
-
|
|
209
|
+
} // Create the set of buffer attributes
|
|
210
|
+
// @ts-expect-error this works in JS and TS is complaining but it's such a tiny thing I can live with the guilt
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
const interleavedBuffer = new InterleavedBuffer(new TypedArray(arrayLength), stride);
|
|
180
214
|
let offset = 0;
|
|
181
215
|
const res = [];
|
|
182
|
-
const getters = [
|
|
183
|
-
const setters = [
|
|
216
|
+
const getters = ['getX', 'getY', 'getZ', 'getW'];
|
|
217
|
+
const setters = ['setX', 'setY', 'setZ', 'setW'];
|
|
218
|
+
|
|
184
219
|
for (let j = 0, l = attributes.length; j < l; j++) {
|
|
185
220
|
const attribute = attributes[j];
|
|
186
221
|
const itemSize = attribute.itemSize;
|
|
187
222
|
const count = attribute.count;
|
|
188
|
-
const iba = new
|
|
223
|
+
const iba = new InterleavedBufferAttribute(interleavedBuffer, itemSize, offset, attribute.normalized);
|
|
189
224
|
res.push(iba);
|
|
190
|
-
offset += itemSize;
|
|
225
|
+
offset += itemSize; // Move the data for each attribute into the new interleavedBuffer
|
|
226
|
+
// at the appropriate offset
|
|
227
|
+
|
|
191
228
|
for (let c = 0; c < count; c++) {
|
|
192
229
|
for (let k = 0; k < itemSize; k++) {
|
|
193
|
-
const set =
|
|
194
|
-
const get =
|
|
230
|
+
const set = getWithKey(iba, setters[k]);
|
|
231
|
+
const get = getWithKey(attribute, getters[k]);
|
|
195
232
|
set(c, get(c));
|
|
196
233
|
}
|
|
197
234
|
}
|
|
198
235
|
}
|
|
236
|
+
|
|
199
237
|
return res;
|
|
200
238
|
};
|
|
239
|
+
/**
|
|
240
|
+
* @param {Array<BufferGeometry>} geometry
|
|
241
|
+
* @return {number}
|
|
242
|
+
*/
|
|
243
|
+
|
|
201
244
|
function estimateBytesUsed(geometry) {
|
|
245
|
+
// Return the estimated memory used by this geometry in bytes
|
|
246
|
+
// Calculate using itemSize, count, and BYTES_PER_ELEMENT to account
|
|
247
|
+
// for InterleavedBufferAttributes.
|
|
202
248
|
let mem = 0;
|
|
249
|
+
|
|
203
250
|
for (let name in geometry.attributes) {
|
|
204
251
|
const attr = geometry.getAttribute(name);
|
|
205
252
|
mem += attr.count * attr.itemSize * attr.array.BYTES_PER_ELEMENT;
|
|
206
253
|
}
|
|
254
|
+
|
|
207
255
|
const indices = geometry.getIndex();
|
|
208
256
|
mem += indices ? indices.count * indices.itemSize * indices.array.BYTES_PER_ELEMENT : 0;
|
|
209
257
|
return mem;
|
|
210
258
|
}
|
|
259
|
+
/**
|
|
260
|
+
* @param {BufferGeometry} geometry
|
|
261
|
+
* @param {number} tolerance
|
|
262
|
+
* @return {BufferGeometry>}
|
|
263
|
+
*/
|
|
264
|
+
|
|
211
265
|
function mergeVertices(geometry, tolerance = 1e-4) {
|
|
212
|
-
tolerance = Math.max(tolerance, Number.EPSILON);
|
|
266
|
+
tolerance = Math.max(tolerance, Number.EPSILON); // Generate an index buffer if the geometry doesn't have one, or optimize it
|
|
267
|
+
// if it's already available.
|
|
268
|
+
|
|
213
269
|
const hashToIndex = {};
|
|
214
270
|
const indices = geometry.getIndex();
|
|
215
|
-
const positions = geometry.getAttribute(
|
|
216
|
-
const vertexCount = indices ? indices.count : positions.count;
|
|
217
|
-
|
|
271
|
+
const positions = geometry.getAttribute('position');
|
|
272
|
+
const vertexCount = indices ? indices.count : positions.count; // next value for triangle indices
|
|
273
|
+
|
|
274
|
+
let nextIndex = 0; // attributes and new attribute arrays
|
|
275
|
+
|
|
218
276
|
const attributeNames = Object.keys(geometry.attributes);
|
|
219
277
|
const attrArrays = {};
|
|
220
278
|
const morphAttrsArrays = {};
|
|
221
279
|
const newIndices = [];
|
|
222
|
-
const getters = [
|
|
280
|
+
const getters = ['getX', 'getY', 'getZ', 'getW']; // initialize the arrays
|
|
281
|
+
|
|
223
282
|
for (let i = 0, l = attributeNames.length; i < l; i++) {
|
|
224
283
|
const name = attributeNames[i];
|
|
225
284
|
attrArrays[name] = [];
|
|
226
285
|
const morphAttr = geometry.morphAttributes[name];
|
|
286
|
+
|
|
227
287
|
if (morphAttr) {
|
|
228
288
|
morphAttrsArrays[name] = new Array(morphAttr.length).fill(0).map(() => []);
|
|
229
289
|
}
|
|
230
|
-
}
|
|
290
|
+
} // convert the error tolerance to an amount of decimal places to truncate to
|
|
291
|
+
|
|
292
|
+
|
|
231
293
|
const decimalShift = Math.log10(1 / tolerance);
|
|
232
294
|
const shiftMultiplier = Math.pow(10, decimalShift);
|
|
295
|
+
|
|
233
296
|
for (let i = 0; i < vertexCount; i++) {
|
|
234
|
-
const index = indices ? indices.getX(i) : i;
|
|
235
|
-
|
|
297
|
+
const index = indices ? indices.getX(i) : i; // Generate a hash for the vertex attributes at the current index 'i'
|
|
298
|
+
|
|
299
|
+
let hash = '';
|
|
300
|
+
|
|
236
301
|
for (let j = 0, l = attributeNames.length; j < l; j++) {
|
|
237
302
|
const name = attributeNames[j];
|
|
238
303
|
const attribute = geometry.getAttribute(name);
|
|
239
304
|
const itemSize = attribute.itemSize;
|
|
305
|
+
|
|
240
306
|
for (let k = 0; k < itemSize; k++) {
|
|
307
|
+
// double tilde truncates the decimal value
|
|
308
|
+
// @ts-ignore no
|
|
241
309
|
hash += `${~~(attribute[getters[k]](index) * shiftMultiplier)},`;
|
|
242
310
|
}
|
|
243
|
-
}
|
|
311
|
+
} // Add another reference to the vertex if it's already
|
|
312
|
+
// used by another index
|
|
313
|
+
|
|
314
|
+
|
|
244
315
|
if (hash in hashToIndex) {
|
|
245
316
|
newIndices.push(hashToIndex[hash]);
|
|
246
317
|
} else {
|
|
318
|
+
// copy data to the new index in the attribute arrays
|
|
247
319
|
for (let j = 0, l = attributeNames.length; j < l; j++) {
|
|
248
320
|
const name = attributeNames[j];
|
|
249
321
|
const attribute = geometry.getAttribute(name);
|
|
@@ -251,73 +323,100 @@ function mergeVertices(geometry, tolerance = 1e-4) {
|
|
|
251
323
|
const itemSize = attribute.itemSize;
|
|
252
324
|
const newarray = attrArrays[name];
|
|
253
325
|
const newMorphArrays = morphAttrsArrays[name];
|
|
326
|
+
|
|
254
327
|
for (let k = 0; k < itemSize; k++) {
|
|
255
|
-
const getterFunc = getters[k];
|
|
328
|
+
const getterFunc = getters[k]; // @ts-ignore
|
|
329
|
+
|
|
256
330
|
newarray.push(attribute[getterFunc](index));
|
|
331
|
+
|
|
257
332
|
if (morphAttr) {
|
|
258
333
|
for (let m = 0, ml = morphAttr.length; m < ml; m++) {
|
|
334
|
+
// @ts-ignore
|
|
259
335
|
newMorphArrays[m].push(morphAttr[m][getterFunc](index));
|
|
260
336
|
}
|
|
261
337
|
}
|
|
262
338
|
}
|
|
263
339
|
}
|
|
340
|
+
|
|
264
341
|
hashToIndex[hash] = nextIndex;
|
|
265
342
|
newIndices.push(nextIndex);
|
|
266
343
|
nextIndex++;
|
|
267
344
|
}
|
|
268
|
-
}
|
|
345
|
+
} // Generate typed arrays from new attribute arrays and update
|
|
346
|
+
// the attributeBuffers
|
|
347
|
+
|
|
348
|
+
|
|
269
349
|
const result = geometry.clone();
|
|
350
|
+
|
|
270
351
|
for (let i = 0, l = attributeNames.length; i < l; i++) {
|
|
271
352
|
const name = attributeNames[i];
|
|
272
|
-
const oldAttribute = geometry.getAttribute(name);
|
|
353
|
+
const oldAttribute = geometry.getAttribute(name); //@ts-expect-error something to do with functions and constructors and new
|
|
354
|
+
|
|
273
355
|
const buffer = new oldAttribute.array.constructor(attrArrays[name]);
|
|
274
|
-
const attribute = new
|
|
275
|
-
result.setAttribute(name, attribute);
|
|
356
|
+
const attribute = new BufferAttribute(buffer, oldAttribute.itemSize, oldAttribute.normalized);
|
|
357
|
+
result.setAttribute(name, attribute); // Update the attribute arrays
|
|
358
|
+
|
|
276
359
|
if (name in morphAttrsArrays) {
|
|
277
360
|
for (let j = 0; j < morphAttrsArrays[name].length; j++) {
|
|
278
|
-
const oldMorphAttribute = geometry.morphAttributes[name][j];
|
|
279
|
-
|
|
280
|
-
const
|
|
361
|
+
const oldMorphAttribute = geometry.morphAttributes[name][j]; //@ts-expect-error something to do with functions and constructors and new
|
|
362
|
+
|
|
363
|
+
const buffer = new oldMorphAttribute.array.constructor(morphAttrsArrays[name][j]);
|
|
364
|
+
const morphAttribute = new BufferAttribute(buffer, oldMorphAttribute.itemSize, oldMorphAttribute.normalized);
|
|
281
365
|
result.morphAttributes[name][j] = morphAttribute;
|
|
282
366
|
}
|
|
283
367
|
}
|
|
284
|
-
}
|
|
368
|
+
} // indices
|
|
369
|
+
|
|
370
|
+
|
|
285
371
|
result.setIndex(newIndices);
|
|
286
372
|
return result;
|
|
287
373
|
}
|
|
374
|
+
/**
|
|
375
|
+
* @param {BufferGeometry} geometry
|
|
376
|
+
* @param {number} drawMode
|
|
377
|
+
* @return {BufferGeometry}
|
|
378
|
+
*/
|
|
379
|
+
|
|
288
380
|
function toTrianglesDrawMode(geometry, drawMode) {
|
|
289
|
-
if (drawMode ===
|
|
290
|
-
console.warn(
|
|
381
|
+
if (drawMode === TrianglesDrawMode) {
|
|
382
|
+
console.warn('THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles.');
|
|
291
383
|
return geometry;
|
|
292
384
|
}
|
|
293
|
-
|
|
294
|
-
|
|
385
|
+
|
|
386
|
+
if (drawMode === TriangleFanDrawMode || drawMode === TriangleStripDrawMode) {
|
|
387
|
+
let index = geometry.getIndex(); // generate index if not present
|
|
388
|
+
|
|
295
389
|
if (index === null) {
|
|
296
390
|
const indices = [];
|
|
297
|
-
const position = geometry.getAttribute(
|
|
298
|
-
|
|
391
|
+
const position = geometry.getAttribute('position');
|
|
392
|
+
|
|
393
|
+
if (position !== undefined) {
|
|
299
394
|
for (let i = 0; i < position.count; i++) {
|
|
300
395
|
indices.push(i);
|
|
301
396
|
}
|
|
397
|
+
|
|
302
398
|
geometry.setIndex(indices);
|
|
303
399
|
index = geometry.getIndex();
|
|
304
400
|
} else {
|
|
305
|
-
console.error(
|
|
306
|
-
"THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."
|
|
307
|
-
);
|
|
401
|
+
console.error('THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible.');
|
|
308
402
|
return geometry;
|
|
309
403
|
}
|
|
310
|
-
}
|
|
404
|
+
} //
|
|
405
|
+
|
|
406
|
+
|
|
311
407
|
const numberOfTriangles = index.count - 2;
|
|
312
408
|
const newIndices = [];
|
|
409
|
+
|
|
313
410
|
if (index) {
|
|
314
|
-
if (drawMode ===
|
|
411
|
+
if (drawMode === TriangleFanDrawMode) {
|
|
412
|
+
// gl.TRIANGLE_FAN
|
|
315
413
|
for (let i = 1; i <= numberOfTriangles; i++) {
|
|
316
414
|
newIndices.push(index.getX(0));
|
|
317
415
|
newIndices.push(index.getX(i));
|
|
318
416
|
newIndices.push(index.getX(i + 1));
|
|
319
417
|
}
|
|
320
418
|
} else {
|
|
419
|
+
// gl.TRIANGLE_STRIP
|
|
321
420
|
for (let i = 0; i < numberOfTriangles; i++) {
|
|
322
421
|
if (i % 2 === 0) {
|
|
323
422
|
newIndices.push(index.getX(i));
|
|
@@ -331,78 +430,122 @@ function toTrianglesDrawMode(geometry, drawMode) {
|
|
|
331
430
|
}
|
|
332
431
|
}
|
|
333
432
|
}
|
|
433
|
+
|
|
334
434
|
if (newIndices.length / 3 !== numberOfTriangles) {
|
|
335
|
-
console.error(
|
|
336
|
-
}
|
|
435
|
+
console.error('THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.');
|
|
436
|
+
} // build final geometry
|
|
437
|
+
|
|
438
|
+
|
|
337
439
|
const newGeometry = geometry.clone();
|
|
338
440
|
newGeometry.setIndex(newIndices);
|
|
339
441
|
newGeometry.clearGroups();
|
|
340
442
|
return newGeometry;
|
|
341
443
|
} else {
|
|
342
|
-
console.error(
|
|
444
|
+
console.error('THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:', drawMode);
|
|
343
445
|
return geometry;
|
|
344
446
|
}
|
|
345
447
|
}
|
|
448
|
+
/**
|
|
449
|
+
* Calculates the morphed attributes of a morphed/skinned BufferGeometry.
|
|
450
|
+
* Helpful for Raytracing or Decals.
|
|
451
|
+
* @param {Mesh | Line | Points} object An instance of Mesh, Line or Points.
|
|
452
|
+
* @return {Object} An Object with original position/normal attributes and morphed ones.
|
|
453
|
+
*/
|
|
454
|
+
|
|
346
455
|
function computeMorphedAttributes(object) {
|
|
347
456
|
if (object.geometry.isBufferGeometry !== true) {
|
|
348
|
-
console.error(
|
|
457
|
+
console.error('THREE.BufferGeometryUtils: Geometry is not of type BufferGeometry.');
|
|
349
458
|
return null;
|
|
350
459
|
}
|
|
351
|
-
|
|
352
|
-
const
|
|
353
|
-
|
|
354
|
-
const
|
|
355
|
-
|
|
356
|
-
const
|
|
357
|
-
|
|
358
|
-
const
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
460
|
+
|
|
461
|
+
const _vA = new Vector3();
|
|
462
|
+
|
|
463
|
+
const _vB = new Vector3();
|
|
464
|
+
|
|
465
|
+
const _vC = new Vector3();
|
|
466
|
+
|
|
467
|
+
const _tempA = new Vector3();
|
|
468
|
+
|
|
469
|
+
const _tempB = new Vector3();
|
|
470
|
+
|
|
471
|
+
const _tempC = new Vector3();
|
|
472
|
+
|
|
473
|
+
const _morphA = new Vector3();
|
|
474
|
+
|
|
475
|
+
const _morphB = new Vector3();
|
|
476
|
+
|
|
477
|
+
const _morphC = new Vector3();
|
|
478
|
+
|
|
479
|
+
function _calculateMorphedAttributeData(object, material, attribute, morphAttribute, morphTargetsRelative, a, b, c, modifiedAttributeArray) {
|
|
480
|
+
_vA.fromBufferAttribute(attribute, a);
|
|
481
|
+
|
|
482
|
+
_vB.fromBufferAttribute(attribute, b);
|
|
483
|
+
|
|
484
|
+
_vC.fromBufferAttribute(attribute, c);
|
|
485
|
+
|
|
486
|
+
const morphInfluences = object.morphTargetInfluences;
|
|
487
|
+
|
|
488
|
+
if ( // @ts-expect-error
|
|
489
|
+
material.morphTargets && morphAttribute && morphInfluences) {
|
|
366
490
|
_morphA.set(0, 0, 0);
|
|
491
|
+
|
|
367
492
|
_morphB.set(0, 0, 0);
|
|
493
|
+
|
|
368
494
|
_morphC.set(0, 0, 0);
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
const
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
495
|
+
|
|
496
|
+
for (let i = 0, il = morphAttribute.length; i < il; i++) {
|
|
497
|
+
const influence = morphInfluences[i];
|
|
498
|
+
const morph = morphAttribute[i];
|
|
499
|
+
if (influence === 0) continue;
|
|
500
|
+
|
|
501
|
+
_tempA.fromBufferAttribute(morph, a);
|
|
502
|
+
|
|
503
|
+
_tempB.fromBufferAttribute(morph, b);
|
|
504
|
+
|
|
505
|
+
_tempC.fromBufferAttribute(morph, c);
|
|
506
|
+
|
|
507
|
+
if (morphTargetsRelative) {
|
|
378
508
|
_morphA.addScaledVector(_tempA, influence);
|
|
509
|
+
|
|
379
510
|
_morphB.addScaledVector(_tempB, influence);
|
|
511
|
+
|
|
380
512
|
_morphC.addScaledVector(_tempC, influence);
|
|
381
513
|
} else {
|
|
382
514
|
_morphA.addScaledVector(_tempA.sub(_vA), influence);
|
|
515
|
+
|
|
383
516
|
_morphB.addScaledVector(_tempB.sub(_vB), influence);
|
|
517
|
+
|
|
384
518
|
_morphC.addScaledVector(_tempC.sub(_vC), influence);
|
|
385
519
|
}
|
|
386
520
|
}
|
|
521
|
+
|
|
387
522
|
_vA.add(_morphA);
|
|
523
|
+
|
|
388
524
|
_vB.add(_morphB);
|
|
525
|
+
|
|
389
526
|
_vC.add(_morphC);
|
|
390
527
|
}
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
528
|
+
|
|
529
|
+
if (object.isSkinnedMesh) {
|
|
530
|
+
// @ts-expect-error – https://github.com/three-types/three-ts-types/issues/37
|
|
531
|
+
object.boneTransform(a, _vA); // @ts-expect-error – https://github.com/three-types/three-ts-types/issues/37
|
|
532
|
+
|
|
533
|
+
object.boneTransform(b, _vB); // @ts-expect-error – https://github.com/three-types/three-ts-types/issues/37
|
|
534
|
+
|
|
535
|
+
object.boneTransform(c, _vC);
|
|
395
536
|
}
|
|
396
|
-
|
|
397
|
-
modifiedAttributeArray[
|
|
398
|
-
modifiedAttributeArray[
|
|
399
|
-
modifiedAttributeArray[
|
|
400
|
-
modifiedAttributeArray[
|
|
401
|
-
modifiedAttributeArray[
|
|
402
|
-
modifiedAttributeArray[
|
|
403
|
-
modifiedAttributeArray[
|
|
404
|
-
modifiedAttributeArray[
|
|
537
|
+
|
|
538
|
+
modifiedAttributeArray[a * 3 + 0] = _vA.x;
|
|
539
|
+
modifiedAttributeArray[a * 3 + 1] = _vA.y;
|
|
540
|
+
modifiedAttributeArray[a * 3 + 2] = _vA.z;
|
|
541
|
+
modifiedAttributeArray[b * 3 + 0] = _vB.x;
|
|
542
|
+
modifiedAttributeArray[b * 3 + 1] = _vB.y;
|
|
543
|
+
modifiedAttributeArray[b * 3 + 2] = _vB.z;
|
|
544
|
+
modifiedAttributeArray[c * 3 + 0] = _vC.x;
|
|
545
|
+
modifiedAttributeArray[c * 3 + 1] = _vC.y;
|
|
546
|
+
modifiedAttributeArray[c * 3 + 2] = _vC.z;
|
|
405
547
|
}
|
|
548
|
+
|
|
406
549
|
const geometry = object.geometry;
|
|
407
550
|
const material = object.material;
|
|
408
551
|
let a, b, c;
|
|
@@ -419,152 +562,83 @@ function computeMorphedAttributes(object) {
|
|
|
419
562
|
let start, end;
|
|
420
563
|
const modifiedPosition = new Float32Array(positionAttribute.count * positionAttribute.itemSize);
|
|
421
564
|
const modifiedNormal = new Float32Array(normalAttribute.count * normalAttribute.itemSize);
|
|
565
|
+
|
|
422
566
|
if (index !== null) {
|
|
567
|
+
// indexed buffer geometry
|
|
423
568
|
if (Array.isArray(material)) {
|
|
424
569
|
for (i = 0, il = groups.length; i < il; i++) {
|
|
425
570
|
group = groups[i];
|
|
426
571
|
groupMaterial = material[group.materialIndex];
|
|
427
572
|
start = Math.max(group.start, drawRange.start);
|
|
428
573
|
end = Math.min(group.start + group.count, drawRange.start + drawRange.count);
|
|
574
|
+
|
|
429
575
|
for (j = start, jl = end; j < jl; j += 3) {
|
|
430
576
|
a = index.getX(j);
|
|
431
577
|
b = index.getX(j + 1);
|
|
432
578
|
c = index.getX(j + 2);
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
morphPosition,
|
|
438
|
-
morphTargetsRelative,
|
|
439
|
-
a,
|
|
440
|
-
b,
|
|
441
|
-
c,
|
|
442
|
-
modifiedPosition
|
|
443
|
-
);
|
|
444
|
-
_calculateMorphedAttributeData(
|
|
445
|
-
object,
|
|
446
|
-
groupMaterial,
|
|
447
|
-
normalAttribute,
|
|
448
|
-
morphNormal,
|
|
449
|
-
morphTargetsRelative,
|
|
450
|
-
a,
|
|
451
|
-
b,
|
|
452
|
-
c,
|
|
453
|
-
modifiedNormal
|
|
454
|
-
);
|
|
579
|
+
|
|
580
|
+
_calculateMorphedAttributeData(object, groupMaterial, positionAttribute, morphPosition, morphTargetsRelative, a, b, c, modifiedPosition);
|
|
581
|
+
|
|
582
|
+
_calculateMorphedAttributeData(object, groupMaterial, normalAttribute, morphNormal, morphTargetsRelative, a, b, c, modifiedNormal);
|
|
455
583
|
}
|
|
456
584
|
}
|
|
457
585
|
} else {
|
|
458
586
|
start = Math.max(0, drawRange.start);
|
|
459
587
|
end = Math.min(index.count, drawRange.start + drawRange.count);
|
|
588
|
+
|
|
460
589
|
for (i = start, il = end; i < il; i += 3) {
|
|
461
590
|
a = index.getX(i);
|
|
462
591
|
b = index.getX(i + 1);
|
|
463
592
|
c = index.getX(i + 2);
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
morphPosition,
|
|
469
|
-
morphTargetsRelative,
|
|
470
|
-
a,
|
|
471
|
-
b,
|
|
472
|
-
c,
|
|
473
|
-
modifiedPosition
|
|
474
|
-
);
|
|
475
|
-
_calculateMorphedAttributeData(
|
|
476
|
-
object,
|
|
477
|
-
material,
|
|
478
|
-
normalAttribute,
|
|
479
|
-
morphNormal,
|
|
480
|
-
morphTargetsRelative,
|
|
481
|
-
a,
|
|
482
|
-
b,
|
|
483
|
-
c,
|
|
484
|
-
modifiedNormal
|
|
485
|
-
);
|
|
593
|
+
|
|
594
|
+
_calculateMorphedAttributeData(object, material, positionAttribute, morphPosition, morphTargetsRelative, a, b, c, modifiedPosition);
|
|
595
|
+
|
|
596
|
+
_calculateMorphedAttributeData(object, material, normalAttribute, morphNormal, morphTargetsRelative, a, b, c, modifiedNormal);
|
|
486
597
|
}
|
|
487
598
|
}
|
|
488
|
-
} else if (positionAttribute !==
|
|
599
|
+
} else if (positionAttribute !== undefined) {
|
|
600
|
+
// non-indexed buffer geometry
|
|
489
601
|
if (Array.isArray(material)) {
|
|
490
602
|
for (i = 0, il = groups.length; i < il; i++) {
|
|
491
603
|
group = groups[i];
|
|
492
604
|
groupMaterial = material[group.materialIndex];
|
|
493
605
|
start = Math.max(group.start, drawRange.start);
|
|
494
606
|
end = Math.min(group.start + group.count, drawRange.start + drawRange.count);
|
|
607
|
+
|
|
495
608
|
for (j = start, jl = end; j < jl; j += 3) {
|
|
496
609
|
a = j;
|
|
497
610
|
b = j + 1;
|
|
498
611
|
c = j + 2;
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
morphPosition,
|
|
504
|
-
morphTargetsRelative,
|
|
505
|
-
a,
|
|
506
|
-
b,
|
|
507
|
-
c,
|
|
508
|
-
modifiedPosition
|
|
509
|
-
);
|
|
510
|
-
_calculateMorphedAttributeData(
|
|
511
|
-
object,
|
|
512
|
-
groupMaterial,
|
|
513
|
-
normalAttribute,
|
|
514
|
-
morphNormal,
|
|
515
|
-
morphTargetsRelative,
|
|
516
|
-
a,
|
|
517
|
-
b,
|
|
518
|
-
c,
|
|
519
|
-
modifiedNormal
|
|
520
|
-
);
|
|
612
|
+
|
|
613
|
+
_calculateMorphedAttributeData(object, groupMaterial, positionAttribute, morphPosition, morphTargetsRelative, a, b, c, modifiedPosition);
|
|
614
|
+
|
|
615
|
+
_calculateMorphedAttributeData(object, groupMaterial, normalAttribute, morphNormal, morphTargetsRelative, a, b, c, modifiedNormal);
|
|
521
616
|
}
|
|
522
617
|
}
|
|
523
618
|
} else {
|
|
524
619
|
start = Math.max(0, drawRange.start);
|
|
525
620
|
end = Math.min(positionAttribute.count, drawRange.start + drawRange.count);
|
|
621
|
+
|
|
526
622
|
for (i = start, il = end; i < il; i += 3) {
|
|
527
623
|
a = i;
|
|
528
624
|
b = i + 1;
|
|
529
625
|
c = i + 2;
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
morphPosition,
|
|
535
|
-
morphTargetsRelative,
|
|
536
|
-
a,
|
|
537
|
-
b,
|
|
538
|
-
c,
|
|
539
|
-
modifiedPosition
|
|
540
|
-
);
|
|
541
|
-
_calculateMorphedAttributeData(
|
|
542
|
-
object,
|
|
543
|
-
material,
|
|
544
|
-
normalAttribute,
|
|
545
|
-
morphNormal,
|
|
546
|
-
morphTargetsRelative,
|
|
547
|
-
a,
|
|
548
|
-
b,
|
|
549
|
-
c,
|
|
550
|
-
modifiedNormal
|
|
551
|
-
);
|
|
626
|
+
|
|
627
|
+
_calculateMorphedAttributeData(object, material, positionAttribute, morphPosition, morphTargetsRelative, a, b, c, modifiedPosition);
|
|
628
|
+
|
|
629
|
+
_calculateMorphedAttributeData(object, material, normalAttribute, morphNormal, morphTargetsRelative, a, b, c, modifiedNormal);
|
|
552
630
|
}
|
|
553
631
|
}
|
|
554
632
|
}
|
|
555
|
-
|
|
556
|
-
const
|
|
633
|
+
|
|
634
|
+
const morphedPositionAttribute = new Float32BufferAttribute(modifiedPosition, 3);
|
|
635
|
+
const morphedNormalAttribute = new Float32BufferAttribute(modifiedNormal, 3);
|
|
557
636
|
return {
|
|
558
|
-
positionAttribute,
|
|
559
|
-
normalAttribute,
|
|
560
|
-
morphedPositionAttribute,
|
|
561
|
-
morphedNormalAttribute
|
|
637
|
+
positionAttribute: positionAttribute,
|
|
638
|
+
normalAttribute: normalAttribute,
|
|
639
|
+
morphedPositionAttribute: morphedPositionAttribute,
|
|
640
|
+
morphedNormalAttribute: morphedNormalAttribute
|
|
562
641
|
};
|
|
563
642
|
}
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
exports.interleaveAttributes = interleaveAttributes;
|
|
567
|
-
exports.mergeBufferAttributes = mergeBufferAttributes;
|
|
568
|
-
exports.mergeBufferGeometries = mergeBufferGeometries;
|
|
569
|
-
exports.mergeVertices = mergeVertices;
|
|
570
|
-
exports.toTrianglesDrawMode = toTrianglesDrawMode;
|
|
643
|
+
|
|
644
|
+
export { computeMorphedAttributes, estimateBytesUsed, interleaveAttributes, mergeBufferAttributes, mergeBufferGeometries, mergeVertices, toTrianglesDrawMode };
|