@plastic-software/three 0.174.0 → 0.175.0
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/build/three.cjs +10655 -1446
- package/build/three.core.js +9626 -1094
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +834 -157
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +4 -2
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +2658 -1697
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +2654 -1709
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/jsm/Addons.js +1 -1
- package/examples/jsm/animation/AnimationClipCreator.js +57 -6
- package/examples/jsm/animation/CCDIKSolver.js +93 -39
- package/examples/jsm/capabilities/WebGL.js +28 -3
- package/examples/jsm/capabilities/WebGPU.js +16 -6
- package/examples/jsm/controls/ArcballControls.js +424 -154
- package/examples/jsm/controls/DragControls.js +93 -2
- package/examples/jsm/controls/FirstPersonControls.js +113 -4
- package/examples/jsm/controls/FlyControls.js +49 -2
- package/examples/jsm/controls/MapControls.js +42 -9
- package/examples/jsm/controls/OrbitControls.js +345 -42
- package/examples/jsm/controls/PointerLockControls.js +111 -9
- package/examples/jsm/controls/TrackballControls.js +159 -8
- package/examples/jsm/controls/TransformControls.js +252 -6
- package/examples/jsm/csm/CSM.js +226 -15
- package/examples/jsm/csm/CSMFrustum.js +52 -0
- package/examples/jsm/csm/CSMHelper.js +47 -0
- package/examples/jsm/csm/CSMShader.js +10 -1
- package/examples/jsm/csm/CSMShadowNode.js +156 -13
- package/examples/jsm/curves/CurveExtras.js +289 -31
- package/examples/jsm/curves/NURBSCurve.js +57 -14
- package/examples/jsm/curves/NURBSSurface.js +50 -6
- package/examples/jsm/curves/NURBSUtils.js +96 -112
- package/examples/jsm/curves/NURBSVolume.js +22 -4
- package/examples/jsm/effects/AnaglyphEffect.js +30 -0
- package/examples/jsm/effects/AsciiEffect.js +60 -15
- package/examples/jsm/effects/OutlineEffect.js +59 -111
- package/examples/jsm/effects/ParallaxBarrierEffect.js +28 -0
- package/examples/jsm/effects/PeppersGhostEffect.js +21 -2
- package/examples/jsm/effects/StereoEffect.js +29 -0
- package/examples/jsm/environments/DebugEnvironment.js +49 -0
- package/examples/jsm/environments/RoomEnvironment.js +23 -4
- package/examples/jsm/exporters/DRACOExporter.js +53 -13
- package/examples/jsm/exporters/EXRExporter.js +37 -8
- package/examples/jsm/exporters/GLTFExporter.js +171 -48
- package/examples/jsm/exporters/KTX2Exporter.js +20 -0
- package/examples/jsm/exporters/OBJExporter.js +18 -0
- package/examples/jsm/exporters/PLYExporter.js +39 -9
- package/examples/jsm/exporters/STLExporter.js +25 -5
- package/examples/jsm/exporters/USDZExporter.js +70 -3
- package/examples/jsm/geometries/BoxLineGeometry.js +22 -0
- package/examples/jsm/geometries/ConvexGeometry.js +18 -0
- package/examples/jsm/geometries/DecalGeometry.js +20 -9
- package/examples/jsm/geometries/ParametricFunctions.js +97 -0
- package/examples/jsm/geometries/ParametricGeometry.js +37 -5
- package/examples/jsm/geometries/RoundedBoxGeometry.js +21 -0
- package/examples/jsm/geometries/TeapotGeometry.js +22 -38
- package/examples/jsm/geometries/TextGeometry.js +44 -16
- package/examples/jsm/helpers/LightProbeHelper.js +35 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +36 -0
- package/examples/jsm/helpers/OctreeHelper.js +35 -0
- package/examples/jsm/helpers/PositionalAudioHelper.js +59 -0
- package/examples/jsm/helpers/RectAreaLightHelper.js +35 -3
- package/examples/jsm/helpers/TextureHelper.js +27 -0
- package/examples/jsm/helpers/TextureHelperGPU.js +28 -0
- package/examples/jsm/helpers/VertexNormalsHelper.js +58 -2
- package/examples/jsm/helpers/VertexTangentsHelper.js +46 -2
- package/examples/jsm/helpers/ViewHelper.js +75 -1
- package/examples/jsm/interactive/HTMLMesh.js +25 -0
- package/examples/jsm/interactive/InteractiveGroup.js +65 -5
- package/examples/jsm/interactive/SelectionBox.js +74 -9
- package/examples/jsm/interactive/SelectionHelper.js +71 -29
- package/examples/jsm/libs/motion-controllers.module.js +1 -1
- package/examples/jsm/lighting/TiledLighting.js +23 -0
- package/examples/jsm/lights/LightProbeGenerator.js +26 -1
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +48 -13
- package/examples/jsm/lights/RectAreaLightUniformsLib.js +15 -0
- package/examples/jsm/lines/Line2.js +36 -0
- package/examples/jsm/lines/LineGeometry.js +52 -0
- package/examples/jsm/lines/LineMaterial.js +95 -0
- package/examples/jsm/lines/LineSegments2.js +51 -2
- package/examples/jsm/lines/LineSegmentsGeometry.js +62 -8
- package/examples/jsm/lines/Wireframe.js +38 -2
- package/examples/jsm/lines/WireframeGeometry2.js +24 -0
- package/examples/jsm/lines/webgpu/Line2.js +25 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +44 -6
- package/examples/jsm/lines/webgpu/Wireframe.js +30 -2
- package/examples/jsm/loaders/3DMLoader.js +71 -2
- package/examples/jsm/loaders/3MFLoader.js +41 -3
- package/examples/jsm/loaders/AMFLoader.js +31 -12
- package/examples/jsm/loaders/BVHLoader.js +57 -11
- package/examples/jsm/loaders/ColladaLoader.js +35 -0
- package/examples/jsm/loaders/DDSLoader.js +24 -0
- package/examples/jsm/loaders/DRACOLoader.js +73 -1
- package/examples/jsm/loaders/EXRLoader.js +40 -8
- package/examples/jsm/loaders/FBXLoader.js +42 -14
- package/examples/jsm/loaders/FontLoader.js +60 -2
- package/examples/jsm/loaders/GCodeLoader.js +33 -5
- package/examples/jsm/loaders/GLTFLoader.js +218 -5
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +48 -0
- package/examples/jsm/loaders/IESLoader.js +41 -0
- package/examples/jsm/loaders/KMZLoader.js +32 -0
- package/examples/jsm/loaders/KTX2Loader.js +86 -18
- package/examples/jsm/loaders/KTXLoader.js +26 -6
- package/examples/jsm/loaders/LDrawLoader.js +115 -5
- package/examples/jsm/loaders/LUT3dlLoader.js +46 -10
- package/examples/jsm/loaders/LUTCubeLoader.js +45 -9
- package/examples/jsm/loaders/LUTImageLoader.js +78 -38
- package/examples/jsm/loaders/LWOLoader.js +46 -7
- package/examples/jsm/loaders/LottieLoader.js +37 -0
- package/examples/jsm/loaders/MD2Loader.js +36 -1
- package/examples/jsm/loaders/MDDLoader.js +56 -12
- package/examples/jsm/loaders/MTLLoader.js +38 -33
- package/examples/jsm/loaders/MaterialXLoader.js +33 -0
- package/examples/jsm/loaders/NRRDLoader.js +36 -5
- package/examples/jsm/loaders/OBJLoader.js +48 -1
- package/examples/jsm/loaders/PCDLoader.js +47 -0
- package/examples/jsm/loaders/PDBLoader.js +40 -2
- package/examples/jsm/loaders/PLYLoader.js +62 -32
- package/examples/jsm/loaders/PVRLoader.js +23 -5
- package/examples/jsm/loaders/RGBELoader.js +38 -5
- package/examples/jsm/loaders/RGBMLoader.js +67 -1
- package/examples/jsm/loaders/STLLoader.js +47 -38
- package/examples/jsm/loaders/SVGLoader.js +113 -20
- package/examples/jsm/loaders/TDSLoader.js +81 -61
- package/examples/jsm/loaders/TGALoader.js +22 -0
- package/examples/jsm/loaders/TIFFLoader.js +22 -0
- package/examples/jsm/loaders/TTFLoader.js +36 -2
- package/examples/jsm/loaders/USDZLoader.js +34 -1
- package/examples/jsm/loaders/UltraHDRLoader.js +58 -12
- package/examples/jsm/loaders/VOXLoader.js +57 -0
- package/examples/jsm/loaders/VRMLLoader.js +32 -1
- package/examples/jsm/loaders/VTKLoader.js +38 -0
- package/examples/jsm/loaders/XYZLoader.js +35 -0
- package/examples/jsm/materials/LDrawConditionalLineMaterial.js +39 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +39 -0
- package/examples/jsm/materials/MeshPostProcessingMaterial.js +24 -2
- package/examples/jsm/math/Capsule.js +89 -14
- package/examples/jsm/math/ColorConverter.js +21 -0
- package/examples/jsm/math/ColorSpaces.js +53 -0
- package/examples/jsm/math/ConvexHull.js +514 -92
- package/examples/jsm/math/ImprovedNoise.js +14 -2
- package/examples/jsm/math/Lut.js +111 -0
- package/examples/jsm/math/MeshSurfaceSampler.js +76 -13
- package/examples/jsm/math/OBB.js +139 -46
- package/examples/jsm/math/Octree.js +132 -5
- package/examples/jsm/math/SimplexNoise.js +66 -42
- package/examples/jsm/misc/ConvexObjectBreaker.js +43 -25
- package/examples/jsm/misc/GPUComputationRenderer.js +92 -17
- package/examples/jsm/misc/Gyroscope.js +11 -0
- package/examples/jsm/misc/MD2Character.js +115 -2
- package/examples/jsm/misc/MD2CharacterComplex.js +170 -8
- package/examples/jsm/misc/MorphAnimMesh.js +43 -0
- package/examples/jsm/misc/MorphBlendMesh.js +102 -0
- package/examples/jsm/misc/ProgressiveLightMap.js +40 -15
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +33 -13
- package/examples/jsm/misc/RollerCoaster.js +52 -0
- package/examples/jsm/misc/Timer.js +79 -2
- package/examples/jsm/misc/TubePainter.js +53 -0
- package/examples/jsm/misc/Volume.js +108 -72
- package/examples/jsm/misc/VolumeSlice.js +88 -45
- package/examples/jsm/modifiers/CurveModifier.js +57 -34
- package/examples/jsm/modifiers/CurveModifierGPU.js +36 -17
- package/examples/jsm/modifiers/EdgeSplitModifier.js +18 -0
- package/examples/jsm/modifiers/SimplifyModifier.js +20 -8
- package/examples/jsm/modifiers/TessellateModifier.js +33 -2
- package/examples/jsm/objects/GroundedSkybox.js +23 -5
- package/examples/jsm/objects/Lensflare.js +91 -2
- package/examples/jsm/objects/LensflareMesh.js +53 -2
- package/examples/jsm/objects/MarchingCubes.js +88 -5
- package/examples/jsm/objects/Reflector.js +70 -0
- package/examples/jsm/objects/ReflectorForSSRPass.js +39 -0
- package/examples/jsm/objects/Refractor.js +61 -0
- package/examples/jsm/objects/ShadowMesh.js +53 -4
- package/examples/jsm/objects/Sky.js +26 -9
- package/examples/jsm/objects/SkyMesh.js +60 -9
- package/examples/jsm/objects/Water.js +44 -5
- package/examples/jsm/objects/Water2.js +42 -3
- package/examples/jsm/objects/Water2Mesh.js +38 -3
- package/examples/jsm/objects/WaterMesh.js +94 -7
- package/examples/jsm/physics/AmmoPhysics.js +47 -0
- package/examples/jsm/physics/JoltPhysics.js +48 -0
- package/examples/jsm/physics/RapierPhysics.js +56 -0
- package/examples/jsm/postprocessing/AfterimagePass.js +90 -38
- package/examples/jsm/postprocessing/BloomPass.js +125 -24
- package/examples/jsm/postprocessing/BokehPass.js +98 -22
- package/examples/jsm/postprocessing/ClearPass.js +53 -3
- package/examples/jsm/postprocessing/CubeTexturePass.js +81 -21
- package/examples/jsm/postprocessing/DotScreenPass.js +58 -10
- package/examples/jsm/postprocessing/EffectComposer.js +131 -0
- package/examples/jsm/postprocessing/FilmPass.js +53 -5
- package/examples/jsm/postprocessing/GTAOPass.js +191 -48
- package/examples/jsm/postprocessing/GlitchPass.js +84 -33
- package/examples/jsm/postprocessing/HalftonePass.js +64 -10
- package/examples/jsm/postprocessing/LUTPass.js +37 -8
- package/examples/jsm/postprocessing/MaskPass.js +90 -0
- package/examples/jsm/postprocessing/OutlinePass.js +266 -133
- package/examples/jsm/postprocessing/OutputPass.js +53 -14
- package/examples/jsm/postprocessing/Pass.js +98 -4
- package/examples/jsm/postprocessing/RenderPass.js +83 -0
- package/examples/jsm/postprocessing/RenderPixelatedPass.js +123 -45
- package/examples/jsm/postprocessing/RenderTransitionPass.js +119 -21
- package/examples/jsm/postprocessing/SAOPass.js +126 -53
- package/examples/jsm/postprocessing/SMAAPass.js +103 -71
- package/examples/jsm/postprocessing/SSAARenderPass.js +117 -35
- package/examples/jsm/postprocessing/SSAOPass.js +160 -47
- package/examples/jsm/postprocessing/SSRPass.js +230 -49
- package/examples/jsm/postprocessing/SavePass.js +68 -16
- package/examples/jsm/postprocessing/ShaderPass.js +64 -7
- package/examples/jsm/postprocessing/TAARenderPass.js +78 -24
- package/examples/jsm/postprocessing/TexturePass.js +71 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +113 -37
- package/examples/jsm/renderers/CSS2DRenderer.js +77 -1
- package/examples/jsm/renderers/CSS3DRenderer.js +99 -3
- package/examples/jsm/renderers/Projector.js +18 -2
- package/examples/jsm/renderers/SVGRenderer.js +124 -0
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +9 -5
- package/examples/jsm/shaders/AfterimageShader.js +6 -4
- package/examples/jsm/shaders/BasicShader.js +6 -2
- package/examples/jsm/shaders/BleachBypassShader.js +8 -4
- package/examples/jsm/shaders/BlendShader.js +6 -2
- package/examples/jsm/shaders/BokehShader.js +7 -4
- package/examples/jsm/shaders/BokehShader2.js +7 -3
- package/examples/jsm/shaders/BrightnessContrastShader.js +8 -5
- package/examples/jsm/shaders/ColorCorrectionShader.js +6 -2
- package/examples/jsm/shaders/ColorifyShader.js +6 -2
- package/examples/jsm/shaders/ConvolutionShader.js +7 -39
- package/examples/jsm/shaders/CopyShader.js +6 -2
- package/examples/jsm/shaders/DOFMipMapShader.js +8 -4
- package/examples/jsm/shaders/DepthLimitedBlurShader.js +7 -1
- package/examples/jsm/shaders/DigitalGlitch.js +7 -7
- package/examples/jsm/shaders/DotScreenShader.js +6 -4
- package/examples/jsm/shaders/ExposureShader.js +6 -2
- package/examples/jsm/shaders/FXAAShader.js +15 -7
- package/examples/jsm/shaders/FilmShader.js +10 -0
- package/examples/jsm/shaders/FocusShader.js +6 -4
- package/examples/jsm/shaders/FreiChenShader.js +7 -3
- package/examples/jsm/shaders/GTAOShader.js +33 -39
- package/examples/jsm/shaders/GammaCorrectionShader.js +8 -2
- package/examples/jsm/shaders/GodRaysShader.js +14 -5
- package/examples/jsm/shaders/HalftoneShader.js +11 -5
- package/examples/jsm/shaders/HorizontalBlurShader.js +9 -3
- package/examples/jsm/shaders/HorizontalTiltShiftShader.js +6 -2
- package/examples/jsm/shaders/HueSaturationShader.js +7 -3
- package/examples/jsm/shaders/KaleidoShader.js +8 -4
- package/examples/jsm/shaders/LuminosityHighPassShader.js +6 -5
- package/examples/jsm/shaders/LuminosityShader.js +6 -3
- package/examples/jsm/shaders/MirrorShader.js +7 -4
- package/examples/jsm/shaders/NormalMapShader.js +5 -3
- package/examples/jsm/shaders/OutputShader.js +11 -0
- package/examples/jsm/shaders/PoissonDenoiseShader.js +21 -15
- package/examples/jsm/shaders/RGBShiftShader.js +5 -1
- package/examples/jsm/shaders/SAOShader.js +8 -2
- package/examples/jsm/shaders/SMAAShader.js +23 -1
- package/examples/jsm/shaders/SSAOShader.js +23 -5
- package/examples/jsm/shaders/SSRShader.js +25 -1
- package/examples/jsm/shaders/SepiaShader.js +6 -4
- package/examples/jsm/shaders/SobelOperatorShader.js +5 -2
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +10 -8
- package/examples/jsm/shaders/TechnicolorShader.js +7 -4
- package/examples/jsm/shaders/ToonShader.js +29 -7
- package/examples/jsm/shaders/TriangleBlurShader.js +6 -4
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +6 -3
- package/examples/jsm/shaders/VelocityShader.js +6 -2
- package/examples/jsm/shaders/VerticalBlurShader.js +6 -2
- package/examples/jsm/shaders/VerticalTiltShiftShader.js +5 -1
- package/examples/jsm/shaders/VignetteShader.js +6 -4
- package/examples/jsm/shaders/VolumeShader.js +7 -1
- package/examples/jsm/shaders/WaterRefractionShader.js +8 -0
- package/examples/jsm/textures/FlakesTexture.js +12 -0
- package/examples/jsm/transpiler/Transpiler.js +31 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +1 -1
- package/examples/jsm/tsl/display/BloomNode.js +1 -1
- package/examples/jsm/tsl/display/PixelationPassNode.js +4 -4
- package/examples/jsm/tsl/display/SSRNode.js +1 -1
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +29 -3
- package/examples/jsm/tsl/math/Bayer.js +14 -1
- package/examples/jsm/tsl/utils/Raymarching.js +4 -2
- package/examples/jsm/utils/BufferGeometryUtils.js +88 -29
- package/examples/jsm/utils/CameraUtils.js +10 -7
- package/examples/jsm/utils/GeometryCompressionUtils.js +20 -30
- package/examples/jsm/utils/GeometryUtils.js +12 -13
- package/examples/jsm/utils/LDrawUtils.js +11 -4
- package/examples/jsm/utils/SceneOptimizer.js +66 -20
- package/examples/jsm/utils/SceneUtils.js +50 -3
- package/examples/jsm/utils/ShadowMapViewer.js +47 -24
- package/examples/jsm/utils/ShadowMapViewerGPU.js +47 -24
- package/examples/jsm/utils/SkeletonUtils.js +45 -0
- package/examples/jsm/utils/SortUtils.js +14 -5
- package/examples/jsm/utils/UVsDebug.js +9 -4
- package/examples/jsm/utils/WebGLTextureUtils.js +13 -0
- package/examples/jsm/utils/WebGPUTextureUtils.js +14 -0
- package/examples/jsm/utils/WorkerPool.js +65 -2
- package/examples/jsm/webxr/ARButton.js +18 -0
- package/examples/jsm/webxr/OculusHandModel.js +83 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +125 -0
- package/examples/jsm/webxr/Text2D.js +11 -0
- package/examples/jsm/webxr/VRButton.js +30 -0
- package/examples/jsm/webxr/XRButton.js +22 -0
- package/examples/jsm/webxr/XRControllerModelFactory.js +87 -3
- package/examples/jsm/webxr/XREstimatedLight.js +33 -3
- package/examples/jsm/webxr/XRHandMeshModel.js +35 -0
- package/examples/jsm/webxr/XRHandModelFactory.js +92 -0
- package/examples/jsm/webxr/XRHandPrimitiveModel.js +42 -0
- package/examples/jsm/webxr/XRPlanes.js +17 -0
- package/package.json +1 -1
- package/src/Three.TSL.js +3 -1
- package/src/animation/AnimationAction.js +262 -30
- package/src/animation/AnimationClip.js +141 -2
- package/src/animation/AnimationMixer.js +99 -15
- package/src/animation/AnimationObjectGroup.js +41 -18
- package/src/animation/AnimationUtils.js +168 -18
- package/src/animation/KeyframeTrack.js +144 -10
- package/src/animation/PropertyBinding.js +77 -3
- package/src/animation/PropertyMixer.js +72 -5
- package/src/animation/tracks/BooleanKeyframeTrack.js +33 -6
- package/src/animation/tracks/ColorKeyframeTrack.js +26 -5
- package/src/animation/tracks/NumberKeyframeTrack.js +26 -2
- package/src/animation/tracks/QuaternionKeyframeTrack.js +30 -1
- package/src/animation/tracks/StringKeyframeTrack.js +33 -2
- package/src/animation/tracks/VectorKeyframeTrack.js +26 -2
- package/src/audio/AudioAnalyser.js +1 -1
- package/src/audio/AudioListener.js +2 -2
- package/src/audio/PositionalAudio.js +5 -5
- package/src/constants.js +1429 -5
- package/src/core/BufferAttribute.js +413 -3
- package/src/core/BufferGeometry.js +337 -1
- package/src/core/Clock.js +60 -0
- package/src/core/GLBufferAttribute.js +99 -0
- package/src/core/InstancedBufferAttribute.js +29 -0
- package/src/core/InstancedBufferGeometry.js +20 -0
- package/src/core/InstancedInterleavedBuffer.js +26 -0
- package/src/core/InterleavedBuffer.js +137 -3
- package/src/core/InterleavedBufferAttribute.js +197 -0
- package/src/core/Layers.js +71 -10
- package/src/core/Object3D.js +23 -0
- package/src/core/Raycaster.js +134 -1
- package/src/core/RenderTarget.js +166 -7
- package/src/core/RenderTarget3D.js +25 -0
- package/src/core/RenderTargetArray.js +18 -0
- package/src/core/Uniform.js +29 -0
- package/src/core/UniformsGroup.js +84 -2
- package/src/extras/Controls.js +16 -1
- package/src/extras/Earcut.js +3 -781
- package/src/extras/ImageUtils.js +3 -2
- package/src/extras/PMREMGenerator.js +22 -17
- package/src/extras/core/Curve.js +1 -1
- package/src/extras/core/Path.js +1 -1
- package/src/extras/lib/earcut.js +685 -0
- package/src/geometries/ConeGeometry.js +2 -2
- package/src/geometries/CylinderGeometry.js +2 -2
- package/src/geometries/ExtrudeGeometry.js +71 -39
- package/src/geometries/LatheGeometry.js +1 -1
- package/src/lights/LightShadow.js +1 -1
- package/src/lights/webgpu/IESSpotLight.js +1 -1
- package/src/loaders/AnimationLoader.js +31 -0
- package/src/loaders/AudioLoader.js +31 -0
- package/src/loaders/BufferGeometryLoader.js +34 -0
- package/src/loaders/Cache.js +45 -0
- package/src/loaders/CompressedTextureLoader.js +36 -3
- package/src/loaders/CubeTextureLoader.js +45 -0
- package/src/loaders/DataTextureLoader.js +44 -3
- package/src/loaders/FileLoader.js +57 -1
- package/src/loaders/ImageBitmapLoader.js +57 -0
- package/src/loaders/ImageLoader.js +30 -0
- package/src/loaders/Loader.js +4 -6
- package/src/loaders/LoaderUtils.js +18 -36
- package/src/loaders/LoadingManager.js +142 -0
- package/src/loaders/MaterialLoader.js +57 -0
- package/src/loaders/ObjectLoader.js +53 -0
- package/src/loaders/TextureLoader.js +33 -0
- package/src/loaders/nodes/NodeLoader.js +6 -2
- package/src/loaders/nodes/NodeMaterialLoader.js +1 -1
- package/src/loaders/nodes/NodeObjectLoader.js +3 -3
- package/src/materials/LineBasicMaterial.js +74 -1
- package/src/materials/LineDashedMaterial.js +52 -0
- package/src/materials/Material.js +18 -3
- package/src/materials/MeshBasicMaterial.js +165 -0
- package/src/materials/MeshDepthMaterial.js +93 -0
- package/src/materials/MeshDistanceMaterial.js +76 -0
- package/src/materials/MeshLambertMaterial.js +273 -0
- package/src/materials/MeshMatcapMaterial.js +142 -0
- package/src/materials/MeshNormalMaterial.js +113 -0
- package/src/materials/MeshPhongMaterial.js +288 -0
- package/src/materials/MeshPhysicalMaterial.js +292 -1
- package/src/materials/MeshStandardMaterial.js +297 -0
- package/src/materials/MeshToonMaterial.js +218 -0
- package/src/materials/PointsMaterial.js +89 -0
- package/src/materials/RawShaderMaterial.js +25 -0
- package/src/materials/ShaderMaterial.js +215 -6
- package/src/materials/ShadowMaterial.js +54 -0
- package/src/materials/SpriteMaterial.js +82 -0
- package/src/materials/nodes/Line2NodeMaterial.js +1 -1
- package/src/materials/nodes/LineBasicNodeMaterial.js +2 -2
- package/src/materials/nodes/LineDashedNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshBasicNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshLambertNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshPhongNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
- package/src/materials/nodes/MeshStandardNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshToonNodeMaterial.js +2 -2
- package/src/materials/nodes/NodeMaterial.js +7 -3
- package/src/materials/nodes/PointsNodeMaterial.js +1 -1
- package/src/materials/nodes/ShadowNodeMaterial.js +11 -2
- package/src/materials/nodes/SpriteNodeMaterial.js +1 -1
- package/src/materials/nodes/VolumeNodeMaterial.js +10 -1
- package/src/math/Color.js +1 -1
- package/src/math/MathUtils.js +223 -0
- package/src/nodes/Nodes.js +1 -0
- package/src/nodes/accessors/BatchNode.js +8 -8
- package/src/nodes/accessors/BuiltinNode.js +1 -1
- package/src/nodes/accessors/CubeTextureNode.js +1 -1
- package/src/nodes/accessors/InstanceNode.js +5 -5
- package/src/nodes/accessors/InstancedMeshNode.js +1 -1
- package/src/nodes/accessors/MorphNode.js +27 -23
- package/src/nodes/accessors/Normal.js +1 -1
- package/src/nodes/accessors/Object3DNode.js +12 -12
- package/src/nodes/accessors/ReferenceBaseNode.js +2 -2
- package/src/nodes/accessors/ReferenceNode.js +1 -1
- package/src/nodes/accessors/SkinningNode.js +46 -37
- package/src/nodes/accessors/StorageBufferNode.js +1 -1
- package/src/nodes/accessors/StorageTextureNode.js +3 -3
- package/src/nodes/accessors/Texture3DNode.js +1 -1
- package/src/nodes/accessors/TextureNode.js +25 -5
- package/src/nodes/accessors/TextureSizeNode.js +1 -1
- package/src/nodes/accessors/UniformArrayNode.js +2 -2
- package/src/nodes/code/CodeNode.js +4 -4
- package/src/nodes/code/ExpressionNode.js +4 -4
- package/src/nodes/code/FunctionCallNode.js +23 -3
- package/src/nodes/code/ScriptableNode.js +4 -4
- package/src/nodes/code/ScriptableValueNode.js +2 -2
- package/src/nodes/core/AssignNode.js +1 -1
- package/src/nodes/core/AttributeNode.js +1 -1
- package/src/nodes/core/BypassNode.js +1 -1
- package/src/nodes/core/CacheNode.js +1 -1
- package/src/nodes/core/ContextNode.js +1 -1
- package/src/nodes/core/InputNode.js +2 -2
- package/src/nodes/core/Node.js +14 -2
- package/src/nodes/core/NodeBuilder.js +86 -14
- package/src/nodes/core/StackNode.js +5 -5
- package/src/nodes/core/StructNode.js +1 -1
- package/src/nodes/core/StructTypeNode.js +2 -2
- package/src/nodes/core/VarNode.js +2 -8
- package/src/nodes/core/VaryingNode.js +3 -3
- package/src/nodes/display/BlendModes.js +4 -4
- package/src/nodes/display/BumpMapNode.js +1 -1
- package/src/nodes/display/NormalMapNode.js +1 -1
- package/src/nodes/display/PosterizeNode.js +1 -1
- package/src/nodes/display/ScreenNode.js +3 -3
- package/src/nodes/display/ViewportDepthNode.js +2 -2
- package/src/nodes/display/ViewportDepthTextureNode.js +2 -2
- package/src/nodes/display/ViewportSharedTextureNode.js +2 -2
- package/src/nodes/display/ViewportTextureNode.js +4 -4
- package/src/nodes/functions/ShadowMaskModel.js +4 -4
- package/src/nodes/functions/material/getParallaxCorrectNormal.js +6 -6
- package/src/nodes/geometry/RangeNode.js +1 -1
- package/src/nodes/gpgpu/AtomicFunctionNode.js +16 -40
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +1 -1
- package/src/nodes/gpgpu/ComputeNode.js +30 -2
- package/src/nodes/lighting/AnalyticLightNode.js +9 -1
- package/src/nodes/lighting/LightsNode.js +3 -3
- package/src/nodes/lighting/ShadowNode.js +1 -1
- package/src/nodes/math/ConditionalNode.js +20 -3
- package/src/nodes/math/MathNode.js +83 -78
- package/src/nodes/math/OperatorNode.js +171 -82
- package/src/nodes/pmrem/PMREMNode.js +4 -4
- package/src/nodes/pmrem/PMREMUtils.js +2 -2
- package/src/nodes/tsl/TSLBase.js +2 -1
- package/src/nodes/tsl/TSLCore.js +115 -12
- package/src/nodes/utils/ArrayElementNode.js +3 -1
- package/src/nodes/utils/CubeMapNode.js +3 -3
- package/src/nodes/utils/DebugNode.js +70 -0
- package/src/nodes/utils/EquirectUVNode.js +2 -2
- package/src/nodes/utils/JoinNode.js +27 -2
- package/src/nodes/utils/LoopNode.js +58 -28
- package/src/nodes/utils/MaxMipLevelNode.js +1 -1
- package/src/nodes/utils/ReflectorNode.js +2 -2
- package/src/nodes/utils/RemapNode.js +6 -6
- package/src/nodes/utils/RotateNode.js +1 -1
- package/src/nodes/utils/SpriteSheetUVNode.js +3 -3
- package/src/nodes/utils/StorageArrayElementNode.js +1 -1
- package/src/nodes/utils/TriplanarTexturesNode.js +3 -3
- package/src/objects/BatchedMesh.js +4 -4
- package/src/objects/InstancedMesh.js +2 -2
- package/src/objects/LOD.js +1 -1
- package/src/objects/Skeleton.js +1 -1
- package/src/renderers/WebGL3DRenderTarget.js +25 -0
- package/src/renderers/WebGLArrayRenderTarget.js +25 -0
- package/src/renderers/WebGLCubeRenderTarget.js +39 -1
- package/src/renderers/WebGLRenderTarget.js +19 -0
- package/src/renderers/WebGLRenderer.js +617 -79
- package/src/renderers/common/Animation.js +2 -2
- package/src/renderers/common/Attributes.js +2 -2
- package/src/renderers/common/Backend.js +12 -3
- package/src/renderers/common/Background.js +1 -0
- package/src/renderers/common/Color4.js +1 -1
- package/src/renderers/common/CubeRenderTarget.js +13 -0
- package/src/renderers/common/PostProcessing.js +2 -0
- package/src/renderers/common/QuadMesh.js +2 -0
- package/src/renderers/common/RenderList.js +2 -2
- package/src/renderers/common/RenderObject.js +1 -1
- package/src/renderers/common/RenderObjects.js +2 -2
- package/src/renderers/common/Renderer.js +52 -31
- package/src/renderers/common/XRManager.js +333 -10
- package/src/renderers/common/extras/PMREMGenerator.js +6 -0
- package/src/renderers/common/nodes/NodeBuilderState.js +3 -3
- package/src/renderers/shaders/UniformsLib.js +1 -4
- package/src/renderers/shaders/UniformsUtils.js +1 -3
- package/src/renderers/webgl/WebGLBackground.js +4 -2
- package/src/renderers/webgl/WebGLState.js +9 -9
- package/src/renderers/webgl-fallback/WebGLBackend.js +25 -26
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +3 -12
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +67 -19
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +1 -1
- package/src/renderers/webgpu/WebGPUBackend.js +128 -87
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +1 -11
- package/src/renderers/webgpu/WebGPURenderer.js +17 -11
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +4 -4
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +5 -3
- package/src/renderers/webgpu/utils/WebGPUConstants.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +1 -1
- package/src/renderers/webxr/WebXRController.js +87 -2
- package/src/renderers/webxr/WebXRDepthSensing.js +49 -0
- package/src/renderers/webxr/WebXRManager.js +173 -1
- package/src/scenes/Scene.js +2 -1
- package/src/textures/CanvasTexture.js +28 -0
- package/src/textures/CompressedArrayTexture.js +57 -0
- package/src/textures/CompressedCubeTexture.js +29 -0
- package/src/textures/CompressedTexture.js +64 -6
- package/src/textures/CubeTexture.js +52 -4
- package/src/textures/Data3DTexture.js +77 -0
- package/src/textures/DataArrayTexture.js +93 -0
- package/src/textures/DataTexture.js +65 -0
- package/src/textures/DepthTexture.js +59 -9
- package/src/textures/FramebufferTexture.js +62 -0
- package/src/textures/Source.js +69 -0
- package/src/textures/Texture.js +5 -5
- package/src/textures/VideoFrameTexture.js +43 -6
- package/src/textures/VideoTexture.js +49 -4
- package/examples/jsm/geometries/ParametricGeometries.js +0 -254
|
@@ -1,13 +1,31 @@
|
|
|
1
1
|
import { WrapAroundEnding, ZeroCurvatureEnding, ZeroSlopeEnding, LoopPingPong, LoopOnce, LoopRepeat, NormalAnimationBlendMode, AdditiveAnimationBlendMode } from '../constants.js';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* An instance of `AnimationAction` schedules the playback of an animation which is
|
|
5
|
+
* stored in {@link AnimationClip}.
|
|
6
|
+
*/
|
|
4
7
|
class AnimationAction {
|
|
5
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Constructs a new animation action.
|
|
11
|
+
*
|
|
12
|
+
* @param {AnimationMixer} mixer - The mixer that is controlled by this action.
|
|
13
|
+
* @param {AnimationClip} clip - The animation clip that holds the actual keyframes.
|
|
14
|
+
* @param {?Object3D} [localRoot=null] - The root object on which this action is performed.
|
|
15
|
+
* @param {(NormalAnimationBlendMode|AdditiveAnimationBlendMode)} [blendMode] - The blend mode.
|
|
16
|
+
*/
|
|
6
17
|
constructor( mixer, clip, localRoot = null, blendMode = clip.blendMode ) {
|
|
7
18
|
|
|
8
19
|
this._mixer = mixer;
|
|
9
20
|
this._clip = clip;
|
|
10
21
|
this._localRoot = localRoot;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Defines how the animation is blended/combined when two or more animations
|
|
25
|
+
* are simultaneously played.
|
|
26
|
+
*
|
|
27
|
+
* @type {(NormalAnimationBlendMode|AdditiveAnimationBlendMode)}
|
|
28
|
+
*/
|
|
11
29
|
this.blendMode = blendMode;
|
|
12
30
|
|
|
13
31
|
const tracks = clip.tracks,
|
|
@@ -40,6 +58,12 @@ class AnimationAction {
|
|
|
40
58
|
this._timeScaleInterpolant = null;
|
|
41
59
|
this._weightInterpolant = null;
|
|
42
60
|
|
|
61
|
+
/**
|
|
62
|
+
* The loop mode, set via {@link AnimationAction#setLoop}.
|
|
63
|
+
*
|
|
64
|
+
* @type {(LoopRepeat|LoopOnce|LoopPingPong)}
|
|
65
|
+
* @default LoopRepeat
|
|
66
|
+
*/
|
|
43
67
|
this.loop = LoopRepeat;
|
|
44
68
|
this._loopCount = - 1;
|
|
45
69
|
|
|
@@ -47,30 +71,107 @@ class AnimationAction {
|
|
|
47
71
|
// it's set back to 'null' upon start of the action
|
|
48
72
|
this._startTime = null;
|
|
49
73
|
|
|
50
|
-
|
|
51
|
-
|
|
74
|
+
/**
|
|
75
|
+
* The local time of this action (in seconds, starting with `0`).
|
|
76
|
+
*
|
|
77
|
+
* The value gets clamped or wrapped to `[0,clip.duration]` (according to the
|
|
78
|
+
* loop state).
|
|
79
|
+
*
|
|
80
|
+
* @type {number}
|
|
81
|
+
* @default Infinity
|
|
82
|
+
*/
|
|
52
83
|
this.time = 0;
|
|
53
84
|
|
|
85
|
+
/**
|
|
86
|
+
* Scaling factor for the {@link AnimationAction#time}. A value of `0` causes the
|
|
87
|
+
* animation to pause. Negative values cause the animation to play backwards.
|
|
88
|
+
*
|
|
89
|
+
* @type {number}
|
|
90
|
+
* @default 1
|
|
91
|
+
*/
|
|
54
92
|
this.timeScale = 1;
|
|
55
93
|
this._effectiveTimeScale = 1;
|
|
56
94
|
|
|
95
|
+
/**
|
|
96
|
+
* The degree of influence of this action (in the interval `[0, 1]`). Values
|
|
97
|
+
* between `0` (no impact) and `1` (full impact) can be used to blend between
|
|
98
|
+
* several actions.
|
|
99
|
+
*
|
|
100
|
+
* @type {number}
|
|
101
|
+
* @default 1
|
|
102
|
+
*/
|
|
57
103
|
this.weight = 1;
|
|
58
104
|
this._effectiveWeight = 1;
|
|
59
105
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
106
|
+
/**
|
|
107
|
+
* The number of repetitions of the performed clip over the course of this action.
|
|
108
|
+
* Can be set via {@link AnimationAction#setLoop}.
|
|
109
|
+
*
|
|
110
|
+
* Setting this number has no effect if {@link AnimationAction#loop} is set to
|
|
111
|
+
* `THREE:LoopOnce`.
|
|
112
|
+
*
|
|
113
|
+
* @type {number}
|
|
114
|
+
* @default Infinity
|
|
115
|
+
*/
|
|
116
|
+
this.repetitions = Infinity;
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* If set to `true`, the playback of the action is paused.
|
|
120
|
+
*
|
|
121
|
+
* @type {boolean}
|
|
122
|
+
* @default false
|
|
123
|
+
*/
|
|
124
|
+
this.paused = false;
|
|
64
125
|
|
|
65
|
-
|
|
126
|
+
/**
|
|
127
|
+
* If set to `false`, the action is disabled so it has no impact.
|
|
128
|
+
*
|
|
129
|
+
* When the action is re-enabled, the animation continues from its current
|
|
130
|
+
* time (setting `enabled` to `false` doesn't reset the action).
|
|
131
|
+
*
|
|
132
|
+
* @type {boolean}
|
|
133
|
+
* @default true
|
|
134
|
+
*/
|
|
135
|
+
this.enabled = true;
|
|
66
136
|
|
|
67
|
-
|
|
68
|
-
|
|
137
|
+
/**
|
|
138
|
+
* If set to true the animation will automatically be paused on its last frame.
|
|
139
|
+
*
|
|
140
|
+
* If set to false, {@link AnimationAction#enabled} will automatically be switched
|
|
141
|
+
* to `false` when the last loop of the action has finished, so that this action has
|
|
142
|
+
* no further impact.
|
|
143
|
+
*
|
|
144
|
+
* Note: This member has no impact if the action is interrupted (it
|
|
145
|
+
* has only an effect if its last loop has really finished).
|
|
146
|
+
*
|
|
147
|
+
* @type {boolean}
|
|
148
|
+
* @default false
|
|
149
|
+
*/
|
|
150
|
+
this.clampWhenFinished = false;
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Enables smooth interpolation without separate clips for start, loop and end.
|
|
154
|
+
*
|
|
155
|
+
* @type {boolean}
|
|
156
|
+
* @default true
|
|
157
|
+
*/
|
|
158
|
+
this.zeroSlopeAtStart = true;
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Enables smooth interpolation without separate clips for start, loop and end.
|
|
162
|
+
*
|
|
163
|
+
* @type {boolean}
|
|
164
|
+
* @default true
|
|
165
|
+
*/
|
|
166
|
+
this.zeroSlopeAtEnd = true;
|
|
69
167
|
|
|
70
168
|
}
|
|
71
169
|
|
|
72
|
-
|
|
73
|
-
|
|
170
|
+
/**
|
|
171
|
+
* Starts the playback of the animation.
|
|
172
|
+
*
|
|
173
|
+
* @return {AnimationAction} A reference to this animation action.
|
|
174
|
+
*/
|
|
74
175
|
play() {
|
|
75
176
|
|
|
76
177
|
this._mixer._activateAction( this );
|
|
@@ -79,6 +180,11 @@ class AnimationAction {
|
|
|
79
180
|
|
|
80
181
|
}
|
|
81
182
|
|
|
183
|
+
/**
|
|
184
|
+
* Stops the playback of the animation.
|
|
185
|
+
*
|
|
186
|
+
* @return {AnimationAction} A reference to this animation action.
|
|
187
|
+
*/
|
|
82
188
|
stop() {
|
|
83
189
|
|
|
84
190
|
this._mixer._deactivateAction( this );
|
|
@@ -87,6 +193,11 @@ class AnimationAction {
|
|
|
87
193
|
|
|
88
194
|
}
|
|
89
195
|
|
|
196
|
+
/**
|
|
197
|
+
* Resets the playback of the animation.
|
|
198
|
+
*
|
|
199
|
+
* @return {AnimationAction} A reference to this animation action.
|
|
200
|
+
*/
|
|
90
201
|
reset() {
|
|
91
202
|
|
|
92
203
|
this.paused = false;
|
|
@@ -100,6 +211,11 @@ class AnimationAction {
|
|
|
100
211
|
|
|
101
212
|
}
|
|
102
213
|
|
|
214
|
+
/**
|
|
215
|
+
* Returns `true` if the animation is running.
|
|
216
|
+
*
|
|
217
|
+
* @return {boolean} Whether the animation is running or not.
|
|
218
|
+
*/
|
|
103
219
|
isRunning() {
|
|
104
220
|
|
|
105
221
|
return this.enabled && ! this.paused && this.timeScale !== 0 &&
|
|
@@ -107,13 +223,23 @@ class AnimationAction {
|
|
|
107
223
|
|
|
108
224
|
}
|
|
109
225
|
|
|
110
|
-
|
|
226
|
+
/**
|
|
227
|
+
* Returns `true` when {@link AnimationAction#play} has been called.
|
|
228
|
+
*
|
|
229
|
+
* @return {boolean} Whether the animation is scheduled or not.
|
|
230
|
+
*/
|
|
111
231
|
isScheduled() {
|
|
112
232
|
|
|
113
233
|
return this._mixer._isActiveAction( this );
|
|
114
234
|
|
|
115
235
|
}
|
|
116
236
|
|
|
237
|
+
/**
|
|
238
|
+
* Defines the time when the animation should start.
|
|
239
|
+
*
|
|
240
|
+
* @param {number} time - The start time in seconds.
|
|
241
|
+
* @return {AnimationAction} A reference to this animation action.
|
|
242
|
+
*/
|
|
117
243
|
startAt( time ) {
|
|
118
244
|
|
|
119
245
|
this._startTime = time;
|
|
@@ -122,6 +248,13 @@ class AnimationAction {
|
|
|
122
248
|
|
|
123
249
|
}
|
|
124
250
|
|
|
251
|
+
/**
|
|
252
|
+
* Configures the loop settings for this action.
|
|
253
|
+
*
|
|
254
|
+
* @param {(LoopRepeat|LoopOnce|LoopPingPong)} mode - The loop mode.
|
|
255
|
+
* @param {number} repetitions - The number of repetitions.
|
|
256
|
+
* @return {AnimationAction} A reference to this animation action.
|
|
257
|
+
*/
|
|
125
258
|
setLoop( mode, repetitions ) {
|
|
126
259
|
|
|
127
260
|
this.loop = mode;
|
|
@@ -131,11 +264,15 @@ class AnimationAction {
|
|
|
131
264
|
|
|
132
265
|
}
|
|
133
266
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
267
|
+
/**
|
|
268
|
+
* Sets the effective weight of this action.
|
|
269
|
+
*
|
|
270
|
+
* An action has no effect and thus an effective weight of zero when the
|
|
271
|
+
* action is disabled.
|
|
272
|
+
*
|
|
273
|
+
* @param {number} weight - The weight to set.
|
|
274
|
+
* @return {AnimationAction} A reference to this animation action.
|
|
275
|
+
*/
|
|
139
276
|
setEffectiveWeight( weight ) {
|
|
140
277
|
|
|
141
278
|
this.weight = weight;
|
|
@@ -147,31 +284,58 @@ class AnimationAction {
|
|
|
147
284
|
|
|
148
285
|
}
|
|
149
286
|
|
|
150
|
-
|
|
287
|
+
/**
|
|
288
|
+
* Returns the effective weight of this action.
|
|
289
|
+
*
|
|
290
|
+
* @return {number} The effective weight.
|
|
291
|
+
*/
|
|
151
292
|
getEffectiveWeight() {
|
|
152
293
|
|
|
153
294
|
return this._effectiveWeight;
|
|
154
295
|
|
|
155
296
|
}
|
|
156
297
|
|
|
298
|
+
/**
|
|
299
|
+
* Fades the animation in by increasing its weight gradually from `0` to `1`,
|
|
300
|
+
* within the passed time interval.
|
|
301
|
+
*
|
|
302
|
+
* @param {number} duration - The duration of the fade.
|
|
303
|
+
* @return {AnimationAction} A reference to this animation action.
|
|
304
|
+
*/
|
|
157
305
|
fadeIn( duration ) {
|
|
158
306
|
|
|
159
307
|
return this._scheduleFading( duration, 0, 1 );
|
|
160
308
|
|
|
161
309
|
}
|
|
162
310
|
|
|
311
|
+
/**
|
|
312
|
+
* Fades the animation out by decreasing its weight gradually from `1` to `0`,
|
|
313
|
+
* within the passed time interval.
|
|
314
|
+
*
|
|
315
|
+
* @param {number} duration - The duration of the fade.
|
|
316
|
+
* @return {AnimationAction} A reference to this animation action.
|
|
317
|
+
*/
|
|
163
318
|
fadeOut( duration ) {
|
|
164
319
|
|
|
165
320
|
return this._scheduleFading( duration, 1, 0 );
|
|
166
321
|
|
|
167
322
|
}
|
|
168
323
|
|
|
169
|
-
|
|
324
|
+
/**
|
|
325
|
+
* Causes this action to fade in and the given action to fade out,
|
|
326
|
+
* within the passed time interval.
|
|
327
|
+
*
|
|
328
|
+
* @param {AnimationAction} fadeOutAction - The animation action to fade out.
|
|
329
|
+
* @param {number} duration - The duration of the fade.
|
|
330
|
+
* @param {boolean} [warp=false] - Whether warping should be used or not.
|
|
331
|
+
* @return {AnimationAction} A reference to this animation action.
|
|
332
|
+
*/
|
|
333
|
+
crossFadeFrom( fadeOutAction, duration, warp = false ) {
|
|
170
334
|
|
|
171
335
|
fadeOutAction.fadeOut( duration );
|
|
172
336
|
this.fadeIn( duration );
|
|
173
337
|
|
|
174
|
-
if ( warp ) {
|
|
338
|
+
if ( warp === true ) {
|
|
175
339
|
|
|
176
340
|
const fadeInDuration = this._clip.duration,
|
|
177
341
|
fadeOutDuration = fadeOutAction._clip.duration,
|
|
@@ -188,12 +352,26 @@ class AnimationAction {
|
|
|
188
352
|
|
|
189
353
|
}
|
|
190
354
|
|
|
191
|
-
|
|
355
|
+
/**
|
|
356
|
+
* Causes this action to fade out and the given action to fade in,
|
|
357
|
+
* within the passed time interval.
|
|
358
|
+
*
|
|
359
|
+
* @param {AnimationAction} fadeInAction - The animation action to fade in.
|
|
360
|
+
* @param {number} duration - The duration of the fade.
|
|
361
|
+
* @param {boolean} [warp=false] - Whether warping should be used or not.
|
|
362
|
+
* @return {AnimationAction} A reference to this animation action.
|
|
363
|
+
*/
|
|
364
|
+
crossFadeTo( fadeInAction, duration, warp = false ) {
|
|
192
365
|
|
|
193
366
|
return fadeInAction.crossFadeFrom( this, duration, warp );
|
|
194
367
|
|
|
195
368
|
}
|
|
196
369
|
|
|
370
|
+
/**
|
|
371
|
+
* Stops any fading which is applied to this action.
|
|
372
|
+
*
|
|
373
|
+
* @return {AnimationAction} A reference to this animation action.
|
|
374
|
+
*/
|
|
197
375
|
stopFading() {
|
|
198
376
|
|
|
199
377
|
const weightInterpolant = this._weightInterpolant;
|
|
@@ -209,11 +387,15 @@ class AnimationAction {
|
|
|
209
387
|
|
|
210
388
|
}
|
|
211
389
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
390
|
+
/**
|
|
391
|
+
* Sets the effective time scale of this action.
|
|
392
|
+
*
|
|
393
|
+
* An action has no effect and thus an effective time scale of zero when the
|
|
394
|
+
* action is paused.
|
|
395
|
+
*
|
|
396
|
+
* @param {number} timeScale - The time scale to set.
|
|
397
|
+
* @return {AnimationAction} A reference to this animation action.
|
|
398
|
+
*/
|
|
217
399
|
setEffectiveTimeScale( timeScale ) {
|
|
218
400
|
|
|
219
401
|
this.timeScale = timeScale;
|
|
@@ -223,13 +405,23 @@ class AnimationAction {
|
|
|
223
405
|
|
|
224
406
|
}
|
|
225
407
|
|
|
226
|
-
|
|
408
|
+
/**
|
|
409
|
+
* Returns the effective time scale of this action.
|
|
410
|
+
*
|
|
411
|
+
* @return {number} The effective time scale.
|
|
412
|
+
*/
|
|
227
413
|
getEffectiveTimeScale() {
|
|
228
414
|
|
|
229
415
|
return this._effectiveTimeScale;
|
|
230
416
|
|
|
231
417
|
}
|
|
232
418
|
|
|
419
|
+
/**
|
|
420
|
+
* Sets the duration for a single loop of this action.
|
|
421
|
+
*
|
|
422
|
+
* @param {number} duration - The duration to set.
|
|
423
|
+
* @return {AnimationAction} A reference to this animation action.
|
|
424
|
+
*/
|
|
233
425
|
setDuration( duration ) {
|
|
234
426
|
|
|
235
427
|
this.timeScale = this._clip.duration / duration;
|
|
@@ -238,6 +430,12 @@ class AnimationAction {
|
|
|
238
430
|
|
|
239
431
|
}
|
|
240
432
|
|
|
433
|
+
/**
|
|
434
|
+
* Synchronizes this action with the passed other action.
|
|
435
|
+
*
|
|
436
|
+
* @param {AnimationAction} action - The action to sync with.
|
|
437
|
+
* @return {AnimationAction} A reference to this animation action.
|
|
438
|
+
*/
|
|
241
439
|
syncWith( action ) {
|
|
242
440
|
|
|
243
441
|
this.time = action.time;
|
|
@@ -247,12 +445,28 @@ class AnimationAction {
|
|
|
247
445
|
|
|
248
446
|
}
|
|
249
447
|
|
|
448
|
+
/**
|
|
449
|
+
* Decelerates this animation's speed to `0` within the passed time interval.
|
|
450
|
+
*
|
|
451
|
+
* @param {number} duration - The duration.
|
|
452
|
+
* @return {AnimationAction} A reference to this animation action.
|
|
453
|
+
*/
|
|
250
454
|
halt( duration ) {
|
|
251
455
|
|
|
252
456
|
return this.warp( this._effectiveTimeScale, 0, duration );
|
|
253
457
|
|
|
254
458
|
}
|
|
255
459
|
|
|
460
|
+
/**
|
|
461
|
+
* Changes the playback speed, within the passed time interval, by modifying
|
|
462
|
+
* {@link AnimationAction#timeScale} gradually from `startTimeScale` to
|
|
463
|
+
* `endTimeScale`.
|
|
464
|
+
*
|
|
465
|
+
* @param {number} startTimeScale - The start time scale.
|
|
466
|
+
* @param {number} endTimeScale - The end time scale.
|
|
467
|
+
* @param {number} duration - The duration.
|
|
468
|
+
* @return {AnimationAction} A reference to this animation action.
|
|
469
|
+
*/
|
|
256
470
|
warp( startTimeScale, endTimeScale, duration ) {
|
|
257
471
|
|
|
258
472
|
const mixer = this._mixer,
|
|
@@ -281,6 +495,11 @@ class AnimationAction {
|
|
|
281
495
|
|
|
282
496
|
}
|
|
283
497
|
|
|
498
|
+
/**
|
|
499
|
+
* Stops any scheduled warping which is applied to this action.
|
|
500
|
+
*
|
|
501
|
+
* @return {AnimationAction} A reference to this animation action.
|
|
502
|
+
*/
|
|
284
503
|
stopWarping() {
|
|
285
504
|
|
|
286
505
|
const timeScaleInterpolant = this._timeScaleInterpolant;
|
|
@@ -296,20 +515,33 @@ class AnimationAction {
|
|
|
296
515
|
|
|
297
516
|
}
|
|
298
517
|
|
|
299
|
-
|
|
300
|
-
|
|
518
|
+
/**
|
|
519
|
+
* Returns the animation mixer of this animation action.
|
|
520
|
+
*
|
|
521
|
+
* @return {AnimationMixer} The animation mixer.
|
|
522
|
+
*/
|
|
301
523
|
getMixer() {
|
|
302
524
|
|
|
303
525
|
return this._mixer;
|
|
304
526
|
|
|
305
527
|
}
|
|
306
528
|
|
|
529
|
+
/**
|
|
530
|
+
* Returns the animation clip of this animation action.
|
|
531
|
+
*
|
|
532
|
+
* @return {AnimationClip} The animation clip.
|
|
533
|
+
*/
|
|
307
534
|
getClip() {
|
|
308
535
|
|
|
309
536
|
return this._clip;
|
|
310
537
|
|
|
311
538
|
}
|
|
312
539
|
|
|
540
|
+
/**
|
|
541
|
+
* Returns the root object of this animation action.
|
|
542
|
+
*
|
|
543
|
+
* @return {Object3D} The root object.
|
|
544
|
+
*/
|
|
313
545
|
getRoot() {
|
|
314
546
|
|
|
315
547
|
return this._localRoot || this._mixer._root;
|