three-stdlib 2.15.0 → 2.15.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/animation/AnimationClipCreator.js +32 -52
- package/animation/AnimationClipCreator.mjs +57 -0
- package/animation/CCDIKSolver.js +66 -161
- package/animation/CCDIKSolver.mjs +234 -0
- package/animation/MMDAnimationHelper.js +150 -341
- package/animation/MMDAnimationHelper.mjs +514 -0
- package/animation/MMDPhysics.js +154 -361
- package/animation/MMDPhysics.mjs +769 -0
- package/cameras/CinematicCamera.js +67 -77
- package/cameras/CinematicCamera.mjs +129 -0
- package/controls/ArcballControls.js +544 -1449
- package/controls/ArcballControls.mjs +1737 -0
- package/controls/DeviceOrientationControls.js +52 -97
- package/controls/DeviceOrientationControls.mjs +74 -0
- package/controls/DragControls.js +85 -187
- package/controls/DragControls.mjs +172 -0
- package/controls/FirstPersonControls.js +123 -193
- package/controls/FirstPersonControls.mjs +220 -0
- package/controls/FlyControls.js +82 -152
- package/controls/FlyControls.mjs +239 -0
- package/controls/OrbitControls.js +232 -481
- package/controls/OrbitControls.mjs +731 -0
- package/controls/PointerLockControls.js +63 -99
- package/controls/PointerLockControls.mjs +88 -0
- package/controls/TrackballControls.js +211 -383
- package/controls/TrackballControls.mjs +481 -0
- package/controls/TransformControls.js +575 -782
- package/controls/TransformControls.mjs +1068 -0
- package/controls/experimental/CameraControls.js +329 -609
- package/controls/experimental/CameraControls.mjs +673 -0
- package/csm/CSM.js +47 -108
- package/csm/CSM.mjs +244 -0
- package/csm/CSMFrustum.js +14 -29
- package/csm/CSMFrustum.mjs +75 -0
- package/csm/CSMHelper.js +20 -34
- package/csm/CSMHelper.mjs +114 -0
- package/csm/CSMShader.js +7 -11
- package/csm/CSMShader.mjs +251 -0
- package/curves/CurveExtras.js +73 -115
- package/curves/CurveExtras.mjs +224 -0
- package/curves/NURBSCurve.js +15 -43
- package/curves/NURBSCurve.mjs +35 -0
- package/curves/NURBSSurface.js +11 -27
- package/curves/NURBSSurface.mjs +28 -0
- package/curves/NURBSUtils.js +54 -203
- package/curves/NURBSUtils.mjs +226 -0
- package/deprecated/Geometry.js +191 -486
- package/deprecated/Geometry.mjs +966 -0
- package/effects/AnaglyphEffect.js +95 -60
- package/effects/AnaglyphEffect.mjs +120 -0
- package/effects/AsciiEffect.js +80 -110
- package/effects/AsciiEffect.mjs +173 -0
- package/effects/OutlineEffect.js +121 -204
- package/effects/OutlineEffect.mjs +295 -0
- package/effects/ParallaxBarrierEffect.js +39 -38
- package/effects/ParallaxBarrierEffect.mjs +64 -0
- package/effects/PeppersGhostEffect.js +19 -68
- package/effects/PeppersGhostEffect.mjs +85 -0
- package/effects/StereoEffect.js +12 -16
- package/effects/StereoEffect.mjs +32 -0
- package/environments/RoomEnvironment.js +52 -47
- package/environments/RoomEnvironment.mjs +78 -0
- package/exporters/ColladaExporter.js +115 -241
- package/exporters/ColladaExporter.mjs +299 -0
- package/exporters/DRACOExporter.js +67 -121
- package/exporters/DRACOExporter.mjs +132 -0
- package/exporters/GLTFExporter.js +463 -1014
- package/exporters/GLTFExporter.mjs +1381 -0
- package/exporters/MMDExporter.js +44 -102
- package/exporters/MMDExporter.mjs +102 -0
- package/exporters/OBJExporter.js +78 -140
- package/exporters/OBJExporter.mjs +166 -0
- package/exporters/PLYExporter.js +93 -154
- package/exporters/PLYExporter.mjs +278 -0
- package/exporters/STLExporter.js +30 -81
- package/exporters/STLExporter.mjs +129 -0
- package/exporters/USDZExporter.js +84 -144
- package/exporters/USDZExporter.mjs +328 -0
- package/geometries/BoxLineGeometry.js +7 -14
- package/geometries/BoxLineGeometry.mjs +45 -0
- package/geometries/ConvexGeometry.js +15 -24
- package/geometries/ConvexGeometry.mjs +29 -0
- package/geometries/DecalGeometry.js +108 -162
- package/geometries/DecalGeometry.mjs +184 -0
- package/geometries/LightningStrike.js +101 -294
- package/geometries/LightningStrike.mjs +547 -0
- package/geometries/ParametricGeometries.js +26 -76
- package/geometries/ParametricGeometries.mjs +129 -0
- package/geometries/ParametricGeometry.js +24 -48
- package/geometries/ParametricGeometry.mjs +63 -0
- package/geometries/RoundedBoxGeometry.js +33 -64
- package/geometries/RoundedBoxGeometry.mjs +91 -0
- package/geometries/TeapotGeometry.js +1434 -174
- package/geometries/TeapotGeometry.mjs +1557 -0
- package/geometries/TextGeometry.js +9 -17
- package/geometries/TextGeometry.mjs +23 -0
- package/helpers/LightProbeHelper.js +53 -21
- package/helpers/LightProbeHelper.mjs +72 -0
- package/helpers/PositionalAudioHelper.js +23 -30
- package/helpers/PositionalAudioHelper.mjs +68 -0
- package/helpers/RectAreaLightHelper.js +17 -33
- package/helpers/RectAreaLightHelper.mjs +44 -0
- package/helpers/VertexNormalsHelper.js +20 -41
- package/helpers/VertexNormalsHelper.mjs +54 -0
- package/helpers/VertexTangentsHelper.js +18 -36
- package/helpers/VertexTangentsHelper.mjs +45 -0
- package/index.d.ts +54 -0
- package/index.js +968 -333
- package/index.mjs +968 -0
- package/interactive/SelectionBox.js +31 -46
- package/interactive/SelectionBox.mjs +137 -0
- package/interactive/SelectionHelper.js +16 -21
- package/interactive/SelectionHelper.mjs +54 -0
- package/libs/MeshoptDecoder.js +147 -58
- package/libs/MeshoptDecoder.mjs +210 -0
- package/libs/MotionControllers.js +66 -208
- package/libs/MotionControllers.mjs +261 -0
- package/lights/LightProbeGenerator.js +40 -96
- package/lights/LightProbeGenerator.mjs +145 -0
- package/lights/RectAreaLightUniformsLib.js +32842 -9
- package/lights/RectAreaLightUniformsLib.mjs +32842 -0
- package/lines/Line2.js +9 -12
- package/lines/Line2.mjs +13 -0
- package/lines/LineGeometry.js +7 -19
- package/lines/LineGeometry.mjs +44 -0
- package/lines/LineMaterial.js +51 -89
- package/lines/LineMaterial.mjs +539 -0
- package/lines/LineSegments2.js +56 -165
- package/lines/LineSegments2.mjs +202 -0
- package/lines/LineSegmentsGeometry.js +29 -71
- package/lines/LineSegmentsGeometry.mjs +124 -0
- package/lines/Wireframe.js +15 -29
- package/lines/Wireframe.mjs +31 -0
- package/lines/WireframeGeometry2.js +8 -9
- package/lines/WireframeGeometry2.mjs +13 -0
- package/loaders/3DMLoader.js +234 -469
- package/loaders/3DMLoader.mjs +802 -0
- package/loaders/3MFLoader.js +340 -555
- package/loaders/3MFLoader.mjs +837 -0
- package/loaders/AMFLoader.js +114 -219
- package/loaders/AMFLoader.mjs +284 -0
- package/loaders/AssimpLoader.js +328 -725
- package/loaders/AssimpLoader.mjs +1396 -0
- package/loaders/BVHLoader.js +94 -200
- package/loaders/BVHLoader.mjs +207 -0
- package/loaders/BasisTextureLoader.js +229 -357
- package/loaders/BasisTextureLoader.mjs +474 -0
- package/loaders/ColladaLoader.js +932 -1522
- package/loaders/ColladaLoader.mjs +2403 -0
- package/loaders/DDSLoader.js +42 -108
- package/loaders/DDSLoader.mjs +148 -0
- package/loaders/DRACOLoader.js +103 -210
- package/loaders/DRACOLoader.mjs +340 -0
- package/loaders/EXRLoader.js +461 -809
- package/loaders/EXRLoader.mjs +1351 -0
- package/loaders/FBXLoader.js +842 -1397
- package/loaders/FBXLoader.mjs +2362 -0
- package/loaders/FontLoader.js +33 -66
- package/loaders/FontLoader.mjs +111 -0
- package/loaders/GCodeLoader.js +63 -111
- package/loaders/GCodeLoader.mjs +141 -0
- package/loaders/GLTFLoader.js +771 -1484
- package/loaders/GLTFLoader.mjs +2316 -0
- package/loaders/HDRCubeTextureLoader.js +45 -50
- package/loaders/HDRCubeTextureLoader.mjs +77 -0
- package/loaders/KMZLoader.js +42 -55
- package/loaders/KMZLoader.mjs +75 -0
- package/loaders/KTX2Loader.js +229 -362
- package/loaders/KTX2Loader.mjs +427 -0
- package/loaders/KTXLoader.js +37 -99
- package/loaders/KTXLoader.mjs +87 -0
- package/loaders/LDrawLoader.js +313 -746
- package/loaders/LDrawLoader.mjs +1409 -0
- package/loaders/LUT3dlLoader.js +50 -62
- package/loaders/LUT3dlLoader.mjs +100 -0
- package/loaders/LUTCubeLoader.js +45 -56
- package/loaders/LUTCubeLoader.mjs +104 -0
- package/loaders/LWOLoader.js +227 -339
- package/loaders/LWOLoader.mjs +625 -0
- package/loaders/LottieLoader.js +36 -38
- package/loaders/LottieLoader.mjs +47 -0
- package/loaders/MD2Loader.js +248 -91
- package/loaders/MD2Loader.mjs +359 -0
- package/loaders/MDDLoader.js +25 -45
- package/loaders/MDDLoader.mjs +58 -0
- package/loaders/MMDLoader.js +359 -795
- package/loaders/MMDLoader.mjs +998 -0
- package/loaders/MTLLoader.js +91 -201
- package/loaders/MTLLoader.mjs +280 -0
- package/loaders/NRRDLoader.js +182 -263
- package/loaders/NRRDLoader.mjs +401 -0
- package/loaders/NodeMaterialLoader.js +121 -14
- package/loaders/NodeMaterialLoader.mjs +146 -0
- package/loaders/OBJLoader.js +161 -283
- package/loaders/OBJLoader.mjs +487 -0
- package/loaders/PCDLoader.js +145 -164
- package/loaders/PCDLoader.mjs +248 -0
- package/loaders/PDBLoader.js +45 -63
- package/loaders/PDBLoader.mjs +246 -0
- package/loaders/PLYLoader.js +106 -203
- package/loaders/PLYLoader.mjs +317 -0
- package/loaders/PRWMLoader.js +73 -110
- package/loaders/PRWMLoader.mjs +160 -0
- package/loaders/PVRLoader.js +32 -93
- package/loaders/PVRLoader.mjs +131 -0
- package/loaders/RGBELoader.js +96 -233
- package/loaders/RGBELoader.mjs +244 -0
- package/loaders/RGBMLoader.js +344 -514
- package/loaders/RGBMLoader.mjs +998 -0
- package/loaders/STLLoader.js +59 -165
- package/loaders/STLLoader.mjs +190 -0
- package/loaders/SVGLoader.js +481 -851
- package/loaders/SVGLoader.mjs +1709 -0
- package/loaders/TDSLoader.js +137 -527
- package/loaders/TDSLoader.mjs +480 -0
- package/loaders/TGALoader.js +94 -205
- package/loaders/TGALoader.mjs +285 -0
- package/loaders/TTFLoader.js +58 -79
- package/loaders/TTFLoader.mjs +131 -0
- package/loaders/TiltLoader.js +129 -167
- package/loaders/TiltLoader.mjs +373 -0
- package/loaders/VOXLoader.js +320 -84
- package/loaders/VOXLoader.mjs +431 -0
- package/loaders/VRMLLoader.js +786 -1268
- package/loaders/VRMLLoader.mjs +2093 -0
- package/loaders/VRMLoader.js +23 -31
- package/loaders/VRMLoader.mjs +38 -0
- package/loaders/VTKLoader.js +219 -407
- package/loaders/VTKLoader.mjs +646 -0
- package/loaders/XLoader.js +1083 -1259
- package/loaders/XLoader.mjs +1258 -0
- package/loaders/XYZLoader.js +28 -34
- package/loaders/XYZLoader.mjs +60 -0
- package/loaders/lwo/IFFParser.js +238 -492
- package/loaders/lwo/IFFParser.mjs +697 -0
- package/loaders/lwo/LWO2Parser.js +176 -279
- package/loaders/lwo/LWO2Parser.mjs +327 -0
- package/loaders/lwo/LWO3Parser.js +160 -247
- package/loaders/lwo/LWO3Parser.mjs +298 -0
- package/math/Capsule.js +56 -43
- package/math/Capsule.mjs +100 -0
- package/math/ColorConverter.js +18 -32
- package/math/ColorConverter.mjs +51 -0
- package/math/ConvexHull.js +515 -739
- package/math/ConvexHull.mjs +574 -0
- package/math/ImprovedNoise.js +282 -32
- package/math/ImprovedNoise.mjs +302 -0
- package/math/Lut.js +51 -35
- package/math/Lut.mjs +135 -0
- package/math/MeshSurfaceSampler.js +25 -68
- package/math/MeshSurfaceSampler.mjs +107 -0
- package/math/OBB.js +91 -152
- package/math/OBB.mjs +235 -0
- package/math/Octree.js +76 -139
- package/math/Octree.mjs +278 -0
- package/math/SimplexNoise.js +217 -238
- package/math/SimplexNoise.mjs +425 -0
- package/misc/ConvexObjectBreaker.js +79 -185
- package/misc/ConvexObjectBreaker.mjs +292 -0
- package/misc/GPUComputationRenderer.js +69 -194
- package/misc/GPUComputationRenderer.mjs +171 -0
- package/misc/Gyroscope.js +16 -22
- package/misc/Gyroscope.mjs +35 -0
- package/misc/MD2Character.js +52 -74
- package/misc/MD2Character.mjs +162 -0
- package/misc/MD2CharacterComplex.js +112 -163
- package/misc/MD2CharacterComplex.mjs +328 -0
- package/misc/MorphAnimMesh.js +20 -28
- package/misc/MorphAnimMesh.mjs +40 -0
- package/misc/MorphBlendMesh.js +45 -69
- package/misc/MorphBlendMesh.mjs +179 -0
- package/misc/ProgressiveLightmap.js +70 -187
- package/misc/ProgressiveLightmap.mjs +166 -0
- package/misc/RollerCoaster.js +106 -135
- package/misc/RollerCoaster.mjs +346 -0
- package/misc/TubePainter.js +74 -92
- package/misc/TubePainter.mjs +123 -0
- package/misc/Volume.js +108 -270
- package/misc/Volume.mjs +244 -0
- package/misc/VolumeSlice.js +34 -122
- package/misc/VolumeSlice.mjs +106 -0
- package/misc/WebGL.js +37 -34
- package/misc/WebGL.mjs +74 -0
- package/modifiers/CurveModifier.js +46 -151
- package/modifiers/CurveModifier.mjs +182 -0
- package/modifiers/EdgeSplitModifier.js +46 -90
- package/modifiers/EdgeSplitModifier.mjs +162 -0
- package/modifiers/SimplifyModifier.js +77 -202
- package/modifiers/SimplifyModifier.mjs +282 -0
- package/modifiers/TessellateModifier.js +65 -90
- package/modifiers/TessellateModifier.mjs +206 -0
- package/nodes/Nodes.js +274 -140
- package/nodes/Nodes.mjs +400 -0
- package/nodes/ShaderNode.js +296 -196
- package/nodes/ShaderNode.mjs +408 -0
- package/nodes/accessors/BufferNode.js +4 -8
- package/nodes/accessors/BufferNode.mjs +15 -0
- package/nodes/accessors/CameraNode.js +20 -25
- package/nodes/accessors/CameraNode.mjs +44 -0
- package/nodes/accessors/CubeTextureNode.js +14 -26
- package/nodes/accessors/CubeTextureNode.mjs +42 -0
- package/nodes/accessors/MaterialNode.js +43 -53
- package/nodes/accessors/MaterialNode.mjs +71 -0
- package/nodes/accessors/MaterialReferenceNode.js +3 -6
- package/nodes/accessors/MaterialReferenceNode.mjs +14 -0
- package/nodes/accessors/ModelNode.js +3 -5
- package/nodes/accessors/ModelNode.mjs +9 -0
- package/nodes/accessors/ModelViewProjectionNode.js +14 -13
- package/nodes/accessors/ModelViewProjectionNode.mjs +24 -0
- package/nodes/accessors/NormalNode.js +40 -39
- package/nodes/accessors/NormalNode.mjs +62 -0
- package/nodes/accessors/Object3DNode.js +40 -50
- package/nodes/accessors/Object3DNode.mjs +76 -0
- package/nodes/accessors/PointUVNode.js +5 -9
- package/nodes/accessors/PointUVNode.mjs +13 -0
- package/nodes/accessors/PositionNode.js +42 -41
- package/nodes/accessors/PositionNode.mjs +65 -0
- package/nodes/accessors/ReferenceNode.js +10 -17
- package/nodes/accessors/ReferenceNode.mjs +37 -0
- package/nodes/accessors/ReflectNode.js +23 -26
- package/nodes/accessors/ReflectNode.mjs +43 -0
- package/nodes/accessors/SkinningNode.js +46 -48
- package/nodes/accessors/SkinningNode.mjs +58 -0
- package/nodes/accessors/TextureNode.js +14 -29
- package/nodes/accessors/TextureNode.mjs +54 -0
- package/nodes/accessors/UVNode.js +5 -11
- package/nodes/accessors/UVNode.mjs +23 -0
- package/nodes/core/ArrayUniformNode.js +3 -7
- package/nodes/core/ArrayUniformNode.mjs +14 -0
- package/nodes/core/AttributeNode.js +5 -12
- package/nodes/core/AttributeNode.mjs +30 -0
- package/nodes/core/BypassNode.js +5 -12
- package/nodes/core/BypassNode.mjs +22 -0
- package/nodes/core/CodeNode.js +4 -12
- package/nodes/core/CodeNode.mjs +28 -0
- package/nodes/core/ConstNode.js +3 -7
- package/nodes/core/ConstNode.mjs +14 -0
- package/nodes/core/ContextNode.js +3 -8
- package/nodes/core/ContextNode.mjs +22 -0
- package/nodes/core/ExpressionNode.js +5 -9
- package/nodes/core/ExpressionNode.mjs +19 -0
- package/nodes/core/FunctionCallNode.js +6 -15
- package/nodes/core/FunctionCallNode.mjs +37 -0
- package/nodes/core/FunctionNode.js +10 -25
- package/nodes/core/FunctionNode.mjs +56 -0
- package/nodes/core/InputNode.js +12 -23
- package/nodes/core/InputNode.mjs +38 -0
- package/nodes/core/Node.js +35 -75
- package/nodes/core/Node.mjs +139 -0
- package/nodes/core/NodeAttribute.js +2 -4
- package/nodes/core/NodeAttribute.mjs +10 -0
- package/nodes/core/NodeBuilder.js +110 -224
- package/nodes/core/NodeBuilder.mjs +395 -0
- package/nodes/core/NodeCode.js +4 -7
- package/nodes/core/NodeCode.mjs +11 -0
- package/nodes/core/NodeFrame.js +9 -12
- package/nodes/core/NodeFrame.mjs +35 -0
- package/nodes/core/NodeFunctionInput.js +3 -5
- package/nodes/core/NodeFunctionInput.mjs +13 -0
- package/nodes/core/NodeKeywords.js +5 -16
- package/nodes/core/NodeKeywords.mjs +44 -0
- package/nodes/core/NodeUniform.js +3 -7
- package/nodes/core/NodeUniform.mjs +18 -0
- package/nodes/core/NodeUtils.js +39 -43
- package/nodes/core/NodeUtils.mjs +57 -0
- package/nodes/core/NodeVar.js +2 -4
- package/nodes/core/NodeVar.mjs +10 -0
- package/nodes/core/NodeVary.js +2 -4
- package/nodes/core/NodeVary.mjs +10 -0
- package/nodes/core/PropertyNode.js +4 -10
- package/nodes/core/PropertyNode.mjs +21 -0
- package/nodes/core/TempNode.js +5 -11
- package/nodes/core/TempNode.mjs +25 -0
- package/nodes/core/UniformNode.js +4 -10
- package/nodes/core/UniformNode.mjs +23 -0
- package/nodes/core/VarNode.js +3 -11
- package/nodes/core/VarNode.mjs +31 -0
- package/nodes/core/VaryNode.js +6 -15
- package/nodes/core/VaryNode.mjs +30 -0
- package/nodes/core/constants.js +20 -7
- package/nodes/core/constants.mjs +24 -0
- package/nodes/display/ColorSpaceNode.js +34 -38
- package/nodes/display/ColorSpaceNode.mjs +63 -0
- package/nodes/display/NormalMapNode.js +35 -53
- package/nodes/display/NormalMapNode.mjs +54 -0
- package/nodes/fog/FogNode.js +5 -9
- package/nodes/fog/FogNode.mjs +15 -0
- package/nodes/fog/FogRangeNode.js +5 -9
- package/nodes/fog/FogRangeNode.mjs +17 -0
- package/nodes/functions/BSDFs.js +61 -118
- package/nodes/functions/BSDFs.mjs +64 -0
- package/nodes/lights/LightContextNode.js +14 -23
- package/nodes/lights/LightContextNode.mjs +35 -0
- package/nodes/lights/LightNode.js +27 -31
- package/nodes/lights/LightNode.mjs +58 -0
- package/nodes/lights/LightsNode.js +9 -28
- package/nodes/lights/LightsNode.mjs +59 -0
- package/nodes/loaders/NodeLoader.js +27 -42
- package/nodes/loaders/NodeLoader.mjs +66 -0
- package/nodes/loaders/NodeMaterialLoader.js +4 -10
- package/nodes/loaders/NodeMaterialLoader.mjs +24 -0
- package/nodes/loaders/NodeObjectLoader.js +9 -19
- package/nodes/loaders/NodeObjectLoader.mjs +40 -0
- package/nodes/materials/LineBasicNodeMaterial.js +5 -10
- package/nodes/materials/LineBasicNodeMaterial.mjs +27 -0
- package/nodes/materials/Materials.js +14 -17
- package/nodes/materials/Materials.mjs +28 -0
- package/nodes/materials/MeshBasicNodeMaterial.js +5 -10
- package/nodes/materials/MeshBasicNodeMaterial.mjs +28 -0
- package/nodes/materials/MeshStandardNodeMaterial.js +5 -8
- package/nodes/materials/MeshStandardNodeMaterial.mjs +41 -0
- package/nodes/materials/NodeMaterial.js +20 -36
- package/nodes/materials/NodeMaterial.mjs +64 -0
- package/nodes/materials/PointsNodeMaterial.js +5 -10
- package/nodes/materials/PointsNodeMaterial.mjs +30 -0
- package/nodes/math/CondNode.js +11 -23
- package/nodes/math/CondNode.mjs +38 -0
- package/nodes/math/MathNode.js +98 -142
- package/nodes/math/MathNode.mjs +163 -0
- package/nodes/math/OperatorNode.js +24 -46
- package/nodes/math/OperatorNode.mjs +103 -0
- package/nodes/procedural/CheckerNode.js +13 -19
- package/nodes/procedural/CheckerNode.mjs +21 -0
- package/nodes/utils/ArrayElementNode.js +4 -8
- package/nodes/utils/ArrayElementNode.mjs +19 -0
- package/nodes/utils/ConvertNode.js +3 -8
- package/nodes/utils/ConvertNode.mjs +25 -0
- package/nodes/utils/JoinNode.js +7 -11
- package/nodes/utils/JoinNode.mjs +26 -0
- package/nodes/utils/MatcapUVNode.js +8 -11
- package/nodes/utils/MatcapUVNode.mjs +16 -0
- package/nodes/utils/OscNode.js +27 -33
- package/nodes/utils/OscNode.mjs +50 -0
- package/nodes/utils/SplitNode.js +6 -20
- package/nodes/utils/SplitNode.mjs +45 -0
- package/nodes/utils/SpriteSheetUVNode.js +23 -23
- package/nodes/utils/SpriteSheetUVNode.mjs +40 -0
- package/nodes/utils/TimerNode.js +20 -24
- package/nodes/utils/TimerNode.mjs +44 -0
- package/objects/GroundProjectedEnv.js +22 -37
- package/objects/GroundProjectedEnv.mjs +130 -0
- package/objects/Lensflare.js +86 -156
- package/objects/Lensflare.mjs +262 -0
- package/objects/LightningStorm.js +38 -102
- package/objects/LightningStorm.mjs +110 -0
- package/objects/MarchingCubes.js +150 -303
- package/objects/MarchingCubes.mjs +457 -0
- package/objects/Reflector.js +50 -72
- package/objects/Reflector.mjs +166 -0
- package/objects/ReflectorForSSRPass.js +80 -131
- package/objects/ReflectorForSSRPass.mjs +247 -0
- package/objects/ReflectorRTT.js +6 -7
- package/objects/ReflectorRTT.mjs +10 -0
- package/objects/Refractor.js +64 -106
- package/objects/Refractor.mjs +178 -0
- package/objects/ShadowMesh.js +8 -17
- package/objects/ShadowMesh.mjs +41 -0
- package/objects/Sky.js +119 -80
- package/objects/Sky.mjs +124 -0
- package/objects/Water.js +83 -127
- package/objects/Water.mjs +235 -0
- package/objects/Water2.js +72 -108
- package/objects/Water2.mjs +252 -0
- package/offscreen/jank.js +10 -14
- package/offscreen/jank.mjs +27 -0
- package/offscreen/offscreen.js +4 -5
- package/offscreen/offscreen.mjs +5 -0
- package/offscreen/scene.js +45 -48
- package/offscreen/scene.mjs +52 -0
- package/package.json +3 -3
- package/physics/AmmoPhysics.js +30 -71
- package/physics/AmmoPhysics.mjs +165 -0
- package/postprocessing/AdaptiveToneMappingPass.js +97 -123
- package/postprocessing/AdaptiveToneMappingPass.mjs +221 -0
- package/postprocessing/AfterimagePass.js +28 -49
- package/postprocessing/AfterimagePass.mjs +55 -0
- package/postprocessing/BloomPass.js +43 -69
- package/postprocessing/BloomPass.mjs +90 -0
- package/postprocessing/BokehPass.js +39 -69
- package/postprocessing/BokehPass.mjs +76 -0
- package/postprocessing/ClearPass.js +10 -25
- package/postprocessing/ClearPass.mjs +27 -0
- package/postprocessing/CubeTexturePass.js +28 -27
- package/postprocessing/CubeTexturePass.mjs +49 -0
- package/postprocessing/DotScreenPass.js +24 -32
- package/postprocessing/DotScreenPass.mjs +40 -0
- package/postprocessing/EffectComposer.js +39 -86
- package/postprocessing/EffectComposer.mjs +139 -0
- package/postprocessing/FilmPass.js +25 -30
- package/postprocessing/FilmPass.mjs +42 -0
- package/postprocessing/GlitchPass.js +38 -61
- package/postprocessing/GlitchPass.mjs +75 -0
- package/postprocessing/HalftonePass.js +19 -39
- package/postprocessing/HalftonePass.mjs +44 -0
- package/postprocessing/LUTPass.js +13 -38
- package/postprocessing/LUTPass.mjs +136 -0
- package/postprocessing/MaskPass.js +19 -38
- package/postprocessing/MaskPass.mjs +60 -0
- package/postprocessing/OutlinePass.js +135 -277
- package/postprocessing/OutlinePass.mjs +438 -0
- package/postprocessing/Pass.js +20 -44
- package/postprocessing/Pass.mjs +37 -0
- package/postprocessing/RenderPass.js +13 -36
- package/postprocessing/RenderPass.mjs +48 -0
- package/postprocessing/RenderPixelatedPass.js +44 -58
- package/postprocessing/RenderPixelatedPass.mjs +199 -0
- package/postprocessing/SAOPass.js +154 -189
- package/postprocessing/SAOPass.mjs +282 -0
- package/postprocessing/SMAAPass.js +64 -84
- package/postprocessing/SMAAPass.mjs +112 -0
- package/postprocessing/SSAARenderPass.js +121 -69
- package/postprocessing/SSAARenderPass.mjs +170 -0
- package/postprocessing/SSAOPass.js +123 -172
- package/postprocessing/SSAOPass.mjs +265 -0
- package/postprocessing/SSRPass.js +211 -280
- package/postprocessing/SSRPass.mjs +432 -0
- package/postprocessing/SavePass.js +20 -25
- package/postprocessing/SavePass.mjs +37 -0
- package/postprocessing/ShaderPass.js +14 -30
- package/postprocessing/ShaderPass.mjs +39 -0
- package/postprocessing/TAARenderPass.js +42 -61
- package/postprocessing/TAARenderPass.mjs +88 -0
- package/postprocessing/TexturePass.js +21 -22
- package/postprocessing/TexturePass.mjs +39 -0
- package/postprocessing/UnrealBloomPass.js +105 -213
- package/postprocessing/UnrealBloomPass.mjs +220 -0
- package/renderers/CSS2DRenderer.js +44 -56
- package/renderers/CSS2DRenderer.mjs +112 -0
- package/renderers/CSS3DRenderer.js +53 -86
- package/renderers/CSS3DRenderer.mjs +133 -0
- package/renderers/Projector.js +107 -274
- package/renderers/Projector.mjs +511 -0
- package/renderers/SVGRenderer.js +72 -182
- package/renderers/SVGRenderer.mjs +306 -0
- package/renderers/nodes/accessors/CameraNode.js +29 -40
- package/renderers/nodes/accessors/CameraNode.mjs +63 -0
- package/renderers/nodes/accessors/ModelNode.js +28 -37
- package/renderers/nodes/accessors/ModelNode.mjs +61 -0
- package/renderers/nodes/accessors/ModelViewProjectionNode.js +10 -23
- package/renderers/nodes/accessors/ModelViewProjectionNode.mjs +21 -0
- package/renderers/nodes/accessors/NormalNode.js +35 -45
- package/renderers/nodes/accessors/NormalNode.mjs +61 -0
- package/renderers/nodes/accessors/PositionNode.js +18 -19
- package/renderers/nodes/accessors/PositionNode.mjs +30 -0
- package/renderers/nodes/accessors/UVNode.js +5 -10
- package/renderers/nodes/accessors/UVNode.mjs +13 -0
- package/renderers/nodes/core/AttributeNode.js +5 -14
- package/renderers/nodes/core/AttributeNode.mjs +35 -0
- package/renderers/nodes/core/InputNode.js +4 -14
- package/renderers/nodes/core/InputNode.mjs +31 -0
- package/renderers/nodes/core/Node.js +7 -17
- package/renderers/nodes/core/Node.mjs +34 -0
- package/renderers/nodes/core/NodeAttribute.js +3 -6
- package/renderers/nodes/core/NodeAttribute.mjs +10 -0
- package/renderers/nodes/core/NodeBuilder.js +87 -154
- package/renderers/nodes/core/NodeBuilder.mjs +243 -0
- package/renderers/nodes/core/NodeFrame.js +9 -12
- package/renderers/nodes/core/NodeFrame.mjs +35 -0
- package/renderers/nodes/core/NodeSlot.js +2 -3
- package/renderers/nodes/core/NodeSlot.mjs +10 -0
- package/renderers/nodes/core/NodeUniform.js +4 -9
- package/renderers/nodes/core/NodeUniform.mjs +18 -0
- package/renderers/nodes/core/NodeVary.js +4 -7
- package/renderers/nodes/core/NodeVary.mjs +11 -0
- package/renderers/nodes/core/VaryNode.js +6 -12
- package/renderers/nodes/core/VaryNode.mjs +22 -0
- package/renderers/nodes/core/constants.js +16 -13
- package/renderers/nodes/core/constants.mjs +22 -0
- package/renderers/nodes/inputs/ColorNode.js +5 -11
- package/renderers/nodes/inputs/ColorNode.mjs +11 -0
- package/renderers/nodes/inputs/FloatNode.js +5 -11
- package/renderers/nodes/inputs/FloatNode.mjs +11 -0
- package/renderers/nodes/inputs/Matrix3Node.js +7 -13
- package/renderers/nodes/inputs/Matrix3Node.mjs +12 -0
- package/renderers/nodes/inputs/Matrix4Node.js +7 -13
- package/renderers/nodes/inputs/Matrix4Node.mjs +12 -0
- package/renderers/nodes/inputs/TextureNode.js +7 -15
- package/renderers/nodes/inputs/TextureNode.mjs +20 -0
- package/renderers/nodes/inputs/Vector2Node.js +5 -11
- package/renderers/nodes/inputs/Vector2Node.mjs +11 -0
- package/renderers/nodes/inputs/Vector3Node.js +7 -13
- package/renderers/nodes/inputs/Vector3Node.mjs +12 -0
- package/renderers/nodes/inputs/Vector4Node.js +7 -13
- package/renderers/nodes/inputs/Vector4Node.mjs +12 -0
- package/renderers/nodes/math/MathNode.js +20 -30
- package/renderers/nodes/math/MathNode.mjs +55 -0
- package/renderers/nodes/math/OperatorNode.js +4 -20
- package/renderers/nodes/math/OperatorNode.mjs +42 -0
- package/renderers/nodes/utils/SwitchNode.js +4 -9
- package/renderers/nodes/utils/SwitchNode.mjs +20 -0
- package/renderers/nodes/utils/TimerNode.js +5 -10
- package/renderers/nodes/utils/TimerNode.mjs +14 -0
- package/renderers/webgpu/WebGPU.js +14 -16
- package/renderers/webgpu/WebGPU.mjs +24 -0
- package/renderers/webgpu/WebGPUAttributes.js +16 -23
- package/renderers/webgpu/WebGPUAttributes.mjs +69 -0
- package/renderers/webgpu/WebGPUBackground.js +13 -30
- package/renderers/webgpu/WebGPUBackground.mjs +61 -0
- package/renderers/webgpu/WebGPUBinding.js +4 -7
- package/renderers/webgpu/WebGPUBinding.mjs +14 -0
- package/renderers/webgpu/WebGPUBindings.js +21 -57
- package/renderers/webgpu/WebGPUBindings.mjs +155 -0
- package/renderers/webgpu/WebGPUComputePipelines.js +14 -25
- package/renderers/webgpu/WebGPUComputePipelines.mjs +44 -0
- package/renderers/webgpu/WebGPUGeometries.js +5 -15
- package/renderers/webgpu/WebGPUGeometries.mjs +41 -0
- package/renderers/webgpu/WebGPUInfo.js +3 -8
- package/renderers/webgpu/WebGPUInfo.mjs +46 -0
- package/renderers/webgpu/WebGPUObjects.js +5 -10
- package/renderers/webgpu/WebGPUObjects.mjs +25 -0
- package/renderers/webgpu/WebGPUProperties.js +5 -11
- package/renderers/webgpu/WebGPUProperties.mjs +22 -0
- package/renderers/webgpu/WebGPURenderLists.js +20 -36
- package/renderers/webgpu/WebGPURenderLists.mjs +119 -0
- package/renderers/webgpu/WebGPURenderPipelines.js +260 -387
- package/renderers/webgpu/WebGPURenderPipelines.mjs +545 -0
- package/renderers/webgpu/WebGPURenderer.js +124 -262
- package/renderers/webgpu/WebGPURenderer.mjs +574 -0
- package/renderers/webgpu/WebGPUSampledTexture.js +18 -31
- package/renderers/webgpu/WebGPUSampledTexture.mjs +40 -0
- package/renderers/webgpu/WebGPUSampler.js +7 -12
- package/renderers/webgpu/WebGPUSampler.mjs +15 -0
- package/renderers/webgpu/WebGPUStorageBuffer.js +7 -12
- package/renderers/webgpu/WebGPUStorageBuffer.mjs +15 -0
- package/renderers/webgpu/WebGPUTextureRenderer.js +5 -11
- package/renderers/webgpu/WebGPUTextureRenderer.mjs +23 -0
- package/renderers/webgpu/WebGPUTextureUtils.js +29 -40
- package/renderers/webgpu/WebGPUTextureUtils.mjs +98 -0
- package/renderers/webgpu/WebGPUTextures.js +186 -333
- package/renderers/webgpu/WebGPUTextures.mjs +484 -0
- package/renderers/webgpu/WebGPUUniform.js +25 -51
- package/renderers/webgpu/WebGPUUniform.mjs +81 -0
- package/renderers/webgpu/WebGPUUniformsGroup.js +32 -72
- package/renderers/webgpu/WebGPUUniformsGroup.mjs +176 -0
- package/renderers/webgpu/constants.js +190 -181
- package/renderers/webgpu/constants.mjs +230 -0
- package/renderers/webgpu/nodes/ShaderLib.js +2 -2
- package/renderers/webgpu/nodes/ShaderLib.mjs +42 -0
- package/renderers/webgpu/nodes/WebGPUNodeBuilder.js +53 -124
- package/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +165 -0
- package/renderers/webgpu/nodes/WebGPUNodeUniform.js +17 -31
- package/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +73 -0
- package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +8 -9
- package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +15 -0
- package/renderers/webgpu/nodes/WebGPUNodes.js +7 -45
- package/renderers/webgpu/nodes/WebGPUNodes.mjs +40 -0
- package/shaders/ACESFilmicToneMappingShader.js +44 -24
- package/shaders/ACESFilmicToneMappingShader.mjs +48 -0
- package/shaders/AfterimageShader.js +28 -18
- package/shaders/AfterimageShader.mjs +32 -0
- package/shaders/BasicShader.js +9 -7
- package/shaders/BasicShader.mjs +12 -0
- package/shaders/BleachBypassShader.js +31 -15
- package/shaders/BleachBypassShader.mjs +35 -0
- package/shaders/BlendShader.js +26 -19
- package/shaders/BlendShader.mjs +30 -0
- package/shaders/BokehShader.js +98 -36
- package/shaders/BokehShader.mjs +106 -0
- package/shaders/BokehShader2.js +261 -90
- package/shaders/BokehShader2.mjs +269 -0
- package/shaders/BrightnessContrastShader.js +28 -19
- package/shaders/BrightnessContrastShader.mjs +32 -0
- package/shaders/ColorCorrectionShader.js +26 -22
- package/shaders/ColorCorrectionShader.mjs +30 -0
- package/shaders/ColorifyShader.js +24 -16
- package/shaders/ColorifyShader.mjs +28 -0
- package/shaders/ConvolutionShader.js +40 -36
- package/shaders/ConvolutionShader.mjs +55 -0
- package/shaders/CopyShader.js +21 -13
- package/shaders/CopyShader.mjs +25 -0
- package/shaders/DOFMipMapShader.js +28 -21
- package/shaders/DOFMipMapShader.mjs +32 -0
- package/shaders/DepthLimitedBlurShader.js +85 -40
- package/shaders/DepthLimitedBlurShader.mjs +114 -0
- package/shaders/DigitalGlitch.js +74 -46
- package/shaders/DigitalGlitch.mjs +78 -0
- package/shaders/DotScreenShader.js +35 -27
- package/shaders/DotScreenShader.mjs +39 -0
- package/shaders/FXAAShader.js +1094 -19
- package/shaders/FXAAShader.mjs +1098 -0
- package/shaders/FilmShader.js +38 -52
- package/shaders/FilmShader.mjs +42 -0
- package/shaders/FocusShader.js +51 -24
- package/shaders/FocusShader.mjs +55 -0
- package/shaders/FreiChenShader.js +57 -24
- package/shaders/FreiChenShader.mjs +61 -0
- package/shaders/FresnelShader.js +43 -22
- package/shaders/FresnelShader.mjs +47 -0
- package/shaders/GammaCorrectionShader.js +19 -11
- package/shaders/GammaCorrectionShader.mjs +23 -0
- package/shaders/GodRaysShader.js +103 -94
- package/shaders/GodRaysShader.mjs +146 -0
- package/shaders/HalftoneShader.js +208 -65
- package/shaders/HalftoneShader.mjs +212 -0
- package/shaders/HorizontalBlurShader.js +7 -23
- package/shaders/HorizontalBlurShader.mjs +43 -0
- package/shaders/HorizontalTiltShiftShader.js +33 -21
- package/shaders/HorizontalTiltShiftShader.mjs +37 -0
- package/shaders/HueSaturationShader.js +37 -21
- package/shaders/HueSaturationShader.mjs +41 -0
- package/shaders/KaleidoShader.js +30 -22
- package/shaders/KaleidoShader.mjs +34 -0
- package/shaders/LuminosityHighPassShader.js +33 -27
- package/shaders/LuminosityHighPassShader.mjs +37 -0
- package/shaders/LuminosityShader.js +21 -11
- package/shaders/LuminosityShader.mjs +25 -0
- package/shaders/MirrorShader.js +31 -16
- package/shaders/MirrorShader.mjs +35 -0
- package/shaders/NormalMapShader.js +27 -23
- package/shaders/NormalMapShader.mjs +31 -0
- package/shaders/ParallaxShader.js +107 -48
- package/shaders/ParallaxShader.mjs +113 -0
- package/shaders/PixelShader.js +24 -16
- package/shaders/PixelShader.mjs +28 -0
- package/shaders/RGBShiftShader.js +26 -22
- package/shaders/RGBShiftShader.mjs +30 -0
- package/shaders/SAOShader.js +132 -48
- package/shaders/SAOShader.mjs +144 -0
- package/shaders/SMAAShader.js +256 -135
- package/shaders/SMAAShader.mjs +272 -0
- package/shaders/SSAOShader.js +153 -81
- package/shaders/SSAOShader.mjs +172 -0
- package/shaders/SSRShader.js +32 -87
- package/shaders/SSRShader.mjs +324 -0
- package/shaders/SepiaShader.js +25 -15
- package/shaders/SepiaShader.mjs +29 -0
- package/shaders/SobelOperatorShader.js +40 -29
- package/shaders/SobelOperatorShader.mjs +44 -0
- package/shaders/SubsurfaceScatteringShader.js +53 -39
- package/shaders/SubsurfaceScatteringShader.mjs +59 -0
- package/shaders/TechnicolorShader.js +20 -13
- package/shaders/TechnicolorShader.mjs +24 -0
- package/shaders/ToneMapShader.js +44 -28
- package/shaders/ToneMapShader.mjs +48 -0
- package/shaders/ToonShader.js +172 -96
- package/shaders/ToonShader.mjs +188 -0
- package/shaders/TriangleBlurShader.js +32 -23
- package/shaders/TriangleBlurShader.mjs +36 -0
- package/shaders/UnpackDepthRGBAShader.js +22 -14
- package/shaders/UnpackDepthRGBAShader.mjs +26 -0
- package/shaders/VerticalBlurShader.js +7 -23
- package/shaders/VerticalBlurShader.mjs +44 -0
- package/shaders/VerticalTiltShiftShader.js +33 -21
- package/shaders/VerticalTiltShiftShader.mjs +37 -0
- package/shaders/VignetteShader.js +24 -28
- package/shaders/VignetteShader.mjs +28 -0
- package/shaders/VolumeShader.js +174 -77
- package/shaders/VolumeShader.mjs +178 -0
- package/shaders/WaterRefractionShader.js +38 -6
- package/shaders/WaterRefractionShader.mjs +57 -0
- package/shaders/types.js +1 -1
- package/{custom.d.js → shaders/types.mjs} +0 -0
- package/textures/FlakesTexture.js +8 -10
- package/textures/FlakesTexture.mjs +30 -0
- package/types/helpers.js +3 -2
- package/types/helpers.mjs +4 -0
- package/utils/BufferGeometryUtils.js +251 -325
- package/utils/BufferGeometryUtils.mjs +570 -0
- package/utils/GeometryCompressionUtils.js +241 -239
- package/utils/GeometryCompressionUtils.mjs +547 -0
- package/utils/GeometryUtils.js +41 -94
- package/utils/GeometryUtils.mjs +108 -0
- package/utils/RoughnessMipmapper.js +38 -82
- package/utils/RoughnessMipmapper.mjs +213 -0
- package/utils/SceneUtils.js +15 -20
- package/utils/SceneUtils.mjs +36 -0
- package/utils/ShadowMapViewer.js +49 -95
- package/utils/ShadowMapViewer.mjs +114 -0
- package/utils/SkeletonUtils.js +74 -165
- package/utils/SkeletonUtils.mjs +292 -0
- package/utils/UVsDebug.js +32 -62
- package/utils/UVsDebug.mjs +85 -0
- package/utils/WorkerPool.js +13 -33
- package/utils/WorkerPool.mjs +62 -0
- package/webxr/ARButton.js +72 -98
- package/webxr/ARButton.mjs +119 -0
- package/webxr/OculusHandModel.js +18 -37
- package/webxr/OculusHandModel.mjs +71 -0
- package/webxr/OculusHandPointerModel.js +58 -80
- package/webxr/OculusHandPointerModel.mjs +207 -0
- package/webxr/Text2D.js +37 -19
- package/webxr/Text2D.mjs +31 -0
- package/webxr/VRButton.js +59 -90
- package/webxr/VRButton.mjs +105 -0
- package/webxr/XRControllerModelFactory.js +58 -116
- package/webxr/XRControllerModelFactory.mjs +146 -0
- package/webxr/XREstimatedLight.js +39 -66
- package/webxr/XREstimatedLight.mjs +126 -0
- package/webxr/XRHandMeshModel.js +40 -29
- package/webxr/XRHandMeshModel.mjs +73 -0
- package/webxr/XRHandModelFactory.js +28 -31
- package/webxr/XRHandModelFactory.mjs +61 -0
- package/webxr/XRHandPrimitiveModel.js +41 -27
- package/webxr/XRHandPrimitiveModel.mjs +68 -0
- package/BufferGeometryUtils-1a7a235c.js +0 -655
- package/BufferGeometryUtils-971dfde3.js +0 -1
- package/Nodes-4f766d71.js +0 -471
- package/Nodes-9aa16d74.js +0 -1
- package/animation/AnimationClipCreator.cjs.js +0 -1
- package/animation/CCDIKSolver.cjs.js +0 -1
- package/animation/MMDAnimationHelper.cjs.js +0 -1
- package/animation/MMDPhysics.cjs.js +0 -1
- package/cameras/CinematicCamera.cjs.js +0 -1
- package/controls/ArcballControls.cjs.js +0 -1
- package/controls/DeviceOrientationControls.cjs.js +0 -1
- package/controls/DragControls.cjs.js +0 -1
- package/controls/FirstPersonControls.cjs.js +0 -1
- package/controls/FlyControls.cjs.js +0 -1
- package/controls/OrbitControls.cjs.js +0 -1
- package/controls/PointerLockControls.cjs.js +0 -1
- package/controls/TrackballControls.cjs.js +0 -1
- package/controls/TransformControls.cjs.js +0 -1
- package/controls/experimental/CameraControls.cjs.js +0 -1
- package/csm/CSM.cjs.js +0 -1
- package/csm/CSMFrustum.cjs.js +0 -1
- package/csm/CSMHelper.cjs.js +0 -1
- package/csm/CSMShader.cjs.js +0 -1
- package/curves/CurveExtras.cjs.js +0 -1
- package/curves/NURBSCurve.cjs.js +0 -1
- package/curves/NURBSSurface.cjs.js +0 -1
- package/curves/NURBSUtils.cjs.js +0 -1
- package/custom.d.cjs.js +0 -1
- package/deprecated/Geometry.cjs.js +0 -1
- package/effects/AnaglyphEffect.cjs.js +0 -1
- package/effects/AsciiEffect.cjs.js +0 -1
- package/effects/OutlineEffect.cjs.js +0 -1
- package/effects/ParallaxBarrierEffect.cjs.js +0 -1
- package/effects/PeppersGhostEffect.cjs.js +0 -1
- package/effects/StereoEffect.cjs.js +0 -1
- package/environments/RoomEnvironment.cjs.js +0 -1
- package/exporters/ColladaExporter.cjs.js +0 -1
- package/exporters/DRACOExporter.cjs.js +0 -1
- package/exporters/GLTFExporter.cjs.js +0 -1
- package/exporters/MMDExporter.cjs.js +0 -1
- package/exporters/OBJExporter.cjs.js +0 -1
- package/exporters/PLYExporter.cjs.js +0 -1
- package/exporters/STLExporter.cjs.js +0 -1
- package/exporters/USDZExporter.cjs.js +0 -1
- package/geometries/BoxLineGeometry.cjs.js +0 -1
- package/geometries/ConvexGeometry.cjs.js +0 -1
- package/geometries/DecalGeometry.cjs.js +0 -1
- package/geometries/LightningStrike.cjs.js +0 -1
- package/geometries/ParametricGeometries.cjs.js +0 -1
- package/geometries/ParametricGeometry.cjs.js +0 -1
- package/geometries/RoundedBoxGeometry.cjs.js +0 -1
- package/geometries/TeapotGeometry.cjs.js +0 -1
- package/geometries/TextGeometry.cjs.js +0 -1
- package/helpers/LightProbeHelper.cjs.js +0 -1
- package/helpers/PositionalAudioHelper.cjs.js +0 -1
- package/helpers/RectAreaLightHelper.cjs.js +0 -1
- package/helpers/VertexNormalsHelper.cjs.js +0 -1
- package/helpers/VertexTangentsHelper.cjs.js +0 -1
- package/index.cjs.js +0 -1
- package/interactive/InteractiveGroup.cjs.js +0 -1
- package/interactive/InteractiveGroup.d.ts +0 -5
- package/interactive/InteractiveGroup.js +0 -87
- package/interactive/SelectionBox.cjs.js +0 -1
- package/interactive/SelectionHelper.cjs.js +0 -1
- package/libs/MeshoptDecoder.cjs.js +0 -1
- package/libs/MotionControllers.cjs.js +0 -1
- package/lights/LightProbeGenerator.cjs.js +0 -1
- package/lights/RectAreaLightUniformsLib.cjs.js +0 -1
- package/lines/Line2.cjs.js +0 -1
- package/lines/LineGeometry.cjs.js +0 -1
- package/lines/LineMaterial.cjs.js +0 -1
- package/lines/LineSegments2.cjs.js +0 -1
- package/lines/LineSegmentsGeometry.cjs.js +0 -1
- package/lines/Wireframe.cjs.js +0 -1
- package/lines/WireframeGeometry2.cjs.js +0 -1
- package/loaders/3DMLoader.cjs.js +0 -1
- package/loaders/3MFLoader.cjs.js +0 -1
- package/loaders/AMFLoader.cjs.js +0 -1
- package/loaders/AssimpLoader.cjs.js +0 -1
- package/loaders/BVHLoader.cjs.js +0 -1
- package/loaders/BasisTextureLoader.cjs.js +0 -1
- package/loaders/ColladaLoader.cjs.js +0 -1
- package/loaders/DDSLoader.cjs.js +0 -1
- package/loaders/DRACOLoader.cjs.js +0 -1
- package/loaders/EXRLoader.cjs.js +0 -1
- package/loaders/FBXLoader.cjs.js +0 -1
- package/loaders/FontLoader.cjs.js +0 -1
- package/loaders/GCodeLoader.cjs.js +0 -1
- package/loaders/GLTFLoader.cjs.js +0 -1
- package/loaders/HDRCubeTextureLoader.cjs.js +0 -1
- package/loaders/KMZLoader.cjs.js +0 -1
- package/loaders/KTX2Loader.cjs.js +0 -1
- package/loaders/KTXLoader.cjs.js +0 -1
- package/loaders/LDrawLoader.cjs.js +0 -1
- package/loaders/LUT3dlLoader.cjs.js +0 -1
- package/loaders/LUTCubeLoader.cjs.js +0 -1
- package/loaders/LWOLoader.cjs.js +0 -1
- package/loaders/LottieLoader.cjs.js +0 -1
- package/loaders/MD2Loader.cjs.js +0 -1
- package/loaders/MDDLoader.cjs.js +0 -1
- package/loaders/MMDLoader.cjs.js +0 -1
- package/loaders/MTLLoader.cjs.js +0 -1
- package/loaders/NRRDLoader.cjs.js +0 -1
- package/loaders/NodeMaterialLoader.cjs.js +0 -1
- package/loaders/OBJLoader.cjs.js +0 -1
- package/loaders/PCDLoader.cjs.js +0 -1
- package/loaders/PDBLoader.cjs.js +0 -1
- package/loaders/PLYLoader.cjs.js +0 -1
- package/loaders/PRWMLoader.cjs.js +0 -1
- package/loaders/PVRLoader.cjs.js +0 -1
- package/loaders/RGBELoader.cjs.js +0 -1
- package/loaders/RGBMLoader.cjs.js +0 -1
- package/loaders/STLLoader.cjs.js +0 -1
- package/loaders/SVGLoader.cjs.js +0 -1
- package/loaders/TDSLoader.cjs.js +0 -1
- package/loaders/TGALoader.cjs.js +0 -1
- package/loaders/TTFLoader.cjs.js +0 -1
- package/loaders/TiltLoader.cjs.js +0 -1
- package/loaders/VOXLoader.cjs.js +0 -1
- package/loaders/VRMLLoader.cjs.js +0 -1
- package/loaders/VRMLoader.cjs.js +0 -1
- package/loaders/VTKLoader.cjs.js +0 -1
- package/loaders/XLoader.cjs.js +0 -1
- package/loaders/XYZLoader.cjs.js +0 -1
- package/loaders/lwo/IFFParser.cjs.js +0 -1
- package/loaders/lwo/LWO2Parser.cjs.js +0 -1
- package/loaders/lwo/LWO3Parser.cjs.js +0 -1
- package/math/Capsule.cjs.js +0 -1
- package/math/ColorConverter.cjs.js +0 -1
- package/math/ConvexHull.cjs.js +0 -1
- package/math/ImprovedNoise.cjs.js +0 -1
- package/math/Lut.cjs.js +0 -1
- package/math/MeshSurfaceSampler.cjs.js +0 -1
- package/math/OBB.cjs.js +0 -1
- package/math/Octree.cjs.js +0 -1
- package/math/SimplexNoise.cjs.js +0 -1
- package/misc/ConvexObjectBreaker.cjs.js +0 -1
- package/misc/GPUComputationRenderer.cjs.js +0 -1
- package/misc/Gyroscope.cjs.js +0 -1
- package/misc/MD2Character.cjs.js +0 -1
- package/misc/MD2CharacterComplex.cjs.js +0 -1
- package/misc/MorphAnimMesh.cjs.js +0 -1
- package/misc/MorphBlendMesh.cjs.js +0 -1
- package/misc/ProgressiveLightmap.cjs.js +0 -1
- package/misc/RollerCoaster.cjs.js +0 -1
- package/misc/TubePainter.cjs.js +0 -1
- package/misc/Volume.cjs.js +0 -1
- package/misc/VolumeSlice.cjs.js +0 -1
- package/misc/WebGL.cjs.js +0 -1
- package/modifiers/CurveModifier.cjs.js +0 -1
- package/modifiers/EdgeSplitModifier.cjs.js +0 -1
- package/modifiers/SimplifyModifier.cjs.js +0 -1
- package/modifiers/TessellateModifier.cjs.js +0 -1
- package/nodes/Nodes.cjs.js +0 -1
- package/nodes/ShaderNode.cjs.js +0 -1
- package/nodes/accessors/BufferNode.cjs.js +0 -1
- package/nodes/accessors/CameraNode.cjs.js +0 -1
- package/nodes/accessors/CubeTextureNode.cjs.js +0 -1
- package/nodes/accessors/MaterialNode.cjs.js +0 -1
- package/nodes/accessors/MaterialReferenceNode.cjs.js +0 -1
- package/nodes/accessors/ModelNode.cjs.js +0 -1
- package/nodes/accessors/ModelViewProjectionNode.cjs.js +0 -1
- package/nodes/accessors/NormalNode.cjs.js +0 -1
- package/nodes/accessors/Object3DNode.cjs.js +0 -1
- package/nodes/accessors/PointUVNode.cjs.js +0 -1
- package/nodes/accessors/PositionNode.cjs.js +0 -1
- package/nodes/accessors/ReferenceNode.cjs.js +0 -1
- package/nodes/accessors/ReflectNode.cjs.js +0 -1
- package/nodes/accessors/SkinningNode.cjs.js +0 -1
- package/nodes/accessors/TextureNode.cjs.js +0 -1
- package/nodes/accessors/UVNode.cjs.js +0 -1
- package/nodes/core/ArrayUniformNode.cjs.js +0 -1
- package/nodes/core/AttributeNode.cjs.js +0 -1
- package/nodes/core/BypassNode.cjs.js +0 -1
- package/nodes/core/CodeNode.cjs.js +0 -1
- package/nodes/core/ConstNode.cjs.js +0 -1
- package/nodes/core/ContextNode.cjs.js +0 -1
- package/nodes/core/ExpressionNode.cjs.js +0 -1
- package/nodes/core/FunctionCallNode.cjs.js +0 -1
- package/nodes/core/FunctionNode.cjs.js +0 -1
- package/nodes/core/InputNode.cjs.js +0 -1
- package/nodes/core/Node.cjs.js +0 -1
- package/nodes/core/NodeAttribute.cjs.js +0 -1
- package/nodes/core/NodeBuilder.cjs.js +0 -1
- package/nodes/core/NodeCode.cjs.js +0 -1
- package/nodes/core/NodeFrame.cjs.js +0 -1
- package/nodes/core/NodeFunction.cjs.js +0 -1
- package/nodes/core/NodeFunction.js +0 -17
- package/nodes/core/NodeFunctionInput.cjs.js +0 -1
- package/nodes/core/NodeKeywords.cjs.js +0 -1
- package/nodes/core/NodeParser.cjs.js +0 -1
- package/nodes/core/NodeParser.js +0 -8
- package/nodes/core/NodeUniform.cjs.js +0 -1
- package/nodes/core/NodeUtils.cjs.js +0 -1
- package/nodes/core/NodeVar.cjs.js +0 -1
- package/nodes/core/NodeVary.cjs.js +0 -1
- package/nodes/core/PropertyNode.cjs.js +0 -1
- package/nodes/core/TempNode.cjs.js +0 -1
- package/nodes/core/UniformNode.cjs.js +0 -1
- package/nodes/core/VarNode.cjs.js +0 -1
- package/nodes/core/VaryNode.cjs.js +0 -1
- package/nodes/core/constants.cjs.js +0 -1
- package/nodes/display/ColorSpaceNode.cjs.js +0 -1
- package/nodes/display/NormalMapNode.cjs.js +0 -1
- package/nodes/fog/FogNode.cjs.js +0 -1
- package/nodes/fog/FogRangeNode.cjs.js +0 -1
- package/nodes/functions/BSDFs.cjs.js +0 -1
- package/nodes/functions/PhysicalMaterialFunctions.cjs.js +0 -1
- package/nodes/functions/PhysicalMaterialFunctions.js +0 -57
- package/nodes/lights/LightContextNode.cjs.js +0 -1
- package/nodes/lights/LightNode.cjs.js +0 -1
- package/nodes/lights/LightsNode.cjs.js +0 -1
- package/nodes/loaders/NodeLoader.cjs.js +0 -1
- package/nodes/loaders/NodeMaterialLoader.cjs.js +0 -1
- package/nodes/loaders/NodeObjectLoader.cjs.js +0 -1
- package/nodes/materials/LineBasicNodeMaterial.cjs.js +0 -1
- package/nodes/materials/Materials.cjs.js +0 -1
- package/nodes/materials/MeshBasicNodeMaterial.cjs.js +0 -1
- package/nodes/materials/MeshStandardNodeMaterial.cjs.js +0 -1
- package/nodes/materials/NodeMaterial.cjs.js +0 -1
- package/nodes/materials/PointsNodeMaterial.cjs.js +0 -1
- package/nodes/math/CondNode.cjs.js +0 -1
- package/nodes/math/MathNode.cjs.js +0 -1
- package/nodes/math/OperatorNode.cjs.js +0 -1
- package/nodes/parsers/GLSLNodeFunction.cjs.js +0 -1
- package/nodes/parsers/GLSLNodeFunction.js +0 -101
- package/nodes/parsers/GLSLNodeParser.cjs.js +0 -1
- package/nodes/parsers/GLSLNodeParser.js +0 -13
- package/nodes/parsers/WGSLNodeFunction.cjs.js +0 -1
- package/nodes/parsers/WGSLNodeFunction.js +0 -71
- package/nodes/parsers/WGSLNodeParser.cjs.js +0 -1
- package/nodes/parsers/WGSLNodeParser.js +0 -13
- package/nodes/procedural/CheckerNode.cjs.js +0 -1
- package/nodes/utils/ArrayElementNode.cjs.js +0 -1
- package/nodes/utils/ConvertNode.cjs.js +0 -1
- package/nodes/utils/JoinNode.cjs.js +0 -1
- package/nodes/utils/MatcapUVNode.cjs.js +0 -1
- package/nodes/utils/OscNode.cjs.js +0 -1
- package/nodes/utils/SplitNode.cjs.js +0 -1
- package/nodes/utils/SpriteSheetUVNode.cjs.js +0 -1
- package/nodes/utils/TimerNode.cjs.js +0 -1
- package/objects/GroundProjectedEnv.cjs.js +0 -1
- package/objects/Lensflare.cjs.js +0 -1
- package/objects/LightningStorm.cjs.js +0 -1
- package/objects/MarchingCubes.cjs.js +0 -1
- package/objects/Reflector.cjs.js +0 -1
- package/objects/ReflectorForSSRPass.cjs.js +0 -1
- package/objects/ReflectorRTT.cjs.js +0 -1
- package/objects/Refractor.cjs.js +0 -1
- package/objects/ShadowMesh.cjs.js +0 -1
- package/objects/Sky.cjs.js +0 -1
- package/objects/Water.cjs.js +0 -1
- package/objects/Water2.cjs.js +0 -1
- package/offscreen/jank.cjs.js +0 -1
- package/offscreen/offscreen.cjs.js +0 -1
- package/offscreen/scene.cjs.js +0 -1
- package/physics/AmmoPhysics.cjs.js +0 -1
- package/postprocessing/AdaptiveToneMappingPass.cjs.js +0 -1
- package/postprocessing/AfterimagePass.cjs.js +0 -1
- package/postprocessing/BloomPass.cjs.js +0 -1
- package/postprocessing/BokehPass.cjs.js +0 -1
- package/postprocessing/ClearPass.cjs.js +0 -1
- package/postprocessing/CubeTexturePass.cjs.js +0 -1
- package/postprocessing/DotScreenPass.cjs.js +0 -1
- package/postprocessing/EffectComposer.cjs.js +0 -1
- package/postprocessing/FilmPass.cjs.js +0 -1
- package/postprocessing/GlitchPass.cjs.js +0 -1
- package/postprocessing/HalftonePass.cjs.js +0 -1
- package/postprocessing/LUTPass.cjs.js +0 -1
- package/postprocessing/MaskPass.cjs.js +0 -1
- package/postprocessing/OutlinePass.cjs.js +0 -1
- package/postprocessing/Pass.cjs.js +0 -1
- package/postprocessing/RenderPass.cjs.js +0 -1
- package/postprocessing/RenderPixelatedPass.cjs.js +0 -1
- package/postprocessing/SAOPass.cjs.js +0 -1
- package/postprocessing/SMAAPass.cjs.js +0 -1
- package/postprocessing/SSAARenderPass.cjs.js +0 -1
- package/postprocessing/SSAOPass.cjs.js +0 -1
- package/postprocessing/SSRPass.cjs.js +0 -1
- package/postprocessing/SavePass.cjs.js +0 -1
- package/postprocessing/ShaderPass.cjs.js +0 -1
- package/postprocessing/TAARenderPass.cjs.js +0 -1
- package/postprocessing/TexturePass.cjs.js +0 -1
- package/postprocessing/UnrealBloomPass.cjs.js +0 -1
- package/renderers/CSS2DRenderer.cjs.js +0 -1
- package/renderers/CSS3DRenderer.cjs.js +0 -1
- package/renderers/Projector.cjs.js +0 -1
- package/renderers/SVGRenderer.cjs.js +0 -1
- package/renderers/nodes/accessors/CameraNode.cjs.js +0 -1
- package/renderers/nodes/accessors/ModelNode.cjs.js +0 -1
- package/renderers/nodes/accessors/ModelViewProjectionNode.cjs.js +0 -1
- package/renderers/nodes/accessors/NormalNode.cjs.js +0 -1
- package/renderers/nodes/accessors/PositionNode.cjs.js +0 -1
- package/renderers/nodes/accessors/UVNode.cjs.js +0 -1
- package/renderers/nodes/core/AttributeNode.cjs.js +0 -1
- package/renderers/nodes/core/InputNode.cjs.js +0 -1
- package/renderers/nodes/core/Node.cjs.js +0 -1
- package/renderers/nodes/core/NodeAttribute.cjs.js +0 -1
- package/renderers/nodes/core/NodeBuilder.cjs.js +0 -1
- package/renderers/nodes/core/NodeFrame.cjs.js +0 -1
- package/renderers/nodes/core/NodeSlot.cjs.js +0 -1
- package/renderers/nodes/core/NodeUniform.cjs.js +0 -1
- package/renderers/nodes/core/NodeVary.cjs.js +0 -1
- package/renderers/nodes/core/VaryNode.cjs.js +0 -1
- package/renderers/nodes/core/constants.cjs.js +0 -1
- package/renderers/nodes/inputs/ColorNode.cjs.js +0 -1
- package/renderers/nodes/inputs/FloatNode.cjs.js +0 -1
- package/renderers/nodes/inputs/Matrix3Node.cjs.js +0 -1
- package/renderers/nodes/inputs/Matrix4Node.cjs.js +0 -1
- package/renderers/nodes/inputs/TextureNode.cjs.js +0 -1
- package/renderers/nodes/inputs/Vector2Node.cjs.js +0 -1
- package/renderers/nodes/inputs/Vector3Node.cjs.js +0 -1
- package/renderers/nodes/inputs/Vector4Node.cjs.js +0 -1
- package/renderers/nodes/math/MathNode.cjs.js +0 -1
- package/renderers/nodes/math/OperatorNode.cjs.js +0 -1
- package/renderers/nodes/utils/SwitchNode.cjs.js +0 -1
- package/renderers/nodes/utils/TimerNode.cjs.js +0 -1
- package/renderers/webgpu/WebGPU.cjs.js +0 -1
- package/renderers/webgpu/WebGPUAttributes.cjs.js +0 -1
- package/renderers/webgpu/WebGPUBackground.cjs.js +0 -1
- package/renderers/webgpu/WebGPUBinding.cjs.js +0 -1
- package/renderers/webgpu/WebGPUBindings.cjs.js +0 -1
- package/renderers/webgpu/WebGPUComputePipelines.cjs.js +0 -1
- package/renderers/webgpu/WebGPUGeometries.cjs.js +0 -1
- package/renderers/webgpu/WebGPUInfo.cjs.js +0 -1
- package/renderers/webgpu/WebGPUObjects.cjs.js +0 -1
- package/renderers/webgpu/WebGPUProperties.cjs.js +0 -1
- package/renderers/webgpu/WebGPURenderLists.cjs.js +0 -1
- package/renderers/webgpu/WebGPURenderPipelines.cjs.js +0 -1
- package/renderers/webgpu/WebGPURenderer.cjs.js +0 -1
- package/renderers/webgpu/WebGPUSampledTexture.cjs.js +0 -1
- package/renderers/webgpu/WebGPUSampler.cjs.js +0 -1
- package/renderers/webgpu/WebGPUStorageBuffer.cjs.js +0 -1
- package/renderers/webgpu/WebGPUTextureRenderer.cjs.js +0 -1
- package/renderers/webgpu/WebGPUTextureUtils.cjs.js +0 -1
- package/renderers/webgpu/WebGPUTextures.cjs.js +0 -1
- package/renderers/webgpu/WebGPUUniform.cjs.js +0 -1
- package/renderers/webgpu/WebGPUUniformsGroup.cjs.js +0 -1
- package/renderers/webgpu/constants.cjs.js +0 -1
- package/renderers/webgpu/nodes/ShaderLib.cjs.js +0 -1
- package/renderers/webgpu/nodes/WebGPUNodeBuilder.cjs.js +0 -1
- package/renderers/webgpu/nodes/WebGPUNodeUniform.cjs.js +0 -1
- package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.cjs.js +0 -1
- package/renderers/webgpu/nodes/WebGPUNodes.cjs.js +0 -1
- package/shaders/ACESFilmicToneMappingShader.cjs.js +0 -1
- package/shaders/AfterimageShader.cjs.js +0 -1
- package/shaders/BasicShader.cjs.js +0 -1
- package/shaders/BleachBypassShader.cjs.js +0 -1
- package/shaders/BlendShader.cjs.js +0 -1
- package/shaders/BokehShader.cjs.js +0 -1
- package/shaders/BokehShader2.cjs.js +0 -1
- package/shaders/BrightnessContrastShader.cjs.js +0 -1
- package/shaders/ColorCorrectionShader.cjs.js +0 -1
- package/shaders/ColorifyShader.cjs.js +0 -1
- package/shaders/ConvolutionShader.cjs.js +0 -1
- package/shaders/CopyShader.cjs.js +0 -1
- package/shaders/DOFMipMapShader.cjs.js +0 -1
- package/shaders/DepthLimitedBlurShader.cjs.js +0 -1
- package/shaders/DigitalGlitch.cjs.js +0 -1
- package/shaders/DotScreenShader.cjs.js +0 -1
- package/shaders/FXAAShader.cjs.js +0 -1
- package/shaders/FilmShader.cjs.js +0 -1
- package/shaders/FocusShader.cjs.js +0 -1
- package/shaders/FreiChenShader.cjs.js +0 -1
- package/shaders/FresnelShader.cjs.js +0 -1
- package/shaders/GammaCorrectionShader.cjs.js +0 -1
- package/shaders/GodRaysShader.cjs.js +0 -1
- package/shaders/HalftoneShader.cjs.js +0 -1
- package/shaders/HorizontalBlurShader.cjs.js +0 -1
- package/shaders/HorizontalTiltShiftShader.cjs.js +0 -1
- package/shaders/HueSaturationShader.cjs.js +0 -1
- package/shaders/KaleidoShader.cjs.js +0 -1
- package/shaders/LuminosityHighPassShader.cjs.js +0 -1
- package/shaders/LuminosityShader.cjs.js +0 -1
- package/shaders/MirrorShader.cjs.js +0 -1
- package/shaders/NormalMapShader.cjs.js +0 -1
- package/shaders/ParallaxShader.cjs.js +0 -1
- package/shaders/PixelShader.cjs.js +0 -1
- package/shaders/RGBShiftShader.cjs.js +0 -1
- package/shaders/SAOShader.cjs.js +0 -1
- package/shaders/SMAAShader.cjs.js +0 -1
- package/shaders/SSAOShader.cjs.js +0 -1
- package/shaders/SSRShader.cjs.js +0 -1
- package/shaders/SepiaShader.cjs.js +0 -1
- package/shaders/SobelOperatorShader.cjs.js +0 -1
- package/shaders/SubsurfaceScatteringShader.cjs.js +0 -1
- package/shaders/TechnicolorShader.cjs.js +0 -1
- package/shaders/ToneMapShader.cjs.js +0 -1
- package/shaders/ToonShader.cjs.js +0 -1
- package/shaders/TriangleBlurShader.cjs.js +0 -1
- package/shaders/UnpackDepthRGBAShader.cjs.js +0 -1
- package/shaders/VerticalBlurShader.cjs.js +0 -1
- package/shaders/VerticalTiltShiftShader.cjs.js +0 -1
- package/shaders/VignetteShader.cjs.js +0 -1
- package/shaders/VolumeShader.cjs.js +0 -1
- package/shaders/WaterRefractionShader.cjs.js +0 -1
- package/shaders/index.cjs.js +0 -1
- package/shaders/index.d.ts +0 -54
- package/shaders/index.js +0 -53
- package/shaders/types.cjs.js +0 -1
- package/textures/FlakesTexture.cjs.js +0 -1
- package/types/helpers.cjs.js +0 -1
- package/types/shared.cjs.js +0 -1
- package/types/shared.js +0 -1
- package/types/utils.cjs.js +0 -1
- package/types/utils.js +0 -1
- package/utils/BufferGeometryUtils.cjs.js +0 -1
- package/utils/GeometryCompressionUtils.cjs.js +0 -1
- package/utils/GeometryUtils.cjs.js +0 -1
- package/utils/LDrawUtils.cjs.js +0 -1
- package/utils/LDrawUtils.d.ts +0 -5
- package/utils/LDrawUtils.js +0 -144
- package/utils/RoughnessMipmapper.cjs.js +0 -1
- package/utils/SceneUtils.cjs.js +0 -1
- package/utils/ShadowMapViewer.cjs.js +0 -1
- package/utils/SkeletonUtils.cjs.js +0 -1
- package/utils/UVsDebug.cjs.js +0 -1
- package/utils/WorkerPool.cjs.js +0 -1
- package/webxr/ARButton.cjs.js +0 -1
- package/webxr/OculusHandModel.cjs.js +0 -1
- package/webxr/OculusHandPointerModel.cjs.js +0 -1
- package/webxr/Text2D.cjs.js +0 -1
- package/webxr/VRButton.cjs.js +0 -1
- package/webxr/XRControllerModelFactory.cjs.js +0 -1
- package/webxr/XREstimatedLight.cjs.js +0 -1
- package/webxr/XRHandMeshModel.cjs.js +0 -1
- package/webxr/XRHandModelFactory.cjs.js +0 -1
- package/webxr/XRHandPrimitiveModel.cjs.js +0 -1
package/deprecated/Geometry.js
CHANGED
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
const _obj = new Object3D();
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class Geometry extends EventDispatcher {
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const THREE = require("three");
|
|
4
|
+
const _m1 = new THREE.Matrix4();
|
|
5
|
+
const _obj = new THREE.Object3D();
|
|
6
|
+
const _offset = new THREE.Vector3();
|
|
7
|
+
class Geometry extends THREE.EventDispatcher {
|
|
10
8
|
constructor() {
|
|
11
9
|
super();
|
|
12
10
|
this.isGeometry = true;
|
|
13
|
-
this.uuid = MathUtils.generateUUID();
|
|
14
|
-
this.name =
|
|
15
|
-
this.type =
|
|
11
|
+
this.uuid = THREE.MathUtils.generateUUID();
|
|
12
|
+
this.name = "";
|
|
13
|
+
this.type = "Geometry";
|
|
16
14
|
this.vertices = [];
|
|
17
15
|
this.colors = [];
|
|
18
16
|
this.faces = [];
|
|
@@ -23,8 +21,7 @@ class Geometry extends EventDispatcher {
|
|
|
23
21
|
this.skinIndices = [];
|
|
24
22
|
this.lineDistances = [];
|
|
25
23
|
this.boundingBox = null;
|
|
26
|
-
this.boundingSphere = null;
|
|
27
|
-
|
|
24
|
+
this.boundingSphere = null;
|
|
28
25
|
this.elementsNeedUpdate = false;
|
|
29
26
|
this.verticesNeedUpdate = false;
|
|
30
27
|
this.uvsNeedUpdate = false;
|
|
@@ -33,136 +30,113 @@ class Geometry extends EventDispatcher {
|
|
|
33
30
|
this.lineDistancesNeedUpdate = false;
|
|
34
31
|
this.groupsNeedUpdate = false;
|
|
35
32
|
}
|
|
36
|
-
|
|
37
33
|
applyMatrix4(matrix) {
|
|
38
|
-
const normalMatrix = new Matrix3().getNormalMatrix(matrix);
|
|
39
|
-
|
|
34
|
+
const normalMatrix = new THREE.Matrix3().getNormalMatrix(matrix);
|
|
40
35
|
for (let i = 0, il = this.vertices.length; i < il; i++) {
|
|
41
36
|
const vertex = this.vertices[i];
|
|
42
37
|
vertex.applyMatrix4(matrix);
|
|
43
38
|
}
|
|
44
|
-
|
|
45
39
|
for (let i = 0, il = this.faces.length; i < il; i++) {
|
|
46
40
|
const face = this.faces[i];
|
|
47
41
|
face.normal.applyMatrix3(normalMatrix).normalize();
|
|
48
|
-
|
|
49
42
|
for (let j = 0, jl = face.vertexNormals.length; j < jl; j++) {
|
|
50
43
|
face.vertexNormals[j].applyMatrix3(normalMatrix).normalize();
|
|
51
44
|
}
|
|
52
45
|
}
|
|
53
|
-
|
|
54
46
|
if (this.boundingBox !== null) {
|
|
55
47
|
this.computeBoundingBox();
|
|
56
48
|
}
|
|
57
|
-
|
|
58
49
|
if (this.boundingSphere !== null) {
|
|
59
50
|
this.computeBoundingSphere();
|
|
60
51
|
}
|
|
61
|
-
|
|
62
52
|
this.verticesNeedUpdate = true;
|
|
63
53
|
this.normalsNeedUpdate = true;
|
|
64
54
|
return this;
|
|
65
55
|
}
|
|
66
|
-
|
|
67
56
|
rotateX(angle) {
|
|
68
|
-
// rotate geometry around world x-axis
|
|
69
57
|
_m1.makeRotationX(angle);
|
|
70
|
-
|
|
71
58
|
this.applyMatrix4(_m1);
|
|
72
59
|
return this;
|
|
73
60
|
}
|
|
74
|
-
|
|
75
61
|
rotateY(angle) {
|
|
76
|
-
// rotate geometry around world y-axis
|
|
77
62
|
_m1.makeRotationY(angle);
|
|
78
|
-
|
|
79
63
|
this.applyMatrix4(_m1);
|
|
80
64
|
return this;
|
|
81
65
|
}
|
|
82
|
-
|
|
83
66
|
rotateZ(angle) {
|
|
84
|
-
// rotate geometry around world z-axis
|
|
85
67
|
_m1.makeRotationZ(angle);
|
|
86
|
-
|
|
87
68
|
this.applyMatrix4(_m1);
|
|
88
69
|
return this;
|
|
89
70
|
}
|
|
90
|
-
|
|
91
71
|
translate(x, y, z) {
|
|
92
|
-
// translate geometry
|
|
93
72
|
_m1.makeTranslation(x, y, z);
|
|
94
|
-
|
|
95
73
|
this.applyMatrix4(_m1);
|
|
96
74
|
return this;
|
|
97
75
|
}
|
|
98
|
-
|
|
99
76
|
scale(x, y, z) {
|
|
100
|
-
// scale geometry
|
|
101
77
|
_m1.makeScale(x, y, z);
|
|
102
|
-
|
|
103
78
|
this.applyMatrix4(_m1);
|
|
104
79
|
return this;
|
|
105
80
|
}
|
|
106
|
-
|
|
107
81
|
lookAt(vector) {
|
|
108
82
|
_obj.lookAt(vector);
|
|
109
|
-
|
|
110
83
|
_obj.updateMatrix();
|
|
111
|
-
|
|
112
84
|
this.applyMatrix4(_obj.matrix);
|
|
113
85
|
return this;
|
|
114
86
|
}
|
|
115
|
-
|
|
116
87
|
fromBufferGeometry(geometry) {
|
|
117
88
|
const scope = this;
|
|
118
|
-
const index = geometry.index !== null ? geometry.index :
|
|
89
|
+
const index = geometry.index !== null ? geometry.index : void 0;
|
|
119
90
|
const attributes = geometry.attributes;
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
console.error('THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion.');
|
|
91
|
+
if (attributes.position === void 0) {
|
|
92
|
+
console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion.");
|
|
123
93
|
return this;
|
|
124
94
|
}
|
|
125
|
-
|
|
126
95
|
const position = attributes.position;
|
|
127
96
|
const normal = attributes.normal;
|
|
128
97
|
const color = attributes.color;
|
|
129
98
|
const uv = attributes.uv;
|
|
130
99
|
const uv2 = attributes.uv2;
|
|
131
|
-
if (uv2 !==
|
|
132
|
-
|
|
100
|
+
if (uv2 !== void 0)
|
|
101
|
+
this.faceVertexUvs[1] = [];
|
|
133
102
|
for (let i = 0; i < position.count; i++) {
|
|
134
|
-
scope.vertices.push(new Vector3().fromBufferAttribute(position, i));
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
scope.colors.push(new Color().fromBufferAttribute(color, i));
|
|
103
|
+
scope.vertices.push(new THREE.Vector3().fromBufferAttribute(position, i));
|
|
104
|
+
if (color !== void 0) {
|
|
105
|
+
scope.colors.push(new THREE.Color().fromBufferAttribute(color, i));
|
|
138
106
|
}
|
|
139
107
|
}
|
|
140
|
-
|
|
141
108
|
function addFace(a, b, c, materialIndex) {
|
|
142
|
-
const vertexColors = color ===
|
|
143
|
-
const vertexNormals = normal ===
|
|
109
|
+
const vertexColors = color === void 0 ? [] : [scope.colors[a].clone(), scope.colors[b].clone(), scope.colors[c].clone()];
|
|
110
|
+
const vertexNormals = normal === void 0 ? [] : [
|
|
111
|
+
new THREE.Vector3().fromBufferAttribute(normal, a),
|
|
112
|
+
new THREE.Vector3().fromBufferAttribute(normal, b),
|
|
113
|
+
new THREE.Vector3().fromBufferAttribute(normal, c)
|
|
114
|
+
];
|
|
144
115
|
const face = new Face3(a, b, c, vertexNormals, vertexColors, materialIndex);
|
|
145
116
|
scope.faces.push(face);
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
117
|
+
if (uv !== void 0) {
|
|
118
|
+
scope.faceVertexUvs[0].push([
|
|
119
|
+
new THREE.Vector2().fromBufferAttribute(uv, a),
|
|
120
|
+
new THREE.Vector2().fromBufferAttribute(uv, b),
|
|
121
|
+
new THREE.Vector2().fromBufferAttribute(uv, c)
|
|
122
|
+
]);
|
|
149
123
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
124
|
+
if (uv2 !== void 0) {
|
|
125
|
+
scope.faceVertexUvs[1].push([
|
|
126
|
+
new THREE.Vector2().fromBufferAttribute(uv2, a),
|
|
127
|
+
new THREE.Vector2().fromBufferAttribute(uv2, b),
|
|
128
|
+
new THREE.Vector2().fromBufferAttribute(uv2, c)
|
|
129
|
+
]);
|
|
153
130
|
}
|
|
154
131
|
}
|
|
155
|
-
|
|
156
132
|
const groups = geometry.groups;
|
|
157
|
-
|
|
158
133
|
if (groups.length > 0) {
|
|
159
134
|
for (let i = 0; i < groups.length; i++) {
|
|
160
135
|
const group = groups[i];
|
|
161
136
|
const start = group.start;
|
|
162
137
|
const count = group.count;
|
|
163
|
-
|
|
164
138
|
for (let j = start, jl = start + count; j < jl; j += 3) {
|
|
165
|
-
if (index !==
|
|
139
|
+
if (index !== void 0) {
|
|
166
140
|
addFace(index.getX(j), index.getX(j + 1), index.getX(j + 2), group.materialIndex);
|
|
167
141
|
} else {
|
|
168
142
|
addFace(j, j + 1, j + 2, group.materialIndex);
|
|
@@ -170,7 +144,7 @@ class Geometry extends EventDispatcher {
|
|
|
170
144
|
}
|
|
171
145
|
}
|
|
172
146
|
} else {
|
|
173
|
-
if (index !==
|
|
147
|
+
if (index !== void 0) {
|
|
174
148
|
for (let i = 0; i < index.count; i += 3) {
|
|
175
149
|
addFace(index.getX(i), index.getX(i + 1), index.getX(i + 2));
|
|
176
150
|
}
|
|
@@ -180,42 +154,33 @@ class Geometry extends EventDispatcher {
|
|
|
180
154
|
}
|
|
181
155
|
}
|
|
182
156
|
}
|
|
183
|
-
|
|
184
157
|
this.computeFaceNormals();
|
|
185
|
-
|
|
186
158
|
if (geometry.boundingBox !== null) {
|
|
187
159
|
this.boundingBox = geometry.boundingBox.clone();
|
|
188
160
|
}
|
|
189
|
-
|
|
190
161
|
if (geometry.boundingSphere !== null) {
|
|
191
162
|
this.boundingSphere = geometry.boundingSphere.clone();
|
|
192
163
|
}
|
|
193
|
-
|
|
194
164
|
return this;
|
|
195
165
|
}
|
|
196
|
-
|
|
197
166
|
center() {
|
|
198
167
|
this.computeBoundingBox();
|
|
199
168
|
this.boundingBox.getCenter(_offset).negate();
|
|
200
169
|
this.translate(_offset.x, _offset.y, _offset.z);
|
|
201
170
|
return this;
|
|
202
171
|
}
|
|
203
|
-
|
|
204
172
|
normalize() {
|
|
205
173
|
this.computeBoundingSphere();
|
|
206
174
|
const center = this.boundingSphere.center;
|
|
207
175
|
const radius = this.boundingSphere.radius;
|
|
208
|
-
const s = radius === 0 ? 1 : 1
|
|
209
|
-
const matrix = new Matrix4();
|
|
176
|
+
const s = radius === 0 ? 1 : 1 / radius;
|
|
177
|
+
const matrix = new THREE.Matrix4();
|
|
210
178
|
matrix.set(s, 0, 0, -s * center.x, 0, s, 0, -s * center.y, 0, 0, s, -s * center.z, 0, 0, 0, 1);
|
|
211
179
|
this.applyMatrix4(matrix);
|
|
212
180
|
return this;
|
|
213
181
|
}
|
|
214
|
-
|
|
215
182
|
computeFaceNormals() {
|
|
216
|
-
const cb = new Vector3(),
|
|
217
|
-
ab = new Vector3();
|
|
218
|
-
|
|
183
|
+
const cb = new THREE.Vector3(), ab = new THREE.Vector3();
|
|
219
184
|
for (let f = 0, fl = this.faces.length; f < fl; f++) {
|
|
220
185
|
const face = this.faces[f];
|
|
221
186
|
const vA = this.vertices[face.a];
|
|
@@ -228,20 +193,13 @@ class Geometry extends EventDispatcher {
|
|
|
228
193
|
face.normal.copy(cb);
|
|
229
194
|
}
|
|
230
195
|
}
|
|
231
|
-
|
|
232
196
|
computeVertexNormals(areaWeighted = true) {
|
|
233
197
|
const vertices = new Array(this.vertices.length);
|
|
234
|
-
|
|
235
198
|
for (let v = 0, vl = this.vertices.length; v < vl; v++) {
|
|
236
|
-
vertices[v] = new Vector3();
|
|
199
|
+
vertices[v] = new THREE.Vector3();
|
|
237
200
|
}
|
|
238
|
-
|
|
239
201
|
if (areaWeighted) {
|
|
240
|
-
|
|
241
|
-
// http://www.iquilezles.org/www/articles/normals/normals.htm
|
|
242
|
-
const cb = new Vector3(),
|
|
243
|
-
ab = new Vector3();
|
|
244
|
-
|
|
202
|
+
const cb = new THREE.Vector3(), ab = new THREE.Vector3();
|
|
245
203
|
for (let f = 0, fl = this.faces.length; f < fl; f++) {
|
|
246
204
|
const face = this.faces[f];
|
|
247
205
|
const vA = this.vertices[face.a];
|
|
@@ -256,7 +214,6 @@ class Geometry extends EventDispatcher {
|
|
|
256
214
|
}
|
|
257
215
|
} else {
|
|
258
216
|
this.computeFaceNormals();
|
|
259
|
-
|
|
260
217
|
for (let f = 0, fl = this.faces.length; f < fl; f++) {
|
|
261
218
|
const face = this.faces[f];
|
|
262
219
|
vertices[face.a].add(face.normal);
|
|
@@ -264,15 +221,12 @@ class Geometry extends EventDispatcher {
|
|
|
264
221
|
vertices[face.c].add(face.normal);
|
|
265
222
|
}
|
|
266
223
|
}
|
|
267
|
-
|
|
268
224
|
for (let v = 0, vl = this.vertices.length; v < vl; v++) {
|
|
269
225
|
vertices[v].normalize();
|
|
270
226
|
}
|
|
271
|
-
|
|
272
227
|
for (let f = 0, fl = this.faces.length; f < fl; f++) {
|
|
273
228
|
const face = this.faces[f];
|
|
274
229
|
const vertexNormals = face.vertexNormals;
|
|
275
|
-
|
|
276
230
|
if (vertexNormals.length === 3) {
|
|
277
231
|
vertexNormals[0].copy(vertices[face.a]);
|
|
278
232
|
vertexNormals[1].copy(vertices[face.b]);
|
|
@@ -283,19 +237,15 @@ class Geometry extends EventDispatcher {
|
|
|
283
237
|
vertexNormals[2] = vertices[face.c].clone();
|
|
284
238
|
}
|
|
285
239
|
}
|
|
286
|
-
|
|
287
240
|
if (this.faces.length > 0) {
|
|
288
241
|
this.normalsNeedUpdate = true;
|
|
289
242
|
}
|
|
290
243
|
}
|
|
291
|
-
|
|
292
244
|
computeFlatVertexNormals() {
|
|
293
245
|
this.computeFaceNormals();
|
|
294
|
-
|
|
295
246
|
for (let f = 0, fl = this.faces.length; f < fl; f++) {
|
|
296
247
|
const face = this.faces[f];
|
|
297
248
|
const vertexNormals = face.vertexNormals;
|
|
298
|
-
|
|
299
249
|
if (vertexNormals.length === 3) {
|
|
300
250
|
vertexNormals[0].copy(face.normal);
|
|
301
251
|
vertexNormals[1].copy(face.normal);
|
|
@@ -306,27 +256,20 @@ class Geometry extends EventDispatcher {
|
|
|
306
256
|
vertexNormals[2] = face.normal.clone();
|
|
307
257
|
}
|
|
308
258
|
}
|
|
309
|
-
|
|
310
259
|
if (this.faces.length > 0) {
|
|
311
260
|
this.normalsNeedUpdate = true;
|
|
312
261
|
}
|
|
313
262
|
}
|
|
314
|
-
|
|
315
263
|
computeMorphNormals() {
|
|
316
|
-
// save original normals
|
|
317
|
-
// - create temp variables on first access
|
|
318
|
-
// otherwise just copy (for faster repeated calls)
|
|
319
264
|
for (let f = 0, fl = this.faces.length; f < fl; f++) {
|
|
320
265
|
const face = this.faces[f];
|
|
321
|
-
|
|
322
266
|
if (!face.__originalFaceNormal) {
|
|
323
267
|
face.__originalFaceNormal = face.normal.clone();
|
|
324
268
|
} else {
|
|
325
269
|
face.__originalFaceNormal.copy(face.normal);
|
|
326
270
|
}
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
271
|
+
if (!face.__originalVertexNormals)
|
|
272
|
+
face.__originalVertexNormals = [];
|
|
330
273
|
for (let i = 0, il = face.vertexNormals.length; i < il; i++) {
|
|
331
274
|
if (!face.__originalVertexNormals[i]) {
|
|
332
275
|
face.__originalVertexNormals[i] = face.vertexNormals[i].clone();
|
|
@@ -334,40 +277,31 @@ class Geometry extends EventDispatcher {
|
|
|
334
277
|
face.__originalVertexNormals[i].copy(face.vertexNormals[i]);
|
|
335
278
|
}
|
|
336
279
|
}
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
|
|
280
|
+
}
|
|
340
281
|
const tmpGeo = new Geometry();
|
|
341
282
|
tmpGeo.faces = this.faces;
|
|
342
|
-
|
|
343
283
|
for (let i = 0, il = this.morphTargets.length; i < il; i++) {
|
|
344
|
-
// create on first access
|
|
345
284
|
if (!this.morphNormals[i]) {
|
|
346
285
|
this.morphNormals[i] = {};
|
|
347
286
|
this.morphNormals[i].faceNormals = [];
|
|
348
287
|
this.morphNormals[i].vertexNormals = [];
|
|
349
288
|
const dstNormalsFace = this.morphNormals[i].faceNormals;
|
|
350
289
|
const dstNormalsVertex = this.morphNormals[i].vertexNormals;
|
|
351
|
-
|
|
352
290
|
for (let f = 0, fl = this.faces.length; f < fl; f++) {
|
|
353
|
-
const faceNormal = new Vector3();
|
|
291
|
+
const faceNormal = new THREE.Vector3();
|
|
354
292
|
const vertexNormals = {
|
|
355
|
-
a: new Vector3(),
|
|
356
|
-
b: new Vector3(),
|
|
357
|
-
c: new Vector3()
|
|
293
|
+
a: new THREE.Vector3(),
|
|
294
|
+
b: new THREE.Vector3(),
|
|
295
|
+
c: new THREE.Vector3()
|
|
358
296
|
};
|
|
359
297
|
dstNormalsFace.push(faceNormal);
|
|
360
298
|
dstNormalsVertex.push(vertexNormals);
|
|
361
299
|
}
|
|
362
300
|
}
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
tmpGeo.vertices = this.morphTargets[i].vertices; // compute morph normals
|
|
367
|
-
|
|
301
|
+
const morphNormals = this.morphNormals[i];
|
|
302
|
+
tmpGeo.vertices = this.morphTargets[i].vertices;
|
|
368
303
|
tmpGeo.computeFaceNormals();
|
|
369
|
-
tmpGeo.computeVertexNormals();
|
|
370
|
-
|
|
304
|
+
tmpGeo.computeVertexNormals();
|
|
371
305
|
for (let f = 0, fl = this.faces.length; f < fl; f++) {
|
|
372
306
|
const face = this.faces[f];
|
|
373
307
|
const faceNormal = morphNormals.faceNormals[f];
|
|
@@ -377,165 +311,113 @@ class Geometry extends EventDispatcher {
|
|
|
377
311
|
vertexNormals.b.copy(face.vertexNormals[1]);
|
|
378
312
|
vertexNormals.c.copy(face.vertexNormals[2]);
|
|
379
313
|
}
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
|
|
314
|
+
}
|
|
383
315
|
for (let f = 0, fl = this.faces.length; f < fl; f++) {
|
|
384
316
|
const face = this.faces[f];
|
|
385
317
|
face.normal = face.__originalFaceNormal;
|
|
386
318
|
face.vertexNormals = face.__originalVertexNormals;
|
|
387
319
|
}
|
|
388
320
|
}
|
|
389
|
-
|
|
390
321
|
computeBoundingBox() {
|
|
391
322
|
if (this.boundingBox === null) {
|
|
392
|
-
this.boundingBox = new Box3();
|
|
323
|
+
this.boundingBox = new THREE.Box3();
|
|
393
324
|
}
|
|
394
|
-
|
|
395
325
|
this.boundingBox.setFromPoints(this.vertices);
|
|
396
326
|
}
|
|
397
|
-
|
|
398
327
|
computeBoundingSphere() {
|
|
399
328
|
if (this.boundingSphere === null) {
|
|
400
|
-
this.boundingSphere = new Sphere();
|
|
329
|
+
this.boundingSphere = new THREE.Sphere();
|
|
401
330
|
}
|
|
402
|
-
|
|
403
331
|
this.boundingSphere.setFromPoints(this.vertices);
|
|
404
332
|
}
|
|
405
|
-
|
|
406
333
|
merge(geometry, matrix, materialIndexOffset = 0) {
|
|
407
334
|
if (!(geometry && geometry.isGeometry)) {
|
|
408
|
-
console.error(
|
|
335
|
+
console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.", geometry);
|
|
409
336
|
return;
|
|
410
337
|
}
|
|
411
|
-
|
|
412
338
|
let normalMatrix;
|
|
413
|
-
const vertexOffset = this.vertices.length,
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
faces2 = geometry.faces,
|
|
418
|
-
colors1 = this.colors,
|
|
419
|
-
colors2 = geometry.colors;
|
|
420
|
-
|
|
421
|
-
if (matrix !== undefined) {
|
|
422
|
-
normalMatrix = new Matrix3().getNormalMatrix(matrix);
|
|
423
|
-
} // vertices
|
|
424
|
-
|
|
425
|
-
|
|
339
|
+
const vertexOffset = this.vertices.length, vertices1 = this.vertices, vertices2 = geometry.vertices, faces1 = this.faces, faces2 = geometry.faces, colors1 = this.colors, colors2 = geometry.colors;
|
|
340
|
+
if (matrix !== void 0) {
|
|
341
|
+
normalMatrix = new THREE.Matrix3().getNormalMatrix(matrix);
|
|
342
|
+
}
|
|
426
343
|
for (let i = 0, il = vertices2.length; i < il; i++) {
|
|
427
344
|
const vertex = vertices2[i];
|
|
428
345
|
const vertexCopy = vertex.clone();
|
|
429
|
-
if (matrix !==
|
|
346
|
+
if (matrix !== void 0)
|
|
347
|
+
vertexCopy.applyMatrix4(matrix);
|
|
430
348
|
vertices1.push(vertexCopy);
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
|
|
349
|
+
}
|
|
434
350
|
for (let i = 0, il = colors2.length; i < il; i++) {
|
|
435
351
|
colors1.push(colors2[i].clone());
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
|
|
352
|
+
}
|
|
439
353
|
for (let i = 0, il = faces2.length; i < il; i++) {
|
|
440
354
|
const face = faces2[i];
|
|
441
355
|
let normal, color;
|
|
442
|
-
const faceVertexNormals = face.vertexNormals,
|
|
443
|
-
faceVertexColors = face.vertexColors;
|
|
356
|
+
const faceVertexNormals = face.vertexNormals, faceVertexColors = face.vertexColors;
|
|
444
357
|
const faceCopy = new Face3(face.a + vertexOffset, face.b + vertexOffset, face.c + vertexOffset);
|
|
445
358
|
faceCopy.normal.copy(face.normal);
|
|
446
|
-
|
|
447
|
-
if (normalMatrix !== undefined) {
|
|
359
|
+
if (normalMatrix !== void 0) {
|
|
448
360
|
faceCopy.normal.applyMatrix3(normalMatrix).normalize();
|
|
449
361
|
}
|
|
450
|
-
|
|
451
362
|
for (let j = 0, jl = faceVertexNormals.length; j < jl; j++) {
|
|
452
363
|
normal = faceVertexNormals[j].clone();
|
|
453
|
-
|
|
454
|
-
if (normalMatrix !== undefined) {
|
|
364
|
+
if (normalMatrix !== void 0) {
|
|
455
365
|
normal.applyMatrix3(normalMatrix).normalize();
|
|
456
366
|
}
|
|
457
|
-
|
|
458
367
|
faceCopy.vertexNormals.push(normal);
|
|
459
368
|
}
|
|
460
|
-
|
|
461
369
|
faceCopy.color.copy(face.color);
|
|
462
|
-
|
|
463
370
|
for (let j = 0, jl = faceVertexColors.length; j < jl; j++) {
|
|
464
371
|
color = faceVertexColors[j];
|
|
465
372
|
faceCopy.vertexColors.push(color.clone());
|
|
466
373
|
}
|
|
467
|
-
|
|
468
374
|
faceCopy.materialIndex = face.materialIndex + materialIndexOffset;
|
|
469
375
|
faces1.push(faceCopy);
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
|
|
376
|
+
}
|
|
473
377
|
for (let i = 0, il = geometry.faceVertexUvs.length; i < il; i++) {
|
|
474
378
|
const faceVertexUvs2 = geometry.faceVertexUvs[i];
|
|
475
|
-
if (this.faceVertexUvs[i] ===
|
|
476
|
-
|
|
379
|
+
if (this.faceVertexUvs[i] === void 0)
|
|
380
|
+
this.faceVertexUvs[i] = [];
|
|
477
381
|
for (let j = 0, jl = faceVertexUvs2.length; j < jl; j++) {
|
|
478
|
-
const uvs2 = faceVertexUvs2[j],
|
|
479
|
-
uvsCopy = [];
|
|
480
|
-
|
|
382
|
+
const uvs2 = faceVertexUvs2[j], uvsCopy = [];
|
|
481
383
|
for (let k = 0, kl = uvs2.length; k < kl; k++) {
|
|
482
384
|
uvsCopy.push(uvs2[k].clone());
|
|
483
385
|
}
|
|
484
|
-
|
|
485
386
|
this.faceVertexUvs[i].push(uvsCopy);
|
|
486
387
|
}
|
|
487
388
|
}
|
|
488
389
|
}
|
|
489
|
-
|
|
490
390
|
mergeMesh(mesh) {
|
|
491
391
|
if (!(mesh && mesh.isMesh)) {
|
|
492
|
-
console.error(
|
|
392
|
+
console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.", mesh);
|
|
493
393
|
return;
|
|
494
394
|
}
|
|
495
|
-
|
|
496
|
-
|
|
395
|
+
if (mesh.matrixAutoUpdate)
|
|
396
|
+
mesh.updateMatrix();
|
|
497
397
|
this.merge(mesh.geometry, mesh.matrix);
|
|
498
398
|
}
|
|
499
|
-
/*
|
|
500
|
-
* Checks for duplicate vertices with hashmap.
|
|
501
|
-
* Duplicated vertices are removed
|
|
502
|
-
* and faces' vertices are updated.
|
|
503
|
-
*/
|
|
504
|
-
|
|
505
|
-
|
|
506
399
|
mergeVertices(precisionPoints = 4) {
|
|
507
|
-
const verticesMap = {};
|
|
508
|
-
|
|
509
|
-
const unique = [],
|
|
510
|
-
changes = [];
|
|
400
|
+
const verticesMap = {};
|
|
401
|
+
const unique = [], changes = [];
|
|
511
402
|
const precision = Math.pow(10, precisionPoints);
|
|
512
|
-
|
|
513
403
|
for (let i = 0, il = this.vertices.length; i < il; i++) {
|
|
514
404
|
const v = this.vertices[i];
|
|
515
405
|
const key = `${Math.round(v.x * precision)}_${Math.round(v.y * precision)}_${Math.round(v.z * precision)}`;
|
|
516
|
-
|
|
517
|
-
if (verticesMap[key] === undefined) {
|
|
406
|
+
if (verticesMap[key] === void 0) {
|
|
518
407
|
verticesMap[key] = i;
|
|
519
408
|
unique.push(this.vertices[i]);
|
|
520
409
|
changes[i] = unique.length - 1;
|
|
521
410
|
} else {
|
|
522
|
-
//console.log('Duplicate vertex found. ', i, ' could be using ', verticesMap[key]);
|
|
523
411
|
changes[i] = changes[verticesMap[key]];
|
|
524
412
|
}
|
|
525
|
-
}
|
|
526
|
-
// have to remove them from the geometry.
|
|
527
|
-
|
|
528
|
-
|
|
413
|
+
}
|
|
529
414
|
const faceIndicesToRemove = [];
|
|
530
|
-
|
|
531
415
|
for (let i = 0, il = this.faces.length; i < il; i++) {
|
|
532
416
|
const face = this.faces[i];
|
|
533
417
|
face.a = changes[face.a];
|
|
534
418
|
face.b = changes[face.b];
|
|
535
419
|
face.c = changes[face.c];
|
|
536
|
-
const indices = [face.a, face.b, face.c];
|
|
537
|
-
// we have to remove the face as nothing can be saved
|
|
538
|
-
|
|
420
|
+
const indices = [face.a, face.b, face.c];
|
|
539
421
|
for (let n = 0; n < 3; n++) {
|
|
540
422
|
if (indices[n] === indices[(n + 1) % 3]) {
|
|
541
423
|
faceIndicesToRemove.push(i);
|
|
@@ -543,94 +425,79 @@ class Geometry extends EventDispatcher {
|
|
|
543
425
|
}
|
|
544
426
|
}
|
|
545
427
|
}
|
|
546
|
-
|
|
547
428
|
for (let i = faceIndicesToRemove.length - 1; i >= 0; i--) {
|
|
548
429
|
const idx = faceIndicesToRemove[i];
|
|
549
430
|
this.faces.splice(idx, 1);
|
|
550
|
-
|
|
551
431
|
for (let j = 0, jl = this.faceVertexUvs.length; j < jl; j++) {
|
|
552
432
|
this.faceVertexUvs[j].splice(idx, 1);
|
|
553
433
|
}
|
|
554
|
-
}
|
|
555
|
-
|
|
556
|
-
|
|
434
|
+
}
|
|
557
435
|
const diff = this.vertices.length - unique.length;
|
|
558
436
|
this.vertices = unique;
|
|
559
437
|
return diff;
|
|
560
438
|
}
|
|
561
|
-
|
|
562
439
|
setFromPoints(points) {
|
|
563
440
|
this.vertices = [];
|
|
564
|
-
|
|
565
441
|
for (let i = 0, l = points.length; i < l; i++) {
|
|
566
442
|
const point = points[i];
|
|
567
|
-
this.vertices.push(new Vector3(point.x, point.y, point.z || 0));
|
|
443
|
+
this.vertices.push(new THREE.Vector3(point.x, point.y, point.z || 0));
|
|
568
444
|
}
|
|
569
|
-
|
|
570
445
|
return this;
|
|
571
446
|
}
|
|
572
|
-
|
|
573
447
|
sortFacesByMaterialIndex() {
|
|
574
448
|
const faces = this.faces;
|
|
575
|
-
const length = faces.length;
|
|
576
|
-
|
|
449
|
+
const length = faces.length;
|
|
577
450
|
for (let i = 0; i < length; i++) {
|
|
578
451
|
faces[i]._id = i;
|
|
579
|
-
}
|
|
580
|
-
|
|
581
|
-
|
|
452
|
+
}
|
|
582
453
|
function materialIndexSort(a, b) {
|
|
583
454
|
return a.materialIndex - b.materialIndex;
|
|
584
455
|
}
|
|
585
|
-
|
|
586
|
-
faces.sort(materialIndexSort); // sort uvs
|
|
587
|
-
|
|
456
|
+
faces.sort(materialIndexSort);
|
|
588
457
|
const uvs1 = this.faceVertexUvs[0];
|
|
589
458
|
const uvs2 = this.faceVertexUvs[1];
|
|
590
459
|
let newUvs1, newUvs2;
|
|
591
|
-
if (uvs1 && uvs1.length === length)
|
|
592
|
-
|
|
593
|
-
|
|
460
|
+
if (uvs1 && uvs1.length === length)
|
|
461
|
+
newUvs1 = [];
|
|
462
|
+
if (uvs2 && uvs2.length === length)
|
|
463
|
+
newUvs2 = [];
|
|
594
464
|
for (let i = 0; i < length; i++) {
|
|
595
465
|
const id = faces[i]._id;
|
|
596
|
-
if (newUvs1)
|
|
597
|
-
|
|
466
|
+
if (newUvs1)
|
|
467
|
+
newUvs1.push(uvs1[id]);
|
|
468
|
+
if (newUvs2)
|
|
469
|
+
newUvs2.push(uvs2[id]);
|
|
598
470
|
}
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
if (newUvs2)
|
|
471
|
+
if (newUvs1)
|
|
472
|
+
this.faceVertexUvs[0] = newUvs1;
|
|
473
|
+
if (newUvs2)
|
|
474
|
+
this.faceVertexUvs[1] = newUvs2;
|
|
602
475
|
}
|
|
603
|
-
|
|
604
476
|
toJSON() {
|
|
605
477
|
const data = {
|
|
606
478
|
metadata: {
|
|
607
479
|
version: 4.5,
|
|
608
|
-
type:
|
|
609
|
-
generator:
|
|
480
|
+
type: "Geometry",
|
|
481
|
+
generator: "Geometry.toJSON"
|
|
610
482
|
}
|
|
611
|
-
};
|
|
612
|
-
|
|
483
|
+
};
|
|
613
484
|
data.uuid = this.uuid;
|
|
614
485
|
data.type = this.type;
|
|
615
|
-
if (this.name !==
|
|
616
|
-
|
|
617
|
-
if (this.parameters !==
|
|
486
|
+
if (this.name !== "")
|
|
487
|
+
data.name = this.name;
|
|
488
|
+
if (this.parameters !== void 0) {
|
|
618
489
|
const parameters = this.parameters;
|
|
619
|
-
|
|
620
490
|
for (let key in parameters) {
|
|
621
|
-
if (parameters[key] !==
|
|
491
|
+
if (parameters[key] !== void 0)
|
|
492
|
+
data[key] = parameters[key];
|
|
622
493
|
}
|
|
623
|
-
|
|
624
494
|
return data;
|
|
625
495
|
}
|
|
626
|
-
|
|
627
496
|
const vertices = [];
|
|
628
|
-
|
|
629
497
|
for (let i = 0; i < this.vertices.length; i++) {
|
|
630
498
|
const vertex = this.vertices[i];
|
|
631
499
|
vertices.push(vertex.x, vertex.y, vertex.z);
|
|
632
500
|
}
|
|
633
|
-
|
|
634
501
|
const faces = [];
|
|
635
502
|
const normals = [];
|
|
636
503
|
const normalsHash = {};
|
|
@@ -638,20 +505,17 @@ class Geometry extends EventDispatcher {
|
|
|
638
505
|
const colorsHash = {};
|
|
639
506
|
const uvs = [];
|
|
640
507
|
const uvsHash = {};
|
|
641
|
-
|
|
642
508
|
for (let i = 0; i < this.faces.length; i++) {
|
|
643
509
|
const face = this.faces[i];
|
|
644
510
|
const hasMaterial = true;
|
|
645
|
-
const hasFaceUv = false;
|
|
646
|
-
|
|
647
|
-
const hasFaceVertexUv = this.faceVertexUvs[0][i] !== undefined;
|
|
511
|
+
const hasFaceUv = false;
|
|
512
|
+
const hasFaceVertexUv = this.faceVertexUvs[0][i] !== void 0;
|
|
648
513
|
const hasFaceNormal = face.normal.length() > 0;
|
|
649
514
|
const hasFaceVertexNormal = face.vertexNormals.length > 0;
|
|
650
515
|
const hasFaceColor = face.color.r !== 1 || face.color.g !== 1 || face.color.b !== 1;
|
|
651
516
|
const hasFaceVertexColor = face.vertexColors.length > 0;
|
|
652
517
|
let faceType = 0;
|
|
653
|
-
faceType = setBit(faceType, 0, 0);
|
|
654
|
-
|
|
518
|
+
faceType = setBit(faceType, 0, 0);
|
|
655
519
|
faceType = setBit(faceType, 1, hasMaterial);
|
|
656
520
|
faceType = setBit(faceType, 2, hasFaceUv);
|
|
657
521
|
faceType = setBit(faceType, 3, hasFaceVertexUv);
|
|
@@ -662,101 +526,69 @@ class Geometry extends EventDispatcher {
|
|
|
662
526
|
faces.push(faceType);
|
|
663
527
|
faces.push(face.a, face.b, face.c);
|
|
664
528
|
faces.push(face.materialIndex);
|
|
665
|
-
|
|
666
529
|
if (hasFaceVertexUv) {
|
|
667
530
|
const faceVertexUvs = this.faceVertexUvs[0][i];
|
|
668
531
|
faces.push(getUvIndex(faceVertexUvs[0]), getUvIndex(faceVertexUvs[1]), getUvIndex(faceVertexUvs[2]));
|
|
669
532
|
}
|
|
670
|
-
|
|
671
533
|
if (hasFaceNormal) {
|
|
672
534
|
faces.push(getNormalIndex(face.normal));
|
|
673
535
|
}
|
|
674
|
-
|
|
675
536
|
if (hasFaceVertexNormal) {
|
|
676
537
|
const vertexNormals = face.vertexNormals;
|
|
677
538
|
faces.push(getNormalIndex(vertexNormals[0]), getNormalIndex(vertexNormals[1]), getNormalIndex(vertexNormals[2]));
|
|
678
539
|
}
|
|
679
|
-
|
|
680
540
|
if (hasFaceColor) {
|
|
681
541
|
faces.push(getColorIndex(face.color));
|
|
682
542
|
}
|
|
683
|
-
|
|
684
543
|
if (hasFaceVertexColor) {
|
|
685
544
|
const vertexColors = face.vertexColors;
|
|
686
545
|
faces.push(getColorIndex(vertexColors[0]), getColorIndex(vertexColors[1]), getColorIndex(vertexColors[2]));
|
|
687
546
|
}
|
|
688
547
|
}
|
|
689
|
-
|
|
690
548
|
function setBit(value, position, enabled) {
|
|
691
549
|
return enabled ? value | 1 << position : value & ~(1 << position);
|
|
692
550
|
}
|
|
693
|
-
|
|
694
551
|
function getNormalIndex(normal) {
|
|
695
552
|
const hash = normal.x.toString() + normal.y.toString() + normal.z.toString();
|
|
696
|
-
|
|
697
|
-
if (normalsHash[hash] !== undefined) {
|
|
553
|
+
if (normalsHash[hash] !== void 0) {
|
|
698
554
|
return normalsHash[hash];
|
|
699
555
|
}
|
|
700
|
-
|
|
701
556
|
normalsHash[hash] = normals.length / 3;
|
|
702
557
|
normals.push(normal.x, normal.y, normal.z);
|
|
703
558
|
return normalsHash[hash];
|
|
704
559
|
}
|
|
705
|
-
|
|
706
560
|
function getColorIndex(color) {
|
|
707
561
|
const hash = color.r.toString() + color.g.toString() + color.b.toString();
|
|
708
|
-
|
|
709
|
-
if (colorsHash[hash] !== undefined) {
|
|
562
|
+
if (colorsHash[hash] !== void 0) {
|
|
710
563
|
return colorsHash[hash];
|
|
711
564
|
}
|
|
712
|
-
|
|
713
565
|
colorsHash[hash] = colors.length;
|
|
714
566
|
colors.push(color.getHex());
|
|
715
567
|
return colorsHash[hash];
|
|
716
568
|
}
|
|
717
|
-
|
|
718
569
|
function getUvIndex(uv) {
|
|
719
570
|
const hash = uv.x.toString() + uv.y.toString();
|
|
720
|
-
|
|
721
|
-
if (uvsHash[hash] !== undefined) {
|
|
571
|
+
if (uvsHash[hash] !== void 0) {
|
|
722
572
|
return uvsHash[hash];
|
|
723
573
|
}
|
|
724
|
-
|
|
725
574
|
uvsHash[hash] = uvs.length / 2;
|
|
726
575
|
uvs.push(uv.x, uv.y);
|
|
727
576
|
return uvsHash[hash];
|
|
728
577
|
}
|
|
729
|
-
|
|
730
578
|
data.data = {};
|
|
731
579
|
data.data.vertices = vertices;
|
|
732
580
|
data.data.normals = normals;
|
|
733
|
-
if (colors.length > 0)
|
|
734
|
-
|
|
735
|
-
|
|
581
|
+
if (colors.length > 0)
|
|
582
|
+
data.data.colors = colors;
|
|
583
|
+
if (uvs.length > 0)
|
|
584
|
+
data.data.uvs = [uvs];
|
|
736
585
|
data.data.faces = faces;
|
|
737
586
|
return data;
|
|
738
587
|
}
|
|
739
|
-
|
|
740
588
|
clone() {
|
|
741
|
-
/*
|
|
742
|
-
// Handle primitives
|
|
743
|
-
const parameters = this.parameters;
|
|
744
|
-
if ( parameters !== undefined ) {
|
|
745
|
-
const values = [];
|
|
746
|
-
for ( const key in parameters ) {
|
|
747
|
-
values.push( parameters[ key ] );
|
|
748
|
-
}
|
|
749
|
-
const geometry = Object.create( this.constructor.prototype );
|
|
750
|
-
this.constructor.apply( geometry, values );
|
|
751
|
-
return geometry;
|
|
752
|
-
}
|
|
753
|
-
return new this.constructor().copy( this );
|
|
754
|
-
*/
|
|
755
589
|
return new Geometry().copy(this);
|
|
756
590
|
}
|
|
757
|
-
|
|
758
591
|
copy(source) {
|
|
759
|
-
// reset
|
|
760
592
|
this.vertices = [];
|
|
761
593
|
this.colors = [];
|
|
762
594
|
this.faces = [];
|
|
@@ -767,87 +599,57 @@ class Geometry extends EventDispatcher {
|
|
|
767
599
|
this.skinIndices = [];
|
|
768
600
|
this.lineDistances = [];
|
|
769
601
|
this.boundingBox = null;
|
|
770
|
-
this.boundingSphere = null;
|
|
771
|
-
|
|
772
|
-
this.name = source.name; // vertices
|
|
773
|
-
|
|
602
|
+
this.boundingSphere = null;
|
|
603
|
+
this.name = source.name;
|
|
774
604
|
const vertices = source.vertices;
|
|
775
|
-
|
|
776
605
|
for (let i = 0, il = vertices.length; i < il; i++) {
|
|
777
606
|
this.vertices.push(vertices[i].clone());
|
|
778
|
-
}
|
|
779
|
-
|
|
780
|
-
|
|
607
|
+
}
|
|
781
608
|
const colors = source.colors;
|
|
782
|
-
|
|
783
609
|
for (let i = 0, il = colors.length; i < il; i++) {
|
|
784
610
|
this.colors.push(colors[i].clone());
|
|
785
|
-
}
|
|
786
|
-
|
|
787
|
-
|
|
611
|
+
}
|
|
788
612
|
const faces = source.faces;
|
|
789
|
-
|
|
790
613
|
for (let i = 0, il = faces.length; i < il; i++) {
|
|
791
614
|
this.faces.push(faces[i].clone());
|
|
792
|
-
}
|
|
793
|
-
|
|
794
|
-
|
|
615
|
+
}
|
|
795
616
|
for (let i = 0, il = source.faceVertexUvs.length; i < il; i++) {
|
|
796
617
|
const faceVertexUvs = source.faceVertexUvs[i];
|
|
797
|
-
|
|
798
|
-
if (this.faceVertexUvs[i] === undefined) {
|
|
618
|
+
if (this.faceVertexUvs[i] === void 0) {
|
|
799
619
|
this.faceVertexUvs[i] = [];
|
|
800
620
|
}
|
|
801
|
-
|
|
802
621
|
for (let j = 0, jl = faceVertexUvs.length; j < jl; j++) {
|
|
803
|
-
const uvs = faceVertexUvs[j],
|
|
804
|
-
uvsCopy = [];
|
|
805
|
-
|
|
622
|
+
const uvs = faceVertexUvs[j], uvsCopy = [];
|
|
806
623
|
for (let k = 0, kl = uvs.length; k < kl; k++) {
|
|
807
624
|
const uv = uvs[k];
|
|
808
625
|
uvsCopy.push(uv.clone());
|
|
809
626
|
}
|
|
810
|
-
|
|
811
627
|
this.faceVertexUvs[i].push(uvsCopy);
|
|
812
628
|
}
|
|
813
|
-
}
|
|
814
|
-
|
|
815
|
-
|
|
629
|
+
}
|
|
816
630
|
const morphTargets = source.morphTargets;
|
|
817
|
-
|
|
818
631
|
for (let i = 0, il = morphTargets.length; i < il; i++) {
|
|
819
632
|
const morphTarget = {};
|
|
820
|
-
morphTarget.name = morphTargets[i].name;
|
|
821
|
-
|
|
822
|
-
if (morphTargets[i].vertices !== undefined) {
|
|
633
|
+
morphTarget.name = morphTargets[i].name;
|
|
634
|
+
if (morphTargets[i].vertices !== void 0) {
|
|
823
635
|
morphTarget.vertices = [];
|
|
824
|
-
|
|
825
636
|
for (let j = 0, jl = morphTargets[i].vertices.length; j < jl; j++) {
|
|
826
637
|
morphTarget.vertices.push(morphTargets[i].vertices[j].clone());
|
|
827
638
|
}
|
|
828
|
-
}
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
if (morphTargets[i].normals !== undefined) {
|
|
639
|
+
}
|
|
640
|
+
if (morphTargets[i].normals !== void 0) {
|
|
832
641
|
morphTarget.normals = [];
|
|
833
|
-
|
|
834
642
|
for (let j = 0, jl = morphTargets[i].normals.length; j < jl; j++) {
|
|
835
643
|
morphTarget.normals.push(morphTargets[i].normals[j].clone());
|
|
836
644
|
}
|
|
837
645
|
}
|
|
838
|
-
|
|
839
646
|
this.morphTargets.push(morphTarget);
|
|
840
|
-
}
|
|
841
|
-
|
|
842
|
-
|
|
647
|
+
}
|
|
843
648
|
const morphNormals = source.morphNormals;
|
|
844
|
-
|
|
845
649
|
for (let i = 0, il = morphNormals.length; i < il; i++) {
|
|
846
|
-
const morphNormal = {};
|
|
847
|
-
|
|
848
|
-
if (morphNormals[i].vertexNormals !== undefined) {
|
|
650
|
+
const morphNormal = {};
|
|
651
|
+
if (morphNormals[i].vertexNormals !== void 0) {
|
|
849
652
|
morphNormal.vertexNormals = [];
|
|
850
|
-
|
|
851
653
|
for (let j = 0, jl = morphNormals[i].vertexNormals.length; j < jl; j++) {
|
|
852
654
|
const srcVertexNormal = morphNormals[i].vertexNormals[j];
|
|
853
655
|
const destVertexNormal = {};
|
|
@@ -856,56 +658,35 @@ class Geometry extends EventDispatcher {
|
|
|
856
658
|
destVertexNormal.c = srcVertexNormal.c.clone();
|
|
857
659
|
morphNormal.vertexNormals.push(destVertexNormal);
|
|
858
660
|
}
|
|
859
|
-
}
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
if (morphNormals[i].faceNormals !== undefined) {
|
|
661
|
+
}
|
|
662
|
+
if (morphNormals[i].faceNormals !== void 0) {
|
|
863
663
|
morphNormal.faceNormals = [];
|
|
864
|
-
|
|
865
664
|
for (let j = 0, jl = morphNormals[i].faceNormals.length; j < jl; j++) {
|
|
866
665
|
morphNormal.faceNormals.push(morphNormals[i].faceNormals[j].clone());
|
|
867
666
|
}
|
|
868
667
|
}
|
|
869
|
-
|
|
870
668
|
this.morphNormals.push(morphNormal);
|
|
871
|
-
}
|
|
872
|
-
|
|
873
|
-
|
|
669
|
+
}
|
|
874
670
|
const skinWeights = source.skinWeights;
|
|
875
|
-
|
|
876
671
|
for (let i = 0, il = skinWeights.length; i < il; i++) {
|
|
877
672
|
this.skinWeights.push(skinWeights[i].clone());
|
|
878
|
-
}
|
|
879
|
-
|
|
880
|
-
|
|
673
|
+
}
|
|
881
674
|
const skinIndices = source.skinIndices;
|
|
882
|
-
|
|
883
675
|
for (let i = 0, il = skinIndices.length; i < il; i++) {
|
|
884
676
|
this.skinIndices.push(skinIndices[i].clone());
|
|
885
|
-
}
|
|
886
|
-
|
|
887
|
-
|
|
677
|
+
}
|
|
888
678
|
const lineDistances = source.lineDistances;
|
|
889
|
-
|
|
890
679
|
for (let i = 0, il = lineDistances.length; i < il; i++) {
|
|
891
680
|
this.lineDistances.push(lineDistances[i]);
|
|
892
|
-
}
|
|
893
|
-
|
|
894
|
-
|
|
681
|
+
}
|
|
895
682
|
const boundingBox = source.boundingBox;
|
|
896
|
-
|
|
897
683
|
if (boundingBox !== null) {
|
|
898
684
|
this.boundingBox = boundingBox.clone();
|
|
899
|
-
}
|
|
900
|
-
|
|
901
|
-
|
|
685
|
+
}
|
|
902
686
|
const boundingSphere = source.boundingSphere;
|
|
903
|
-
|
|
904
687
|
if (boundingSphere !== null) {
|
|
905
688
|
this.boundingSphere = boundingSphere.clone();
|
|
906
|
-
}
|
|
907
|
-
|
|
908
|
-
|
|
689
|
+
}
|
|
909
690
|
this.elementsNeedUpdate = source.elementsNeedUpdate;
|
|
910
691
|
this.verticesNeedUpdate = source.verticesNeedUpdate;
|
|
911
692
|
this.uvsNeedUpdate = source.uvsNeedUpdate;
|
|
@@ -915,123 +696,94 @@ class Geometry extends EventDispatcher {
|
|
|
915
696
|
this.groupsNeedUpdate = source.groupsNeedUpdate;
|
|
916
697
|
return this;
|
|
917
698
|
}
|
|
918
|
-
|
|
919
699
|
toBufferGeometry() {
|
|
920
700
|
const geometry = new DirectGeometry().fromGeometry(this);
|
|
921
|
-
const buffergeometry = new BufferGeometry();
|
|
701
|
+
const buffergeometry = new THREE.BufferGeometry();
|
|
922
702
|
const positions = new Float32Array(geometry.vertices.length * 3);
|
|
923
|
-
buffergeometry.setAttribute(
|
|
924
|
-
|
|
703
|
+
buffergeometry.setAttribute("position", new THREE.BufferAttribute(positions, 3).copyVector3sArray(geometry.vertices));
|
|
925
704
|
if (geometry.normals.length > 0) {
|
|
926
705
|
const normals = new Float32Array(geometry.normals.length * 3);
|
|
927
|
-
buffergeometry.setAttribute(
|
|
706
|
+
buffergeometry.setAttribute("normal", new THREE.BufferAttribute(normals, 3).copyVector3sArray(geometry.normals));
|
|
928
707
|
}
|
|
929
|
-
|
|
930
708
|
if (geometry.colors.length > 0) {
|
|
931
709
|
const colors = new Float32Array(geometry.colors.length * 3);
|
|
932
|
-
buffergeometry.setAttribute(
|
|
710
|
+
buffergeometry.setAttribute("color", new THREE.BufferAttribute(colors, 3).copyColorsArray(geometry.colors));
|
|
933
711
|
}
|
|
934
|
-
|
|
935
712
|
if (geometry.uvs.length > 0) {
|
|
936
713
|
const uvs = new Float32Array(geometry.uvs.length * 2);
|
|
937
|
-
buffergeometry.setAttribute(
|
|
714
|
+
buffergeometry.setAttribute("uv", new THREE.BufferAttribute(uvs, 2).copyVector2sArray(geometry.uvs));
|
|
938
715
|
}
|
|
939
|
-
|
|
940
716
|
if (geometry.uvs2.length > 0) {
|
|
941
717
|
const uvs2 = new Float32Array(geometry.uvs2.length * 2);
|
|
942
|
-
buffergeometry.setAttribute(
|
|
943
|
-
}
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
buffergeometry.groups = geometry.groups; // morphs
|
|
947
|
-
|
|
718
|
+
buffergeometry.setAttribute("uv2", new THREE.BufferAttribute(uvs2, 2).copyVector2sArray(geometry.uvs2));
|
|
719
|
+
}
|
|
720
|
+
buffergeometry.groups = geometry.groups;
|
|
948
721
|
for (let name in geometry.morphTargets) {
|
|
949
722
|
const array = [];
|
|
950
723
|
const morphTargets = geometry.morphTargets[name];
|
|
951
|
-
|
|
952
724
|
for (let i = 0, l = morphTargets.length; i < l; i++) {
|
|
953
725
|
const morphTarget = morphTargets[i];
|
|
954
|
-
const attribute = new Float32BufferAttribute(morphTarget.data.length * 3, 3);
|
|
726
|
+
const attribute = new THREE.Float32BufferAttribute(morphTarget.data.length * 3, 3);
|
|
955
727
|
attribute.name = morphTarget.name;
|
|
956
728
|
array.push(attribute.copyVector3sArray(morphTarget.data));
|
|
957
729
|
}
|
|
958
|
-
|
|
959
730
|
buffergeometry.morphAttributes[name] = array;
|
|
960
|
-
}
|
|
961
|
-
|
|
962
|
-
|
|
731
|
+
}
|
|
963
732
|
if (geometry.skinIndices.length > 0) {
|
|
964
|
-
const skinIndices = new Float32BufferAttribute(geometry.skinIndices.length * 4, 4);
|
|
965
|
-
buffergeometry.setAttribute(
|
|
733
|
+
const skinIndices = new THREE.Float32BufferAttribute(geometry.skinIndices.length * 4, 4);
|
|
734
|
+
buffergeometry.setAttribute("skinIndex", skinIndices.copyVector4sArray(geometry.skinIndices));
|
|
966
735
|
}
|
|
967
|
-
|
|
968
736
|
if (geometry.skinWeights.length > 0) {
|
|
969
|
-
const skinWeights = new Float32BufferAttribute(geometry.skinWeights.length * 4, 4);
|
|
970
|
-
buffergeometry.setAttribute(
|
|
971
|
-
}
|
|
972
|
-
|
|
973
|
-
|
|
737
|
+
const skinWeights = new THREE.Float32BufferAttribute(geometry.skinWeights.length * 4, 4);
|
|
738
|
+
buffergeometry.setAttribute("skinWeight", skinWeights.copyVector4sArray(geometry.skinWeights));
|
|
739
|
+
}
|
|
974
740
|
if (geometry.boundingSphere !== null) {
|
|
975
741
|
buffergeometry.boundingSphere = geometry.boundingSphere.clone();
|
|
976
742
|
}
|
|
977
|
-
|
|
978
743
|
if (geometry.boundingBox !== null) {
|
|
979
744
|
buffergeometry.boundingBox = geometry.boundingBox.clone();
|
|
980
745
|
}
|
|
981
|
-
|
|
982
746
|
return buffergeometry;
|
|
983
747
|
}
|
|
984
|
-
|
|
985
748
|
computeTangents() {
|
|
986
|
-
console.error(
|
|
749
|
+
console.error("THREE.Geometry: .computeTangents() has been removed.");
|
|
987
750
|
}
|
|
988
|
-
|
|
989
751
|
computeLineDistances() {
|
|
990
|
-
console.error(
|
|
752
|
+
console.error(
|
|
753
|
+
"THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead."
|
|
754
|
+
);
|
|
991
755
|
}
|
|
992
|
-
|
|
993
756
|
applyMatrix(matrix) {
|
|
994
|
-
console.warn(
|
|
757
|
+
console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4().");
|
|
995
758
|
return this.applyMatrix4(matrix);
|
|
996
759
|
}
|
|
997
|
-
|
|
998
760
|
dispose() {
|
|
999
|
-
this.dispatchEvent({
|
|
1000
|
-
type: 'dispose'
|
|
1001
|
-
});
|
|
761
|
+
this.dispatchEvent({ type: "dispose" });
|
|
1002
762
|
}
|
|
1003
|
-
|
|
1004
763
|
}
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
let buffergeometry = new BufferGeometry();
|
|
764
|
+
Geometry.createBufferGeometryFromObject = (object) => {
|
|
765
|
+
let buffergeometry = new THREE.BufferGeometry();
|
|
1008
766
|
const geometry = object.geometry;
|
|
1009
|
-
|
|
1010
767
|
if (object.isPoints || object.isLine) {
|
|
1011
|
-
const positions = new Float32BufferAttribute(geometry.vertices.length * 3, 3);
|
|
1012
|
-
const colors = new Float32BufferAttribute(geometry.colors.length * 3, 3);
|
|
1013
|
-
buffergeometry.setAttribute(
|
|
1014
|
-
buffergeometry.setAttribute(
|
|
1015
|
-
|
|
768
|
+
const positions = new THREE.Float32BufferAttribute(geometry.vertices.length * 3, 3);
|
|
769
|
+
const colors = new THREE.Float32BufferAttribute(geometry.colors.length * 3, 3);
|
|
770
|
+
buffergeometry.setAttribute("position", positions.copyVector3sArray(geometry.vertices));
|
|
771
|
+
buffergeometry.setAttribute("color", colors.copyColorsArray(geometry.colors));
|
|
1016
772
|
if (geometry.lineDistances && geometry.lineDistances.length === geometry.vertices.length) {
|
|
1017
|
-
const lineDistances = new Float32BufferAttribute(geometry.lineDistances.length, 1);
|
|
1018
|
-
buffergeometry.setAttribute(
|
|
773
|
+
const lineDistances = new THREE.Float32BufferAttribute(geometry.lineDistances.length, 1);
|
|
774
|
+
buffergeometry.setAttribute("lineDistance", lineDistances.copyArray(geometry.lineDistances));
|
|
1019
775
|
}
|
|
1020
|
-
|
|
1021
776
|
if (geometry.boundingSphere !== null) {
|
|
1022
777
|
buffergeometry.boundingSphere = geometry.boundingSphere.clone();
|
|
1023
778
|
}
|
|
1024
|
-
|
|
1025
779
|
if (geometry.boundingBox !== null) {
|
|
1026
780
|
buffergeometry.boundingBox = geometry.boundingBox.clone();
|
|
1027
781
|
}
|
|
1028
782
|
} else if (object.isMesh) {
|
|
1029
783
|
buffergeometry = geometry.toBufferGeometry();
|
|
1030
784
|
}
|
|
1031
|
-
|
|
1032
785
|
return buffergeometry;
|
|
1033
786
|
};
|
|
1034
|
-
|
|
1035
787
|
class DirectGeometry {
|
|
1036
788
|
constructor() {
|
|
1037
789
|
this.vertices = [];
|
|
@@ -1042,201 +794,158 @@ class DirectGeometry {
|
|
|
1042
794
|
this.groups = [];
|
|
1043
795
|
this.morphTargets = {};
|
|
1044
796
|
this.skinWeights = [];
|
|
1045
|
-
this.skinIndices = [];
|
|
1046
|
-
|
|
797
|
+
this.skinIndices = [];
|
|
1047
798
|
this.boundingBox = null;
|
|
1048
|
-
this.boundingSphere = null;
|
|
1049
|
-
|
|
799
|
+
this.boundingSphere = null;
|
|
1050
800
|
this.verticesNeedUpdate = false;
|
|
1051
801
|
this.normalsNeedUpdate = false;
|
|
1052
802
|
this.colorsNeedUpdate = false;
|
|
1053
803
|
this.uvsNeedUpdate = false;
|
|
1054
804
|
this.groupsNeedUpdate = false;
|
|
1055
805
|
}
|
|
1056
|
-
|
|
1057
806
|
computeGroups(geometry) {
|
|
1058
807
|
const groups = [];
|
|
1059
808
|
let group, i;
|
|
1060
|
-
let materialIndex =
|
|
809
|
+
let materialIndex = void 0;
|
|
1061
810
|
const faces = geometry.faces;
|
|
1062
|
-
|
|
1063
811
|
for (i = 0; i < faces.length; i++) {
|
|
1064
|
-
const face = faces[i];
|
|
1065
|
-
|
|
812
|
+
const face = faces[i];
|
|
1066
813
|
if (face.materialIndex !== materialIndex) {
|
|
1067
814
|
materialIndex = face.materialIndex;
|
|
1068
|
-
|
|
1069
|
-
if (group !== undefined) {
|
|
815
|
+
if (group !== void 0) {
|
|
1070
816
|
group.count = i * 3 - group.start;
|
|
1071
817
|
groups.push(group);
|
|
1072
818
|
}
|
|
1073
|
-
|
|
1074
819
|
group = {
|
|
1075
820
|
start: i * 3,
|
|
1076
821
|
materialIndex
|
|
1077
822
|
};
|
|
1078
823
|
}
|
|
1079
824
|
}
|
|
1080
|
-
|
|
1081
|
-
if (group !== undefined) {
|
|
825
|
+
if (group !== void 0) {
|
|
1082
826
|
group.count = i * 3 - group.start;
|
|
1083
827
|
groups.push(group);
|
|
1084
828
|
}
|
|
1085
|
-
|
|
1086
829
|
this.groups = groups;
|
|
1087
830
|
}
|
|
1088
|
-
|
|
1089
831
|
fromGeometry(geometry) {
|
|
1090
832
|
const faces = geometry.faces;
|
|
1091
833
|
const vertices = geometry.vertices;
|
|
1092
834
|
const faceVertexUvs = geometry.faceVertexUvs;
|
|
1093
835
|
const hasFaceVertexUv = faceVertexUvs[0] && faceVertexUvs[0].length > 0;
|
|
1094
|
-
const hasFaceVertexUv2 = faceVertexUvs[1] && faceVertexUvs[1].length > 0;
|
|
1095
|
-
|
|
836
|
+
const hasFaceVertexUv2 = faceVertexUvs[1] && faceVertexUvs[1].length > 0;
|
|
1096
837
|
const morphTargets = geometry.morphTargets;
|
|
1097
838
|
const morphTargetsLength = morphTargets.length;
|
|
1098
839
|
let morphTargetsPosition;
|
|
1099
|
-
|
|
1100
840
|
if (morphTargetsLength > 0) {
|
|
1101
841
|
morphTargetsPosition = [];
|
|
1102
|
-
|
|
1103
842
|
for (let i = 0; i < morphTargetsLength; i++) {
|
|
1104
843
|
morphTargetsPosition[i] = {
|
|
1105
844
|
name: morphTargets[i].name,
|
|
1106
845
|
data: []
|
|
1107
846
|
};
|
|
1108
847
|
}
|
|
1109
|
-
|
|
1110
848
|
this.morphTargets.position = morphTargetsPosition;
|
|
1111
849
|
}
|
|
1112
|
-
|
|
1113
850
|
const morphNormals = geometry.morphNormals;
|
|
1114
851
|
const morphNormalsLength = morphNormals.length;
|
|
1115
852
|
let morphTargetsNormal;
|
|
1116
|
-
|
|
1117
853
|
if (morphNormalsLength > 0) {
|
|
1118
854
|
morphTargetsNormal = [];
|
|
1119
|
-
|
|
1120
855
|
for (let i = 0; i < morphNormalsLength; i++) {
|
|
1121
856
|
morphTargetsNormal[i] = {
|
|
1122
857
|
name: morphNormals[i].name,
|
|
1123
858
|
data: []
|
|
1124
859
|
};
|
|
1125
860
|
}
|
|
1126
|
-
|
|
1127
861
|
this.morphTargets.normal = morphTargetsNormal;
|
|
1128
|
-
}
|
|
1129
|
-
|
|
1130
|
-
|
|
862
|
+
}
|
|
1131
863
|
const skinIndices = geometry.skinIndices;
|
|
1132
864
|
const skinWeights = geometry.skinWeights;
|
|
1133
865
|
const hasSkinIndices = skinIndices.length === vertices.length;
|
|
1134
|
-
const hasSkinWeights = skinWeights.length === vertices.length;
|
|
1135
|
-
|
|
866
|
+
const hasSkinWeights = skinWeights.length === vertices.length;
|
|
1136
867
|
if (vertices.length > 0 && faces.length === 0) {
|
|
1137
|
-
console.error(
|
|
868
|
+
console.error("THREE.DirectGeometry: Faceless geometries are not supported.");
|
|
1138
869
|
}
|
|
1139
|
-
|
|
1140
870
|
for (let i = 0; i < faces.length; i++) {
|
|
1141
871
|
const face = faces[i];
|
|
1142
872
|
this.vertices.push(vertices[face.a], vertices[face.b], vertices[face.c]);
|
|
1143
873
|
const vertexNormals = face.vertexNormals;
|
|
1144
|
-
|
|
1145
874
|
if (vertexNormals.length === 3) {
|
|
1146
875
|
this.normals.push(vertexNormals[0], vertexNormals[1], vertexNormals[2]);
|
|
1147
876
|
} else {
|
|
1148
877
|
const normal = face.normal;
|
|
1149
878
|
this.normals.push(normal, normal, normal);
|
|
1150
879
|
}
|
|
1151
|
-
|
|
1152
880
|
const vertexColors = face.vertexColors;
|
|
1153
|
-
|
|
1154
881
|
if (vertexColors.length === 3) {
|
|
1155
882
|
this.colors.push(vertexColors[0], vertexColors[1], vertexColors[2]);
|
|
1156
883
|
} else {
|
|
1157
884
|
const color = face.color;
|
|
1158
885
|
this.colors.push(color, color, color);
|
|
1159
886
|
}
|
|
1160
|
-
|
|
1161
887
|
if (hasFaceVertexUv === true) {
|
|
1162
888
|
const vertexUvs = faceVertexUvs[0][i];
|
|
1163
|
-
|
|
1164
|
-
if (vertexUvs !== undefined) {
|
|
889
|
+
if (vertexUvs !== void 0) {
|
|
1165
890
|
this.uvs.push(vertexUvs[0], vertexUvs[1], vertexUvs[2]);
|
|
1166
891
|
} else {
|
|
1167
|
-
console.warn(
|
|
1168
|
-
this.uvs.push(new Vector2(), new Vector2(), new Vector2());
|
|
892
|
+
console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ", i);
|
|
893
|
+
this.uvs.push(new THREE.Vector2(), new THREE.Vector2(), new THREE.Vector2());
|
|
1169
894
|
}
|
|
1170
895
|
}
|
|
1171
|
-
|
|
1172
896
|
if (hasFaceVertexUv2 === true) {
|
|
1173
897
|
const vertexUvs = faceVertexUvs[1][i];
|
|
1174
|
-
|
|
1175
|
-
if (vertexUvs !== undefined) {
|
|
898
|
+
if (vertexUvs !== void 0) {
|
|
1176
899
|
this.uvs2.push(vertexUvs[0], vertexUvs[1], vertexUvs[2]);
|
|
1177
900
|
} else {
|
|
1178
|
-
console.warn(
|
|
1179
|
-
this.uvs2.push(new Vector2(), new Vector2(), new Vector2());
|
|
901
|
+
console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ", i);
|
|
902
|
+
this.uvs2.push(new THREE.Vector2(), new THREE.Vector2(), new THREE.Vector2());
|
|
1180
903
|
}
|
|
1181
|
-
}
|
|
1182
|
-
|
|
1183
|
-
|
|
904
|
+
}
|
|
1184
905
|
for (let j = 0; j < morphTargetsLength; j++) {
|
|
1185
906
|
const morphTarget = morphTargets[j].vertices;
|
|
1186
907
|
morphTargetsPosition[j].data.push(morphTarget[face.a], morphTarget[face.b], morphTarget[face.c]);
|
|
1187
908
|
}
|
|
1188
|
-
|
|
1189
909
|
for (let j = 0; j < morphNormalsLength; j++) {
|
|
1190
910
|
const morphNormal = morphNormals[j].vertexNormals[i];
|
|
1191
911
|
morphTargetsNormal[j].data.push(morphNormal.a, morphNormal.b, morphNormal.c);
|
|
1192
|
-
}
|
|
1193
|
-
|
|
1194
|
-
|
|
912
|
+
}
|
|
1195
913
|
if (hasSkinIndices) {
|
|
1196
914
|
this.skinIndices.push(skinIndices[face.a], skinIndices[face.b], skinIndices[face.c]);
|
|
1197
915
|
}
|
|
1198
|
-
|
|
1199
916
|
if (hasSkinWeights) {
|
|
1200
917
|
this.skinWeights.push(skinWeights[face.a], skinWeights[face.b], skinWeights[face.c]);
|
|
1201
918
|
}
|
|
1202
919
|
}
|
|
1203
|
-
|
|
1204
920
|
this.computeGroups(geometry);
|
|
1205
921
|
this.verticesNeedUpdate = geometry.verticesNeedUpdate;
|
|
1206
922
|
this.normalsNeedUpdate = geometry.normalsNeedUpdate;
|
|
1207
923
|
this.colorsNeedUpdate = geometry.colorsNeedUpdate;
|
|
1208
924
|
this.uvsNeedUpdate = geometry.uvsNeedUpdate;
|
|
1209
925
|
this.groupsNeedUpdate = geometry.groupsNeedUpdate;
|
|
1210
|
-
|
|
1211
926
|
if (geometry.boundingSphere !== null) {
|
|
1212
927
|
this.boundingSphere = geometry.boundingSphere.clone();
|
|
1213
928
|
}
|
|
1214
|
-
|
|
1215
929
|
if (geometry.boundingBox !== null) {
|
|
1216
930
|
this.boundingBox = geometry.boundingBox.clone();
|
|
1217
931
|
}
|
|
1218
|
-
|
|
1219
932
|
return this;
|
|
1220
933
|
}
|
|
1221
|
-
|
|
1222
934
|
}
|
|
1223
|
-
|
|
1224
935
|
class Face3 {
|
|
1225
936
|
constructor(a, b, c, normal, color, materialIndex = 0) {
|
|
1226
937
|
this.a = a;
|
|
1227
938
|
this.b = b;
|
|
1228
939
|
this.c = c;
|
|
1229
|
-
this.normal = normal && normal.isVector3 ? normal : new Vector3();
|
|
940
|
+
this.normal = normal && normal.isVector3 ? normal : new THREE.Vector3();
|
|
1230
941
|
this.vertexNormals = Array.isArray(normal) ? normal : [];
|
|
1231
|
-
this.color = color && color.isColor ? color : new Color();
|
|
942
|
+
this.color = color && color.isColor ? color : new THREE.Color();
|
|
1232
943
|
this.vertexColors = Array.isArray(color) ? color : [];
|
|
1233
944
|
this.materialIndex = materialIndex;
|
|
1234
945
|
}
|
|
1235
|
-
|
|
1236
946
|
clone() {
|
|
1237
947
|
return new this.constructor().copy(this);
|
|
1238
948
|
}
|
|
1239
|
-
|
|
1240
949
|
copy(source) {
|
|
1241
950
|
this.a = source.a;
|
|
1242
951
|
this.b = source.b;
|
|
@@ -1244,18 +953,14 @@ class Face3 {
|
|
|
1244
953
|
this.normal.copy(source.normal);
|
|
1245
954
|
this.color.copy(source.color);
|
|
1246
955
|
this.materialIndex = source.materialIndex;
|
|
1247
|
-
|
|
1248
956
|
for (let i = 0, il = source.vertexNormals.length; i < il; i++) {
|
|
1249
957
|
this.vertexNormals[i] = source.vertexNormals[i].clone();
|
|
1250
958
|
}
|
|
1251
|
-
|
|
1252
959
|
for (let i = 0, il = source.vertexColors.length; i < il; i++) {
|
|
1253
960
|
this.vertexColors[i] = source.vertexColors[i].clone();
|
|
1254
961
|
}
|
|
1255
|
-
|
|
1256
962
|
return this;
|
|
1257
963
|
}
|
|
1258
|
-
|
|
1259
964
|
}
|
|
1260
|
-
|
|
1261
|
-
|
|
965
|
+
exports.Face3 = Face3;
|
|
966
|
+
exports.Geometry = Geometry;
|