three-stdlib 2.16.0 → 2.16.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BufferGeometryUtils-1a7a235c.js +655 -0
- package/BufferGeometryUtils-971dfde3.js +1 -0
- package/Nodes-4f766d71.js +471 -0
- package/Nodes-9aa16d74.js +1 -0
- package/animation/AnimationClipCreator.cjs.js +1 -0
- package/animation/AnimationClipCreator.js +52 -32
- package/animation/CCDIKSolver.cjs.js +1 -0
- package/animation/CCDIKSolver.js +143 -64
- package/animation/MMDAnimationHelper.cjs.js +1 -0
- package/animation/MMDAnimationHelper.js +341 -150
- package/animation/MMDPhysics.cjs.js +1 -0
- package/animation/MMDPhysics.js +361 -154
- package/cameras/CinematicCamera.cjs.js +1 -0
- package/cameras/CinematicCamera.js +77 -67
- package/controls/ArcballControls.cjs.js +1 -0
- package/controls/ArcballControls.js +1449 -544
- package/controls/DeviceOrientationControls.cjs.js +1 -0
- package/controls/DeviceOrientationControls.js +97 -52
- package/controls/DragControls.cjs.js +1 -0
- package/controls/DragControls.js +187 -85
- package/controls/FirstPersonControls.cjs.js +1 -0
- package/controls/FirstPersonControls.js +193 -123
- package/controls/FlyControls.cjs.js +1 -0
- package/controls/FlyControls.d.ts +5 -4
- package/controls/FlyControls.js +160 -90
- package/controls/OrbitControls.cjs.js +1 -0
- package/controls/OrbitControls.js +481 -232
- package/controls/PointerLockControls.cjs.js +1 -0
- package/controls/PointerLockControls.js +99 -63
- package/controls/TrackballControls.cjs.js +1 -0
- package/controls/TrackballControls.js +383 -211
- package/controls/TransformControls.cjs.js +1 -0
- package/controls/TransformControls.js +782 -575
- package/controls/experimental/CameraControls.cjs.js +1 -0
- package/controls/experimental/CameraControls.js +609 -329
- package/csm/CSM.cjs.js +1 -0
- package/csm/CSM.js +108 -47
- package/csm/CSMFrustum.cjs.js +1 -0
- package/csm/CSMFrustum.js +29 -14
- package/csm/CSMHelper.cjs.js +1 -0
- package/csm/CSMHelper.js +34 -20
- package/csm/CSMShader.cjs.js +1 -0
- package/csm/CSMShader.js +11 -7
- package/curves/CurveExtras.cjs.js +1 -0
- package/curves/CurveExtras.js +115 -73
- package/curves/NURBSCurve.cjs.js +1 -0
- package/curves/NURBSCurve.js +43 -15
- package/curves/NURBSSurface.cjs.js +1 -0
- package/curves/NURBSSurface.js +27 -11
- package/curves/NURBSUtils.cjs.js +1 -0
- package/curves/NURBSUtils.js +203 -54
- package/custom.d.cjs.js +1 -0
- package/{shaders/types.mjs → custom.d.js} +0 -0
- package/deprecated/Geometry.cjs.js +1 -0
- package/deprecated/Geometry.js +486 -191
- package/effects/AnaglyphEffect.cjs.js +1 -0
- package/effects/AnaglyphEffect.js +60 -95
- package/effects/AsciiEffect.cjs.js +1 -0
- package/effects/AsciiEffect.js +110 -80
- package/effects/OutlineEffect.cjs.js +1 -0
- package/effects/OutlineEffect.js +204 -121
- package/effects/ParallaxBarrierEffect.cjs.js +1 -0
- package/effects/ParallaxBarrierEffect.js +38 -39
- package/effects/PeppersGhostEffect.cjs.js +1 -0
- package/effects/PeppersGhostEffect.js +68 -19
- package/effects/StereoEffect.cjs.js +1 -0
- package/effects/StereoEffect.js +16 -12
- package/environments/RoomEnvironment.cjs.js +1 -0
- package/environments/RoomEnvironment.js +47 -52
- package/exporters/ColladaExporter.cjs.js +1 -0
- package/exporters/ColladaExporter.js +241 -115
- package/exporters/DRACOExporter.cjs.js +1 -0
- package/exporters/DRACOExporter.js +121 -67
- package/exporters/GLTFExporter.cjs.js +1 -0
- package/exporters/GLTFExporter.js +1014 -463
- package/exporters/MMDExporter.cjs.js +1 -0
- package/exporters/MMDExporter.js +102 -44
- package/exporters/OBJExporter.cjs.js +1 -0
- package/exporters/OBJExporter.js +140 -78
- package/exporters/PLYExporter.cjs.js +1 -0
- package/exporters/PLYExporter.js +154 -93
- package/exporters/STLExporter.cjs.js +1 -0
- package/exporters/STLExporter.js +81 -30
- package/exporters/USDZExporter.cjs.js +1 -0
- package/exporters/USDZExporter.js +144 -84
- package/geometries/BoxLineGeometry.cjs.js +1 -0
- package/geometries/BoxLineGeometry.js +14 -7
- package/geometries/ConvexGeometry.cjs.js +1 -0
- package/geometries/ConvexGeometry.js +23 -14
- package/geometries/DecalGeometry.cjs.js +1 -0
- package/geometries/DecalGeometry.js +162 -108
- package/geometries/LightningStrike.cjs.js +1 -0
- package/geometries/LightningStrike.js +294 -101
- package/geometries/ParametricGeometries.cjs.js +1 -0
- package/geometries/ParametricGeometries.js +76 -26
- package/geometries/ParametricGeometry.cjs.js +1 -0
- package/geometries/ParametricGeometry.js +48 -24
- package/geometries/RoundedBoxGeometry.cjs.js +1 -0
- package/geometries/RoundedBoxGeometry.js +64 -33
- package/geometries/TeapotGeometry.cjs.js +1 -0
- package/geometries/TeapotGeometry.js +174 -1434
- package/geometries/TextGeometry.cjs.js +1 -0
- package/geometries/TextGeometry.js +17 -9
- package/helpers/LightProbeHelper.cjs.js +1 -0
- package/helpers/LightProbeHelper.js +21 -53
- package/helpers/PositionalAudioHelper.cjs.js +1 -0
- package/helpers/PositionalAudioHelper.js +30 -23
- package/helpers/RectAreaLightHelper.cjs.js +1 -0
- package/helpers/RectAreaLightHelper.js +33 -17
- package/helpers/VertexNormalsHelper.cjs.js +1 -0
- package/helpers/VertexNormalsHelper.js +41 -20
- package/helpers/VertexTangentsHelper.cjs.js +1 -0
- package/helpers/VertexTangentsHelper.js +36 -18
- package/index.cjs.js +1 -0
- package/index.js +333 -969
- package/interactive/InteractiveGroup.cjs.js +1 -0
- package/interactive/InteractiveGroup.d.ts +5 -0
- package/interactive/InteractiveGroup.js +87 -0
- package/interactive/SelectionBox.cjs.js +1 -0
- package/interactive/SelectionBox.js +46 -31
- package/interactive/SelectionHelper.cjs.js +1 -0
- package/interactive/SelectionHelper.js +21 -16
- package/libs/MeshoptDecoder.cjs.js +1 -0
- package/libs/MeshoptDecoder.js +58 -147
- package/libs/MotionControllers.cjs.js +1 -0
- package/libs/MotionControllers.js +208 -66
- package/lights/LightProbeGenerator.cjs.js +1 -0
- package/lights/LightProbeGenerator.js +96 -40
- package/lights/RectAreaLightUniformsLib.cjs.js +1 -0
- package/lights/RectAreaLightUniformsLib.js +9 -32842
- package/lines/Line2.cjs.js +1 -0
- package/lines/Line2.js +12 -9
- package/lines/LineGeometry.cjs.js +1 -0
- package/lines/LineGeometry.js +19 -7
- package/lines/LineMaterial.cjs.js +1 -0
- package/lines/LineMaterial.js +89 -51
- package/lines/LineSegments2.cjs.js +1 -0
- package/lines/LineSegments2.js +165 -56
- package/lines/LineSegmentsGeometry.cjs.js +1 -0
- package/lines/LineSegmentsGeometry.js +71 -29
- package/lines/Wireframe.cjs.js +1 -0
- package/lines/Wireframe.js +29 -15
- package/lines/WireframeGeometry2.cjs.js +1 -0
- package/lines/WireframeGeometry2.js +9 -8
- package/loaders/3DMLoader.cjs.js +1 -0
- package/loaders/3DMLoader.js +469 -234
- package/loaders/3MFLoader.cjs.js +1 -0
- package/loaders/3MFLoader.js +555 -340
- package/loaders/AMFLoader.cjs.js +1 -0
- package/loaders/AMFLoader.js +219 -114
- package/loaders/AssimpLoader.cjs.js +1 -0
- package/loaders/AssimpLoader.js +725 -328
- package/loaders/BVHLoader.cjs.js +1 -0
- package/loaders/BVHLoader.js +200 -94
- package/loaders/BasisTextureLoader.cjs.js +1 -0
- package/loaders/BasisTextureLoader.js +357 -229
- package/loaders/ColladaLoader.cjs.js +1 -0
- package/loaders/ColladaLoader.js +1522 -932
- package/loaders/DDSLoader.cjs.js +1 -0
- package/loaders/DDSLoader.js +108 -42
- package/loaders/DRACOLoader.cjs.js +1 -0
- package/loaders/DRACOLoader.js +210 -103
- package/loaders/EXRLoader.cjs.js +1 -0
- package/loaders/EXRLoader.js +809 -461
- package/loaders/FBXLoader.cjs.js +1 -0
- package/loaders/FBXLoader.js +1397 -842
- package/loaders/FontLoader.cjs.js +1 -0
- package/loaders/FontLoader.js +66 -33
- package/loaders/GCodeLoader.cjs.js +1 -0
- package/loaders/GCodeLoader.js +111 -63
- package/loaders/GLTFLoader.cjs.js +1 -0
- package/loaders/GLTFLoader.js +1484 -771
- package/loaders/HDRCubeTextureLoader.cjs.js +1 -0
- package/loaders/HDRCubeTextureLoader.js +50 -45
- package/loaders/KMZLoader.cjs.js +1 -0
- package/loaders/KMZLoader.js +55 -42
- package/loaders/KTX2Loader.cjs.js +1 -0
- package/loaders/KTX2Loader.js +362 -229
- package/loaders/KTXLoader.cjs.js +1 -0
- package/loaders/KTXLoader.js +99 -37
- package/loaders/LDrawLoader.cjs.js +1 -0
- package/loaders/LDrawLoader.js +746 -313
- package/loaders/LUT3dlLoader.cjs.js +1 -0
- package/loaders/LUT3dlLoader.js +62 -50
- package/loaders/LUTCubeLoader.cjs.js +1 -0
- package/loaders/LUTCubeLoader.js +56 -45
- package/loaders/LWOLoader.cjs.js +1 -0
- package/loaders/LWOLoader.js +339 -227
- package/loaders/LottieLoader.cjs.js +1 -0
- package/loaders/LottieLoader.js +38 -36
- package/loaders/MD2Loader.cjs.js +1 -0
- package/loaders/MD2Loader.js +91 -248
- package/loaders/MDDLoader.cjs.js +1 -0
- package/loaders/MDDLoader.js +45 -25
- package/loaders/MMDLoader.cjs.js +1 -0
- package/loaders/MMDLoader.js +795 -359
- package/loaders/MTLLoader.cjs.js +1 -0
- package/loaders/MTLLoader.js +201 -91
- package/loaders/NRRDLoader.cjs.js +1 -0
- package/loaders/NRRDLoader.js +263 -182
- package/loaders/NodeMaterialLoader.cjs.js +1 -0
- package/loaders/NodeMaterialLoader.js +14 -121
- package/loaders/OBJLoader.cjs.js +1 -0
- package/loaders/OBJLoader.js +283 -161
- package/loaders/PCDLoader.cjs.js +1 -0
- package/loaders/PCDLoader.js +164 -145
- package/loaders/PDBLoader.cjs.js +1 -0
- package/loaders/PDBLoader.js +63 -45
- package/loaders/PLYLoader.cjs.js +1 -0
- package/loaders/PLYLoader.js +203 -106
- package/loaders/PRWMLoader.cjs.js +1 -0
- package/loaders/PRWMLoader.js +110 -73
- package/loaders/PVRLoader.cjs.js +1 -0
- package/loaders/PVRLoader.js +93 -32
- package/loaders/RGBELoader.cjs.js +1 -0
- package/loaders/RGBELoader.js +233 -96
- package/loaders/RGBMLoader.cjs.js +1 -0
- package/loaders/RGBMLoader.js +514 -344
- package/loaders/STLLoader.cjs.js +1 -0
- package/loaders/STLLoader.js +165 -59
- package/loaders/SVGLoader.cjs.js +1 -0
- package/loaders/SVGLoader.js +851 -481
- package/loaders/TDSLoader.cjs.js +1 -0
- package/loaders/TDSLoader.js +527 -137
- package/loaders/TGALoader.cjs.js +1 -0
- package/loaders/TGALoader.js +205 -94
- package/loaders/TTFLoader.cjs.js +1 -0
- package/loaders/TTFLoader.js +79 -58
- package/loaders/TiltLoader.cjs.js +1 -0
- package/loaders/TiltLoader.js +167 -129
- package/loaders/VOXLoader.cjs.js +1 -0
- package/loaders/VOXLoader.js +84 -320
- package/loaders/VRMLLoader.cjs.js +1 -0
- package/loaders/VRMLLoader.js +1268 -786
- package/loaders/VRMLoader.cjs.js +1 -0
- package/loaders/VRMLoader.js +31 -23
- package/loaders/VTKLoader.cjs.js +1 -0
- package/loaders/VTKLoader.js +407 -219
- package/loaders/XLoader.cjs.js +1 -0
- package/loaders/XLoader.js +1259 -1083
- package/loaders/XYZLoader.cjs.js +1 -0
- package/loaders/XYZLoader.js +34 -28
- package/loaders/lwo/IFFParser.cjs.js +1 -0
- package/loaders/lwo/IFFParser.js +492 -238
- package/loaders/lwo/LWO2Parser.cjs.js +1 -0
- package/loaders/lwo/LWO2Parser.js +279 -176
- package/loaders/lwo/LWO3Parser.cjs.js +1 -0
- package/loaders/lwo/LWO3Parser.js +247 -160
- package/math/Capsule.cjs.js +1 -0
- package/math/Capsule.js +43 -56
- package/math/ColorConverter.cjs.js +1 -0
- package/math/ColorConverter.js +32 -18
- package/math/ConvexHull.cjs.js +1 -0
- package/math/ConvexHull.js +357 -97
- package/math/ImprovedNoise.cjs.js +1 -0
- package/math/ImprovedNoise.js +32 -282
- package/math/Lut.cjs.js +1 -0
- package/math/Lut.js +35 -51
- package/math/MeshSurfaceSampler.cjs.js +1 -0
- package/math/MeshSurfaceSampler.js +68 -25
- package/math/OBB.cjs.js +1 -0
- package/math/OBB.js +152 -91
- package/math/Octree.cjs.js +1 -0
- package/math/Octree.js +139 -76
- package/math/SimplexNoise.cjs.js +1 -0
- package/math/SimplexNoise.js +238 -217
- package/misc/ConvexObjectBreaker.cjs.js +1 -0
- package/misc/ConvexObjectBreaker.js +185 -79
- package/misc/GPUComputationRenderer.cjs.js +1 -0
- package/misc/GPUComputationRenderer.js +194 -69
- package/misc/Gyroscope.cjs.js +1 -0
- package/misc/Gyroscope.js +22 -16
- package/misc/MD2Character.cjs.js +1 -0
- package/misc/MD2Character.js +74 -52
- package/misc/MD2CharacterComplex.cjs.js +1 -0
- package/misc/MD2CharacterComplex.js +163 -112
- package/misc/MorphAnimMesh.cjs.js +1 -0
- package/misc/MorphAnimMesh.js +28 -20
- package/misc/MorphBlendMesh.cjs.js +1 -0
- package/misc/MorphBlendMesh.js +69 -45
- package/misc/ProgressiveLightmap.cjs.js +1 -0
- package/misc/ProgressiveLightmap.js +187 -70
- package/misc/RollerCoaster.cjs.js +1 -0
- package/misc/RollerCoaster.js +135 -106
- package/misc/TubePainter.cjs.js +1 -0
- package/misc/TubePainter.js +92 -74
- package/misc/Volume.cjs.js +1 -0
- package/misc/Volume.js +270 -108
- package/misc/VolumeSlice.cjs.js +1 -0
- package/misc/VolumeSlice.js +122 -34
- package/misc/WebGL.cjs.js +1 -0
- package/misc/WebGL.js +34 -37
- package/modifiers/CurveModifier.cjs.js +1 -0
- package/modifiers/CurveModifier.js +151 -46
- package/modifiers/EdgeSplitModifier.cjs.js +1 -0
- package/modifiers/EdgeSplitModifier.js +90 -46
- package/modifiers/SimplifyModifier.cjs.js +1 -0
- package/modifiers/SimplifyModifier.js +202 -77
- package/modifiers/TessellateModifier.cjs.js +1 -0
- package/modifiers/TessellateModifier.js +90 -65
- package/nodes/Nodes.cjs.js +1 -0
- package/nodes/Nodes.js +140 -274
- package/nodes/ShaderNode.cjs.js +1 -0
- package/nodes/ShaderNode.js +196 -296
- package/nodes/accessors/BufferNode.cjs.js +1 -0
- package/nodes/accessors/BufferNode.js +8 -4
- package/nodes/accessors/CameraNode.cjs.js +1 -0
- package/nodes/accessors/CameraNode.js +25 -20
- package/nodes/accessors/CubeTextureNode.cjs.js +1 -0
- package/nodes/accessors/CubeTextureNode.js +26 -14
- package/nodes/accessors/MaterialNode.cjs.js +1 -0
- package/nodes/accessors/MaterialNode.js +53 -43
- package/nodes/accessors/MaterialReferenceNode.cjs.js +1 -0
- package/nodes/accessors/MaterialReferenceNode.js +6 -3
- package/nodes/accessors/ModelNode.cjs.js +1 -0
- package/nodes/accessors/ModelNode.js +5 -3
- package/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
- package/nodes/accessors/ModelViewProjectionNode.js +13 -14
- package/nodes/accessors/NormalNode.cjs.js +1 -0
- package/nodes/accessors/NormalNode.js +39 -40
- package/nodes/accessors/Object3DNode.cjs.js +1 -0
- package/nodes/accessors/Object3DNode.js +50 -40
- package/nodes/accessors/PointUVNode.cjs.js +1 -0
- package/nodes/accessors/PointUVNode.js +9 -5
- package/nodes/accessors/PositionNode.cjs.js +1 -0
- package/nodes/accessors/PositionNode.js +41 -42
- package/nodes/accessors/ReferenceNode.cjs.js +1 -0
- package/nodes/accessors/ReferenceNode.js +17 -10
- package/nodes/accessors/ReflectNode.cjs.js +1 -0
- package/nodes/accessors/ReflectNode.js +26 -23
- package/nodes/accessors/SkinningNode.cjs.js +1 -0
- package/nodes/accessors/SkinningNode.js +48 -46
- package/nodes/accessors/TextureNode.cjs.js +1 -0
- package/nodes/accessors/TextureNode.js +29 -14
- package/nodes/accessors/UVNode.cjs.js +1 -0
- package/nodes/accessors/UVNode.js +11 -5
- package/nodes/core/ArrayUniformNode.cjs.js +1 -0
- package/nodes/core/ArrayUniformNode.js +7 -3
- package/nodes/core/AttributeNode.cjs.js +1 -0
- package/nodes/core/AttributeNode.js +12 -5
- package/nodes/core/BypassNode.cjs.js +1 -0
- package/nodes/core/BypassNode.js +12 -5
- package/nodes/core/CodeNode.cjs.js +1 -0
- package/nodes/core/CodeNode.js +12 -4
- package/nodes/core/ConstNode.cjs.js +1 -0
- package/nodes/core/ConstNode.js +7 -3
- package/nodes/core/ContextNode.cjs.js +1 -0
- package/nodes/core/ContextNode.js +8 -3
- package/nodes/core/ExpressionNode.cjs.js +1 -0
- package/nodes/core/ExpressionNode.js +9 -5
- package/nodes/core/FunctionCallNode.cjs.js +1 -0
- package/nodes/core/FunctionCallNode.js +15 -6
- package/nodes/core/FunctionNode.cjs.js +1 -0
- package/nodes/core/FunctionNode.js +25 -10
- package/nodes/core/InputNode.cjs.js +1 -0
- package/nodes/core/InputNode.js +23 -12
- package/nodes/core/Node.cjs.js +1 -0
- package/nodes/core/Node.js +75 -35
- package/nodes/core/NodeAttribute.cjs.js +1 -0
- package/nodes/core/NodeAttribute.js +4 -2
- package/nodes/core/NodeBuilder.cjs.js +1 -0
- package/nodes/core/NodeBuilder.js +224 -110
- package/nodes/core/NodeCode.cjs.js +1 -0
- package/nodes/core/NodeCode.js +7 -4
- package/nodes/core/NodeFrame.cjs.js +1 -0
- package/nodes/core/NodeFrame.js +12 -9
- package/nodes/core/NodeFunction.cjs.js +1 -0
- package/nodes/core/NodeFunction.js +17 -0
- package/nodes/core/NodeFunctionInput.cjs.js +1 -0
- package/nodes/core/NodeFunctionInput.js +5 -3
- package/nodes/core/NodeKeywords.cjs.js +1 -0
- package/nodes/core/NodeKeywords.js +16 -5
- package/nodes/core/NodeParser.cjs.js +1 -0
- package/nodes/core/NodeParser.js +8 -0
- package/nodes/core/NodeUniform.cjs.js +1 -0
- package/nodes/core/NodeUniform.js +7 -3
- package/nodes/core/NodeUtils.cjs.js +1 -0
- package/nodes/core/NodeUtils.js +43 -39
- package/nodes/core/NodeVar.cjs.js +1 -0
- package/nodes/core/NodeVar.js +4 -2
- package/nodes/core/NodeVary.cjs.js +1 -0
- package/nodes/core/NodeVary.js +4 -2
- package/nodes/core/PropertyNode.cjs.js +1 -0
- package/nodes/core/PropertyNode.js +10 -4
- package/nodes/core/TempNode.cjs.js +1 -0
- package/nodes/core/TempNode.js +11 -5
- package/nodes/core/UniformNode.cjs.js +1 -0
- package/nodes/core/UniformNode.js +10 -4
- package/nodes/core/VarNode.cjs.js +1 -0
- package/nodes/core/VarNode.js +11 -3
- package/nodes/core/VaryNode.cjs.js +1 -0
- package/nodes/core/VaryNode.js +15 -6
- package/nodes/core/constants.cjs.js +1 -0
- package/nodes/core/constants.js +7 -20
- package/nodes/display/ColorSpaceNode.cjs.js +1 -0
- package/nodes/display/ColorSpaceNode.js +38 -34
- package/nodes/display/NormalMapNode.cjs.js +1 -0
- package/nodes/display/NormalMapNode.js +53 -35
- package/nodes/fog/FogNode.cjs.js +1 -0
- package/nodes/fog/FogNode.js +9 -5
- package/nodes/fog/FogRangeNode.cjs.js +1 -0
- package/nodes/fog/FogRangeNode.js +9 -5
- package/nodes/functions/BSDFs.cjs.js +1 -0
- package/nodes/functions/BSDFs.js +118 -61
- package/nodes/functions/PhysicalMaterialFunctions.cjs.js +1 -0
- package/nodes/functions/PhysicalMaterialFunctions.js +57 -0
- package/nodes/lights/LightContextNode.cjs.js +1 -0
- package/nodes/lights/LightContextNode.js +23 -14
- package/nodes/lights/LightNode.cjs.js +1 -0
- package/nodes/lights/LightNode.js +31 -27
- package/nodes/lights/LightsNode.cjs.js +1 -0
- package/nodes/lights/LightsNode.js +28 -9
- package/nodes/loaders/NodeLoader.cjs.js +1 -0
- package/nodes/loaders/NodeLoader.js +42 -27
- package/nodes/loaders/NodeMaterialLoader.cjs.js +1 -0
- package/nodes/loaders/NodeMaterialLoader.js +10 -4
- package/nodes/loaders/NodeObjectLoader.cjs.js +1 -0
- package/nodes/loaders/NodeObjectLoader.js +19 -9
- package/nodes/materials/LineBasicNodeMaterial.cjs.js +1 -0
- package/nodes/materials/LineBasicNodeMaterial.js +10 -5
- package/nodes/materials/Materials.cjs.js +1 -0
- package/nodes/materials/Materials.js +17 -14
- package/nodes/materials/MeshBasicNodeMaterial.cjs.js +1 -0
- package/nodes/materials/MeshBasicNodeMaterial.js +10 -5
- package/nodes/materials/MeshStandardNodeMaterial.cjs.js +1 -0
- package/nodes/materials/MeshStandardNodeMaterial.js +8 -5
- package/nodes/materials/NodeMaterial.cjs.js +1 -0
- package/nodes/materials/NodeMaterial.js +36 -20
- package/nodes/materials/PointsNodeMaterial.cjs.js +1 -0
- package/nodes/materials/PointsNodeMaterial.js +10 -5
- package/nodes/math/CondNode.cjs.js +1 -0
- package/nodes/math/CondNode.js +23 -11
- package/nodes/math/MathNode.cjs.js +1 -0
- package/nodes/math/MathNode.js +142 -98
- package/nodes/math/OperatorNode.cjs.js +1 -0
- package/nodes/math/OperatorNode.js +46 -24
- package/nodes/parsers/GLSLNodeFunction.cjs.js +1 -0
- package/nodes/parsers/GLSLNodeFunction.js +101 -0
- package/nodes/parsers/GLSLNodeParser.cjs.js +1 -0
- package/nodes/parsers/GLSLNodeParser.js +13 -0
- package/nodes/parsers/WGSLNodeFunction.cjs.js +1 -0
- package/nodes/parsers/WGSLNodeFunction.js +71 -0
- package/nodes/parsers/WGSLNodeParser.cjs.js +1 -0
- package/nodes/parsers/WGSLNodeParser.js +13 -0
- package/nodes/procedural/CheckerNode.cjs.js +1 -0
- package/nodes/procedural/CheckerNode.js +19 -13
- package/nodes/utils/ArrayElementNode.cjs.js +1 -0
- package/nodes/utils/ArrayElementNode.js +8 -4
- package/nodes/utils/ConvertNode.cjs.js +1 -0
- package/nodes/utils/ConvertNode.js +8 -3
- package/nodes/utils/JoinNode.cjs.js +1 -0
- package/nodes/utils/JoinNode.js +11 -7
- package/nodes/utils/MatcapUVNode.cjs.js +1 -0
- package/nodes/utils/MatcapUVNode.js +11 -8
- package/nodes/utils/OscNode.cjs.js +1 -0
- package/nodes/utils/OscNode.js +33 -27
- package/nodes/utils/SplitNode.cjs.js +1 -0
- package/nodes/utils/SplitNode.js +20 -6
- package/nodes/utils/SpriteSheetUVNode.cjs.js +1 -0
- package/nodes/utils/SpriteSheetUVNode.js +23 -23
- package/nodes/utils/TimerNode.cjs.js +1 -0
- package/nodes/utils/TimerNode.js +24 -20
- package/objects/GroundProjectedEnv.cjs.js +1 -0
- package/objects/GroundProjectedEnv.js +37 -22
- package/objects/Lensflare.cjs.js +1 -0
- package/objects/Lensflare.js +156 -86
- package/objects/LightningStorm.cjs.js +1 -0
- package/objects/LightningStorm.js +102 -38
- package/objects/MarchingCubes.cjs.js +1 -0
- package/objects/MarchingCubes.js +303 -150
- package/objects/Reflector.cjs.js +1 -0
- package/objects/Reflector.js +72 -50
- package/objects/ReflectorForSSRPass.cjs.js +1 -0
- package/objects/ReflectorForSSRPass.js +131 -80
- package/objects/ReflectorRTT.cjs.js +1 -0
- package/objects/ReflectorRTT.js +7 -6
- package/objects/Refractor.cjs.js +1 -0
- package/objects/Refractor.js +106 -64
- package/objects/ShadowMesh.cjs.js +1 -0
- package/objects/ShadowMesh.js +17 -8
- package/objects/Sky.cjs.js +1 -0
- package/objects/Sky.js +80 -119
- package/objects/Water.cjs.js +1 -0
- package/objects/Water.js +127 -83
- package/objects/Water2.cjs.js +1 -0
- package/objects/Water2.js +108 -72
- package/offscreen/jank.cjs.js +1 -0
- package/offscreen/jank.js +14 -10
- package/offscreen/offscreen.cjs.js +1 -0
- package/offscreen/offscreen.js +5 -4
- package/offscreen/scene.cjs.js +1 -0
- package/offscreen/scene.js +48 -45
- package/package.json +3 -3
- package/physics/AmmoPhysics.cjs.js +1 -0
- package/physics/AmmoPhysics.js +71 -30
- package/postprocessing/AdaptiveToneMappingPass.cjs.js +1 -0
- package/postprocessing/AdaptiveToneMappingPass.js +123 -97
- package/postprocessing/AfterimagePass.cjs.js +1 -0
- package/postprocessing/AfterimagePass.js +49 -28
- package/postprocessing/BloomPass.cjs.js +1 -0
- package/postprocessing/BloomPass.js +69 -43
- package/postprocessing/BokehPass.cjs.js +1 -0
- package/postprocessing/BokehPass.js +69 -39
- package/postprocessing/ClearPass.cjs.js +1 -0
- package/postprocessing/ClearPass.js +25 -10
- package/postprocessing/CubeTexturePass.cjs.js +1 -0
- package/postprocessing/CubeTexturePass.js +27 -28
- package/postprocessing/DotScreenPass.cjs.js +1 -0
- package/postprocessing/DotScreenPass.js +32 -24
- package/postprocessing/EffectComposer.cjs.js +1 -0
- package/postprocessing/EffectComposer.js +86 -39
- package/postprocessing/FilmPass.cjs.js +1 -0
- package/postprocessing/FilmPass.js +30 -25
- package/postprocessing/GlitchPass.cjs.js +1 -0
- package/postprocessing/GlitchPass.js +61 -38
- package/postprocessing/HalftonePass.cjs.js +1 -0
- package/postprocessing/HalftonePass.js +39 -19
- package/postprocessing/LUTPass.cjs.js +1 -0
- package/postprocessing/LUTPass.js +38 -13
- package/postprocessing/MaskPass.cjs.js +1 -0
- package/postprocessing/MaskPass.js +38 -19
- package/postprocessing/OutlinePass.cjs.js +1 -0
- package/postprocessing/OutlinePass.js +277 -135
- package/postprocessing/Pass.cjs.js +1 -0
- package/postprocessing/Pass.js +44 -20
- package/postprocessing/RenderPass.cjs.js +1 -0
- package/postprocessing/RenderPass.js +36 -13
- package/postprocessing/RenderPixelatedPass.cjs.js +1 -0
- package/postprocessing/RenderPixelatedPass.js +58 -44
- package/postprocessing/SAOPass.cjs.js +1 -0
- package/postprocessing/SAOPass.js +189 -154
- package/postprocessing/SMAAPass.cjs.js +1 -0
- package/postprocessing/SMAAPass.js +84 -64
- package/postprocessing/SSAARenderPass.cjs.js +1 -0
- package/postprocessing/SSAARenderPass.js +69 -121
- package/postprocessing/SSAOPass.cjs.js +1 -0
- package/postprocessing/SSAOPass.js +172 -123
- package/postprocessing/SSRPass.cjs.js +1 -0
- package/postprocessing/SSRPass.js +280 -211
- package/postprocessing/SavePass.cjs.js +1 -0
- package/postprocessing/SavePass.js +25 -20
- package/postprocessing/ShaderPass.cjs.js +1 -0
- package/postprocessing/ShaderPass.js +30 -14
- package/postprocessing/TAARenderPass.cjs.js +1 -0
- package/postprocessing/TAARenderPass.js +61 -42
- package/postprocessing/TexturePass.cjs.js +1 -0
- package/postprocessing/TexturePass.js +22 -21
- package/postprocessing/UnrealBloomPass.cjs.js +1 -0
- package/postprocessing/UnrealBloomPass.js +213 -105
- package/renderers/CSS2DRenderer.cjs.js +1 -0
- package/renderers/CSS2DRenderer.js +56 -44
- package/renderers/CSS3DRenderer.cjs.js +1 -0
- package/renderers/CSS3DRenderer.js +86 -53
- package/renderers/Projector.cjs.js +1 -0
- package/renderers/Projector.js +274 -107
- package/renderers/SVGRenderer.cjs.js +1 -0
- package/renderers/SVGRenderer.js +182 -72
- package/renderers/nodes/accessors/CameraNode.cjs.js +1 -0
- package/renderers/nodes/accessors/CameraNode.js +40 -29
- package/renderers/nodes/accessors/ModelNode.cjs.js +1 -0
- package/renderers/nodes/accessors/ModelNode.js +37 -28
- package/renderers/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
- package/renderers/nodes/accessors/ModelViewProjectionNode.js +23 -10
- package/renderers/nodes/accessors/NormalNode.cjs.js +1 -0
- package/renderers/nodes/accessors/NormalNode.js +45 -35
- package/renderers/nodes/accessors/PositionNode.cjs.js +1 -0
- package/renderers/nodes/accessors/PositionNode.js +19 -18
- package/renderers/nodes/accessors/UVNode.cjs.js +1 -0
- package/renderers/nodes/accessors/UVNode.js +10 -5
- package/renderers/nodes/core/AttributeNode.cjs.js +1 -0
- package/renderers/nodes/core/AttributeNode.js +14 -5
- package/renderers/nodes/core/InputNode.cjs.js +1 -0
- package/renderers/nodes/core/InputNode.js +14 -4
- package/renderers/nodes/core/Node.cjs.js +1 -0
- package/renderers/nodes/core/Node.js +17 -7
- package/renderers/nodes/core/NodeAttribute.cjs.js +1 -0
- package/renderers/nodes/core/NodeAttribute.js +6 -3
- package/renderers/nodes/core/NodeBuilder.cjs.js +1 -0
- package/renderers/nodes/core/NodeBuilder.js +154 -87
- package/renderers/nodes/core/NodeFrame.cjs.js +1 -0
- package/renderers/nodes/core/NodeFrame.js +12 -9
- package/renderers/nodes/core/NodeSlot.cjs.js +1 -0
- package/renderers/nodes/core/NodeSlot.js +3 -2
- package/renderers/nodes/core/NodeUniform.cjs.js +1 -0
- package/renderers/nodes/core/NodeUniform.js +9 -4
- package/renderers/nodes/core/NodeVary.cjs.js +1 -0
- package/renderers/nodes/core/NodeVary.js +7 -4
- package/renderers/nodes/core/VaryNode.cjs.js +1 -0
- package/renderers/nodes/core/VaryNode.js +12 -6
- package/renderers/nodes/core/constants.cjs.js +1 -0
- package/renderers/nodes/core/constants.js +13 -16
- package/renderers/nodes/inputs/ColorNode.cjs.js +1 -0
- package/renderers/nodes/inputs/ColorNode.js +11 -5
- package/renderers/nodes/inputs/FloatNode.cjs.js +1 -0
- package/renderers/nodes/inputs/FloatNode.js +11 -5
- package/renderers/nodes/inputs/Matrix3Node.cjs.js +1 -0
- package/renderers/nodes/inputs/Matrix3Node.js +13 -7
- package/renderers/nodes/inputs/Matrix4Node.cjs.js +1 -0
- package/renderers/nodes/inputs/Matrix4Node.js +13 -7
- package/renderers/nodes/inputs/TextureNode.cjs.js +1 -0
- package/renderers/nodes/inputs/TextureNode.js +15 -7
- package/renderers/nodes/inputs/Vector2Node.cjs.js +1 -0
- package/renderers/nodes/inputs/Vector2Node.js +11 -5
- package/renderers/nodes/inputs/Vector3Node.cjs.js +1 -0
- package/renderers/nodes/inputs/Vector3Node.js +13 -7
- package/renderers/nodes/inputs/Vector4Node.cjs.js +1 -0
- package/renderers/nodes/inputs/Vector4Node.js +13 -7
- package/renderers/nodes/math/MathNode.cjs.js +1 -0
- package/renderers/nodes/math/MathNode.js +30 -20
- package/renderers/nodes/math/OperatorNode.cjs.js +1 -0
- package/renderers/nodes/math/OperatorNode.js +20 -4
- package/renderers/nodes/utils/SwitchNode.cjs.js +1 -0
- package/renderers/nodes/utils/SwitchNode.js +9 -4
- package/renderers/nodes/utils/TimerNode.cjs.js +1 -0
- package/renderers/nodes/utils/TimerNode.js +10 -5
- package/renderers/webgpu/WebGPU.cjs.js +1 -0
- package/renderers/webgpu/WebGPU.js +16 -14
- package/renderers/webgpu/WebGPUAttributes.cjs.js +1 -0
- package/renderers/webgpu/WebGPUAttributes.js +23 -16
- package/renderers/webgpu/WebGPUBackground.cjs.js +1 -0
- package/renderers/webgpu/WebGPUBackground.js +30 -13
- package/renderers/webgpu/WebGPUBinding.cjs.js +1 -0
- package/renderers/webgpu/WebGPUBinding.js +7 -4
- package/renderers/webgpu/WebGPUBindings.cjs.js +1 -0
- package/renderers/webgpu/WebGPUBindings.js +57 -21
- package/renderers/webgpu/WebGPUComputePipelines.cjs.js +1 -0
- package/renderers/webgpu/WebGPUComputePipelines.js +25 -14
- package/renderers/webgpu/WebGPUGeometries.cjs.js +1 -0
- package/renderers/webgpu/WebGPUGeometries.js +15 -5
- package/renderers/webgpu/WebGPUInfo.cjs.js +1 -0
- package/renderers/webgpu/WebGPUInfo.js +8 -3
- package/renderers/webgpu/WebGPUObjects.cjs.js +1 -0
- package/renderers/webgpu/WebGPUObjects.js +10 -5
- package/renderers/webgpu/WebGPUProperties.cjs.js +1 -0
- package/renderers/webgpu/WebGPUProperties.js +11 -5
- package/renderers/webgpu/WebGPURenderLists.cjs.js +1 -0
- package/renderers/webgpu/WebGPURenderLists.js +36 -20
- package/renderers/webgpu/WebGPURenderPipelines.cjs.js +1 -0
- package/renderers/webgpu/WebGPURenderPipelines.js +387 -260
- package/renderers/webgpu/WebGPURenderer.cjs.js +1 -0
- package/renderers/webgpu/WebGPURenderer.js +262 -124
- package/renderers/webgpu/WebGPUSampledTexture.cjs.js +1 -0
- package/renderers/webgpu/WebGPUSampledTexture.js +31 -18
- package/renderers/webgpu/WebGPUSampler.cjs.js +1 -0
- package/renderers/webgpu/WebGPUSampler.js +12 -7
- package/renderers/webgpu/WebGPUStorageBuffer.cjs.js +1 -0
- package/renderers/webgpu/WebGPUStorageBuffer.js +12 -7
- package/renderers/webgpu/WebGPUTextureRenderer.cjs.js +1 -0
- package/renderers/webgpu/WebGPUTextureRenderer.js +11 -5
- package/renderers/webgpu/WebGPUTextureUtils.cjs.js +1 -0
- package/renderers/webgpu/WebGPUTextureUtils.js +40 -29
- package/renderers/webgpu/WebGPUTextures.cjs.js +1 -0
- package/renderers/webgpu/WebGPUTextures.js +333 -186
- package/renderers/webgpu/WebGPUUniform.cjs.js +1 -0
- package/renderers/webgpu/WebGPUUniform.js +51 -25
- package/renderers/webgpu/WebGPUUniformsGroup.cjs.js +1 -0
- package/renderers/webgpu/WebGPUUniformsGroup.js +72 -32
- package/renderers/webgpu/constants.cjs.js +1 -0
- package/renderers/webgpu/constants.js +181 -190
- package/renderers/webgpu/nodes/ShaderLib.cjs.js +1 -0
- package/renderers/webgpu/nodes/ShaderLib.js +2 -2
- package/renderers/webgpu/nodes/WebGPUNodeBuilder.cjs.js +1 -0
- package/renderers/webgpu/nodes/WebGPUNodeBuilder.js +124 -53
- package/renderers/webgpu/nodes/WebGPUNodeUniform.cjs.js +1 -0
- package/renderers/webgpu/nodes/WebGPUNodeUniform.js +31 -17
- package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.cjs.js +1 -0
- package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +9 -8
- package/renderers/webgpu/nodes/WebGPUNodes.cjs.js +1 -0
- package/renderers/webgpu/nodes/WebGPUNodes.js +45 -7
- package/shaders/ACESFilmicToneMappingShader.cjs.js +1 -0
- package/shaders/ACESFilmicToneMappingShader.js +24 -44
- package/shaders/AfterimageShader.cjs.js +1 -0
- package/shaders/AfterimageShader.js +18 -28
- package/shaders/BasicShader.cjs.js +1 -0
- package/shaders/BasicShader.js +7 -9
- package/shaders/BleachBypassShader.cjs.js +1 -0
- package/shaders/BleachBypassShader.js +15 -31
- package/shaders/BlendShader.cjs.js +1 -0
- package/shaders/BlendShader.js +19 -26
- package/shaders/BokehShader.cjs.js +1 -0
- package/shaders/BokehShader.js +36 -98
- package/shaders/BokehShader2.cjs.js +1 -0
- package/shaders/BokehShader2.js +90 -261
- package/shaders/BrightnessContrastShader.cjs.js +1 -0
- package/shaders/BrightnessContrastShader.js +19 -28
- package/shaders/ColorCorrectionShader.cjs.js +1 -0
- package/shaders/ColorCorrectionShader.js +22 -26
- package/shaders/ColorifyShader.cjs.js +1 -0
- package/shaders/ColorifyShader.js +16 -24
- package/shaders/ConvolutionShader.cjs.js +1 -0
- package/shaders/ConvolutionShader.js +36 -40
- package/shaders/CopyShader.cjs.js +1 -0
- package/shaders/CopyShader.js +13 -21
- package/shaders/DOFMipMapShader.cjs.js +1 -0
- package/shaders/DOFMipMapShader.js +21 -28
- package/shaders/DepthLimitedBlurShader.cjs.js +1 -0
- package/shaders/DepthLimitedBlurShader.js +40 -85
- package/shaders/DigitalGlitch.cjs.js +1 -0
- package/shaders/DigitalGlitch.js +46 -74
- package/shaders/DotScreenShader.cjs.js +1 -0
- package/shaders/DotScreenShader.js +27 -35
- package/shaders/FXAAShader.cjs.js +1 -0
- package/shaders/FXAAShader.js +19 -1094
- package/shaders/FilmShader.cjs.js +1 -0
- package/shaders/FilmShader.js +52 -38
- package/shaders/FocusShader.cjs.js +1 -0
- package/shaders/FocusShader.js +24 -51
- package/shaders/FreiChenShader.cjs.js +1 -0
- package/shaders/FreiChenShader.js +24 -57
- package/shaders/FresnelShader.cjs.js +1 -0
- package/shaders/FresnelShader.js +22 -43
- package/shaders/GammaCorrectionShader.cjs.js +1 -0
- package/shaders/GammaCorrectionShader.js +11 -19
- package/shaders/GodRaysShader.cjs.js +1 -0
- package/shaders/GodRaysShader.js +94 -103
- package/shaders/HalftoneShader.cjs.js +1 -0
- package/shaders/HalftoneShader.js +65 -208
- package/shaders/HorizontalBlurShader.cjs.js +1 -0
- package/shaders/HorizontalBlurShader.js +23 -7
- package/shaders/HorizontalTiltShiftShader.cjs.js +1 -0
- package/shaders/HorizontalTiltShiftShader.js +21 -33
- package/shaders/HueSaturationShader.cjs.js +1 -0
- package/shaders/HueSaturationShader.js +21 -37
- package/shaders/KaleidoShader.cjs.js +1 -0
- package/shaders/KaleidoShader.js +22 -30
- package/shaders/LuminosityHighPassShader.cjs.js +1 -0
- package/shaders/LuminosityHighPassShader.js +27 -33
- package/shaders/LuminosityShader.cjs.js +1 -0
- package/shaders/LuminosityShader.js +11 -21
- package/shaders/MirrorShader.cjs.js +1 -0
- package/shaders/MirrorShader.js +16 -31
- package/shaders/NormalMapShader.cjs.js +1 -0
- package/shaders/NormalMapShader.js +23 -27
- package/shaders/ParallaxShader.cjs.js +1 -0
- package/shaders/ParallaxShader.js +48 -107
- package/shaders/PixelShader.cjs.js +1 -0
- package/shaders/PixelShader.js +16 -24
- package/shaders/RGBShiftShader.cjs.js +1 -0
- package/shaders/RGBShiftShader.js +22 -26
- package/shaders/SAOShader.cjs.js +1 -0
- package/shaders/SAOShader.js +48 -132
- package/shaders/SMAAShader.cjs.js +1 -0
- package/shaders/SMAAShader.js +135 -256
- package/shaders/SSAOShader.cjs.js +1 -0
- package/shaders/SSAOShader.js +81 -153
- package/shaders/SSRShader.cjs.js +1 -0
- package/shaders/SSRShader.js +87 -32
- package/shaders/SepiaShader.cjs.js +1 -0
- package/shaders/SepiaShader.js +15 -25
- package/shaders/SobelOperatorShader.cjs.js +1 -0
- package/shaders/SobelOperatorShader.js +29 -40
- package/shaders/SubsurfaceScatteringShader.cjs.js +1 -0
- package/shaders/SubsurfaceScatteringShader.js +39 -53
- package/shaders/TechnicolorShader.cjs.js +1 -0
- package/shaders/TechnicolorShader.js +13 -20
- package/shaders/ToneMapShader.cjs.js +1 -0
- package/shaders/ToneMapShader.js +28 -44
- package/shaders/ToonShader.cjs.js +1 -0
- package/shaders/ToonShader.js +96 -172
- package/shaders/TriangleBlurShader.cjs.js +1 -0
- package/shaders/TriangleBlurShader.js +23 -32
- package/shaders/UnpackDepthRGBAShader.cjs.js +1 -0
- package/shaders/UnpackDepthRGBAShader.js +14 -22
- package/shaders/VerticalBlurShader.cjs.js +1 -0
- package/shaders/VerticalBlurShader.js +23 -7
- package/shaders/VerticalTiltShiftShader.cjs.js +1 -0
- package/shaders/VerticalTiltShiftShader.js +21 -33
- package/shaders/VignetteShader.cjs.js +1 -0
- package/shaders/VignetteShader.js +28 -24
- package/shaders/VolumeShader.cjs.js +1 -0
- package/shaders/VolumeShader.js +77 -174
- package/shaders/WaterRefractionShader.cjs.js +1 -0
- package/shaders/WaterRefractionShader.js +6 -38
- package/shaders/types.cjs.js +1 -0
- package/shaders/types.js +1 -1
- package/textures/FlakesTexture.cjs.js +1 -0
- package/textures/FlakesTexture.js +10 -8
- package/types/helpers.cjs.js +1 -0
- package/types/helpers.js +2 -3
- package/types/shared.cjs.js +1 -0
- package/types/shared.js +1 -0
- package/types/utils.cjs.js +1 -0
- package/types/utils.js +1 -0
- package/utils/BufferGeometryUtils.cjs.js +1 -0
- package/utils/BufferGeometryUtils.js +325 -251
- package/utils/GeometryCompressionUtils.cjs.js +1 -0
- package/utils/GeometryCompressionUtils.js +239 -241
- package/utils/GeometryUtils.cjs.js +1 -0
- package/utils/GeometryUtils.js +94 -41
- package/utils/LDrawUtils.cjs.js +1 -0
- package/utils/LDrawUtils.d.ts +5 -0
- package/utils/LDrawUtils.js +144 -0
- package/utils/RoughnessMipmapper.cjs.js +1 -0
- package/utils/RoughnessMipmapper.js +82 -38
- package/utils/SceneUtils.cjs.js +1 -0
- package/utils/SceneUtils.js +20 -15
- package/utils/ShadowMapViewer.cjs.js +1 -0
- package/utils/ShadowMapViewer.js +95 -49
- package/utils/SkeletonUtils.cjs.js +1 -0
- package/utils/SkeletonUtils.js +165 -74
- package/utils/UVsDebug.cjs.js +1 -0
- package/utils/UVsDebug.js +62 -32
- package/utils/WorkerPool.cjs.js +1 -0
- package/utils/WorkerPool.js +33 -13
- package/webxr/ARButton.cjs.js +1 -0
- package/webxr/ARButton.js +98 -72
- package/webxr/OculusHandModel.cjs.js +1 -0
- package/webxr/OculusHandModel.js +37 -18
- package/webxr/OculusHandPointerModel.cjs.js +1 -0
- package/webxr/OculusHandPointerModel.js +80 -58
- package/webxr/Text2D.cjs.js +1 -0
- package/webxr/Text2D.js +19 -37
- package/webxr/VRButton.cjs.js +1 -0
- package/webxr/VRButton.js +90 -59
- package/webxr/XRControllerModelFactory.cjs.js +1 -0
- package/webxr/XRControllerModelFactory.js +116 -58
- package/webxr/XREstimatedLight.cjs.js +1 -0
- package/webxr/XREstimatedLight.js +66 -39
- package/webxr/XRHandMeshModel.cjs.js +1 -0
- package/webxr/XRHandMeshModel.js +29 -40
- package/webxr/XRHandModelFactory.cjs.js +1 -0
- package/webxr/XRHandModelFactory.js +31 -28
- package/webxr/XRHandPrimitiveModel.cjs.js +1 -0
- package/webxr/XRHandPrimitiveModel.js +27 -41
- package/animation/AnimationClipCreator.mjs +0 -57
- package/animation/CCDIKSolver.mjs +0 -223
- package/animation/MMDAnimationHelper.mjs +0 -514
- package/animation/MMDPhysics.mjs +0 -769
- package/cameras/CinematicCamera.mjs +0 -129
- package/controls/ArcballControls.mjs +0 -1737
- package/controls/DeviceOrientationControls.mjs +0 -74
- package/controls/DragControls.mjs +0 -172
- package/controls/FirstPersonControls.mjs +0 -220
- package/controls/FlyControls.mjs +0 -239
- package/controls/OrbitControls.mjs +0 -731
- package/controls/PointerLockControls.mjs +0 -88
- package/controls/TrackballControls.mjs +0 -481
- package/controls/TransformControls.mjs +0 -1068
- package/controls/experimental/CameraControls.mjs +0 -673
- package/csm/CSM.mjs +0 -244
- package/csm/CSMFrustum.mjs +0 -75
- package/csm/CSMHelper.mjs +0 -114
- package/csm/CSMShader.mjs +0 -251
- package/curves/CurveExtras.mjs +0 -224
- package/curves/NURBSCurve.mjs +0 -35
- package/curves/NURBSSurface.mjs +0 -28
- package/curves/NURBSUtils.mjs +0 -226
- package/deprecated/Geometry.mjs +0 -966
- package/effects/AnaglyphEffect.mjs +0 -120
- package/effects/AsciiEffect.mjs +0 -173
- package/effects/OutlineEffect.mjs +0 -295
- package/effects/ParallaxBarrierEffect.mjs +0 -64
- package/effects/PeppersGhostEffect.mjs +0 -85
- package/effects/StereoEffect.mjs +0 -32
- package/environments/RoomEnvironment.mjs +0 -78
- package/exporters/ColladaExporter.mjs +0 -299
- package/exporters/DRACOExporter.mjs +0 -132
- package/exporters/GLTFExporter.mjs +0 -1381
- package/exporters/MMDExporter.mjs +0 -102
- package/exporters/OBJExporter.mjs +0 -166
- package/exporters/PLYExporter.mjs +0 -278
- package/exporters/STLExporter.mjs +0 -129
- package/exporters/USDZExporter.mjs +0 -328
- package/geometries/BoxLineGeometry.mjs +0 -45
- package/geometries/ConvexGeometry.mjs +0 -29
- package/geometries/DecalGeometry.mjs +0 -184
- package/geometries/LightningStrike.mjs +0 -547
- package/geometries/ParametricGeometries.mjs +0 -129
- package/geometries/ParametricGeometry.mjs +0 -63
- package/geometries/RoundedBoxGeometry.mjs +0 -91
- package/geometries/TeapotGeometry.mjs +0 -1557
- package/geometries/TextGeometry.mjs +0 -23
- package/helpers/LightProbeHelper.mjs +0 -72
- package/helpers/PositionalAudioHelper.mjs +0 -68
- package/helpers/RectAreaLightHelper.mjs +0 -44
- package/helpers/VertexNormalsHelper.mjs +0 -54
- package/helpers/VertexTangentsHelper.mjs +0 -45
- package/index.mjs +0 -969
- package/interactive/SelectionBox.mjs +0 -137
- package/interactive/SelectionHelper.mjs +0 -54
- package/libs/MeshoptDecoder.mjs +0 -210
- package/libs/MotionControllers.mjs +0 -261
- package/lights/LightProbeGenerator.mjs +0 -145
- package/lights/RectAreaLightUniformsLib.mjs +0 -32842
- package/lines/Line2.mjs +0 -13
- package/lines/LineGeometry.mjs +0 -44
- package/lines/LineMaterial.mjs +0 -539
- package/lines/LineSegments2.mjs +0 -202
- package/lines/LineSegmentsGeometry.mjs +0 -124
- package/lines/Wireframe.mjs +0 -31
- package/lines/WireframeGeometry2.mjs +0 -13
- package/loaders/3DMLoader.mjs +0 -802
- package/loaders/3MFLoader.mjs +0 -837
- package/loaders/AMFLoader.mjs +0 -284
- package/loaders/AssimpLoader.mjs +0 -1396
- package/loaders/BVHLoader.mjs +0 -207
- package/loaders/BasisTextureLoader.mjs +0 -474
- package/loaders/ColladaLoader.mjs +0 -2403
- package/loaders/DDSLoader.mjs +0 -148
- package/loaders/DRACOLoader.mjs +0 -340
- package/loaders/EXRLoader.mjs +0 -1351
- package/loaders/FBXLoader.mjs +0 -2362
- package/loaders/FontLoader.mjs +0 -111
- package/loaders/GCodeLoader.mjs +0 -141
- package/loaders/GLTFLoader.mjs +0 -2316
- package/loaders/HDRCubeTextureLoader.mjs +0 -77
- package/loaders/KMZLoader.mjs +0 -75
- package/loaders/KTX2Loader.mjs +0 -427
- package/loaders/KTXLoader.mjs +0 -87
- package/loaders/LDrawLoader.mjs +0 -1409
- package/loaders/LUT3dlLoader.mjs +0 -100
- package/loaders/LUTCubeLoader.mjs +0 -104
- package/loaders/LWOLoader.mjs +0 -625
- package/loaders/LottieLoader.mjs +0 -47
- package/loaders/MD2Loader.mjs +0 -359
- package/loaders/MDDLoader.mjs +0 -58
- package/loaders/MMDLoader.mjs +0 -998
- package/loaders/MTLLoader.mjs +0 -280
- package/loaders/NRRDLoader.mjs +0 -401
- package/loaders/NodeMaterialLoader.mjs +0 -146
- package/loaders/OBJLoader.mjs +0 -487
- package/loaders/PCDLoader.mjs +0 -248
- package/loaders/PDBLoader.mjs +0 -246
- package/loaders/PLYLoader.mjs +0 -317
- package/loaders/PRWMLoader.mjs +0 -160
- package/loaders/PVRLoader.mjs +0 -131
- package/loaders/RGBELoader.mjs +0 -244
- package/loaders/RGBMLoader.mjs +0 -998
- package/loaders/STLLoader.mjs +0 -190
- package/loaders/SVGLoader.mjs +0 -1709
- package/loaders/TDSLoader.mjs +0 -480
- package/loaders/TGALoader.mjs +0 -285
- package/loaders/TTFLoader.mjs +0 -131
- package/loaders/TiltLoader.mjs +0 -373
- package/loaders/VOXLoader.mjs +0 -431
- package/loaders/VRMLLoader.mjs +0 -2093
- package/loaders/VRMLoader.mjs +0 -38
- package/loaders/VTKLoader.mjs +0 -646
- package/loaders/XLoader.mjs +0 -1258
- package/loaders/XYZLoader.mjs +0 -60
- package/loaders/lwo/IFFParser.mjs +0 -697
- package/loaders/lwo/LWO2Parser.mjs +0 -327
- package/loaders/lwo/LWO3Parser.mjs +0 -298
- package/math/Capsule.mjs +0 -100
- package/math/ColorConverter.mjs +0 -51
- package/math/ConvexHull.mjs +0 -574
- package/math/ImprovedNoise.mjs +0 -302
- package/math/Lut.mjs +0 -135
- package/math/MeshSurfaceSampler.mjs +0 -107
- package/math/OBB.mjs +0 -235
- package/math/Octree.mjs +0 -278
- package/math/SimplexNoise.mjs +0 -425
- package/misc/ConvexObjectBreaker.mjs +0 -292
- package/misc/GPUComputationRenderer.mjs +0 -171
- package/misc/Gyroscope.mjs +0 -35
- package/misc/MD2Character.mjs +0 -162
- package/misc/MD2CharacterComplex.mjs +0 -328
- package/misc/MorphAnimMesh.mjs +0 -40
- package/misc/MorphBlendMesh.mjs +0 -179
- package/misc/ProgressiveLightmap.mjs +0 -166
- package/misc/RollerCoaster.mjs +0 -346
- package/misc/TubePainter.mjs +0 -123
- package/misc/Volume.mjs +0 -244
- package/misc/VolumeSlice.mjs +0 -106
- package/misc/WebGL.mjs +0 -74
- package/modifiers/CurveModifier.mjs +0 -182
- package/modifiers/EdgeSplitModifier.mjs +0 -162
- package/modifiers/SimplifyModifier.mjs +0 -282
- package/modifiers/TessellateModifier.mjs +0 -206
- package/nodes/Nodes.mjs +0 -400
- package/nodes/ShaderNode.mjs +0 -408
- package/nodes/accessors/BufferNode.mjs +0 -15
- package/nodes/accessors/CameraNode.mjs +0 -44
- package/nodes/accessors/CubeTextureNode.mjs +0 -42
- package/nodes/accessors/MaterialNode.mjs +0 -71
- package/nodes/accessors/MaterialReferenceNode.mjs +0 -14
- package/nodes/accessors/ModelNode.mjs +0 -9
- package/nodes/accessors/ModelViewProjectionNode.mjs +0 -24
- package/nodes/accessors/NormalNode.mjs +0 -62
- package/nodes/accessors/Object3DNode.mjs +0 -76
- package/nodes/accessors/PointUVNode.mjs +0 -13
- package/nodes/accessors/PositionNode.mjs +0 -65
- package/nodes/accessors/ReferenceNode.mjs +0 -37
- package/nodes/accessors/ReflectNode.mjs +0 -43
- package/nodes/accessors/SkinningNode.mjs +0 -58
- package/nodes/accessors/TextureNode.mjs +0 -54
- package/nodes/accessors/UVNode.mjs +0 -23
- package/nodes/core/ArrayUniformNode.mjs +0 -14
- package/nodes/core/AttributeNode.mjs +0 -30
- package/nodes/core/BypassNode.mjs +0 -22
- package/nodes/core/CodeNode.mjs +0 -28
- package/nodes/core/ConstNode.mjs +0 -14
- package/nodes/core/ContextNode.mjs +0 -22
- package/nodes/core/ExpressionNode.mjs +0 -19
- package/nodes/core/FunctionCallNode.mjs +0 -37
- package/nodes/core/FunctionNode.mjs +0 -56
- package/nodes/core/InputNode.mjs +0 -38
- package/nodes/core/Node.mjs +0 -139
- package/nodes/core/NodeAttribute.mjs +0 -10
- package/nodes/core/NodeBuilder.mjs +0 -395
- package/nodes/core/NodeCode.mjs +0 -11
- package/nodes/core/NodeFrame.mjs +0 -35
- package/nodes/core/NodeFunctionInput.mjs +0 -13
- package/nodes/core/NodeKeywords.mjs +0 -44
- package/nodes/core/NodeUniform.mjs +0 -18
- package/nodes/core/NodeUtils.mjs +0 -57
- package/nodes/core/NodeVar.mjs +0 -10
- package/nodes/core/NodeVary.mjs +0 -10
- package/nodes/core/PropertyNode.mjs +0 -21
- package/nodes/core/TempNode.mjs +0 -25
- package/nodes/core/UniformNode.mjs +0 -23
- package/nodes/core/VarNode.mjs +0 -31
- package/nodes/core/VaryNode.mjs +0 -30
- package/nodes/core/constants.mjs +0 -24
- package/nodes/display/ColorSpaceNode.mjs +0 -63
- package/nodes/display/NormalMapNode.mjs +0 -54
- package/nodes/fog/FogNode.mjs +0 -15
- package/nodes/fog/FogRangeNode.mjs +0 -17
- package/nodes/functions/BSDFs.mjs +0 -64
- package/nodes/lights/LightContextNode.mjs +0 -35
- package/nodes/lights/LightNode.mjs +0 -58
- package/nodes/lights/LightsNode.mjs +0 -59
- package/nodes/loaders/NodeLoader.mjs +0 -66
- package/nodes/loaders/NodeMaterialLoader.mjs +0 -24
- package/nodes/loaders/NodeObjectLoader.mjs +0 -40
- package/nodes/materials/LineBasicNodeMaterial.mjs +0 -27
- package/nodes/materials/Materials.mjs +0 -28
- package/nodes/materials/MeshBasicNodeMaterial.mjs +0 -28
- package/nodes/materials/MeshStandardNodeMaterial.mjs +0 -41
- package/nodes/materials/NodeMaterial.mjs +0 -64
- package/nodes/materials/PointsNodeMaterial.mjs +0 -30
- package/nodes/math/CondNode.mjs +0 -38
- package/nodes/math/MathNode.mjs +0 -163
- package/nodes/math/OperatorNode.mjs +0 -103
- package/nodes/procedural/CheckerNode.mjs +0 -21
- package/nodes/utils/ArrayElementNode.mjs +0 -19
- package/nodes/utils/ConvertNode.mjs +0 -25
- package/nodes/utils/JoinNode.mjs +0 -26
- package/nodes/utils/MatcapUVNode.mjs +0 -16
- package/nodes/utils/OscNode.mjs +0 -50
- package/nodes/utils/SplitNode.mjs +0 -45
- package/nodes/utils/SpriteSheetUVNode.mjs +0 -40
- package/nodes/utils/TimerNode.mjs +0 -44
- package/objects/GroundProjectedEnv.mjs +0 -130
- package/objects/Lensflare.mjs +0 -262
- package/objects/LightningStorm.mjs +0 -110
- package/objects/MarchingCubes.mjs +0 -457
- package/objects/Reflector.mjs +0 -166
- package/objects/ReflectorForSSRPass.mjs +0 -247
- package/objects/ReflectorRTT.mjs +0 -10
- package/objects/Refractor.mjs +0 -178
- package/objects/ShadowMesh.mjs +0 -41
- package/objects/Sky.mjs +0 -124
- package/objects/Water.mjs +0 -235
- package/objects/Water2.mjs +0 -252
- package/offscreen/jank.mjs +0 -27
- package/offscreen/offscreen.mjs +0 -5
- package/offscreen/scene.mjs +0 -52
- package/physics/AmmoPhysics.mjs +0 -165
- package/postprocessing/AdaptiveToneMappingPass.mjs +0 -221
- package/postprocessing/AfterimagePass.mjs +0 -55
- package/postprocessing/BloomPass.mjs +0 -90
- package/postprocessing/BokehPass.mjs +0 -76
- package/postprocessing/ClearPass.mjs +0 -27
- package/postprocessing/CubeTexturePass.mjs +0 -49
- package/postprocessing/DotScreenPass.mjs +0 -40
- package/postprocessing/EffectComposer.mjs +0 -139
- package/postprocessing/FilmPass.mjs +0 -42
- package/postprocessing/GlitchPass.mjs +0 -75
- package/postprocessing/HalftonePass.mjs +0 -44
- package/postprocessing/LUTPass.mjs +0 -136
- package/postprocessing/MaskPass.mjs +0 -60
- package/postprocessing/OutlinePass.mjs +0 -438
- package/postprocessing/Pass.mjs +0 -37
- package/postprocessing/RenderPass.mjs +0 -48
- package/postprocessing/RenderPixelatedPass.mjs +0 -199
- package/postprocessing/SAOPass.mjs +0 -282
- package/postprocessing/SMAAPass.mjs +0 -112
- package/postprocessing/SSAARenderPass.mjs +0 -170
- package/postprocessing/SSAOPass.mjs +0 -265
- package/postprocessing/SSRPass.mjs +0 -432
- package/postprocessing/SavePass.mjs +0 -37
- package/postprocessing/ShaderPass.mjs +0 -39
- package/postprocessing/TAARenderPass.mjs +0 -88
- package/postprocessing/TexturePass.mjs +0 -39
- package/postprocessing/UnrealBloomPass.mjs +0 -220
- package/renderers/CSS2DRenderer.mjs +0 -112
- package/renderers/CSS3DRenderer.mjs +0 -133
- package/renderers/Projector.mjs +0 -511
- package/renderers/SVGRenderer.mjs +0 -306
- package/renderers/nodes/accessors/CameraNode.mjs +0 -63
- package/renderers/nodes/accessors/ModelNode.mjs +0 -61
- package/renderers/nodes/accessors/ModelViewProjectionNode.mjs +0 -21
- package/renderers/nodes/accessors/NormalNode.mjs +0 -61
- package/renderers/nodes/accessors/PositionNode.mjs +0 -30
- package/renderers/nodes/accessors/UVNode.mjs +0 -13
- package/renderers/nodes/core/AttributeNode.mjs +0 -35
- package/renderers/nodes/core/InputNode.mjs +0 -31
- package/renderers/nodes/core/Node.mjs +0 -34
- package/renderers/nodes/core/NodeAttribute.mjs +0 -10
- package/renderers/nodes/core/NodeBuilder.mjs +0 -243
- package/renderers/nodes/core/NodeFrame.mjs +0 -35
- package/renderers/nodes/core/NodeSlot.mjs +0 -10
- package/renderers/nodes/core/NodeUniform.mjs +0 -18
- package/renderers/nodes/core/NodeVary.mjs +0 -11
- package/renderers/nodes/core/VaryNode.mjs +0 -22
- package/renderers/nodes/core/constants.mjs +0 -22
- package/renderers/nodes/inputs/ColorNode.mjs +0 -11
- package/renderers/nodes/inputs/FloatNode.mjs +0 -11
- package/renderers/nodes/inputs/Matrix3Node.mjs +0 -12
- package/renderers/nodes/inputs/Matrix4Node.mjs +0 -12
- package/renderers/nodes/inputs/TextureNode.mjs +0 -20
- package/renderers/nodes/inputs/Vector2Node.mjs +0 -11
- package/renderers/nodes/inputs/Vector3Node.mjs +0 -12
- package/renderers/nodes/inputs/Vector4Node.mjs +0 -12
- package/renderers/nodes/math/MathNode.mjs +0 -55
- package/renderers/nodes/math/OperatorNode.mjs +0 -42
- package/renderers/nodes/utils/SwitchNode.mjs +0 -20
- package/renderers/nodes/utils/TimerNode.mjs +0 -14
- package/renderers/webgpu/WebGPU.mjs +0 -24
- package/renderers/webgpu/WebGPUAttributes.mjs +0 -69
- package/renderers/webgpu/WebGPUBackground.mjs +0 -61
- package/renderers/webgpu/WebGPUBinding.mjs +0 -14
- package/renderers/webgpu/WebGPUBindings.mjs +0 -155
- package/renderers/webgpu/WebGPUComputePipelines.mjs +0 -44
- package/renderers/webgpu/WebGPUGeometries.mjs +0 -41
- package/renderers/webgpu/WebGPUInfo.mjs +0 -46
- package/renderers/webgpu/WebGPUObjects.mjs +0 -25
- package/renderers/webgpu/WebGPUProperties.mjs +0 -22
- package/renderers/webgpu/WebGPURenderLists.mjs +0 -119
- package/renderers/webgpu/WebGPURenderPipelines.mjs +0 -545
- package/renderers/webgpu/WebGPURenderer.mjs +0 -574
- package/renderers/webgpu/WebGPUSampledTexture.mjs +0 -40
- package/renderers/webgpu/WebGPUSampler.mjs +0 -15
- package/renderers/webgpu/WebGPUStorageBuffer.mjs +0 -15
- package/renderers/webgpu/WebGPUTextureRenderer.mjs +0 -23
- package/renderers/webgpu/WebGPUTextureUtils.mjs +0 -98
- package/renderers/webgpu/WebGPUTextures.mjs +0 -484
- package/renderers/webgpu/WebGPUUniform.mjs +0 -81
- package/renderers/webgpu/WebGPUUniformsGroup.mjs +0 -176
- package/renderers/webgpu/constants.mjs +0 -230
- package/renderers/webgpu/nodes/ShaderLib.mjs +0 -42
- package/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +0 -165
- package/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +0 -73
- package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +0 -15
- package/renderers/webgpu/nodes/WebGPUNodes.mjs +0 -40
- package/shaders/ACESFilmicToneMappingShader.mjs +0 -48
- package/shaders/AfterimageShader.mjs +0 -32
- package/shaders/BasicShader.mjs +0 -12
- package/shaders/BleachBypassShader.mjs +0 -35
- package/shaders/BlendShader.mjs +0 -30
- package/shaders/BokehShader.mjs +0 -106
- package/shaders/BokehShader2.mjs +0 -269
- package/shaders/BrightnessContrastShader.mjs +0 -32
- package/shaders/ColorCorrectionShader.mjs +0 -30
- package/shaders/ColorifyShader.mjs +0 -28
- package/shaders/ConvolutionShader.mjs +0 -55
- package/shaders/CopyShader.mjs +0 -25
- package/shaders/DOFMipMapShader.mjs +0 -32
- package/shaders/DepthLimitedBlurShader.mjs +0 -114
- package/shaders/DigitalGlitch.mjs +0 -78
- package/shaders/DotScreenShader.mjs +0 -39
- package/shaders/FXAAShader.mjs +0 -1098
- package/shaders/FilmShader.mjs +0 -42
- package/shaders/FocusShader.mjs +0 -55
- package/shaders/FreiChenShader.mjs +0 -61
- package/shaders/FresnelShader.mjs +0 -47
- package/shaders/GammaCorrectionShader.mjs +0 -23
- package/shaders/GodRaysShader.mjs +0 -146
- package/shaders/HalftoneShader.mjs +0 -212
- package/shaders/HorizontalBlurShader.mjs +0 -43
- package/shaders/HorizontalTiltShiftShader.mjs +0 -37
- package/shaders/HueSaturationShader.mjs +0 -41
- package/shaders/KaleidoShader.mjs +0 -34
- package/shaders/LuminosityHighPassShader.mjs +0 -37
- package/shaders/LuminosityShader.mjs +0 -25
- package/shaders/MirrorShader.mjs +0 -35
- package/shaders/NormalMapShader.mjs +0 -31
- package/shaders/ParallaxShader.mjs +0 -113
- package/shaders/PixelShader.mjs +0 -28
- package/shaders/RGBShiftShader.mjs +0 -30
- package/shaders/SAOShader.mjs +0 -144
- package/shaders/SMAAShader.mjs +0 -272
- package/shaders/SSAOShader.mjs +0 -172
- package/shaders/SSRShader.mjs +0 -324
- package/shaders/SepiaShader.mjs +0 -29
- package/shaders/SobelOperatorShader.mjs +0 -44
- package/shaders/SubsurfaceScatteringShader.mjs +0 -59
- package/shaders/TechnicolorShader.mjs +0 -24
- package/shaders/ToneMapShader.mjs +0 -48
- package/shaders/ToonShader.mjs +0 -188
- package/shaders/TriangleBlurShader.mjs +0 -36
- package/shaders/UnpackDepthRGBAShader.mjs +0 -26
- package/shaders/VerticalBlurShader.mjs +0 -44
- package/shaders/VerticalTiltShiftShader.mjs +0 -37
- package/shaders/VignetteShader.mjs +0 -28
- package/shaders/VolumeShader.mjs +0 -178
- package/shaders/WaterRefractionShader.mjs +0 -57
- package/textures/FlakesTexture.mjs +0 -30
- package/types/helpers.mjs +0 -4
- package/utils/BufferGeometryUtils.mjs +0 -570
- package/utils/GeometryCompressionUtils.mjs +0 -547
- package/utils/GeometryUtils.mjs +0 -108
- package/utils/RoughnessMipmapper.mjs +0 -213
- package/utils/SceneUtils.mjs +0 -36
- package/utils/ShadowMapViewer.mjs +0 -114
- package/utils/SkeletonUtils.mjs +0 -292
- package/utils/UVsDebug.mjs +0 -85
- package/utils/WorkerPool.mjs +0 -62
- package/webxr/ARButton.mjs +0 -119
- package/webxr/OculusHandModel.mjs +0 -71
- package/webxr/OculusHandPointerModel.mjs +0 -207
- package/webxr/Text2D.mjs +0 -31
- package/webxr/VRButton.mjs +0 -105
- package/webxr/XRControllerModelFactory.mjs +0 -146
- package/webxr/XREstimatedLight.mjs +0 -126
- package/webxr/XRHandMeshModel.mjs +0 -73
- package/webxr/XRHandModelFactory.mjs +0 -61
- package/webxr/XRHandPrimitiveModel.mjs +0 -68
|
@@ -1,56 +1,166 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
2
|
+
import { EventDispatcher, Vector3, MOUSE, TOUCH, PerspectiveCamera, Quaternion, Spherical, Vector2, OrthographicCamera } from 'three';
|
|
3
|
+
|
|
4
|
+
// Unlike TrackballControls, it maintains the "up" direction object.up (+Y by default).
|
|
5
|
+
//
|
|
6
|
+
// Orbit - left mouse / touch: one-finger move
|
|
7
|
+
// Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish
|
|
8
|
+
// Pan - right mouse, or left mouse + ctrl/meta/shiftKey, or arrow keys / touch: two-finger move
|
|
9
|
+
|
|
4
10
|
const moduloWrapAround = (offset, capacity) => (offset % capacity + capacity) % capacity;
|
|
5
|
-
|
|
11
|
+
|
|
12
|
+
class OrbitControls extends EventDispatcher {
|
|
13
|
+
// Set to false to disable this control
|
|
14
|
+
// "target" sets the location of focus, where the object orbits around
|
|
15
|
+
// How far you can dolly in and out ( PerspectiveCamera only )
|
|
16
|
+
// How far you can zoom in and out ( OrthographicCamera only )
|
|
17
|
+
// How far you can orbit vertically, upper and lower limits.
|
|
18
|
+
// Range is 0 to Math.PI radians.
|
|
19
|
+
// radians
|
|
20
|
+
// radians
|
|
21
|
+
// How far you can orbit horizontally, upper and lower limits.
|
|
22
|
+
// If set, the interval [ min, max ] must be a sub-interval of [ - 2 PI, 2 PI ], with ( max - min < 2 PI )
|
|
23
|
+
// radians
|
|
24
|
+
// radians
|
|
25
|
+
// Set to true to enable damping (inertia)
|
|
26
|
+
// If damping is enabled, you must call controls.update() in your animation loop
|
|
27
|
+
// This option actually enables dollying in and out; left as "zoom" for backwards compatibility.
|
|
28
|
+
// Set to false to disable zooming
|
|
29
|
+
// Set to false to disable rotating
|
|
30
|
+
// Set to false to disable panning
|
|
31
|
+
// if false, pan orthogonal to world-space direction camera.up
|
|
32
|
+
// pixels moved per arrow key push
|
|
33
|
+
// Set to true to automatically rotate around the target
|
|
34
|
+
// If auto-rotate is enabled, you must call controls.update() in your animation loop
|
|
35
|
+
// 30 seconds per orbit when fps is 60
|
|
36
|
+
// true if you want to reverse the orbit to mouse drag from left to right = orbits left
|
|
37
|
+
// The four arrow keys
|
|
38
|
+
// Mouse buttons
|
|
39
|
+
// Touch fingers
|
|
40
|
+
// the target DOM element for key events
|
|
6
41
|
constructor(object, domElement) {
|
|
7
42
|
super();
|
|
8
|
-
|
|
9
|
-
this
|
|
10
|
-
|
|
11
|
-
this
|
|
12
|
-
|
|
13
|
-
this
|
|
14
|
-
|
|
15
|
-
this
|
|
16
|
-
|
|
17
|
-
this
|
|
18
|
-
|
|
19
|
-
this
|
|
20
|
-
|
|
21
|
-
this
|
|
22
|
-
|
|
23
|
-
this
|
|
24
|
-
|
|
25
|
-
this
|
|
26
|
-
|
|
27
|
-
this
|
|
28
|
-
|
|
29
|
-
this
|
|
30
|
-
|
|
31
|
-
this
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
this
|
|
38
|
-
|
|
43
|
+
|
|
44
|
+
_defineProperty(this, "object", void 0);
|
|
45
|
+
|
|
46
|
+
_defineProperty(this, "domElement", void 0);
|
|
47
|
+
|
|
48
|
+
_defineProperty(this, "enabled", true);
|
|
49
|
+
|
|
50
|
+
_defineProperty(this, "target", new Vector3());
|
|
51
|
+
|
|
52
|
+
_defineProperty(this, "minDistance", 0);
|
|
53
|
+
|
|
54
|
+
_defineProperty(this, "maxDistance", Infinity);
|
|
55
|
+
|
|
56
|
+
_defineProperty(this, "minZoom", 0);
|
|
57
|
+
|
|
58
|
+
_defineProperty(this, "maxZoom", Infinity);
|
|
59
|
+
|
|
60
|
+
_defineProperty(this, "minPolarAngle", 0);
|
|
61
|
+
|
|
62
|
+
_defineProperty(this, "maxPolarAngle", Math.PI);
|
|
63
|
+
|
|
64
|
+
_defineProperty(this, "minAzimuthAngle", -Infinity);
|
|
65
|
+
|
|
66
|
+
_defineProperty(this, "maxAzimuthAngle", Infinity);
|
|
67
|
+
|
|
68
|
+
_defineProperty(this, "enableDamping", false);
|
|
69
|
+
|
|
70
|
+
_defineProperty(this, "dampingFactor", 0.05);
|
|
71
|
+
|
|
72
|
+
_defineProperty(this, "enableZoom", true);
|
|
73
|
+
|
|
74
|
+
_defineProperty(this, "zoomSpeed", 1.0);
|
|
75
|
+
|
|
76
|
+
_defineProperty(this, "enableRotate", true);
|
|
77
|
+
|
|
78
|
+
_defineProperty(this, "rotateSpeed", 1.0);
|
|
79
|
+
|
|
80
|
+
_defineProperty(this, "enablePan", true);
|
|
81
|
+
|
|
82
|
+
_defineProperty(this, "panSpeed", 1.0);
|
|
83
|
+
|
|
84
|
+
_defineProperty(this, "screenSpacePanning", true);
|
|
85
|
+
|
|
86
|
+
_defineProperty(this, "keyPanSpeed", 7.0);
|
|
87
|
+
|
|
88
|
+
_defineProperty(this, "autoRotate", false);
|
|
89
|
+
|
|
90
|
+
_defineProperty(this, "autoRotateSpeed", 2.0);
|
|
91
|
+
|
|
92
|
+
_defineProperty(this, "reverseOrbit", false);
|
|
93
|
+
|
|
94
|
+
_defineProperty(this, "keys", {
|
|
95
|
+
LEFT: 'ArrowLeft',
|
|
96
|
+
UP: 'ArrowUp',
|
|
97
|
+
RIGHT: 'ArrowRight',
|
|
98
|
+
BOTTOM: 'ArrowDown'
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
_defineProperty(this, "mouseButtons", {
|
|
102
|
+
LEFT: MOUSE.ROTATE,
|
|
103
|
+
MIDDLE: MOUSE.DOLLY,
|
|
104
|
+
RIGHT: MOUSE.PAN
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
_defineProperty(this, "touches", {
|
|
108
|
+
ONE: TOUCH.ROTATE,
|
|
109
|
+
TWO: TOUCH.DOLLY_PAN
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
_defineProperty(this, "target0", void 0);
|
|
113
|
+
|
|
114
|
+
_defineProperty(this, "position0", void 0);
|
|
115
|
+
|
|
116
|
+
_defineProperty(this, "zoom0", void 0);
|
|
117
|
+
|
|
118
|
+
_defineProperty(this, "_domElementKeyEvents", null);
|
|
119
|
+
|
|
120
|
+
_defineProperty(this, "getPolarAngle", void 0);
|
|
121
|
+
|
|
122
|
+
_defineProperty(this, "getAzimuthalAngle", void 0);
|
|
123
|
+
|
|
124
|
+
_defineProperty(this, "setPolarAngle", void 0);
|
|
125
|
+
|
|
126
|
+
_defineProperty(this, "setAzimuthalAngle", void 0);
|
|
127
|
+
|
|
128
|
+
_defineProperty(this, "getDistance", void 0);
|
|
129
|
+
|
|
130
|
+
_defineProperty(this, "listenToKeyEvents", void 0);
|
|
131
|
+
|
|
132
|
+
_defineProperty(this, "saveState", void 0);
|
|
133
|
+
|
|
134
|
+
_defineProperty(this, "reset", void 0);
|
|
135
|
+
|
|
136
|
+
_defineProperty(this, "update", void 0);
|
|
137
|
+
|
|
138
|
+
_defineProperty(this, "connect", void 0);
|
|
139
|
+
|
|
140
|
+
_defineProperty(this, "dispose", void 0);
|
|
141
|
+
|
|
39
142
|
this.object = object;
|
|
40
|
-
this.domElement = domElement;
|
|
143
|
+
this.domElement = domElement; // for reset
|
|
144
|
+
|
|
41
145
|
this.target0 = this.target.clone();
|
|
42
146
|
this.position0 = this.object.position.clone();
|
|
43
|
-
this.zoom0 = this.object instanceof
|
|
147
|
+
this.zoom0 = this.object instanceof PerspectiveCamera ? this.object.zoom : 1; //
|
|
148
|
+
// public methods
|
|
149
|
+
//
|
|
150
|
+
|
|
44
151
|
this.getPolarAngle = () => spherical.phi;
|
|
152
|
+
|
|
45
153
|
this.getAzimuthalAngle = () => spherical.theta;
|
|
46
|
-
|
|
154
|
+
|
|
155
|
+
this.setPolarAngle = value => {
|
|
156
|
+
// use modulo wrapping to safeguard value
|
|
47
157
|
let phi = moduloWrapAround(value, 2 * Math.PI);
|
|
48
|
-
let currentPhi = spherical.phi;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
if (phi < 0)
|
|
52
|
-
phi += 2 * Math.PI;
|
|
158
|
+
let currentPhi = spherical.phi; // convert to the equivalent shortest angle
|
|
159
|
+
|
|
160
|
+
if (currentPhi < 0) currentPhi += 2 * Math.PI;
|
|
161
|
+
if (phi < 0) phi += 2 * Math.PI;
|
|
53
162
|
let phiDist = Math.abs(phi - currentPhi);
|
|
163
|
+
|
|
54
164
|
if (2 * Math.PI - phiDist < phiDist) {
|
|
55
165
|
if (phi < currentPhi) {
|
|
56
166
|
phi += 2 * Math.PI;
|
|
@@ -58,17 +168,20 @@ class OrbitControls extends THREE.EventDispatcher {
|
|
|
58
168
|
currentPhi += 2 * Math.PI;
|
|
59
169
|
}
|
|
60
170
|
}
|
|
171
|
+
|
|
61
172
|
sphericalDelta.phi = phi - currentPhi;
|
|
62
173
|
scope.update();
|
|
63
174
|
};
|
|
64
|
-
|
|
175
|
+
|
|
176
|
+
this.setAzimuthalAngle = value => {
|
|
177
|
+
// use modulo wrapping to safeguard value
|
|
65
178
|
let theta = moduloWrapAround(value, 2 * Math.PI);
|
|
66
|
-
let currentTheta = spherical.theta;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
if (theta < 0)
|
|
70
|
-
theta += 2 * Math.PI;
|
|
179
|
+
let currentTheta = spherical.theta; // convert to the equivalent shortest angle
|
|
180
|
+
|
|
181
|
+
if (currentTheta < 0) currentTheta += 2 * Math.PI;
|
|
182
|
+
if (theta < 0) theta += 2 * Math.PI;
|
|
71
183
|
let thetaDist = Math.abs(theta - currentTheta);
|
|
184
|
+
|
|
72
185
|
if (2 * Math.PI - thetaDist < thetaDist) {
|
|
73
186
|
if (theta < currentTheta) {
|
|
74
187
|
theta += 2 * Math.PI;
|
|
@@ -76,82 +189,101 @@ class OrbitControls extends THREE.EventDispatcher {
|
|
|
76
189
|
currentTheta += 2 * Math.PI;
|
|
77
190
|
}
|
|
78
191
|
}
|
|
192
|
+
|
|
79
193
|
sphericalDelta.theta = theta - currentTheta;
|
|
80
194
|
scope.update();
|
|
81
195
|
};
|
|
196
|
+
|
|
82
197
|
this.getDistance = () => scope.object.position.distanceTo(scope.target);
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
198
|
+
|
|
199
|
+
this.listenToKeyEvents = domElement => {
|
|
200
|
+
domElement.addEventListener('keydown', onKeyDown);
|
|
201
|
+
this._domElementKeyEvents = domElement;
|
|
86
202
|
};
|
|
203
|
+
|
|
87
204
|
this.saveState = () => {
|
|
88
205
|
scope.target0.copy(scope.target);
|
|
89
206
|
scope.position0.copy(scope.object.position);
|
|
90
|
-
scope.zoom0 = scope.object instanceof
|
|
207
|
+
scope.zoom0 = scope.object instanceof PerspectiveCamera ? scope.object.zoom : 1;
|
|
91
208
|
};
|
|
209
|
+
|
|
92
210
|
this.reset = () => {
|
|
93
211
|
scope.target.copy(scope.target0);
|
|
94
212
|
scope.object.position.copy(scope.position0);
|
|
95
|
-
|
|
213
|
+
|
|
214
|
+
if (scope.object instanceof PerspectiveCamera) {
|
|
96
215
|
scope.object.zoom = scope.zoom0;
|
|
97
216
|
scope.object.updateProjectionMatrix();
|
|
98
217
|
}
|
|
218
|
+
|
|
99
219
|
scope.dispatchEvent(changeEvent);
|
|
100
220
|
scope.update();
|
|
101
221
|
state = STATE.NONE;
|
|
102
|
-
};
|
|
222
|
+
}; // this method is exposed, but perhaps it would be better if we can make it private...
|
|
223
|
+
|
|
224
|
+
|
|
103
225
|
this.update = (() => {
|
|
104
|
-
const offset = new
|
|
105
|
-
|
|
226
|
+
const offset = new Vector3(); // so camera.up is the orbit axis
|
|
227
|
+
|
|
228
|
+
const quat = new Quaternion().setFromUnitVectors(object.up, new Vector3(0, 1, 0));
|
|
106
229
|
const quatInverse = quat.clone().invert();
|
|
107
|
-
const lastPosition = new
|
|
108
|
-
const lastQuaternion = new
|
|
230
|
+
const lastPosition = new Vector3();
|
|
231
|
+
const lastQuaternion = new Quaternion();
|
|
109
232
|
const twoPI = 2 * Math.PI;
|
|
110
233
|
return function update() {
|
|
111
234
|
const position = scope.object.position;
|
|
112
|
-
offset.copy(position).sub(scope.target);
|
|
113
|
-
|
|
235
|
+
offset.copy(position).sub(scope.target); // rotate offset to "y-axis-is-up" space
|
|
236
|
+
|
|
237
|
+
offset.applyQuaternion(quat); // angle from z-axis around y-axis
|
|
238
|
+
|
|
114
239
|
spherical.setFromVector3(offset);
|
|
240
|
+
|
|
115
241
|
if (scope.autoRotate && state === STATE.NONE) {
|
|
116
242
|
rotateLeft(getAutoRotationAngle());
|
|
117
243
|
}
|
|
244
|
+
|
|
118
245
|
if (scope.enableDamping) {
|
|
119
246
|
spherical.theta += sphericalDelta.theta * scope.dampingFactor;
|
|
120
247
|
spherical.phi += sphericalDelta.phi * scope.dampingFactor;
|
|
121
248
|
} else {
|
|
122
249
|
spherical.theta += sphericalDelta.theta;
|
|
123
250
|
spherical.phi += sphericalDelta.phi;
|
|
124
|
-
}
|
|
251
|
+
} // restrict theta to be between desired limits
|
|
252
|
+
|
|
253
|
+
|
|
125
254
|
let min = scope.minAzimuthAngle;
|
|
126
255
|
let max = scope.maxAzimuthAngle;
|
|
256
|
+
|
|
127
257
|
if (isFinite(min) && isFinite(max)) {
|
|
128
|
-
if (min < -Math.PI)
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
min -= twoPI;
|
|
132
|
-
if (max < -Math.PI)
|
|
133
|
-
max += twoPI;
|
|
134
|
-
else if (max > Math.PI)
|
|
135
|
-
max -= twoPI;
|
|
258
|
+
if (min < -Math.PI) min += twoPI;else if (min > Math.PI) min -= twoPI;
|
|
259
|
+
if (max < -Math.PI) max += twoPI;else if (max > Math.PI) max -= twoPI;
|
|
260
|
+
|
|
136
261
|
if (min <= max) {
|
|
137
262
|
spherical.theta = Math.max(min, Math.min(max, spherical.theta));
|
|
138
263
|
} else {
|
|
139
264
|
spherical.theta = spherical.theta > (min + max) / 2 ? Math.max(min, spherical.theta) : Math.min(max, spherical.theta);
|
|
140
265
|
}
|
|
141
|
-
}
|
|
266
|
+
} // restrict phi to be between desired limits
|
|
267
|
+
|
|
268
|
+
|
|
142
269
|
spherical.phi = Math.max(scope.minPolarAngle, Math.min(scope.maxPolarAngle, spherical.phi));
|
|
143
270
|
spherical.makeSafe();
|
|
144
|
-
spherical.radius *= scale;
|
|
145
|
-
|
|
271
|
+
spherical.radius *= scale; // restrict radius to be between desired limits
|
|
272
|
+
|
|
273
|
+
spherical.radius = Math.max(scope.minDistance, Math.min(scope.maxDistance, spherical.radius)); // move target to panned location
|
|
274
|
+
|
|
146
275
|
if (scope.enableDamping === true) {
|
|
147
276
|
scope.target.addScaledVector(panOffset, scope.dampingFactor);
|
|
148
277
|
} else {
|
|
149
278
|
scope.target.add(panOffset);
|
|
150
279
|
}
|
|
151
|
-
|
|
280
|
+
|
|
281
|
+
offset.setFromSpherical(spherical); // rotate offset back to "camera-up-vector-is-up" space
|
|
282
|
+
|
|
152
283
|
offset.applyQuaternion(quatInverse);
|
|
153
284
|
position.copy(scope.target).add(offset);
|
|
154
285
|
scope.object.lookAt(scope.target);
|
|
286
|
+
|
|
155
287
|
if (scope.enableDamping === true) {
|
|
156
288
|
sphericalDelta.theta *= 1 - scope.dampingFactor;
|
|
157
289
|
sphericalDelta.phi *= 1 - scope.dampingFactor;
|
|
@@ -160,7 +292,11 @@ class OrbitControls extends THREE.EventDispatcher {
|
|
|
160
292
|
sphericalDelta.set(0, 0, 0);
|
|
161
293
|
panOffset.set(0, 0, 0);
|
|
162
294
|
}
|
|
163
|
-
|
|
295
|
+
|
|
296
|
+
scale = 1; // update condition is:
|
|
297
|
+
// min(camera displacement, camera rotation in radians)^2 > EPS
|
|
298
|
+
// using small-angle approximation cos(x/2) = 1 - x^2 / 8
|
|
299
|
+
|
|
164
300
|
if (zoomChanged || lastPosition.distanceToSquared(scope.object.position) > EPS || 8 * (1 - lastQuaternion.dot(scope.object.quaternion)) > EPS) {
|
|
165
301
|
scope.dispatchEvent(changeEvent);
|
|
166
302
|
lastPosition.copy(scope.object.position);
|
|
@@ -168,38 +304,57 @@ class OrbitControls extends THREE.EventDispatcher {
|
|
|
168
304
|
zoomChanged = false;
|
|
169
305
|
return true;
|
|
170
306
|
}
|
|
307
|
+
|
|
171
308
|
return false;
|
|
172
309
|
};
|
|
173
|
-
})();
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
scope.domElement
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
scope.domElement.
|
|
310
|
+
})(); // https://github.com/mrdoob/three.js/issues/20575
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
this.connect = domElement => {
|
|
314
|
+
if (domElement === document) {
|
|
315
|
+
console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.');
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
scope.domElement = domElement; // disables touch scroll
|
|
319
|
+
// touch-action needs to be defined for pointer events to work on mobile
|
|
320
|
+
// https://stackoverflow.com/a/48254578
|
|
321
|
+
|
|
322
|
+
scope.domElement.style.touchAction = 'none';
|
|
323
|
+
scope.domElement.addEventListener('contextmenu', onContextMenu);
|
|
324
|
+
scope.domElement.addEventListener('pointerdown', onPointerDown);
|
|
325
|
+
scope.domElement.addEventListener('pointercancel', onPointerCancel);
|
|
326
|
+
scope.domElement.addEventListener('wheel', onMouseWheel);
|
|
186
327
|
};
|
|
328
|
+
|
|
187
329
|
this.dispose = () => {
|
|
188
|
-
var
|
|
189
|
-
|
|
190
|
-
(
|
|
191
|
-
(
|
|
192
|
-
(
|
|
193
|
-
(
|
|
194
|
-
(
|
|
330
|
+
var _scope$domElement, _scope$domElement2, _scope$domElement3, _scope$domElement4, _scope$domElement5, _scope$domElement6;
|
|
331
|
+
|
|
332
|
+
(_scope$domElement = scope.domElement) === null || _scope$domElement === void 0 ? void 0 : _scope$domElement.removeEventListener('contextmenu', onContextMenu);
|
|
333
|
+
(_scope$domElement2 = scope.domElement) === null || _scope$domElement2 === void 0 ? void 0 : _scope$domElement2.removeEventListener('pointerdown', onPointerDown);
|
|
334
|
+
(_scope$domElement3 = scope.domElement) === null || _scope$domElement3 === void 0 ? void 0 : _scope$domElement3.removeEventListener('pointercancel', onPointerCancel);
|
|
335
|
+
(_scope$domElement4 = scope.domElement) === null || _scope$domElement4 === void 0 ? void 0 : _scope$domElement4.removeEventListener('wheel', onMouseWheel);
|
|
336
|
+
(_scope$domElement5 = scope.domElement) === null || _scope$domElement5 === void 0 ? void 0 : _scope$domElement5.ownerDocument.removeEventListener('pointermove', onPointerMove);
|
|
337
|
+
(_scope$domElement6 = scope.domElement) === null || _scope$domElement6 === void 0 ? void 0 : _scope$domElement6.ownerDocument.removeEventListener('pointerup', onPointerUp);
|
|
338
|
+
|
|
195
339
|
if (scope._domElementKeyEvents !== null) {
|
|
196
|
-
scope._domElementKeyEvents.removeEventListener(
|
|
197
|
-
}
|
|
198
|
-
|
|
340
|
+
scope._domElementKeyEvents.removeEventListener('keydown', onKeyDown);
|
|
341
|
+
} //scope.dispatchEvent( { type: 'dispose' } ); // should this be added here?
|
|
342
|
+
|
|
343
|
+
}; //
|
|
344
|
+
// internals
|
|
345
|
+
//
|
|
346
|
+
|
|
347
|
+
|
|
199
348
|
const scope = this;
|
|
200
|
-
const changeEvent = {
|
|
201
|
-
|
|
202
|
-
|
|
349
|
+
const changeEvent = {
|
|
350
|
+
type: 'change'
|
|
351
|
+
};
|
|
352
|
+
const startEvent = {
|
|
353
|
+
type: 'start'
|
|
354
|
+
};
|
|
355
|
+
const endEvent = {
|
|
356
|
+
type: 'end'
|
|
357
|
+
};
|
|
203
358
|
const STATE = {
|
|
204
359
|
NONE: -1,
|
|
205
360
|
ROTATE: 0,
|
|
@@ -211,29 +366,33 @@ class OrbitControls extends THREE.EventDispatcher {
|
|
|
211
366
|
TOUCH_DOLLY_ROTATE: 6
|
|
212
367
|
};
|
|
213
368
|
let state = STATE.NONE;
|
|
214
|
-
const EPS =
|
|
215
|
-
|
|
216
|
-
const
|
|
369
|
+
const EPS = 0.000001; // current position in spherical coordinates
|
|
370
|
+
|
|
371
|
+
const spherical = new Spherical();
|
|
372
|
+
const sphericalDelta = new Spherical();
|
|
217
373
|
let scale = 1;
|
|
218
|
-
const panOffset = new
|
|
374
|
+
const panOffset = new Vector3();
|
|
219
375
|
let zoomChanged = false;
|
|
220
|
-
const rotateStart = new
|
|
221
|
-
const rotateEnd = new
|
|
222
|
-
const rotateDelta = new
|
|
223
|
-
const panStart = new
|
|
224
|
-
const panEnd = new
|
|
225
|
-
const panDelta = new
|
|
226
|
-
const dollyStart = new
|
|
227
|
-
const dollyEnd = new
|
|
228
|
-
const dollyDelta = new
|
|
376
|
+
const rotateStart = new Vector2();
|
|
377
|
+
const rotateEnd = new Vector2();
|
|
378
|
+
const rotateDelta = new Vector2();
|
|
379
|
+
const panStart = new Vector2();
|
|
380
|
+
const panEnd = new Vector2();
|
|
381
|
+
const panDelta = new Vector2();
|
|
382
|
+
const dollyStart = new Vector2();
|
|
383
|
+
const dollyEnd = new Vector2();
|
|
384
|
+
const dollyDelta = new Vector2();
|
|
229
385
|
const pointers = [];
|
|
230
386
|
const pointerPositions = {};
|
|
387
|
+
|
|
231
388
|
function getAutoRotationAngle() {
|
|
232
389
|
return 2 * Math.PI / 60 / 60 * scope.autoRotateSpeed;
|
|
233
390
|
}
|
|
391
|
+
|
|
234
392
|
function getZoomScale() {
|
|
235
393
|
return Math.pow(0.95, scope.zoomSpeed);
|
|
236
394
|
}
|
|
395
|
+
|
|
237
396
|
function rotateLeft(angle) {
|
|
238
397
|
if (scope.reverseOrbit) {
|
|
239
398
|
sphericalDelta.theta += angle;
|
|
@@ -241,6 +400,7 @@ class OrbitControls extends THREE.EventDispatcher {
|
|
|
241
400
|
sphericalDelta.theta -= angle;
|
|
242
401
|
}
|
|
243
402
|
}
|
|
403
|
+
|
|
244
404
|
function rotateUp(angle) {
|
|
245
405
|
if (scope.reverseOrbit) {
|
|
246
406
|
sphericalDelta.phi += angle;
|
|
@@ -248,108 +408,130 @@ class OrbitControls extends THREE.EventDispatcher {
|
|
|
248
408
|
sphericalDelta.phi -= angle;
|
|
249
409
|
}
|
|
250
410
|
}
|
|
411
|
+
|
|
251
412
|
const panLeft = (() => {
|
|
252
|
-
const v = new
|
|
253
|
-
return function
|
|
254
|
-
v.setFromMatrixColumn(objectMatrix, 0);
|
|
413
|
+
const v = new Vector3();
|
|
414
|
+
return function panLeft(distance, objectMatrix) {
|
|
415
|
+
v.setFromMatrixColumn(objectMatrix, 0); // get X column of objectMatrix
|
|
416
|
+
|
|
255
417
|
v.multiplyScalar(-distance);
|
|
256
418
|
panOffset.add(v);
|
|
257
419
|
};
|
|
258
420
|
})();
|
|
421
|
+
|
|
259
422
|
const panUp = (() => {
|
|
260
|
-
const v = new
|
|
261
|
-
return function
|
|
423
|
+
const v = new Vector3();
|
|
424
|
+
return function panUp(distance, objectMatrix) {
|
|
262
425
|
if (scope.screenSpacePanning === true) {
|
|
263
426
|
v.setFromMatrixColumn(objectMatrix, 1);
|
|
264
427
|
} else {
|
|
265
428
|
v.setFromMatrixColumn(objectMatrix, 0);
|
|
266
429
|
v.crossVectors(scope.object.up, v);
|
|
267
430
|
}
|
|
431
|
+
|
|
268
432
|
v.multiplyScalar(distance);
|
|
269
433
|
panOffset.add(v);
|
|
270
434
|
};
|
|
271
|
-
})();
|
|
435
|
+
})(); // deltaX and deltaY are in pixels; right and down are positive
|
|
436
|
+
|
|
437
|
+
|
|
272
438
|
const pan = (() => {
|
|
273
|
-
const offset = new
|
|
274
|
-
return function
|
|
439
|
+
const offset = new Vector3();
|
|
440
|
+
return function pan(deltaX, deltaY) {
|
|
275
441
|
const element = scope.domElement;
|
|
276
|
-
|
|
442
|
+
|
|
443
|
+
if (element && scope.object instanceof PerspectiveCamera && scope.object.isPerspectiveCamera) {
|
|
444
|
+
// perspective
|
|
277
445
|
const position = scope.object.position;
|
|
278
446
|
offset.copy(position).sub(scope.target);
|
|
279
|
-
let targetDistance = offset.length();
|
|
280
|
-
|
|
447
|
+
let targetDistance = offset.length(); // half of the fov is center to top of screen
|
|
448
|
+
|
|
449
|
+
targetDistance *= Math.tan(scope.object.fov / 2 * Math.PI / 180.0); // we use only clientHeight here so aspect ratio does not distort speed
|
|
450
|
+
|
|
281
451
|
panLeft(2 * deltaX * targetDistance / element.clientHeight, scope.object.matrix);
|
|
282
452
|
panUp(2 * deltaY * targetDistance / element.clientHeight, scope.object.matrix);
|
|
283
|
-
} else if (element && scope.object instanceof
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
);
|
|
288
|
-
panUp(
|
|
289
|
-
deltaY * (scope.object.top - scope.object.bottom) / scope.object.zoom / element.clientHeight,
|
|
290
|
-
scope.object.matrix
|
|
291
|
-
);
|
|
453
|
+
} else if (element && scope.object instanceof OrthographicCamera && scope.object.isOrthographicCamera) {
|
|
454
|
+
// orthographic
|
|
455
|
+
panLeft(deltaX * (scope.object.right - scope.object.left) / scope.object.zoom / element.clientWidth, scope.object.matrix);
|
|
456
|
+
panUp(deltaY * (scope.object.top - scope.object.bottom) / scope.object.zoom / element.clientHeight, scope.object.matrix);
|
|
292
457
|
} else {
|
|
293
|
-
|
|
458
|
+
// camera neither orthographic nor perspective
|
|
459
|
+
console.warn('WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.');
|
|
294
460
|
scope.enablePan = false;
|
|
295
461
|
}
|
|
296
462
|
};
|
|
297
463
|
})();
|
|
464
|
+
|
|
298
465
|
function dollyOut(dollyScale) {
|
|
299
|
-
if (scope.object instanceof
|
|
466
|
+
if (scope.object instanceof PerspectiveCamera && scope.object.isPerspectiveCamera) {
|
|
300
467
|
scale /= dollyScale;
|
|
301
|
-
} else if (scope.object instanceof
|
|
468
|
+
} else if (scope.object instanceof OrthographicCamera && scope.object.isOrthographicCamera) {
|
|
302
469
|
scope.object.zoom = Math.max(scope.minZoom, Math.min(scope.maxZoom, scope.object.zoom * dollyScale));
|
|
303
470
|
scope.object.updateProjectionMatrix();
|
|
304
471
|
zoomChanged = true;
|
|
305
472
|
} else {
|
|
306
|
-
console.warn(
|
|
473
|
+
console.warn('WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.');
|
|
307
474
|
scope.enableZoom = false;
|
|
308
475
|
}
|
|
309
476
|
}
|
|
477
|
+
|
|
310
478
|
function dollyIn(dollyScale) {
|
|
311
|
-
if (scope.object instanceof
|
|
479
|
+
if (scope.object instanceof PerspectiveCamera && scope.object.isPerspectiveCamera) {
|
|
312
480
|
scale *= dollyScale;
|
|
313
|
-
} else if (scope.object instanceof
|
|
481
|
+
} else if (scope.object instanceof OrthographicCamera && scope.object.isOrthographicCamera) {
|
|
314
482
|
scope.object.zoom = Math.max(scope.minZoom, Math.min(scope.maxZoom, scope.object.zoom / dollyScale));
|
|
315
483
|
scope.object.updateProjectionMatrix();
|
|
316
484
|
zoomChanged = true;
|
|
317
485
|
} else {
|
|
318
|
-
console.warn(
|
|
486
|
+
console.warn('WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.');
|
|
319
487
|
scope.enableZoom = false;
|
|
320
488
|
}
|
|
321
|
-
}
|
|
489
|
+
} //
|
|
490
|
+
// event callbacks - update the object state
|
|
491
|
+
//
|
|
492
|
+
|
|
493
|
+
|
|
322
494
|
function handleMouseDownRotate(event) {
|
|
323
495
|
rotateStart.set(event.clientX, event.clientY);
|
|
324
496
|
}
|
|
497
|
+
|
|
325
498
|
function handleMouseDownDolly(event) {
|
|
326
499
|
dollyStart.set(event.clientX, event.clientY);
|
|
327
500
|
}
|
|
501
|
+
|
|
328
502
|
function handleMouseDownPan(event) {
|
|
329
503
|
panStart.set(event.clientX, event.clientY);
|
|
330
504
|
}
|
|
505
|
+
|
|
331
506
|
function handleMouseMoveRotate(event) {
|
|
332
507
|
rotateEnd.set(event.clientX, event.clientY);
|
|
333
508
|
rotateDelta.subVectors(rotateEnd, rotateStart).multiplyScalar(scope.rotateSpeed);
|
|
334
509
|
const element = scope.domElement;
|
|
510
|
+
|
|
335
511
|
if (element) {
|
|
336
|
-
rotateLeft(2 * Math.PI * rotateDelta.x / element.clientHeight);
|
|
512
|
+
rotateLeft(2 * Math.PI * rotateDelta.x / element.clientHeight); // yes, height
|
|
513
|
+
|
|
337
514
|
rotateUp(2 * Math.PI * rotateDelta.y / element.clientHeight);
|
|
338
515
|
}
|
|
516
|
+
|
|
339
517
|
rotateStart.copy(rotateEnd);
|
|
340
518
|
scope.update();
|
|
341
519
|
}
|
|
520
|
+
|
|
342
521
|
function handleMouseMoveDolly(event) {
|
|
343
522
|
dollyEnd.set(event.clientX, event.clientY);
|
|
344
523
|
dollyDelta.subVectors(dollyEnd, dollyStart);
|
|
524
|
+
|
|
345
525
|
if (dollyDelta.y > 0) {
|
|
346
526
|
dollyOut(getZoomScale());
|
|
347
527
|
} else if (dollyDelta.y < 0) {
|
|
348
528
|
dollyIn(getZoomScale());
|
|
349
529
|
}
|
|
530
|
+
|
|
350
531
|
dollyStart.copy(dollyEnd);
|
|
351
532
|
scope.update();
|
|
352
533
|
}
|
|
534
|
+
|
|
353
535
|
function handleMouseMovePan(event) {
|
|
354
536
|
panEnd.set(event.clientX, event.clientY);
|
|
355
537
|
panDelta.subVectors(panEnd, panStart).multiplyScalar(scope.panSpeed);
|
|
@@ -357,39 +539,49 @@ class OrbitControls extends THREE.EventDispatcher {
|
|
|
357
539
|
panStart.copy(panEnd);
|
|
358
540
|
scope.update();
|
|
359
541
|
}
|
|
542
|
+
|
|
360
543
|
function handleMouseWheel(event) {
|
|
361
544
|
if (event.deltaY < 0) {
|
|
362
545
|
dollyIn(getZoomScale());
|
|
363
546
|
} else if (event.deltaY > 0) {
|
|
364
547
|
dollyOut(getZoomScale());
|
|
365
548
|
}
|
|
549
|
+
|
|
366
550
|
scope.update();
|
|
367
551
|
}
|
|
552
|
+
|
|
368
553
|
function handleKeyDown(event) {
|
|
369
554
|
let needsUpdate = false;
|
|
555
|
+
|
|
370
556
|
switch (event.code) {
|
|
371
557
|
case scope.keys.UP:
|
|
372
558
|
pan(0, scope.keyPanSpeed);
|
|
373
559
|
needsUpdate = true;
|
|
374
560
|
break;
|
|
561
|
+
|
|
375
562
|
case scope.keys.BOTTOM:
|
|
376
563
|
pan(0, -scope.keyPanSpeed);
|
|
377
564
|
needsUpdate = true;
|
|
378
565
|
break;
|
|
566
|
+
|
|
379
567
|
case scope.keys.LEFT:
|
|
380
568
|
pan(scope.keyPanSpeed, 0);
|
|
381
569
|
needsUpdate = true;
|
|
382
570
|
break;
|
|
571
|
+
|
|
383
572
|
case scope.keys.RIGHT:
|
|
384
573
|
pan(-scope.keyPanSpeed, 0);
|
|
385
574
|
needsUpdate = true;
|
|
386
575
|
break;
|
|
387
576
|
}
|
|
577
|
+
|
|
388
578
|
if (needsUpdate) {
|
|
579
|
+
// prevent the browser from scrolling on cursor keys
|
|
389
580
|
event.preventDefault();
|
|
390
581
|
scope.update();
|
|
391
582
|
}
|
|
392
583
|
}
|
|
584
|
+
|
|
393
585
|
function handleTouchStartRotate() {
|
|
394
586
|
if (pointers.length == 1) {
|
|
395
587
|
rotateStart.set(pointers[0].pageX, pointers[0].pageY);
|
|
@@ -399,6 +591,7 @@ class OrbitControls extends THREE.EventDispatcher {
|
|
|
399
591
|
rotateStart.set(x, y);
|
|
400
592
|
}
|
|
401
593
|
}
|
|
594
|
+
|
|
402
595
|
function handleTouchStartPan() {
|
|
403
596
|
if (pointers.length == 1) {
|
|
404
597
|
panStart.set(pointers[0].pageX, pointers[0].pageY);
|
|
@@ -408,24 +601,24 @@ class OrbitControls extends THREE.EventDispatcher {
|
|
|
408
601
|
panStart.set(x, y);
|
|
409
602
|
}
|
|
410
603
|
}
|
|
604
|
+
|
|
411
605
|
function handleTouchStartDolly() {
|
|
412
606
|
const dx = pointers[0].pageX - pointers[1].pageX;
|
|
413
607
|
const dy = pointers[0].pageY - pointers[1].pageY;
|
|
414
608
|
const distance = Math.sqrt(dx * dx + dy * dy);
|
|
415
609
|
dollyStart.set(0, distance);
|
|
416
610
|
}
|
|
611
|
+
|
|
417
612
|
function handleTouchStartDollyPan() {
|
|
418
|
-
if (scope.enableZoom)
|
|
419
|
-
|
|
420
|
-
if (scope.enablePan)
|
|
421
|
-
handleTouchStartPan();
|
|
613
|
+
if (scope.enableZoom) handleTouchStartDolly();
|
|
614
|
+
if (scope.enablePan) handleTouchStartPan();
|
|
422
615
|
}
|
|
616
|
+
|
|
423
617
|
function handleTouchStartDollyRotate() {
|
|
424
|
-
if (scope.enableZoom)
|
|
425
|
-
|
|
426
|
-
if (scope.enableRotate)
|
|
427
|
-
handleTouchStartRotate();
|
|
618
|
+
if (scope.enableZoom) handleTouchStartDolly();
|
|
619
|
+
if (scope.enableRotate) handleTouchStartRotate();
|
|
428
620
|
}
|
|
621
|
+
|
|
429
622
|
function handleTouchMoveRotate(event) {
|
|
430
623
|
if (pointers.length == 1) {
|
|
431
624
|
rotateEnd.set(event.pageX, event.pageY);
|
|
@@ -435,14 +628,19 @@ class OrbitControls extends THREE.EventDispatcher {
|
|
|
435
628
|
const y = 0.5 * (event.pageY + position.y);
|
|
436
629
|
rotateEnd.set(x, y);
|
|
437
630
|
}
|
|
631
|
+
|
|
438
632
|
rotateDelta.subVectors(rotateEnd, rotateStart).multiplyScalar(scope.rotateSpeed);
|
|
439
633
|
const element = scope.domElement;
|
|
634
|
+
|
|
440
635
|
if (element) {
|
|
441
|
-
rotateLeft(2 * Math.PI * rotateDelta.x / element.clientHeight);
|
|
636
|
+
rotateLeft(2 * Math.PI * rotateDelta.x / element.clientHeight); // yes, height
|
|
637
|
+
|
|
442
638
|
rotateUp(2 * Math.PI * rotateDelta.y / element.clientHeight);
|
|
443
639
|
}
|
|
640
|
+
|
|
444
641
|
rotateStart.copy(rotateEnd);
|
|
445
642
|
}
|
|
643
|
+
|
|
446
644
|
function handleTouchMovePan(event) {
|
|
447
645
|
if (pointers.length == 1) {
|
|
448
646
|
panEnd.set(event.pageX, event.pageY);
|
|
@@ -452,10 +650,12 @@ class OrbitControls extends THREE.EventDispatcher {
|
|
|
452
650
|
const y = 0.5 * (event.pageY + position.y);
|
|
453
651
|
panEnd.set(x, y);
|
|
454
652
|
}
|
|
653
|
+
|
|
455
654
|
panDelta.subVectors(panEnd, panStart).multiplyScalar(scope.panSpeed);
|
|
456
655
|
pan(panDelta.x, panDelta.y);
|
|
457
656
|
panStart.copy(panEnd);
|
|
458
657
|
}
|
|
658
|
+
|
|
459
659
|
function handleTouchMoveDolly(event) {
|
|
460
660
|
const position = getSecondPointerPosition(event);
|
|
461
661
|
const dx = event.pageX - position.x;
|
|
@@ -466,233 +666,265 @@ class OrbitControls extends THREE.EventDispatcher {
|
|
|
466
666
|
dollyOut(dollyDelta.y);
|
|
467
667
|
dollyStart.copy(dollyEnd);
|
|
468
668
|
}
|
|
669
|
+
|
|
469
670
|
function handleTouchMoveDollyPan(event) {
|
|
470
|
-
if (scope.enableZoom)
|
|
471
|
-
|
|
472
|
-
if (scope.enablePan)
|
|
473
|
-
handleTouchMovePan(event);
|
|
671
|
+
if (scope.enableZoom) handleTouchMoveDolly(event);
|
|
672
|
+
if (scope.enablePan) handleTouchMovePan(event);
|
|
474
673
|
}
|
|
674
|
+
|
|
475
675
|
function handleTouchMoveDollyRotate(event) {
|
|
476
|
-
if (scope.enableZoom)
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
676
|
+
if (scope.enableZoom) handleTouchMoveDolly(event);
|
|
677
|
+
if (scope.enableRotate) handleTouchMoveRotate(event);
|
|
678
|
+
} //
|
|
679
|
+
// event handlers - FSM: listen for events and reset state
|
|
680
|
+
//
|
|
681
|
+
|
|
682
|
+
|
|
481
683
|
function onPointerDown(event) {
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
return;
|
|
684
|
+
if (scope.enabled === false) return;
|
|
685
|
+
|
|
485
686
|
if (pointers.length === 0) {
|
|
486
|
-
|
|
487
|
-
|
|
687
|
+
var _scope$domElement7, _scope$domElement8;
|
|
688
|
+
|
|
689
|
+
(_scope$domElement7 = scope.domElement) === null || _scope$domElement7 === void 0 ? void 0 : _scope$domElement7.ownerDocument.addEventListener('pointermove', onPointerMove);
|
|
690
|
+
(_scope$domElement8 = scope.domElement) === null || _scope$domElement8 === void 0 ? void 0 : _scope$domElement8.ownerDocument.addEventListener('pointerup', onPointerUp);
|
|
488
691
|
}
|
|
692
|
+
|
|
489
693
|
addPointer(event);
|
|
490
|
-
|
|
694
|
+
|
|
695
|
+
if (event.pointerType === 'touch') {
|
|
491
696
|
onTouchStart(event);
|
|
492
697
|
} else {
|
|
493
698
|
onMouseDown(event);
|
|
494
699
|
}
|
|
495
700
|
}
|
|
701
|
+
|
|
496
702
|
function onPointerMove(event) {
|
|
497
|
-
if (scope.enabled === false)
|
|
498
|
-
|
|
499
|
-
if (event.pointerType ===
|
|
703
|
+
if (scope.enabled === false) return;
|
|
704
|
+
|
|
705
|
+
if (event.pointerType === 'touch') {
|
|
500
706
|
onTouchMove(event);
|
|
501
707
|
} else {
|
|
502
708
|
onMouseMove(event);
|
|
503
709
|
}
|
|
504
710
|
}
|
|
711
|
+
|
|
505
712
|
function onPointerUp(event) {
|
|
506
|
-
var _a, _b, _c;
|
|
507
713
|
removePointer(event);
|
|
714
|
+
|
|
508
715
|
if (pointers.length === 0) {
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
(
|
|
716
|
+
var _scope$domElement9, _scope$domElement10, _scope$domElement11;
|
|
717
|
+
|
|
718
|
+
(_scope$domElement9 = scope.domElement) === null || _scope$domElement9 === void 0 ? void 0 : _scope$domElement9.releasePointerCapture(event.pointerId);
|
|
719
|
+
(_scope$domElement10 = scope.domElement) === null || _scope$domElement10 === void 0 ? void 0 : _scope$domElement10.ownerDocument.removeEventListener('pointermove', onPointerMove);
|
|
720
|
+
(_scope$domElement11 = scope.domElement) === null || _scope$domElement11 === void 0 ? void 0 : _scope$domElement11.ownerDocument.removeEventListener('pointerup', onPointerUp);
|
|
512
721
|
}
|
|
722
|
+
|
|
513
723
|
scope.dispatchEvent(endEvent);
|
|
514
724
|
state = STATE.NONE;
|
|
515
725
|
}
|
|
726
|
+
|
|
516
727
|
function onPointerCancel(event) {
|
|
517
728
|
removePointer(event);
|
|
518
729
|
}
|
|
730
|
+
|
|
519
731
|
function onMouseDown(event) {
|
|
520
732
|
let mouseAction;
|
|
733
|
+
|
|
521
734
|
switch (event.button) {
|
|
522
735
|
case 0:
|
|
523
736
|
mouseAction = scope.mouseButtons.LEFT;
|
|
524
737
|
break;
|
|
738
|
+
|
|
525
739
|
case 1:
|
|
526
740
|
mouseAction = scope.mouseButtons.MIDDLE;
|
|
527
741
|
break;
|
|
742
|
+
|
|
528
743
|
case 2:
|
|
529
744
|
mouseAction = scope.mouseButtons.RIGHT;
|
|
530
745
|
break;
|
|
746
|
+
|
|
531
747
|
default:
|
|
532
748
|
mouseAction = -1;
|
|
533
749
|
}
|
|
750
|
+
|
|
534
751
|
switch (mouseAction) {
|
|
535
|
-
case
|
|
536
|
-
if (scope.enableZoom === false)
|
|
537
|
-
return;
|
|
752
|
+
case MOUSE.DOLLY:
|
|
753
|
+
if (scope.enableZoom === false) return;
|
|
538
754
|
handleMouseDownDolly(event);
|
|
539
755
|
state = STATE.DOLLY;
|
|
540
756
|
break;
|
|
541
|
-
|
|
757
|
+
|
|
758
|
+
case MOUSE.ROTATE:
|
|
542
759
|
if (event.ctrlKey || event.metaKey || event.shiftKey) {
|
|
543
|
-
if (scope.enablePan === false)
|
|
544
|
-
return;
|
|
760
|
+
if (scope.enablePan === false) return;
|
|
545
761
|
handleMouseDownPan(event);
|
|
546
762
|
state = STATE.PAN;
|
|
547
763
|
} else {
|
|
548
|
-
if (scope.enableRotate === false)
|
|
549
|
-
return;
|
|
764
|
+
if (scope.enableRotate === false) return;
|
|
550
765
|
handleMouseDownRotate(event);
|
|
551
766
|
state = STATE.ROTATE;
|
|
552
767
|
}
|
|
768
|
+
|
|
553
769
|
break;
|
|
554
|
-
|
|
770
|
+
|
|
771
|
+
case MOUSE.PAN:
|
|
555
772
|
if (event.ctrlKey || event.metaKey || event.shiftKey) {
|
|
556
|
-
if (scope.enableRotate === false)
|
|
557
|
-
return;
|
|
773
|
+
if (scope.enableRotate === false) return;
|
|
558
774
|
handleMouseDownRotate(event);
|
|
559
775
|
state = STATE.ROTATE;
|
|
560
776
|
} else {
|
|
561
|
-
if (scope.enablePan === false)
|
|
562
|
-
return;
|
|
777
|
+
if (scope.enablePan === false) return;
|
|
563
778
|
handleMouseDownPan(event);
|
|
564
779
|
state = STATE.PAN;
|
|
565
780
|
}
|
|
781
|
+
|
|
566
782
|
break;
|
|
783
|
+
|
|
567
784
|
default:
|
|
568
785
|
state = STATE.NONE;
|
|
569
786
|
}
|
|
787
|
+
|
|
570
788
|
if (state !== STATE.NONE) {
|
|
571
789
|
scope.dispatchEvent(startEvent);
|
|
572
790
|
}
|
|
573
791
|
}
|
|
792
|
+
|
|
574
793
|
function onMouseMove(event) {
|
|
575
|
-
if (scope.enabled === false)
|
|
576
|
-
|
|
794
|
+
if (scope.enabled === false) return;
|
|
795
|
+
|
|
577
796
|
switch (state) {
|
|
578
797
|
case STATE.ROTATE:
|
|
579
|
-
if (scope.enableRotate === false)
|
|
580
|
-
return;
|
|
798
|
+
if (scope.enableRotate === false) return;
|
|
581
799
|
handleMouseMoveRotate(event);
|
|
582
800
|
break;
|
|
801
|
+
|
|
583
802
|
case STATE.DOLLY:
|
|
584
|
-
if (scope.enableZoom === false)
|
|
585
|
-
return;
|
|
803
|
+
if (scope.enableZoom === false) return;
|
|
586
804
|
handleMouseMoveDolly(event);
|
|
587
805
|
break;
|
|
806
|
+
|
|
588
807
|
case STATE.PAN:
|
|
589
|
-
if (scope.enablePan === false)
|
|
590
|
-
return;
|
|
808
|
+
if (scope.enablePan === false) return;
|
|
591
809
|
handleMouseMovePan(event);
|
|
592
810
|
break;
|
|
593
811
|
}
|
|
594
812
|
}
|
|
813
|
+
|
|
595
814
|
function onMouseWheel(event) {
|
|
596
815
|
if (scope.enabled === false || scope.enableZoom === false || state !== STATE.NONE && state !== STATE.ROTATE) {
|
|
597
816
|
return;
|
|
598
817
|
}
|
|
818
|
+
|
|
599
819
|
event.preventDefault();
|
|
600
820
|
scope.dispatchEvent(startEvent);
|
|
601
821
|
handleMouseWheel(event);
|
|
602
822
|
scope.dispatchEvent(endEvent);
|
|
603
823
|
}
|
|
824
|
+
|
|
604
825
|
function onKeyDown(event) {
|
|
605
|
-
if (scope.enabled === false || scope.enablePan === false)
|
|
606
|
-
return;
|
|
826
|
+
if (scope.enabled === false || scope.enablePan === false) return;
|
|
607
827
|
handleKeyDown(event);
|
|
608
828
|
}
|
|
829
|
+
|
|
609
830
|
function onTouchStart(event) {
|
|
610
831
|
trackPointer(event);
|
|
832
|
+
|
|
611
833
|
switch (pointers.length) {
|
|
612
834
|
case 1:
|
|
613
835
|
switch (scope.touches.ONE) {
|
|
614
|
-
case
|
|
615
|
-
if (scope.enableRotate === false)
|
|
616
|
-
return;
|
|
836
|
+
case TOUCH.ROTATE:
|
|
837
|
+
if (scope.enableRotate === false) return;
|
|
617
838
|
handleTouchStartRotate();
|
|
618
839
|
state = STATE.TOUCH_ROTATE;
|
|
619
840
|
break;
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
841
|
+
|
|
842
|
+
case TOUCH.PAN:
|
|
843
|
+
if (scope.enablePan === false) return;
|
|
623
844
|
handleTouchStartPan();
|
|
624
845
|
state = STATE.TOUCH_PAN;
|
|
625
846
|
break;
|
|
847
|
+
|
|
626
848
|
default:
|
|
627
849
|
state = STATE.NONE;
|
|
628
850
|
}
|
|
851
|
+
|
|
629
852
|
break;
|
|
853
|
+
|
|
630
854
|
case 2:
|
|
631
855
|
switch (scope.touches.TWO) {
|
|
632
|
-
case
|
|
633
|
-
if (scope.enableZoom === false && scope.enablePan === false)
|
|
634
|
-
return;
|
|
856
|
+
case TOUCH.DOLLY_PAN:
|
|
857
|
+
if (scope.enableZoom === false && scope.enablePan === false) return;
|
|
635
858
|
handleTouchStartDollyPan();
|
|
636
859
|
state = STATE.TOUCH_DOLLY_PAN;
|
|
637
860
|
break;
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
861
|
+
|
|
862
|
+
case TOUCH.DOLLY_ROTATE:
|
|
863
|
+
if (scope.enableZoom === false && scope.enableRotate === false) return;
|
|
641
864
|
handleTouchStartDollyRotate();
|
|
642
865
|
state = STATE.TOUCH_DOLLY_ROTATE;
|
|
643
866
|
break;
|
|
867
|
+
|
|
644
868
|
default:
|
|
645
869
|
state = STATE.NONE;
|
|
646
870
|
}
|
|
871
|
+
|
|
647
872
|
break;
|
|
873
|
+
|
|
648
874
|
default:
|
|
649
875
|
state = STATE.NONE;
|
|
650
876
|
}
|
|
877
|
+
|
|
651
878
|
if (state !== STATE.NONE) {
|
|
652
879
|
scope.dispatchEvent(startEvent);
|
|
653
880
|
}
|
|
654
881
|
}
|
|
882
|
+
|
|
655
883
|
function onTouchMove(event) {
|
|
656
884
|
trackPointer(event);
|
|
885
|
+
|
|
657
886
|
switch (state) {
|
|
658
887
|
case STATE.TOUCH_ROTATE:
|
|
659
|
-
if (scope.enableRotate === false)
|
|
660
|
-
return;
|
|
888
|
+
if (scope.enableRotate === false) return;
|
|
661
889
|
handleTouchMoveRotate(event);
|
|
662
890
|
scope.update();
|
|
663
891
|
break;
|
|
892
|
+
|
|
664
893
|
case STATE.TOUCH_PAN:
|
|
665
|
-
if (scope.enablePan === false)
|
|
666
|
-
return;
|
|
894
|
+
if (scope.enablePan === false) return;
|
|
667
895
|
handleTouchMovePan(event);
|
|
668
896
|
scope.update();
|
|
669
897
|
break;
|
|
898
|
+
|
|
670
899
|
case STATE.TOUCH_DOLLY_PAN:
|
|
671
|
-
if (scope.enableZoom === false && scope.enablePan === false)
|
|
672
|
-
return;
|
|
900
|
+
if (scope.enableZoom === false && scope.enablePan === false) return;
|
|
673
901
|
handleTouchMoveDollyPan(event);
|
|
674
902
|
scope.update();
|
|
675
903
|
break;
|
|
904
|
+
|
|
676
905
|
case STATE.TOUCH_DOLLY_ROTATE:
|
|
677
|
-
if (scope.enableZoom === false && scope.enableRotate === false)
|
|
678
|
-
return;
|
|
906
|
+
if (scope.enableZoom === false && scope.enableRotate === false) return;
|
|
679
907
|
handleTouchMoveDollyRotate(event);
|
|
680
908
|
scope.update();
|
|
681
909
|
break;
|
|
910
|
+
|
|
682
911
|
default:
|
|
683
912
|
state = STATE.NONE;
|
|
684
913
|
}
|
|
685
914
|
}
|
|
915
|
+
|
|
686
916
|
function onContextMenu(event) {
|
|
687
|
-
if (scope.enabled === false)
|
|
688
|
-
return;
|
|
917
|
+
if (scope.enabled === false) return;
|
|
689
918
|
event.preventDefault();
|
|
690
919
|
}
|
|
920
|
+
|
|
691
921
|
function addPointer(event) {
|
|
692
922
|
pointers.push(event);
|
|
693
923
|
}
|
|
924
|
+
|
|
694
925
|
function removePointer(event) {
|
|
695
926
|
delete pointerPositions[event.pointerId];
|
|
927
|
+
|
|
696
928
|
for (let i = 0; i < pointers.length; i++) {
|
|
697
929
|
if (pointers[i].pointerId == event.pointerId) {
|
|
698
930
|
pointers.splice(i, 1);
|
|
@@ -700,32 +932,49 @@ class OrbitControls extends THREE.EventDispatcher {
|
|
|
700
932
|
}
|
|
701
933
|
}
|
|
702
934
|
}
|
|
935
|
+
|
|
703
936
|
function trackPointer(event) {
|
|
704
937
|
let position = pointerPositions[event.pointerId];
|
|
705
|
-
|
|
706
|
-
|
|
938
|
+
|
|
939
|
+
if (position === undefined) {
|
|
940
|
+
position = new Vector2();
|
|
707
941
|
pointerPositions[event.pointerId] = position;
|
|
708
942
|
}
|
|
943
|
+
|
|
709
944
|
position.set(event.pageX, event.pageY);
|
|
710
945
|
}
|
|
946
|
+
|
|
711
947
|
function getSecondPointerPosition(event) {
|
|
712
948
|
const pointer = event.pointerId === pointers[0].pointerId ? pointers[1] : pointers[0];
|
|
713
949
|
return pointerPositions[pointer.pointerId];
|
|
714
|
-
}
|
|
715
|
-
|
|
716
|
-
|
|
950
|
+
} // connect events
|
|
951
|
+
|
|
952
|
+
|
|
953
|
+
if (domElement !== undefined) this.connect(domElement); // force an update at start
|
|
954
|
+
|
|
717
955
|
this.update();
|
|
718
956
|
}
|
|
719
|
-
|
|
957
|
+
|
|
958
|
+
} // This set of controls performs orbiting, dollying (zooming), and panning.
|
|
959
|
+
// Unlike TrackballControls, it maintains the "up" direction object.up (+Y by default).
|
|
960
|
+
// This is very similar to OrbitControls, another set of touch behavior
|
|
961
|
+
//
|
|
962
|
+
// Orbit - right mouse, or left mouse + ctrl/meta/shiftKey / touch: two-finger rotate
|
|
963
|
+
// Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish
|
|
964
|
+
// Pan - left mouse, or arrow keys / touch: one-finger move
|
|
965
|
+
|
|
966
|
+
|
|
720
967
|
class MapControls extends OrbitControls {
|
|
721
968
|
constructor(object, domElement) {
|
|
722
969
|
super(object, domElement);
|
|
723
|
-
this.screenSpacePanning = false;
|
|
724
|
-
|
|
725
|
-
this.mouseButtons.
|
|
726
|
-
this.
|
|
727
|
-
this.touches.
|
|
970
|
+
this.screenSpacePanning = false; // pan orthogonal to world-space direction camera.up
|
|
971
|
+
|
|
972
|
+
this.mouseButtons.LEFT = MOUSE.PAN;
|
|
973
|
+
this.mouseButtons.RIGHT = MOUSE.ROTATE;
|
|
974
|
+
this.touches.ONE = TOUCH.PAN;
|
|
975
|
+
this.touches.TWO = TOUCH.DOLLY_ROTATE;
|
|
728
976
|
}
|
|
977
|
+
|
|
729
978
|
}
|
|
730
|
-
|
|
731
|
-
|
|
979
|
+
|
|
980
|
+
export { MapControls, OrbitControls };
|