@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
|
@@ -9,8 +9,23 @@ const _vector2 = /*@__PURE__*/ new Vector2();
|
|
|
9
9
|
|
|
10
10
|
let _id = 0;
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* This class stores data for an attribute (such as vertex positions, face
|
|
14
|
+
* indices, normals, colors, UVs, and any custom attributes ) associated with
|
|
15
|
+
* a geometry, which allows for more efficient passing of data to the GPU.
|
|
16
|
+
*
|
|
17
|
+
* When working with vector-like data, the `fromBufferAttribute( attribute, index )`
|
|
18
|
+
* helper methods on vector and color class might be helpful. E.g. {@link Vector3#fromBufferAttribute}.
|
|
19
|
+
*/
|
|
12
20
|
class BufferAttribute {
|
|
13
21
|
|
|
22
|
+
/**
|
|
23
|
+
* Constructs a new buffer attribute.
|
|
24
|
+
*
|
|
25
|
+
* @param {TypedArray} array - The array holding the attribute data.
|
|
26
|
+
* @param {number} itemSize - The item size.
|
|
27
|
+
* @param {boolean} [normalized=false] - Whether the data are normalized or not.
|
|
28
|
+
*/
|
|
14
29
|
constructor( array, itemSize, normalized = false ) {
|
|
15
30
|
|
|
16
31
|
if ( Array.isArray( array ) ) {
|
|
@@ -19,33 +34,133 @@ class BufferAttribute {
|
|
|
19
34
|
|
|
20
35
|
}
|
|
21
36
|
|
|
37
|
+
/**
|
|
38
|
+
* This flag can be used for type testing.
|
|
39
|
+
*
|
|
40
|
+
* @type {boolean}
|
|
41
|
+
* @readonly
|
|
42
|
+
* @default true
|
|
43
|
+
*/
|
|
22
44
|
this.isBufferAttribute = true;
|
|
23
45
|
|
|
46
|
+
/**
|
|
47
|
+
* The ID of the buffer attribute.
|
|
48
|
+
*
|
|
49
|
+
* @name BufferAttribute#id
|
|
50
|
+
* @type {number}
|
|
51
|
+
* @readonly
|
|
52
|
+
*/
|
|
24
53
|
Object.defineProperty( this, 'id', { value: _id ++ } );
|
|
25
54
|
|
|
55
|
+
/**
|
|
56
|
+
* The name of the buffer attribute.
|
|
57
|
+
*
|
|
58
|
+
* @type {string}
|
|
59
|
+
*/
|
|
26
60
|
this.name = '';
|
|
27
61
|
|
|
62
|
+
/**
|
|
63
|
+
* The array holding the attribute data. It should have `itemSize * numVertices`
|
|
64
|
+
* elements, where `numVertices` is the number of vertices in the associated geometry.
|
|
65
|
+
*
|
|
66
|
+
* @type {TypedArray}
|
|
67
|
+
*/
|
|
28
68
|
this.array = array;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* The number of values of the array that should be associated with a particular vertex.
|
|
72
|
+
* For instance, if this attribute is storing a 3-component vector (such as a position,
|
|
73
|
+
* normal, or color), then the value should be `3`.
|
|
74
|
+
*
|
|
75
|
+
* @type {number}
|
|
76
|
+
*/
|
|
29
77
|
this.itemSize = itemSize;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Represents the number of items this buffer attribute stores. It is internally computed
|
|
81
|
+
* by dividing the `array` length by the `itemSize`.
|
|
82
|
+
*
|
|
83
|
+
* @type {number}
|
|
84
|
+
* @readonly
|
|
85
|
+
*/
|
|
30
86
|
this.count = array !== undefined ? array.length / itemSize : 0;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Applies to integer data only. Indicates how the underlying data in the buffer maps to
|
|
90
|
+
* the values in the GLSL code. For instance, if `array` is an instance of `UInt16Array`,
|
|
91
|
+
* and `normalized` is `true`, the values `0 -+65535` in the array data will be mapped to
|
|
92
|
+
* `0.0f - +1.0f` in the GLSL attribute. If `normalized` is `false`, the values will be converted
|
|
93
|
+
* to floats unmodified, i.e. `65535` becomes `65535.0f`.
|
|
94
|
+
*
|
|
95
|
+
* @type {boolean}
|
|
96
|
+
*/
|
|
31
97
|
this.normalized = normalized;
|
|
32
98
|
|
|
99
|
+
/**
|
|
100
|
+
* Defines the intended usage pattern of the data store for optimization purposes.
|
|
101
|
+
*
|
|
102
|
+
* Note: After the initial use of a buffer, its usage cannot be changed. Instead,
|
|
103
|
+
* instantiate a new one and set the desired usage before the next render.
|
|
104
|
+
*
|
|
105
|
+
* @type {(StaticDrawUsage|DynamicDrawUsage|StreamDrawUsage|StaticReadUsage|DynamicReadUsage|StreamReadUsage|StaticCopyUsage|DynamicCopyUsage|StreamCopyUsage)}
|
|
106
|
+
* @default StaticDrawUsage
|
|
107
|
+
*/
|
|
33
108
|
this.usage = StaticDrawUsage;
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* This can be used to only update some components of stored vectors (for example, just the
|
|
112
|
+
* component related to color). Use the `addUpdateRange()` function to add ranges to this array.
|
|
113
|
+
*
|
|
114
|
+
* @type {Array<Object>}
|
|
115
|
+
*/
|
|
34
116
|
this.updateRanges = [];
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Configures the bound GPU type for use in shaders.
|
|
120
|
+
*
|
|
121
|
+
* Note: this only has an effect for integer arrays and is not configurable for float arrays.
|
|
122
|
+
* For lower precision float types, use `Float16BufferAttribute`.
|
|
123
|
+
*
|
|
124
|
+
* @type {(FloatType|IntType)}
|
|
125
|
+
* @default FloatType
|
|
126
|
+
*/
|
|
35
127
|
this.gpuType = FloatType;
|
|
36
128
|
|
|
129
|
+
/**
|
|
130
|
+
* A version number, incremented every time the `needsUpdate` is set to `true`.
|
|
131
|
+
*
|
|
132
|
+
* @type {number}
|
|
133
|
+
*/
|
|
37
134
|
this.version = 0;
|
|
38
135
|
|
|
39
136
|
}
|
|
40
137
|
|
|
138
|
+
/**
|
|
139
|
+
* A callback function that is executed after the renderer has transferred the attribute
|
|
140
|
+
* array data to the GPU.
|
|
141
|
+
*/
|
|
41
142
|
onUploadCallback() {}
|
|
42
143
|
|
|
144
|
+
/**
|
|
145
|
+
* Flag to indicate that this attribute has changed and should be re-sent to
|
|
146
|
+
* the GPU. Set this to `true` when you modify the value of the array.
|
|
147
|
+
*
|
|
148
|
+
* @type {number}
|
|
149
|
+
* @default false
|
|
150
|
+
* @param {boolean} value
|
|
151
|
+
*/
|
|
43
152
|
set needsUpdate( value ) {
|
|
44
153
|
|
|
45
154
|
if ( value === true ) this.version ++;
|
|
46
155
|
|
|
47
156
|
}
|
|
48
157
|
|
|
158
|
+
/**
|
|
159
|
+
* Sets the usage of this buffer attribute.
|
|
160
|
+
*
|
|
161
|
+
* @param {(StaticDrawUsage|DynamicDrawUsage|StreamDrawUsage|StaticReadUsage|DynamicReadUsage|StreamReadUsage|StaticCopyUsage|DynamicCopyUsage|StreamCopyUsage)} value - The usage to set.
|
|
162
|
+
* @return {BufferAttribute} A reference to this buffer attribute.
|
|
163
|
+
*/
|
|
49
164
|
setUsage( value ) {
|
|
50
165
|
|
|
51
166
|
this.usage = value;
|
|
@@ -54,18 +169,33 @@ class BufferAttribute {
|
|
|
54
169
|
|
|
55
170
|
}
|
|
56
171
|
|
|
172
|
+
/**
|
|
173
|
+
* Adds a range of data in the data array to be updated on the GPU.
|
|
174
|
+
*
|
|
175
|
+
* @param {number} start - Position at which to start update.
|
|
176
|
+
* @param {number} count - The number of components to update.
|
|
177
|
+
*/
|
|
57
178
|
addUpdateRange( start, count ) {
|
|
58
179
|
|
|
59
180
|
this.updateRanges.push( { start, count } );
|
|
60
181
|
|
|
61
182
|
}
|
|
62
183
|
|
|
184
|
+
/**
|
|
185
|
+
* Clears the update ranges.
|
|
186
|
+
*/
|
|
63
187
|
clearUpdateRanges() {
|
|
64
188
|
|
|
65
189
|
this.updateRanges.length = 0;
|
|
66
190
|
|
|
67
191
|
}
|
|
68
192
|
|
|
193
|
+
/**
|
|
194
|
+
* Copies the values of the given buffer attribute to this instance.
|
|
195
|
+
*
|
|
196
|
+
* @param {BufferAttribute} source - The buffer attribute to copy.
|
|
197
|
+
* @return {BufferAttribute} A reference to this instance.
|
|
198
|
+
*/
|
|
69
199
|
copy( source ) {
|
|
70
200
|
|
|
71
201
|
this.name = source.name;
|
|
@@ -81,6 +211,16 @@ class BufferAttribute {
|
|
|
81
211
|
|
|
82
212
|
}
|
|
83
213
|
|
|
214
|
+
/**
|
|
215
|
+
* Copies a vector from the given buffer attribute to this one. The start
|
|
216
|
+
* and destination position in the attribute buffers are represented by the
|
|
217
|
+
* given indices.
|
|
218
|
+
*
|
|
219
|
+
* @param {number} index1 - The destination index into this buffer attribute.
|
|
220
|
+
* @param {BufferAttribute} attribute - The buffer attribute to copy from.
|
|
221
|
+
* @param {number} index2 - The source index into the given buffer attribute.
|
|
222
|
+
* @return {BufferAttribute} A reference to this instance.
|
|
223
|
+
*/
|
|
84
224
|
copyAt( index1, attribute, index2 ) {
|
|
85
225
|
|
|
86
226
|
index1 *= this.itemSize;
|
|
@@ -96,6 +236,12 @@ class BufferAttribute {
|
|
|
96
236
|
|
|
97
237
|
}
|
|
98
238
|
|
|
239
|
+
/**
|
|
240
|
+
* Copies the given array data into this buffer attribute.
|
|
241
|
+
*
|
|
242
|
+
* @param {(TypedArray|Array)} array - The array to copy.
|
|
243
|
+
* @return {BufferAttribute} A reference to this instance.
|
|
244
|
+
*/
|
|
99
245
|
copyArray( array ) {
|
|
100
246
|
|
|
101
247
|
this.array.set( array );
|
|
@@ -104,6 +250,13 @@ class BufferAttribute {
|
|
|
104
250
|
|
|
105
251
|
}
|
|
106
252
|
|
|
253
|
+
/**
|
|
254
|
+
* Applies the given 3x3 matrix to the given attribute. Works with
|
|
255
|
+
* item size `2` and `3`.
|
|
256
|
+
*
|
|
257
|
+
* @param {Matrix3} m - The matrix to apply.
|
|
258
|
+
* @return {BufferAttribute} A reference to this instance.
|
|
259
|
+
*/
|
|
107
260
|
applyMatrix3( m ) {
|
|
108
261
|
|
|
109
262
|
if ( this.itemSize === 2 ) {
|
|
@@ -134,6 +287,13 @@ class BufferAttribute {
|
|
|
134
287
|
|
|
135
288
|
}
|
|
136
289
|
|
|
290
|
+
/**
|
|
291
|
+
* Applies the given 4x4 matrix to the given attribute. Only works with
|
|
292
|
+
* item size `3`.
|
|
293
|
+
*
|
|
294
|
+
* @param {Matrix4} m - The matrix to apply.
|
|
295
|
+
* @return {BufferAttribute} A reference to this instance.
|
|
296
|
+
*/
|
|
137
297
|
applyMatrix4( m ) {
|
|
138
298
|
|
|
139
299
|
for ( let i = 0, l = this.count; i < l; i ++ ) {
|
|
@@ -150,6 +310,13 @@ class BufferAttribute {
|
|
|
150
310
|
|
|
151
311
|
}
|
|
152
312
|
|
|
313
|
+
/**
|
|
314
|
+
* Applies the given 3x3 normal matrix to the given attribute. Only works with
|
|
315
|
+
* item size `3`.
|
|
316
|
+
*
|
|
317
|
+
* @param {Matrix3} m - The normal matrix to apply.
|
|
318
|
+
* @return {BufferAttribute} A reference to this instance.
|
|
319
|
+
*/
|
|
153
320
|
applyNormalMatrix( m ) {
|
|
154
321
|
|
|
155
322
|
for ( let i = 0, l = this.count; i < l; i ++ ) {
|
|
@@ -166,6 +333,13 @@ class BufferAttribute {
|
|
|
166
333
|
|
|
167
334
|
}
|
|
168
335
|
|
|
336
|
+
/**
|
|
337
|
+
* Applies the given 4x4 matrix to the given attribute. Only works with
|
|
338
|
+
* item size `3` and with direction vectors.
|
|
339
|
+
*
|
|
340
|
+
* @param {Matrix4} m - The matrix to apply.
|
|
341
|
+
* @return {BufferAttribute} A reference to this instance.
|
|
342
|
+
*/
|
|
169
343
|
transformDirection( m ) {
|
|
170
344
|
|
|
171
345
|
for ( let i = 0, l = this.count; i < l; i ++ ) {
|
|
@@ -182,6 +356,13 @@ class BufferAttribute {
|
|
|
182
356
|
|
|
183
357
|
}
|
|
184
358
|
|
|
359
|
+
/**
|
|
360
|
+
* Sets the given array data in the buffer attribute.
|
|
361
|
+
*
|
|
362
|
+
* @param {(TypedArray|Array)} value - The array data to set.
|
|
363
|
+
* @param {number} [offset=0] - The offset in this buffer attribute's array.
|
|
364
|
+
* @return {BufferAttribute} A reference to this instance.
|
|
365
|
+
*/
|
|
185
366
|
set( value, offset = 0 ) {
|
|
186
367
|
|
|
187
368
|
// Matching BufferAttribute constructor, do not normalize the array.
|
|
@@ -191,6 +372,13 @@ class BufferAttribute {
|
|
|
191
372
|
|
|
192
373
|
}
|
|
193
374
|
|
|
375
|
+
/**
|
|
376
|
+
* Returns the given component of the vector at the given index.
|
|
377
|
+
*
|
|
378
|
+
* @param {number} index - The index into the buffer attribute.
|
|
379
|
+
* @param {number} component - The component index.
|
|
380
|
+
* @return {number} The returned value.
|
|
381
|
+
*/
|
|
194
382
|
getComponent( index, component ) {
|
|
195
383
|
|
|
196
384
|
let value = this.array[ index * this.itemSize + component ];
|
|
@@ -201,6 +389,14 @@ class BufferAttribute {
|
|
|
201
389
|
|
|
202
390
|
}
|
|
203
391
|
|
|
392
|
+
/**
|
|
393
|
+
* Sets the given value to the given component of the vector at the given index.
|
|
394
|
+
*
|
|
395
|
+
* @param {number} index - The index into the buffer attribute.
|
|
396
|
+
* @param {number} component - The component index.
|
|
397
|
+
* @param {number} value - The value to set.
|
|
398
|
+
* @return {BufferAttribute} A reference to this instance.
|
|
399
|
+
*/
|
|
204
400
|
setComponent( index, component, value ) {
|
|
205
401
|
|
|
206
402
|
if ( this.normalized ) value = normalize( value, this.array );
|
|
@@ -211,6 +407,12 @@ class BufferAttribute {
|
|
|
211
407
|
|
|
212
408
|
}
|
|
213
409
|
|
|
410
|
+
/**
|
|
411
|
+
* Returns the x component of the vector at the given index.
|
|
412
|
+
*
|
|
413
|
+
* @param {number} index - The index into the buffer attribute.
|
|
414
|
+
* @return {number} The x component.
|
|
415
|
+
*/
|
|
214
416
|
getX( index ) {
|
|
215
417
|
|
|
216
418
|
let x = this.array[ index * this.itemSize ];
|
|
@@ -221,6 +423,13 @@ class BufferAttribute {
|
|
|
221
423
|
|
|
222
424
|
}
|
|
223
425
|
|
|
426
|
+
/**
|
|
427
|
+
* Sets the x component of the vector at the given index.
|
|
428
|
+
*
|
|
429
|
+
* @param {number} index - The index into the buffer attribute.
|
|
430
|
+
* @param {number} x - The value to set.
|
|
431
|
+
* @return {BufferAttribute} A reference to this instance.
|
|
432
|
+
*/
|
|
224
433
|
setX( index, x ) {
|
|
225
434
|
|
|
226
435
|
if ( this.normalized ) x = normalize( x, this.array );
|
|
@@ -231,6 +440,12 @@ class BufferAttribute {
|
|
|
231
440
|
|
|
232
441
|
}
|
|
233
442
|
|
|
443
|
+
/**
|
|
444
|
+
* Returns the y component of the vector at the given index.
|
|
445
|
+
*
|
|
446
|
+
* @param {number} index - The index into the buffer attribute.
|
|
447
|
+
* @return {number} The y component.
|
|
448
|
+
*/
|
|
234
449
|
getY( index ) {
|
|
235
450
|
|
|
236
451
|
let y = this.array[ index * this.itemSize + 1 ];
|
|
@@ -241,6 +456,13 @@ class BufferAttribute {
|
|
|
241
456
|
|
|
242
457
|
}
|
|
243
458
|
|
|
459
|
+
/**
|
|
460
|
+
* Sets the y component of the vector at the given index.
|
|
461
|
+
*
|
|
462
|
+
* @param {number} index - The index into the buffer attribute.
|
|
463
|
+
* @param {number} y - The value to set.
|
|
464
|
+
* @return {BufferAttribute} A reference to this instance.
|
|
465
|
+
*/
|
|
244
466
|
setY( index, y ) {
|
|
245
467
|
|
|
246
468
|
if ( this.normalized ) y = normalize( y, this.array );
|
|
@@ -251,6 +473,12 @@ class BufferAttribute {
|
|
|
251
473
|
|
|
252
474
|
}
|
|
253
475
|
|
|
476
|
+
/**
|
|
477
|
+
* Returns the z component of the vector at the given index.
|
|
478
|
+
*
|
|
479
|
+
* @param {number} index - The index into the buffer attribute.
|
|
480
|
+
* @return {number} The z component.
|
|
481
|
+
*/
|
|
254
482
|
getZ( index ) {
|
|
255
483
|
|
|
256
484
|
let z = this.array[ index * this.itemSize + 2 ];
|
|
@@ -261,6 +489,13 @@ class BufferAttribute {
|
|
|
261
489
|
|
|
262
490
|
}
|
|
263
491
|
|
|
492
|
+
/**
|
|
493
|
+
* Sets the z component of the vector at the given index.
|
|
494
|
+
*
|
|
495
|
+
* @param {number} index - The index into the buffer attribute.
|
|
496
|
+
* @param {number} z - The value to set.
|
|
497
|
+
* @return {BufferAttribute} A reference to this instance.
|
|
498
|
+
*/
|
|
264
499
|
setZ( index, z ) {
|
|
265
500
|
|
|
266
501
|
if ( this.normalized ) z = normalize( z, this.array );
|
|
@@ -271,6 +506,12 @@ class BufferAttribute {
|
|
|
271
506
|
|
|
272
507
|
}
|
|
273
508
|
|
|
509
|
+
/**
|
|
510
|
+
* Returns the w component of the vector at the given index.
|
|
511
|
+
*
|
|
512
|
+
* @param {number} index - The index into the buffer attribute.
|
|
513
|
+
* @return {number} The w component.
|
|
514
|
+
*/
|
|
274
515
|
getW( index ) {
|
|
275
516
|
|
|
276
517
|
let w = this.array[ index * this.itemSize + 3 ];
|
|
@@ -281,6 +522,13 @@ class BufferAttribute {
|
|
|
281
522
|
|
|
282
523
|
}
|
|
283
524
|
|
|
525
|
+
/**
|
|
526
|
+
* Sets the w component of the vector at the given index.
|
|
527
|
+
*
|
|
528
|
+
* @param {number} index - The index into the buffer attribute.
|
|
529
|
+
* @param {number} w - The value to set.
|
|
530
|
+
* @return {BufferAttribute} A reference to this instance.
|
|
531
|
+
*/
|
|
284
532
|
setW( index, w ) {
|
|
285
533
|
|
|
286
534
|
if ( this.normalized ) w = normalize( w, this.array );
|
|
@@ -291,6 +539,14 @@ class BufferAttribute {
|
|
|
291
539
|
|
|
292
540
|
}
|
|
293
541
|
|
|
542
|
+
/**
|
|
543
|
+
* Sets the x and y component of the vector at the given index.
|
|
544
|
+
*
|
|
545
|
+
* @param {number} index - The index into the buffer attribute.
|
|
546
|
+
* @param {number} x - The value for the x component to set.
|
|
547
|
+
* @param {number} y - The value for the y component to set.
|
|
548
|
+
* @return {BufferAttribute} A reference to this instance.
|
|
549
|
+
*/
|
|
294
550
|
setXY( index, x, y ) {
|
|
295
551
|
|
|
296
552
|
index *= this.itemSize;
|
|
@@ -309,6 +565,15 @@ class BufferAttribute {
|
|
|
309
565
|
|
|
310
566
|
}
|
|
311
567
|
|
|
568
|
+
/**
|
|
569
|
+
* Sets the x, y and z component of the vector at the given index.
|
|
570
|
+
*
|
|
571
|
+
* @param {number} index - The index into the buffer attribute.
|
|
572
|
+
* @param {number} x - The value for the x component to set.
|
|
573
|
+
* @param {number} y - The value for the y component to set.
|
|
574
|
+
* @param {number} z - The value for the z component to set.
|
|
575
|
+
* @return {BufferAttribute} A reference to this instance.
|
|
576
|
+
*/
|
|
312
577
|
setXYZ( index, x, y, z ) {
|
|
313
578
|
|
|
314
579
|
index *= this.itemSize;
|
|
@@ -329,6 +594,16 @@ class BufferAttribute {
|
|
|
329
594
|
|
|
330
595
|
}
|
|
331
596
|
|
|
597
|
+
/**
|
|
598
|
+
* Sets the x, y, z and w component of the vector at the given index.
|
|
599
|
+
*
|
|
600
|
+
* @param {number} index - The index into the buffer attribute.
|
|
601
|
+
* @param {number} x - The value for the x component to set.
|
|
602
|
+
* @param {number} y - The value for the y component to set.
|
|
603
|
+
* @param {number} z - The value for the z component to set.
|
|
604
|
+
* @param {number} w - The value for the w component to set.
|
|
605
|
+
* @return {BufferAttribute} A reference to this instance.
|
|
606
|
+
*/
|
|
332
607
|
setXYZW( index, x, y, z, w ) {
|
|
333
608
|
|
|
334
609
|
index *= this.itemSize;
|
|
@@ -351,6 +626,14 @@ class BufferAttribute {
|
|
|
351
626
|
|
|
352
627
|
}
|
|
353
628
|
|
|
629
|
+
/**
|
|
630
|
+
* Sets the given callback function that is executed after the Renderer has transferred
|
|
631
|
+
* the attribute array data to the GPU. Can be used to perform clean-up operations after
|
|
632
|
+
* the upload when attribute data are not needed anymore on the CPU side.
|
|
633
|
+
*
|
|
634
|
+
* @param {Function} callback - The `onUpload()` callback.
|
|
635
|
+
* @return {BufferAttribute} A reference to this instance.
|
|
636
|
+
*/
|
|
354
637
|
onUpload( callback ) {
|
|
355
638
|
|
|
356
639
|
this.onUploadCallback = callback;
|
|
@@ -359,12 +642,22 @@ class BufferAttribute {
|
|
|
359
642
|
|
|
360
643
|
}
|
|
361
644
|
|
|
645
|
+
/**
|
|
646
|
+
* Returns a new buffer attribute with copied values from this instance.
|
|
647
|
+
*
|
|
648
|
+
* @return {BufferAttribute} A clone of this instance.
|
|
649
|
+
*/
|
|
362
650
|
clone() {
|
|
363
651
|
|
|
364
652
|
return new this.constructor( this.array, this.itemSize ).copy( this );
|
|
365
653
|
|
|
366
654
|
}
|
|
367
655
|
|
|
656
|
+
/**
|
|
657
|
+
* Serializes the buffer attribute into JSON.
|
|
658
|
+
*
|
|
659
|
+
* @return {Object} A JSON object representing the serialized buffer attribute.
|
|
660
|
+
*/
|
|
368
661
|
toJSON() {
|
|
369
662
|
|
|
370
663
|
const data = {
|
|
@@ -383,10 +676,21 @@ class BufferAttribute {
|
|
|
383
676
|
|
|
384
677
|
}
|
|
385
678
|
|
|
386
|
-
|
|
387
|
-
|
|
679
|
+
/**
|
|
680
|
+
* Convenient class that can be used when creating a `Int8` buffer attribute with
|
|
681
|
+
* a plain `Array` instance.
|
|
682
|
+
*
|
|
683
|
+
* @augments BufferAttribute
|
|
684
|
+
*/
|
|
388
685
|
class Int8BufferAttribute extends BufferAttribute {
|
|
389
686
|
|
|
687
|
+
/**
|
|
688
|
+
* Constructs a new buffer attribute.
|
|
689
|
+
*
|
|
690
|
+
* @param {(Array<number>|Int8Array)} array - The array holding the attribute data.
|
|
691
|
+
* @param {number} itemSize - The item size.
|
|
692
|
+
* @param {boolean} [normalized=false] - Whether the data are normalized or not.
|
|
693
|
+
*/
|
|
390
694
|
constructor( array, itemSize, normalized ) {
|
|
391
695
|
|
|
392
696
|
super( new Int8Array( array ), itemSize, normalized );
|
|
@@ -395,8 +699,21 @@ class Int8BufferAttribute extends BufferAttribute {
|
|
|
395
699
|
|
|
396
700
|
}
|
|
397
701
|
|
|
702
|
+
/**
|
|
703
|
+
* Convenient class that can be used when creating a `UInt8` buffer attribute with
|
|
704
|
+
* a plain `Array` instance.
|
|
705
|
+
*
|
|
706
|
+
* @augments BufferAttribute
|
|
707
|
+
*/
|
|
398
708
|
class Uint8BufferAttribute extends BufferAttribute {
|
|
399
709
|
|
|
710
|
+
/**
|
|
711
|
+
* Constructs a new buffer attribute.
|
|
712
|
+
*
|
|
713
|
+
* @param {(Array<number>|Uint8Array)} array - The array holding the attribute data.
|
|
714
|
+
* @param {number} itemSize - The item size.
|
|
715
|
+
* @param {boolean} [normalized=false] - Whether the data are normalized or not.
|
|
716
|
+
*/
|
|
400
717
|
constructor( array, itemSize, normalized ) {
|
|
401
718
|
|
|
402
719
|
super( new Uint8Array( array ), itemSize, normalized );
|
|
@@ -405,8 +722,21 @@ class Uint8BufferAttribute extends BufferAttribute {
|
|
|
405
722
|
|
|
406
723
|
}
|
|
407
724
|
|
|
725
|
+
/**
|
|
726
|
+
* Convenient class that can be used when creating a `UInt8Clamped` buffer attribute with
|
|
727
|
+
* a plain `Array` instance.
|
|
728
|
+
*
|
|
729
|
+
* @augments BufferAttribute
|
|
730
|
+
*/
|
|
408
731
|
class Uint8ClampedBufferAttribute extends BufferAttribute {
|
|
409
732
|
|
|
733
|
+
/**
|
|
734
|
+
* Constructs a new buffer attribute.
|
|
735
|
+
*
|
|
736
|
+
* @param {(Array<number>|Uint8ClampedArray)} array - The array holding the attribute data.
|
|
737
|
+
* @param {number} itemSize - The item size.
|
|
738
|
+
* @param {boolean} [normalized=false] - Whether the data are normalized or not.
|
|
739
|
+
*/
|
|
410
740
|
constructor( array, itemSize, normalized ) {
|
|
411
741
|
|
|
412
742
|
super( new Uint8ClampedArray( array ), itemSize, normalized );
|
|
@@ -415,8 +745,21 @@ class Uint8ClampedBufferAttribute extends BufferAttribute {
|
|
|
415
745
|
|
|
416
746
|
}
|
|
417
747
|
|
|
748
|
+
/**
|
|
749
|
+
* Convenient class that can be used when creating a `Int16` buffer attribute with
|
|
750
|
+
* a plain `Array` instance.
|
|
751
|
+
*
|
|
752
|
+
* @augments BufferAttribute
|
|
753
|
+
*/
|
|
418
754
|
class Int16BufferAttribute extends BufferAttribute {
|
|
419
755
|
|
|
756
|
+
/**
|
|
757
|
+
* Constructs a new buffer attribute.
|
|
758
|
+
*
|
|
759
|
+
* @param {(Array<number>|Int16Array)} array - The array holding the attribute data.
|
|
760
|
+
* @param {number} itemSize - The item size.
|
|
761
|
+
* @param {boolean} [normalized=false] - Whether the data are normalized or not.
|
|
762
|
+
*/
|
|
420
763
|
constructor( array, itemSize, normalized ) {
|
|
421
764
|
|
|
422
765
|
super( new Int16Array( array ), itemSize, normalized );
|
|
@@ -425,8 +768,21 @@ class Int16BufferAttribute extends BufferAttribute {
|
|
|
425
768
|
|
|
426
769
|
}
|
|
427
770
|
|
|
771
|
+
/**
|
|
772
|
+
* Convenient class that can be used when creating a `UInt16` buffer attribute with
|
|
773
|
+
* a plain `Array` instance.
|
|
774
|
+
*
|
|
775
|
+
* @augments BufferAttribute
|
|
776
|
+
*/
|
|
428
777
|
class Uint16BufferAttribute extends BufferAttribute {
|
|
429
778
|
|
|
779
|
+
/**
|
|
780
|
+
* Constructs a new buffer attribute.
|
|
781
|
+
*
|
|
782
|
+
* @param {(Array<number>|Uint16Array)} array - The array holding the attribute data.
|
|
783
|
+
* @param {number} itemSize - The item size.
|
|
784
|
+
* @param {boolean} [normalized=false] - Whether the data are normalized or not.
|
|
785
|
+
*/
|
|
430
786
|
constructor( array, itemSize, normalized ) {
|
|
431
787
|
|
|
432
788
|
super( new Uint16Array( array ), itemSize, normalized );
|
|
@@ -435,8 +791,21 @@ class Uint16BufferAttribute extends BufferAttribute {
|
|
|
435
791
|
|
|
436
792
|
}
|
|
437
793
|
|
|
794
|
+
/**
|
|
795
|
+
* Convenient class that can be used when creating a `Int32` buffer attribute with
|
|
796
|
+
* a plain `Array` instance.
|
|
797
|
+
*
|
|
798
|
+
* @augments BufferAttribute
|
|
799
|
+
*/
|
|
438
800
|
class Int32BufferAttribute extends BufferAttribute {
|
|
439
801
|
|
|
802
|
+
/**
|
|
803
|
+
* Constructs a new buffer attribute.
|
|
804
|
+
*
|
|
805
|
+
* @param {(Array<number>|Int32Array)} array - The array holding the attribute data.
|
|
806
|
+
* @param {number} itemSize - The item size.
|
|
807
|
+
* @param {boolean} [normalized=false] - Whether the data are normalized or not.
|
|
808
|
+
*/
|
|
440
809
|
constructor( array, itemSize, normalized ) {
|
|
441
810
|
|
|
442
811
|
super( new Int32Array( array ), itemSize, normalized );
|
|
@@ -445,8 +814,21 @@ class Int32BufferAttribute extends BufferAttribute {
|
|
|
445
814
|
|
|
446
815
|
}
|
|
447
816
|
|
|
817
|
+
/**
|
|
818
|
+
* Convenient class that can be used when creating a `UInt32` buffer attribute with
|
|
819
|
+
* a plain `Array` instance.
|
|
820
|
+
*
|
|
821
|
+
* @augments BufferAttribute
|
|
822
|
+
*/
|
|
448
823
|
class Uint32BufferAttribute extends BufferAttribute {
|
|
449
824
|
|
|
825
|
+
/**
|
|
826
|
+
* Constructs a new buffer attribute.
|
|
827
|
+
*
|
|
828
|
+
* @param {(Array<number>|Uint32Array)} array - The array holding the attribute data.
|
|
829
|
+
* @param {number} itemSize - The item size.
|
|
830
|
+
* @param {boolean} [normalized=false] - Whether the data are normalized or not.
|
|
831
|
+
*/
|
|
450
832
|
constructor( array, itemSize, normalized ) {
|
|
451
833
|
|
|
452
834
|
super( new Uint32Array( array ), itemSize, normalized );
|
|
@@ -455,8 +837,24 @@ class Uint32BufferAttribute extends BufferAttribute {
|
|
|
455
837
|
|
|
456
838
|
}
|
|
457
839
|
|
|
840
|
+
/**
|
|
841
|
+
* Convenient class that can be used when creating a `Float16` buffer attribute with
|
|
842
|
+
* a plain `Array` instance.
|
|
843
|
+
*
|
|
844
|
+
* This class automatically converts to to and from FP16 since `Float16Array` is not
|
|
845
|
+
* natively supported in JavaScript.
|
|
846
|
+
*
|
|
847
|
+
* @augments BufferAttribute
|
|
848
|
+
*/
|
|
458
849
|
class Float16BufferAttribute extends BufferAttribute {
|
|
459
850
|
|
|
851
|
+
/**
|
|
852
|
+
* Constructs a new buffer attribute.
|
|
853
|
+
*
|
|
854
|
+
* @param {(Array<number>|Uint16Array)} array - The array holding the attribute data.
|
|
855
|
+
* @param {number} itemSize - The item size.
|
|
856
|
+
* @param {boolean} [normalized=false] - Whether the data are normalized or not.
|
|
857
|
+
*/
|
|
460
858
|
constructor( array, itemSize, normalized ) {
|
|
461
859
|
|
|
462
860
|
super( new Uint16Array( array ), itemSize, normalized );
|
|
@@ -607,9 +1005,21 @@ class Float16BufferAttribute extends BufferAttribute {
|
|
|
607
1005
|
|
|
608
1006
|
}
|
|
609
1007
|
|
|
610
|
-
|
|
1008
|
+
/**
|
|
1009
|
+
* Convenient class that can be used when creating a `Float32` buffer attribute with
|
|
1010
|
+
* a plain `Array` instance.
|
|
1011
|
+
*
|
|
1012
|
+
* @augments BufferAttribute
|
|
1013
|
+
*/
|
|
611
1014
|
class Float32BufferAttribute extends BufferAttribute {
|
|
612
1015
|
|
|
1016
|
+
/**
|
|
1017
|
+
* Constructs a new buffer attribute.
|
|
1018
|
+
*
|
|
1019
|
+
* @param {(Array<number>|Float32Array)} array - The array holding the attribute data.
|
|
1020
|
+
* @param {number} itemSize - The item size.
|
|
1021
|
+
* @param {boolean} [normalized=false] - Whether the data are normalized or not.
|
|
1022
|
+
*/
|
|
613
1023
|
constructor( array, itemSize, normalized ) {
|
|
614
1024
|
|
|
615
1025
|
super( new Float32Array( array ), itemSize, normalized );
|