@plastic-software/three 0.174.0 → 0.175.1
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 +10744 -1476
- package/build/three.core.js +9633 -1096
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +918 -189
- 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 +1432 -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 +58 -1
- 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/ShaderChunk/alphamap_fragment.glsl.js +10 -1
- package/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js +8 -1
- package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js +5 -1
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +82 -0
- package/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js +22 -2
- package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +12 -1
- package/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js +8 -2
- package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +31 -11
- package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +5 -1
- package/src/renderers/shaders/ShaderChunk/normal_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/normal_pars_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +2 -1
- package/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js +12 -1
- package/src/renderers/shaders/ShaderChunk/triplanar_fragment.glsl.js +20 -0
- package/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +52 -7
- package/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +25 -6
- package/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +19 -7
- package/src/renderers/shaders/ShaderChunk.js +2 -0
- package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +2 -0
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +1 -0
- package/src/renderers/shaders/UniformsLib.js +6 -5
- package/src/renderers/shaders/UniformsUtils.js +1 -3
- package/src/renderers/webgl/WebGLBackground.js +4 -2
- package/src/renderers/webgl/WebGLMaterials.js +12 -0
- package/src/renderers/webgl/WebGLProgram.js +25 -5
- package/src/renderers/webgl/WebGLPrograms.js +21 -7
- 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,10 +1,31 @@
|
|
|
1
1
|
import { Quaternion } from '../math/Quaternion.js';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Buffered scene graph property that allows weighted accumulation; used internally.
|
|
5
|
+
*/
|
|
3
6
|
class PropertyMixer {
|
|
4
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Constructs a new property mixer.
|
|
10
|
+
*
|
|
11
|
+
* @param {PropertyBinding} binding - The property binding.
|
|
12
|
+
* @param {string} typeName - The keyframe track type name.
|
|
13
|
+
* @param {number} valueSize - The keyframe track value size.
|
|
14
|
+
*/
|
|
5
15
|
constructor( binding, typeName, valueSize ) {
|
|
6
16
|
|
|
17
|
+
/**
|
|
18
|
+
* The property binding.
|
|
19
|
+
*
|
|
20
|
+
* @type {PropertyBinding}
|
|
21
|
+
*/
|
|
7
22
|
this.binding = binding;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* The keyframe track value size.
|
|
26
|
+
*
|
|
27
|
+
* @type {number}
|
|
28
|
+
*/
|
|
8
29
|
this.valueSize = valueSize;
|
|
9
30
|
|
|
10
31
|
let mixFunction,
|
|
@@ -66,15 +87,46 @@ class PropertyMixer {
|
|
|
66
87
|
this._origIndex = 3;
|
|
67
88
|
this._addIndex = 4;
|
|
68
89
|
|
|
90
|
+
/**
|
|
91
|
+
* TODO
|
|
92
|
+
*
|
|
93
|
+
* @type {number}
|
|
94
|
+
* @default 0
|
|
95
|
+
*/
|
|
69
96
|
this.cumulativeWeight = 0;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* TODO
|
|
100
|
+
*
|
|
101
|
+
* @type {number}
|
|
102
|
+
* @default 0
|
|
103
|
+
*/
|
|
70
104
|
this.cumulativeWeightAdditive = 0;
|
|
71
105
|
|
|
106
|
+
/**
|
|
107
|
+
* TODO
|
|
108
|
+
*
|
|
109
|
+
* @type {number}
|
|
110
|
+
* @default 0
|
|
111
|
+
*/
|
|
72
112
|
this.useCount = 0;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* TODO
|
|
116
|
+
*
|
|
117
|
+
* @type {number}
|
|
118
|
+
* @default 0
|
|
119
|
+
*/
|
|
73
120
|
this.referenceCount = 0;
|
|
74
121
|
|
|
75
122
|
}
|
|
76
123
|
|
|
77
|
-
|
|
124
|
+
/**
|
|
125
|
+
* Accumulates data in the `incoming` region into `accu<i>`.
|
|
126
|
+
*
|
|
127
|
+
* @param {number} accuIndex - The accumulation index.
|
|
128
|
+
* @param {number} weight - The weight.
|
|
129
|
+
*/
|
|
78
130
|
accumulate( accuIndex, weight ) {
|
|
79
131
|
|
|
80
132
|
// note: happily accumulating nothing when weight = 0, the caller knows
|
|
@@ -112,7 +164,11 @@ class PropertyMixer {
|
|
|
112
164
|
|
|
113
165
|
}
|
|
114
166
|
|
|
115
|
-
|
|
167
|
+
/**
|
|
168
|
+
* Accumulates data in the `incoming` region into `add`.
|
|
169
|
+
*
|
|
170
|
+
* @param {number} weight - The weight.
|
|
171
|
+
*/
|
|
116
172
|
accumulateAdditive( weight ) {
|
|
117
173
|
|
|
118
174
|
const buffer = this.buffer,
|
|
@@ -134,7 +190,11 @@ class PropertyMixer {
|
|
|
134
190
|
|
|
135
191
|
}
|
|
136
192
|
|
|
137
|
-
|
|
193
|
+
/**
|
|
194
|
+
* Applies the state of `accu<i>` to the binding when accus differ.
|
|
195
|
+
*
|
|
196
|
+
* @param {number} accuIndex - The accumulation index.
|
|
197
|
+
*/
|
|
138
198
|
apply( accuIndex ) {
|
|
139
199
|
|
|
140
200
|
const stride = this.valueSize,
|
|
@@ -183,7 +243,10 @@ class PropertyMixer {
|
|
|
183
243
|
|
|
184
244
|
}
|
|
185
245
|
|
|
186
|
-
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Remembers the state of the bound property and copy it to both accus.
|
|
249
|
+
*/
|
|
187
250
|
saveOriginalState() {
|
|
188
251
|
|
|
189
252
|
const binding = this.binding;
|
|
@@ -210,7 +273,9 @@ class PropertyMixer {
|
|
|
210
273
|
|
|
211
274
|
}
|
|
212
275
|
|
|
213
|
-
|
|
276
|
+
/**
|
|
277
|
+
* Applies the state previously taken via {@link PropertyMixer#saveOriginalState} to the binding.
|
|
278
|
+
*/
|
|
214
279
|
restoreOriginalState() {
|
|
215
280
|
|
|
216
281
|
const originalValueOffset = this.valueSize * 3;
|
|
@@ -218,6 +283,8 @@ class PropertyMixer {
|
|
|
218
283
|
|
|
219
284
|
}
|
|
220
285
|
|
|
286
|
+
// internals
|
|
287
|
+
|
|
221
288
|
_setAdditiveIdentityNumeric() {
|
|
222
289
|
|
|
223
290
|
const startIndex = this._addIndex * this.valueSize;
|
|
@@ -2,11 +2,22 @@ import { InterpolateDiscrete } from '../../constants.js';
|
|
|
2
2
|
import { KeyframeTrack } from '../KeyframeTrack.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* A
|
|
5
|
+
* A track for boolean keyframe values.
|
|
6
|
+
*
|
|
7
|
+
* @augments KeyframeTrack
|
|
6
8
|
*/
|
|
7
9
|
class BooleanKeyframeTrack extends KeyframeTrack {
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Constructs a new boolean keyframe track.
|
|
13
|
+
*
|
|
14
|
+
* This keyframe track type has no `interpolation` parameter because the
|
|
15
|
+
* interpolation is always discrete.
|
|
16
|
+
*
|
|
17
|
+
* @param {string} name - The keyframe track's name.
|
|
18
|
+
* @param {Array<number>} times - A list of keyframe times.
|
|
19
|
+
* @param {Array<number>} values - A list of keyframe values.
|
|
20
|
+
*/
|
|
10
21
|
constructor( name, times, values ) {
|
|
11
22
|
|
|
12
23
|
super( name, times, values );
|
|
@@ -15,14 +26,30 @@ class BooleanKeyframeTrack extends KeyframeTrack {
|
|
|
15
26
|
|
|
16
27
|
}
|
|
17
28
|
|
|
29
|
+
/**
|
|
30
|
+
* The value type name.
|
|
31
|
+
*
|
|
32
|
+
* @type {String}
|
|
33
|
+
* @default 'bool'
|
|
34
|
+
*/
|
|
18
35
|
BooleanKeyframeTrack.prototype.ValueTypeName = 'bool';
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* The value buffer type of this keyframe track.
|
|
39
|
+
*
|
|
40
|
+
* @type {TypedArray|Array}
|
|
41
|
+
* @default Array.constructor
|
|
42
|
+
*/
|
|
19
43
|
BooleanKeyframeTrack.prototype.ValueBufferType = Array;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* The default interpolation type of this keyframe track.
|
|
47
|
+
*
|
|
48
|
+
* @type {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)}
|
|
49
|
+
* @default InterpolateDiscrete
|
|
50
|
+
*/
|
|
20
51
|
BooleanKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;
|
|
21
52
|
BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;
|
|
22
53
|
BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;
|
|
23
54
|
|
|
24
|
-
// Note: Actually this track could have a optimized / compressed
|
|
25
|
-
// representation of a single value and a custom interpolant that
|
|
26
|
-
// computes "firstValue ^ isOdd( index )".
|
|
27
|
-
|
|
28
55
|
export { BooleanKeyframeTrack };
|
|
@@ -1,15 +1,36 @@
|
|
|
1
1
|
import { KeyframeTrack } from '../KeyframeTrack.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* A
|
|
4
|
+
* A track for color keyframe values.
|
|
5
|
+
*
|
|
6
|
+
* @augments KeyframeTrack
|
|
5
7
|
*/
|
|
6
|
-
class ColorKeyframeTrack extends KeyframeTrack {
|
|
8
|
+
class ColorKeyframeTrack extends KeyframeTrack {
|
|
7
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Constructs a new color keyframe track.
|
|
12
|
+
*
|
|
13
|
+
* @param {string} name - The keyframe track's name.
|
|
14
|
+
* @param {Array<number>} times - A list of keyframe times.
|
|
15
|
+
* @param {Array<number>} values - A list of keyframe values.
|
|
16
|
+
* @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} [interpolation] - The interpolation type.
|
|
17
|
+
*/
|
|
18
|
+
constructor( name, times, values, interpolation ) {
|
|
19
|
+
|
|
20
|
+
super( name, times, values, interpolation );
|
|
21
|
+
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* The value type name.
|
|
28
|
+
*
|
|
29
|
+
* @type {String}
|
|
30
|
+
* @default 'color'
|
|
31
|
+
*/
|
|
8
32
|
ColorKeyframeTrack.prototype.ValueTypeName = 'color';
|
|
9
33
|
// ValueBufferType is inherited
|
|
10
34
|
// DefaultInterpolation is inherited
|
|
11
35
|
|
|
12
|
-
// Note: Very basic implementation and nothing special yet.
|
|
13
|
-
// However, this is the place for color space parameterization.
|
|
14
|
-
|
|
15
36
|
export { ColorKeyframeTrack };
|
|
@@ -1,10 +1,34 @@
|
|
|
1
1
|
import { KeyframeTrack } from '../KeyframeTrack.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* A
|
|
4
|
+
* A track for numeric keyframe values.
|
|
5
|
+
*
|
|
6
|
+
* @augments KeyframeTrack
|
|
5
7
|
*/
|
|
6
|
-
class NumberKeyframeTrack extends KeyframeTrack {
|
|
8
|
+
class NumberKeyframeTrack extends KeyframeTrack {
|
|
7
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Constructs a new number keyframe track.
|
|
12
|
+
*
|
|
13
|
+
* @param {string} name - The keyframe track's name.
|
|
14
|
+
* @param {Array<number>} times - A list of keyframe times.
|
|
15
|
+
* @param {Array<number>} values - A list of keyframe values.
|
|
16
|
+
* @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} [interpolation] - The interpolation type.
|
|
17
|
+
*/
|
|
18
|
+
constructor( name, times, values, interpolation ) {
|
|
19
|
+
|
|
20
|
+
super( name, times, values, interpolation );
|
|
21
|
+
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* The value type name.
|
|
28
|
+
*
|
|
29
|
+
* @type {String}
|
|
30
|
+
* @default 'number'
|
|
31
|
+
*/
|
|
8
32
|
NumberKeyframeTrack.prototype.ValueTypeName = 'number';
|
|
9
33
|
// ValueBufferType is inherited
|
|
10
34
|
// DefaultInterpolation is inherited
|
|
@@ -2,10 +2,33 @@ import { KeyframeTrack } from '../KeyframeTrack.js';
|
|
|
2
2
|
import { QuaternionLinearInterpolant } from '../../math/interpolants/QuaternionLinearInterpolant.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* A
|
|
5
|
+
* A track for Quaternion keyframe values.
|
|
6
|
+
*
|
|
7
|
+
* @augments KeyframeTrack
|
|
6
8
|
*/
|
|
7
9
|
class QuaternionKeyframeTrack extends KeyframeTrack {
|
|
8
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Constructs a new Quaternion keyframe track.
|
|
13
|
+
*
|
|
14
|
+
* @param {string} name - The keyframe track's name.
|
|
15
|
+
* @param {Array<number>} times - A list of keyframe times.
|
|
16
|
+
* @param {Array<number>} values - A list of keyframe values.
|
|
17
|
+
* @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} [interpolation] - The interpolation type.
|
|
18
|
+
*/
|
|
19
|
+
constructor( name, times, values, interpolation ) {
|
|
20
|
+
|
|
21
|
+
super( name, times, values, interpolation );
|
|
22
|
+
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Overwritten so the method returns Quaternion based interpolant.
|
|
27
|
+
*
|
|
28
|
+
* @static
|
|
29
|
+
* @param {TypedArray} [result] - The result buffer.
|
|
30
|
+
* @return {QuaternionLinearInterpolant} The new interpolant.
|
|
31
|
+
*/
|
|
9
32
|
InterpolantFactoryMethodLinear( result ) {
|
|
10
33
|
|
|
11
34
|
return new QuaternionLinearInterpolant( this.times, this.values, this.getValueSize(), result );
|
|
@@ -14,6 +37,12 @@ class QuaternionKeyframeTrack extends KeyframeTrack {
|
|
|
14
37
|
|
|
15
38
|
}
|
|
16
39
|
|
|
40
|
+
/**
|
|
41
|
+
* The value type name.
|
|
42
|
+
*
|
|
43
|
+
* @type {String}
|
|
44
|
+
* @default 'quaternion'
|
|
45
|
+
*/
|
|
17
46
|
QuaternionKeyframeTrack.prototype.ValueTypeName = 'quaternion';
|
|
18
47
|
// ValueBufferType is inherited
|
|
19
48
|
// DefaultInterpolation is inherited;
|
|
@@ -2,11 +2,22 @@ import { InterpolateDiscrete } from '../../constants.js';
|
|
|
2
2
|
import { KeyframeTrack } from '../KeyframeTrack.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* A
|
|
5
|
+
* A track for string keyframe values.
|
|
6
|
+
*
|
|
7
|
+
* @augments KeyframeTrack
|
|
6
8
|
*/
|
|
7
9
|
class StringKeyframeTrack extends KeyframeTrack {
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Constructs a new string keyframe track.
|
|
13
|
+
*
|
|
14
|
+
* This keyframe track type has no `interpolation` parameter because the
|
|
15
|
+
* interpolation is always discrete.
|
|
16
|
+
*
|
|
17
|
+
* @param {string} name - The keyframe track's name.
|
|
18
|
+
* @param {Array<number>} times - A list of keyframe times.
|
|
19
|
+
* @param {Array<number>} values - A list of keyframe values.
|
|
20
|
+
*/
|
|
10
21
|
constructor( name, times, values ) {
|
|
11
22
|
|
|
12
23
|
super( name, times, values );
|
|
@@ -15,8 +26,28 @@ class StringKeyframeTrack extends KeyframeTrack {
|
|
|
15
26
|
|
|
16
27
|
}
|
|
17
28
|
|
|
29
|
+
/**
|
|
30
|
+
* The value type name.
|
|
31
|
+
*
|
|
32
|
+
* @type {String}
|
|
33
|
+
* @default 'string'
|
|
34
|
+
*/
|
|
18
35
|
StringKeyframeTrack.prototype.ValueTypeName = 'string';
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* The value buffer type of this keyframe track.
|
|
39
|
+
*
|
|
40
|
+
* @type {TypedArray|Array}
|
|
41
|
+
* @default Array.constructor
|
|
42
|
+
*/
|
|
19
43
|
StringKeyframeTrack.prototype.ValueBufferType = Array;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* The default interpolation type of this keyframe track.
|
|
47
|
+
*
|
|
48
|
+
* @type {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)}
|
|
49
|
+
* @default InterpolateDiscrete
|
|
50
|
+
*/
|
|
20
51
|
StringKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;
|
|
21
52
|
StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;
|
|
22
53
|
StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;
|
|
@@ -1,10 +1,34 @@
|
|
|
1
1
|
import { KeyframeTrack } from '../KeyframeTrack.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* A
|
|
4
|
+
* A track for vector keyframe values.
|
|
5
|
+
*
|
|
6
|
+
* @augments KeyframeTrack
|
|
5
7
|
*/
|
|
6
|
-
class VectorKeyframeTrack extends KeyframeTrack {
|
|
8
|
+
class VectorKeyframeTrack extends KeyframeTrack {
|
|
7
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Constructs a new vector keyframe track.
|
|
12
|
+
*
|
|
13
|
+
* @param {string} name - The keyframe track's name.
|
|
14
|
+
* @param {Array<number>} times - A list of keyframe times.
|
|
15
|
+
* @param {Array<number>} values - A list of keyframe values.
|
|
16
|
+
* @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} [interpolation] - The interpolation type.
|
|
17
|
+
*/
|
|
18
|
+
constructor( name, times, values, interpolation ) {
|
|
19
|
+
|
|
20
|
+
super( name, times, values, interpolation );
|
|
21
|
+
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* The value type name.
|
|
28
|
+
*
|
|
29
|
+
* @type {String}
|
|
30
|
+
* @default 'vector'
|
|
31
|
+
*/
|
|
8
32
|
VectorKeyframeTrack.prototype.ValueTypeName = 'vector';
|
|
9
33
|
// ValueBufferType is inherited
|
|
10
34
|
// DefaultInterpolation is inherited
|
|
@@ -31,7 +31,7 @@ class AudioAnalyser {
|
|
|
31
31
|
* Constructs a new audio analyzer.
|
|
32
32
|
*
|
|
33
33
|
* @param {Audio} audio - The audio to analyze.
|
|
34
|
-
* @param {
|
|
34
|
+
* @param {number} [fftSize=2048] - The window size in samples that is used when performing a Fast Fourier Transform (FFT) to get frequency domain data.
|
|
35
35
|
*/
|
|
36
36
|
constructor( audio, fftSize = 2048 ) {
|
|
37
37
|
|
|
@@ -50,7 +50,7 @@ class AudioListener extends Object3D {
|
|
|
50
50
|
/**
|
|
51
51
|
* An optional filter.
|
|
52
52
|
*
|
|
53
|
-
* Defined via {@AudioListener#setFilter}.
|
|
53
|
+
* Defined via {@link AudioListener#setFilter}.
|
|
54
54
|
*
|
|
55
55
|
* @type {?AudioNode}
|
|
56
56
|
* @default null
|
|
@@ -109,7 +109,7 @@ class AudioListener extends Object3D {
|
|
|
109
109
|
/**
|
|
110
110
|
* Returns the current set filter.
|
|
111
111
|
*
|
|
112
|
-
* @return {AudioNode} The filter.
|
|
112
|
+
* @return {?AudioNode} The filter.
|
|
113
113
|
*/
|
|
114
114
|
getFilter() {
|
|
115
115
|
|
|
@@ -104,7 +104,7 @@ class PositionalAudio extends Audio {
|
|
|
104
104
|
* starts taking effect.
|
|
105
105
|
*
|
|
106
106
|
* @param {number} value - The reference distance to set.
|
|
107
|
-
* @return {
|
|
107
|
+
* @return {PositionalAudio} A reference to this instance.
|
|
108
108
|
*/
|
|
109
109
|
setRefDistance( value ) {
|
|
110
110
|
|
|
@@ -129,7 +129,7 @@ class PositionalAudio extends Audio {
|
|
|
129
129
|
* Defines how quickly the volume is reduced as the source moves away from the listener.
|
|
130
130
|
*
|
|
131
131
|
* @param {number} value - The rolloff factor.
|
|
132
|
-
* @return {
|
|
132
|
+
* @return {PositionalAudio} A reference to this instance.
|
|
133
133
|
*/
|
|
134
134
|
setRolloffFactor( value ) {
|
|
135
135
|
|
|
@@ -158,7 +158,7 @@ class PositionalAudio extends Audio {
|
|
|
158
158
|
* for more details.
|
|
159
159
|
*
|
|
160
160
|
* @param {('linear'|'inverse'|'exponential')} value - The distance model to set.
|
|
161
|
-
* @return {
|
|
161
|
+
* @return {PositionalAudio} A reference to this instance.
|
|
162
162
|
*/
|
|
163
163
|
setDistanceModel( value ) {
|
|
164
164
|
|
|
@@ -186,7 +186,7 @@ class PositionalAudio extends Audio {
|
|
|
186
186
|
* This value is used only by the `linear` distance model.
|
|
187
187
|
*
|
|
188
188
|
* @param {number} value - The max distance.
|
|
189
|
-
* @return {
|
|
189
|
+
* @return {PositionalAudio} A reference to this instance.
|
|
190
190
|
*/
|
|
191
191
|
setMaxDistance( value ) {
|
|
192
192
|
|
|
@@ -202,7 +202,7 @@ class PositionalAudio extends Audio {
|
|
|
202
202
|
* @param {number} coneInnerAngle - An angle, in degrees, of a cone inside of which there will be no volume reduction.
|
|
203
203
|
* @param {number} coneOuterAngle - An angle, in degrees, of a cone outside of which the volume will be reduced by a constant value, defined by the `coneOuterGain` parameter.
|
|
204
204
|
* @param {number} coneOuterGain - The amount of volume reduction outside the cone defined by the `coneOuterAngle`. When set to `0`, no sound can be heard.
|
|
205
|
-
* @return {
|
|
205
|
+
* @return {PositionalAudio} A reference to this instance.
|
|
206
206
|
*/
|
|
207
207
|
setDirectionalCone( coneInnerAngle, coneOuterAngle, coneOuterGain ) {
|
|
208
208
|
|