super-three 0.172.0 → 0.173.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/LICENSE +1 -1
  2. package/build/three.cjs +439 -380
  3. package/build/three.core.js +413 -41
  4. package/build/three.core.min.js +2 -2
  5. package/build/three.module.js +28 -344
  6. package/build/three.module.min.js +2 -2
  7. package/build/three.tsl.js +11 -3
  8. package/build/three.tsl.min.js +2 -2
  9. package/build/three.webgpu.js +7550 -1798
  10. package/build/three.webgpu.min.js +2 -2
  11. package/build/three.webgpu.nodes.js +7551 -1798
  12. package/build/three.webgpu.nodes.min.js +2 -2
  13. package/examples/jsm/animation/CCDIKSolver.js +6 -5
  14. package/examples/jsm/capabilities/WebGPU.js +1 -1
  15. package/examples/jsm/controls/ArcballControls.js +23 -21
  16. package/examples/jsm/exporters/GLTFExporter.js +26 -25
  17. package/examples/jsm/geometries/TextGeometry.js +1 -12
  18. package/examples/jsm/interactive/InteractiveGroup.js +108 -51
  19. package/examples/jsm/libs/demuxer_mp4.js +109 -0
  20. package/examples/jsm/loaders/GCodeLoader.js +3 -1
  21. package/examples/jsm/loaders/GLTFLoader.js +0 -2
  22. package/examples/jsm/loaders/TDSLoader.js +0 -1
  23. package/examples/jsm/materials/MeshGouraudMaterial.js +2 -0
  24. package/examples/jsm/misc/GPUComputationRenderer.js +6 -7
  25. package/examples/jsm/misc/ProgressiveLightMap.js +4 -3
  26. package/examples/jsm/misc/ProgressiveLightMapGPU.js +4 -3
  27. package/examples/jsm/misc/Volume.js +7 -5
  28. package/examples/jsm/misc/VolumeSlice.js +5 -3
  29. package/examples/jsm/objects/WaterMesh.js +25 -20
  30. package/examples/jsm/physics/JoltPhysics.js +7 -7
  31. package/examples/jsm/physics/RapierPhysics.js +4 -4
  32. package/examples/jsm/postprocessing/OutputPass.js +2 -0
  33. package/examples/jsm/shaders/OutputShader.js +5 -1
  34. package/examples/jsm/transpiler/GLSLDecoder.js +2 -2
  35. package/examples/jsm/transpiler/TSLEncoder.js +2 -0
  36. package/package.json +1 -1
  37. package/src/Three.Core.js +2 -0
  38. package/src/Three.TSL.js +9 -1
  39. package/src/cameras/ArrayCamera.js +1 -0
  40. package/src/constants.js +6 -1
  41. package/src/core/BufferAttribute.js +4 -0
  42. package/src/core/EventDispatcher.js +8 -6
  43. package/src/extras/ImageUtils.js +1 -11
  44. package/src/loaders/nodes/NodeObjectLoader.js +1 -1
  45. package/src/materials/nodes/MeshBasicNodeMaterial.js +1 -1
  46. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +1 -1
  47. package/src/materials/nodes/NodeMaterial.js +5 -5
  48. package/src/materials/nodes/NodeMaterials.js +0 -1
  49. package/src/materials/nodes/PointsNodeMaterial.js +109 -7
  50. package/src/materials/nodes/SpriteNodeMaterial.js +1 -1
  51. package/src/materials/nodes/VolumeNodeMaterial.js +3 -3
  52. package/src/materials/nodes/manager/NodeMaterialObserver.js +8 -0
  53. package/src/nodes/Nodes.js +4 -0
  54. package/src/nodes/TSL.js +4 -0
  55. package/src/nodes/accessors/Arrays.js +30 -8
  56. package/src/nodes/accessors/BatchNode.js +3 -3
  57. package/src/nodes/accessors/BufferAttributeNode.js +1 -1
  58. package/src/nodes/accessors/Camera.js +64 -3
  59. package/src/nodes/accessors/InstanceNode.js +1 -1
  60. package/src/nodes/accessors/MaterialNode.js +9 -9
  61. package/src/nodes/accessors/ModelViewProjectionNode.js +1 -1
  62. package/src/nodes/accessors/Normal.js +6 -2
  63. package/src/nodes/accessors/Object3DNode.js +0 -1
  64. package/src/nodes/accessors/Position.js +6 -6
  65. package/src/nodes/accessors/ReferenceBaseNode.js +2 -4
  66. package/src/nodes/accessors/ReferenceNode.js +2 -3
  67. package/src/nodes/accessors/StorageBufferNode.js +42 -5
  68. package/src/nodes/accessors/Tangent.js +2 -2
  69. package/src/nodes/accessors/Texture3DNode.js +1 -1
  70. package/src/nodes/accessors/TextureNode.js +12 -5
  71. package/src/nodes/accessors/UniformArrayNode.js +9 -3
  72. package/src/nodes/accessors/VelocityNode.js +0 -2
  73. package/src/nodes/code/ScriptableNode.js +3 -3
  74. package/src/nodes/core/ArrayNode.js +125 -0
  75. package/src/nodes/core/ConstNode.js +8 -0
  76. package/src/nodes/core/Node.js +14 -1
  77. package/src/nodes/core/NodeBuilder.js +229 -19
  78. package/src/nodes/core/NodeUtils.js +11 -1
  79. package/src/nodes/core/NodeVar.js +17 -1
  80. package/src/nodes/core/OutputStructNode.js +19 -9
  81. package/src/nodes/core/StackNode.js +20 -1
  82. package/src/nodes/core/StructNode.js +121 -0
  83. package/src/nodes/core/StructType.js +13 -0
  84. package/src/nodes/core/StructTypeNode.js +82 -21
  85. package/src/nodes/core/TempNode.js +1 -1
  86. package/src/nodes/core/VarNode.js +94 -7
  87. package/src/nodes/core/VaryingNode.js +19 -3
  88. package/src/nodes/display/BlendModes.js +88 -1
  89. package/src/nodes/display/BumpMapNode.js +6 -6
  90. package/src/nodes/display/NormalMapNode.js +6 -6
  91. package/src/nodes/display/PassNode.js +3 -1
  92. package/src/nodes/display/ScreenNode.js +9 -0
  93. package/src/nodes/fog/Fog.js +17 -0
  94. package/src/nodes/gpgpu/AtomicFunctionNode.js +20 -4
  95. package/src/nodes/gpgpu/ComputeBuiltinNode.js +8 -0
  96. package/src/nodes/gpgpu/WorkgroupInfoNode.js +1 -1
  97. package/src/nodes/lighting/ShadowNode.js +1 -1
  98. package/src/nodes/math/ConditionalNode.js +8 -1
  99. package/src/nodes/math/MathNode.js +14 -1
  100. package/src/nodes/math/OperatorNode.js +96 -18
  101. package/src/nodes/pmrem/PMREMUtils.js +1 -1
  102. package/src/nodes/shapes/Shapes.js +33 -0
  103. package/src/nodes/tsl/TSLBase.js +1 -0
  104. package/src/nodes/tsl/TSLCore.js +22 -2
  105. package/src/nodes/utils/ArrayElementNode.js +1 -1
  106. package/src/nodes/utils/LoopNode.js +8 -1
  107. package/src/nodes/utils/MemberNode.js +68 -0
  108. package/src/nodes/utils/StorageArrayElementNode.js +14 -0
  109. package/src/nodes/utils/Timer.js +21 -0
  110. package/src/objects/BatchedMesh.js +1 -1
  111. package/src/objects/Line.js +6 -6
  112. package/src/renderers/WebGLRenderer.js +7 -0
  113. package/src/renderers/common/Animation.js +23 -1
  114. package/src/renderers/common/Backend.js +58 -15
  115. package/src/renderers/common/Background.js +14 -0
  116. package/src/renderers/common/Binding.js +1 -1
  117. package/src/renderers/common/BufferUtils.js +1 -1
  118. package/src/renderers/common/BundleGroup.js +1 -1
  119. package/src/renderers/common/ChainMap.js +9 -7
  120. package/src/renderers/common/ClippingContext.js +1 -1
  121. package/src/renderers/common/Color4.js +7 -3
  122. package/src/renderers/common/Geometries.js +2 -23
  123. package/src/renderers/common/Info.js +1 -45
  124. package/src/renderers/common/Lighting.js +8 -6
  125. package/src/renderers/common/Pipelines.js +3 -3
  126. package/src/renderers/common/PostProcessing.js +24 -8
  127. package/src/renderers/common/QuadMesh.js +1 -1
  128. package/src/renderers/common/RenderBundles.js +9 -3
  129. package/src/renderers/common/RenderContext.js +37 -3
  130. package/src/renderers/common/RenderContexts.js +30 -17
  131. package/src/renderers/common/RenderList.js +2 -2
  132. package/src/renderers/common/RenderLists.js +9 -3
  133. package/src/renderers/common/RenderObject.js +76 -17
  134. package/src/renderers/common/RenderObjects.js +9 -7
  135. package/src/renderers/common/Renderer.js +86 -67
  136. package/src/renderers/common/SampledTexture.js +0 -1
  137. package/src/renderers/common/StorageBufferAttribute.js +1 -1
  138. package/src/renderers/common/StorageInstancedBufferAttribute.js +1 -1
  139. package/src/renderers/common/StorageTexture.js +1 -1
  140. package/src/renderers/common/Textures.js +14 -7
  141. package/src/renderers/common/TimestampQueryPool.js +39 -0
  142. package/src/renderers/common/Uniform.js +37 -1
  143. package/src/renderers/common/UniformsGroup.js +2 -0
  144. package/src/renderers/common/XRManager.js +1193 -0
  145. package/src/renderers/common/XRRenderTarget.js +74 -0
  146. package/src/renderers/common/extras/PMREMGenerator.js +53 -8
  147. package/src/renderers/common/nodes/NodeBuilderState.js +4 -4
  148. package/src/renderers/common/nodes/NodeLibrary.js +5 -5
  149. package/src/renderers/common/nodes/NodeSampledTexture.js +0 -1
  150. package/src/renderers/common/nodes/NodeUniform.js +54 -2
  151. package/src/renderers/common/nodes/Nodes.js +25 -18
  152. package/src/renderers/webgl/WebGLBackground.js +4 -0
  153. package/src/renderers/webgl-fallback/WebGLBackend.js +295 -110
  154. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +347 -17
  155. package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +57 -0
  156. package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +28 -0
  157. package/src/renderers/webgl-fallback/utils/WebGLExtensions.js +45 -0
  158. package/src/renderers/webgl-fallback/utils/WebGLState.js +323 -11
  159. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +167 -21
  160. package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +359 -0
  161. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +43 -0
  162. package/src/renderers/webgpu/WebGPUBackend.js +132 -149
  163. package/src/renderers/webgpu/WebGPURenderer.Nodes.js +6 -4
  164. package/src/renderers/webgpu/WebGPURenderer.js +5 -4
  165. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +615 -41
  166. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +85 -6
  167. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +85 -0
  168. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +102 -3
  169. package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +98 -1
  170. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +257 -9
  171. package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +274 -0
  172. package/src/renderers/webgpu/utils/WebGPUUtils.js +86 -4
  173. package/src/renderers/webxr/WebXRManager.js +13 -2
  174. package/src/textures/VideoFrameTexture.js +35 -0
  175. package/examples/jsm/geometries/InstancedPointsGeometry.js +0 -176
  176. package/examples/jsm/objects/InstancedPoints.js +0 -19
  177. package/src/materials/nodes/InstancedPointsNodeMaterial.js +0 -209
  178. package/src/nodes/accessors/InstancedPointsMaterialNode.js +0 -37
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * @license
3
- * Copyright 2010-2024 Three.js Authors
3
+ * Copyright 2010-2025 Three.js Authors
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
- const REVISION = '172';
6
+ const REVISION = '173';
7
7
 
8
8
  const MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };
9
9
  const TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };
@@ -215,6 +215,11 @@ const GLSL3 = '300 es';
215
215
  const WebGLCoordinateSystem = 2000;
216
216
  const WebGPUCoordinateSystem = 2001;
217
217
 
218
+ const TimestampQuery = {
219
+ COMPUTE: 'compute',
220
+ RENDER: 'render'
221
+ };
222
+
218
223
  /**
219
224
  * https://github.com/mrdoob/eventdispatcher.js/
220
225
  */
@@ -243,19 +248,20 @@ class EventDispatcher {
243
248
 
244
249
  hasEventListener( type, listener ) {
245
250
 
246
- if ( this._listeners === undefined ) return false;
247
-
248
251
  const listeners = this._listeners;
249
252
 
253
+ if ( listeners === undefined ) return false;
254
+
250
255
  return listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1;
251
256
 
252
257
  }
253
258
 
254
259
  removeEventListener( type, listener ) {
255
260
 
256
- if ( this._listeners === undefined ) return;
257
-
258
261
  const listeners = this._listeners;
262
+
263
+ if ( listeners === undefined ) return;
264
+
259
265
  const listenerArray = listeners[ type ];
260
266
 
261
267
  if ( listenerArray !== undefined ) {
@@ -274,9 +280,10 @@ class EventDispatcher {
274
280
 
275
281
  dispatchEvent( event ) {
276
282
 
277
- if ( this._listeners === undefined ) return;
278
-
279
283
  const listeners = this._listeners;
284
+
285
+ if ( listeners === undefined ) return;
286
+
280
287
  const listenerArray = listeners[ event.type ];
281
288
 
282
289
  if ( listenerArray !== undefined ) {
@@ -1854,17 +1861,7 @@ class ImageUtils {
1854
1861
 
1855
1862
  }
1856
1863
 
1857
- if ( canvas.width > 2048 || canvas.height > 2048 ) {
1858
-
1859
- console.warn( 'THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons', image );
1860
-
1861
- return canvas.toDataURL( 'image/jpeg', 0.6 );
1862
-
1863
- } else {
1864
-
1865
- return canvas.toDataURL( 'image/png' );
1866
-
1867
- }
1864
+ return canvas.toDataURL( 'image/png' );
1868
1865
 
1869
1866
  }
1870
1867
 
@@ -10000,6 +9997,8 @@ const DataUtils = {
10000
9997
  const _vector$9 = /*@__PURE__*/ new Vector3();
10001
9998
  const _vector2$1 = /*@__PURE__*/ new Vector2();
10002
9999
 
10000
+ let _id$2 = 0;
10001
+
10003
10002
  class BufferAttribute {
10004
10003
 
10005
10004
  constructor( array, itemSize, normalized = false ) {
@@ -10012,6 +10011,8 @@ class BufferAttribute {
10012
10011
 
10013
10012
  this.isBufferAttribute = true;
10014
10013
 
10014
+ Object.defineProperty( this, 'id', { value: _id$2 ++ } );
10015
+
10015
10016
  this.name = '';
10016
10017
 
10017
10018
  this.array = array;
@@ -13249,6 +13250,358 @@ class WebGLCubeRenderTarget extends WebGLRenderTarget {
13249
13250
 
13250
13251
  }
13251
13252
 
13253
+ class Group extends Object3D {
13254
+
13255
+ constructor() {
13256
+
13257
+ super();
13258
+
13259
+ this.isGroup = true;
13260
+
13261
+ this.type = 'Group';
13262
+
13263
+ }
13264
+
13265
+ }
13266
+
13267
+ const _moveEvent = { type: 'move' };
13268
+
13269
+ class WebXRController {
13270
+
13271
+ constructor() {
13272
+
13273
+ this._targetRay = null;
13274
+ this._grip = null;
13275
+ this._hand = null;
13276
+
13277
+ }
13278
+
13279
+ getHandSpace() {
13280
+
13281
+ if ( this._hand === null ) {
13282
+
13283
+ this._hand = new Group();
13284
+ this._hand.matrixAutoUpdate = false;
13285
+ this._hand.visible = false;
13286
+
13287
+ this._hand.joints = {};
13288
+ this._hand.inputState = { pinching: false };
13289
+
13290
+ }
13291
+
13292
+ return this._hand;
13293
+
13294
+ }
13295
+
13296
+ getTargetRaySpace() {
13297
+
13298
+ if ( this._targetRay === null ) {
13299
+
13300
+ this._targetRay = new Group();
13301
+ this._targetRay.matrixAutoUpdate = false;
13302
+ this._targetRay.visible = false;
13303
+ this._targetRay.hasLinearVelocity = false;
13304
+ this._targetRay.linearVelocity = new Vector3();
13305
+ this._targetRay.hasAngularVelocity = false;
13306
+ this._targetRay.angularVelocity = new Vector3();
13307
+
13308
+ }
13309
+
13310
+ return this._targetRay;
13311
+
13312
+ }
13313
+
13314
+ getGripSpace() {
13315
+
13316
+ if ( this._grip === null ) {
13317
+
13318
+ this._grip = new Group();
13319
+ this._grip.matrixAutoUpdate = false;
13320
+ this._grip.visible = false;
13321
+ this._grip.hasLinearVelocity = false;
13322
+ this._grip.linearVelocity = new Vector3();
13323
+ this._grip.hasAngularVelocity = false;
13324
+ this._grip.angularVelocity = new Vector3();
13325
+
13326
+ }
13327
+
13328
+ return this._grip;
13329
+
13330
+ }
13331
+
13332
+ dispatchEvent( event ) {
13333
+
13334
+ if ( this._targetRay !== null ) {
13335
+
13336
+ this._targetRay.dispatchEvent( event );
13337
+
13338
+ }
13339
+
13340
+ if ( this._grip !== null ) {
13341
+
13342
+ this._grip.dispatchEvent( event );
13343
+
13344
+ }
13345
+
13346
+ if ( this._hand !== null ) {
13347
+
13348
+ this._hand.dispatchEvent( event );
13349
+
13350
+ }
13351
+
13352
+ return this;
13353
+
13354
+ }
13355
+
13356
+ connect( inputSource ) {
13357
+
13358
+ if ( inputSource && inputSource.hand ) {
13359
+
13360
+ const hand = this._hand;
13361
+
13362
+ if ( hand ) {
13363
+
13364
+ for ( const inputjoint of inputSource.hand.values() ) {
13365
+
13366
+ // Initialize hand with joints when connected
13367
+ this._getHandJoint( hand, inputjoint );
13368
+
13369
+ }
13370
+
13371
+ }
13372
+
13373
+ }
13374
+
13375
+ this.dispatchEvent( { type: 'connected', data: inputSource } );
13376
+
13377
+ return this;
13378
+
13379
+ }
13380
+
13381
+ disconnect( inputSource ) {
13382
+
13383
+ this.dispatchEvent( { type: 'disconnected', data: inputSource } );
13384
+
13385
+ if ( this._targetRay !== null ) {
13386
+
13387
+ this._targetRay.visible = false;
13388
+
13389
+ }
13390
+
13391
+ if ( this._grip !== null ) {
13392
+
13393
+ this._grip.visible = false;
13394
+
13395
+ }
13396
+
13397
+ if ( this._hand !== null ) {
13398
+
13399
+ this._hand.visible = false;
13400
+
13401
+ }
13402
+
13403
+ return this;
13404
+
13405
+ }
13406
+
13407
+ update( inputSource, frame, referenceSpace ) {
13408
+
13409
+ let inputPose = null;
13410
+ let gripPose = null;
13411
+ let handPose = null;
13412
+
13413
+ const targetRay = this._targetRay;
13414
+ const grip = this._grip;
13415
+ const hand = this._hand;
13416
+
13417
+ if ( inputSource && frame.session.visibilityState !== 'visible-blurred' ) {
13418
+
13419
+ if ( hand && inputSource.hand ) {
13420
+
13421
+ handPose = true;
13422
+
13423
+ for ( const inputjoint of inputSource.hand.values() ) {
13424
+
13425
+ // Update the joints groups with the XRJoint poses
13426
+ const jointPose = frame.getJointPose( inputjoint, referenceSpace );
13427
+
13428
+ // The transform of this joint will be updated with the joint pose on each frame
13429
+ const joint = this._getHandJoint( hand, inputjoint );
13430
+
13431
+ if ( jointPose !== null ) {
13432
+
13433
+ joint.matrix.fromArray( jointPose.transform.matrix );
13434
+ joint.matrix.decompose( joint.position, joint.rotation, joint.scale );
13435
+ joint.matrixWorldNeedsUpdate = true;
13436
+ joint.jointRadius = jointPose.radius;
13437
+
13438
+ }
13439
+
13440
+ joint.visible = jointPose !== null;
13441
+
13442
+ }
13443
+
13444
+ // Custom events
13445
+
13446
+ // Check pinchz
13447
+ const indexTip = hand.joints[ 'index-finger-tip' ];
13448
+ const thumbTip = hand.joints[ 'thumb-tip' ];
13449
+ const distance = indexTip.position.distanceTo( thumbTip.position );
13450
+
13451
+ const distanceToPinch = 0.02;
13452
+ const threshold = 0.005;
13453
+
13454
+ if ( hand.inputState.pinching && distance > distanceToPinch + threshold ) {
13455
+
13456
+ hand.inputState.pinching = false;
13457
+ this.dispatchEvent( {
13458
+ type: 'pinchend',
13459
+ handedness: inputSource.handedness,
13460
+ target: this
13461
+ } );
13462
+
13463
+ } else if ( ! hand.inputState.pinching && distance <= distanceToPinch - threshold ) {
13464
+
13465
+ hand.inputState.pinching = true;
13466
+ this.dispatchEvent( {
13467
+ type: 'pinchstart',
13468
+ handedness: inputSource.handedness,
13469
+ target: this
13470
+ } );
13471
+
13472
+ }
13473
+
13474
+ } else {
13475
+
13476
+ if ( grip !== null && inputSource.gripSpace ) {
13477
+
13478
+ gripPose = frame.getPose( inputSource.gripSpace, referenceSpace );
13479
+
13480
+ if ( gripPose !== null ) {
13481
+
13482
+ grip.matrix.fromArray( gripPose.transform.matrix );
13483
+ grip.matrix.decompose( grip.position, grip.rotation, grip.scale );
13484
+ grip.matrixWorldNeedsUpdate = true;
13485
+
13486
+ if ( gripPose.linearVelocity ) {
13487
+
13488
+ grip.hasLinearVelocity = true;
13489
+ grip.linearVelocity.copy( gripPose.linearVelocity );
13490
+
13491
+ } else {
13492
+
13493
+ grip.hasLinearVelocity = false;
13494
+
13495
+ }
13496
+
13497
+ if ( gripPose.angularVelocity ) {
13498
+
13499
+ grip.hasAngularVelocity = true;
13500
+ grip.angularVelocity.copy( gripPose.angularVelocity );
13501
+
13502
+ } else {
13503
+
13504
+ grip.hasAngularVelocity = false;
13505
+
13506
+ }
13507
+
13508
+ }
13509
+
13510
+ }
13511
+
13512
+ }
13513
+
13514
+ if ( targetRay !== null ) {
13515
+
13516
+ inputPose = frame.getPose( inputSource.targetRaySpace, referenceSpace );
13517
+
13518
+ // Some runtimes (namely Vive Cosmos with Vive OpenXR Runtime) have only grip space and ray space is equal to it
13519
+ if ( inputPose === null && gripPose !== null ) {
13520
+
13521
+ inputPose = gripPose;
13522
+
13523
+ }
13524
+
13525
+ if ( inputPose !== null ) {
13526
+
13527
+ targetRay.matrix.fromArray( inputPose.transform.matrix );
13528
+ targetRay.matrix.decompose( targetRay.position, targetRay.rotation, targetRay.scale );
13529
+ targetRay.matrixWorldNeedsUpdate = true;
13530
+
13531
+ if ( inputPose.linearVelocity ) {
13532
+
13533
+ targetRay.hasLinearVelocity = true;
13534
+ targetRay.linearVelocity.copy( inputPose.linearVelocity );
13535
+
13536
+ } else {
13537
+
13538
+ targetRay.hasLinearVelocity = false;
13539
+
13540
+ }
13541
+
13542
+ if ( inputPose.angularVelocity ) {
13543
+
13544
+ targetRay.hasAngularVelocity = true;
13545
+ targetRay.angularVelocity.copy( inputPose.angularVelocity );
13546
+
13547
+ } else {
13548
+
13549
+ targetRay.hasAngularVelocity = false;
13550
+
13551
+ }
13552
+
13553
+ this.dispatchEvent( _moveEvent );
13554
+
13555
+ }
13556
+
13557
+ }
13558
+
13559
+
13560
+ }
13561
+
13562
+ if ( targetRay !== null ) {
13563
+
13564
+ targetRay.visible = ( inputPose !== null );
13565
+
13566
+ }
13567
+
13568
+ if ( grip !== null ) {
13569
+
13570
+ grip.visible = ( gripPose !== null );
13571
+
13572
+ }
13573
+
13574
+ if ( hand !== null ) {
13575
+
13576
+ hand.visible = ( handPose !== null );
13577
+
13578
+ }
13579
+
13580
+ return this;
13581
+
13582
+ }
13583
+
13584
+ // private method
13585
+
13586
+ _getHandJoint( hand, inputjoint ) {
13587
+
13588
+ if ( hand.joints[ inputjoint.jointName ] === undefined ) {
13589
+
13590
+ const joint = new Group();
13591
+ joint.matrixAutoUpdate = false;
13592
+ joint.visible = false;
13593
+ hand.joints[ inputjoint.jointName ] = joint;
13594
+
13595
+ hand.add( joint );
13596
+
13597
+ }
13598
+
13599
+ return hand.joints[ inputjoint.jointName ];
13600
+
13601
+ }
13602
+
13603
+ }
13604
+
13252
13605
  class FogExp2 {
13253
13606
 
13254
13607
  constructor( color, density = 0.00025 ) {
@@ -16212,7 +16565,7 @@ class BatchedMesh extends Mesh {
16212
16565
  const instanceInfo = this._instanceInfo;
16213
16566
  for ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {
16214
16567
 
16215
- if ( instanceInfo[ i ].geometryIndex === geometryId ) {
16568
+ if ( instanceInfo[ i ].active && instanceInfo[ i ].geometryIndex === geometryId ) {
16216
16569
 
16217
16570
  this.deleteInstance( i );
16218
16571
 
@@ -17063,7 +17416,7 @@ class Line extends Object3D {
17063
17416
  const a = index.getX( i );
17064
17417
  const b = index.getX( i + 1 );
17065
17418
 
17066
- const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b );
17419
+ const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b, i );
17067
17420
 
17068
17421
  if ( intersect ) {
17069
17422
 
@@ -17078,7 +17431,7 @@ class Line extends Object3D {
17078
17431
  const a = index.getX( end - 1 );
17079
17432
  const b = index.getX( start );
17080
17433
 
17081
- const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b );
17434
+ const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b, end - 1 );
17082
17435
 
17083
17436
  if ( intersect ) {
17084
17437
 
@@ -17095,7 +17448,7 @@ class Line extends Object3D {
17095
17448
 
17096
17449
  for ( let i = start, l = end - 1; i < l; i += step ) {
17097
17450
 
17098
- const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, i, i + 1 );
17451
+ const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, i, i + 1, i );
17099
17452
 
17100
17453
  if ( intersect ) {
17101
17454
 
@@ -17107,7 +17460,7 @@ class Line extends Object3D {
17107
17460
 
17108
17461
  if ( this.isLineLoop ) {
17109
17462
 
17110
- const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, end - 1, start );
17463
+ const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, end - 1, start, end - 1 );
17111
17464
 
17112
17465
  if ( intersect ) {
17113
17466
 
@@ -17154,7 +17507,7 @@ class Line extends Object3D {
17154
17507
 
17155
17508
  }
17156
17509
 
17157
- function checkIntersection( object, raycaster, ray, thresholdSq, a, b ) {
17510
+ function checkIntersection( object, raycaster, ray, thresholdSq, a, b, i ) {
17158
17511
 
17159
17512
  const positionAttribute = object.geometry.attributes.position;
17160
17513
 
@@ -17177,7 +17530,7 @@ function checkIntersection( object, raycaster, ray, thresholdSq, a, b ) {
17177
17530
  // What do we want? intersection point on the ray or on the segment??
17178
17531
  // point: raycaster.ray.at( distance ),
17179
17532
  point: _intersectPointOnSegment.clone().applyMatrix4( object.matrixWorld ),
17180
- index: a,
17533
+ index: i,
17181
17534
  face: null,
17182
17535
  faceIndex: null,
17183
17536
  barycoord: null,
@@ -17456,20 +17809,6 @@ function testPoint( point, index, localThresholdSq, matrixWorld, raycaster, inte
17456
17809
 
17457
17810
  }
17458
17811
 
17459
- class Group extends Object3D {
17460
-
17461
- constructor() {
17462
-
17463
- super();
17464
-
17465
- this.isGroup = true;
17466
-
17467
- this.type = 'Group';
17468
-
17469
- }
17470
-
17471
- }
17472
-
17473
17812
  class VideoTexture extends Texture {
17474
17813
 
17475
17814
  constructor( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {
@@ -17521,6 +17860,38 @@ class VideoTexture extends Texture {
17521
17860
 
17522
17861
  }
17523
17862
 
17863
+ class VideoFrameTexture extends VideoTexture {
17864
+
17865
+ constructor( mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {
17866
+
17867
+ super( {}, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );
17868
+
17869
+ this.isVideoFrameTexture = true;
17870
+
17871
+ }
17872
+
17873
+ update() {
17874
+
17875
+ // overwrites `VideoTexture.update()` with an empty method since
17876
+ // this type of texture is updated via `setFrame()`.
17877
+
17878
+ }
17879
+
17880
+ clone() {
17881
+
17882
+ return new this.constructor().copy( this ); // restoring Texture.clone()
17883
+
17884
+ }
17885
+
17886
+ setFrame( frame ) {
17887
+
17888
+ this.image = frame;
17889
+ this.needsUpdate = true;
17890
+
17891
+ }
17892
+
17893
+ }
17894
+
17524
17895
  class FramebufferTexture extends Texture {
17525
17896
 
17526
17897
  constructor( width, height ) {
@@ -30702,6 +31073,7 @@ class ArrayCamera extends PerspectiveCamera {
30702
31073
  this.isArrayCamera = true;
30703
31074
 
30704
31075
  this.cameras = array;
31076
+ this.index = 0;
30705
31077
 
30706
31078
  }
30707
31079
 
@@ -37061,4 +37433,4 @@ if ( typeof window !== 'undefined' ) {
37061
37433
 
37062
37434
  }
37063
37435
 
37064
- export { ACESFilmicToneMapping, AddEquation, AddOperation, AdditiveAnimationBlendMode, AdditiveBlending, AgXToneMapping, AlphaFormat, AlwaysCompare, AlwaysDepth, AlwaysStencilFunc, AmbientLight, AnimationAction, AnimationClip, AnimationLoader, AnimationMixer, AnimationObjectGroup, AnimationUtils, ArcCurve, ArrayCamera, ArrowHelper, AttachedBindMode, Audio, AudioAnalyser, AudioContext, AudioListener, AudioLoader, AxesHelper, BackSide, BasicDepthPacking, BasicShadowMap, BatchedMesh, Bone, BooleanKeyframeTrack, Box2, Box3, Box3Helper, BoxGeometry, BoxHelper, BufferAttribute, BufferGeometry, BufferGeometryLoader, ByteType, Cache, Camera, CameraHelper, CanvasTexture, CapsuleGeometry, CatmullRomCurve3, CineonToneMapping, CircleGeometry, ClampToEdgeWrapping, Clock, Color, ColorKeyframeTrack, ColorManagement, CompressedArrayTexture, CompressedCubeTexture, CompressedTexture, CompressedTextureLoader, ConeGeometry, ConstantAlphaFactor, ConstantColorFactor, Controls, CubeCamera, CubeReflectionMapping, CubeRefractionMapping, CubeTexture, CubeTextureLoader, CubeUVReflectionMapping, CubicBezierCurve, CubicBezierCurve3, CubicInterpolant, CullFaceBack, CullFaceFront, CullFaceFrontBack, CullFaceNone, Curve, CurvePath, CustomBlending, CustomToneMapping, CylinderGeometry, Cylindrical, Data3DTexture, DataArrayTexture, DataTexture, DataTextureLoader, DataUtils, DecrementStencilOp, DecrementWrapStencilOp, DefaultLoadingManager, DepthFormat, DepthStencilFormat, DepthTexture, DetachedBindMode, DirectionalLight, DirectionalLightHelper, DiscreteInterpolant, DodecahedronGeometry, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicCopyUsage, DynamicDrawUsage, DynamicReadUsage, EdgesGeometry, EllipseCurve, EqualCompare, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, Euler, EventDispatcher, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, GLBufferAttribute, GLSL1, GLSL3, GreaterCompare, GreaterDepth, GreaterEqualCompare, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, GridHelper, Group, HalfFloatType, HemisphereLight, HemisphereLightHelper, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, IncrementStencilOp, IncrementWrapStencilOp, InstancedBufferAttribute, InstancedBufferGeometry, InstancedInterleavedBuffer, InstancedMesh, Int16BufferAttribute, Int32BufferAttribute, Int8BufferAttribute, IntType, InterleavedBuffer, InterleavedBufferAttribute, Interpolant, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InvertStencilOp, KeepStencilOp, KeyframeTrack, LOD, LatheGeometry, Layers, LessCompare, LessDepth, LessEqualCompare, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, Light, LightProbe, Line, Line3, LineBasicMaterial, LineCurve, LineCurve3, LineDashedMaterial, LineLoop, LineSegments, LinearFilter, LinearInterpolant, LinearMipMapLinearFilter, LinearMipMapNearestFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearSRGBColorSpace, LinearToneMapping, LinearTransfer, Loader, LoaderUtils, LoadingManager, LoopOnce, LoopPingPong, LoopRepeat, LuminanceAlphaFormat, LuminanceFormat, MOUSE, Material, MaterialLoader, MathUtils, Matrix2, Matrix3, Matrix4, MaxEquation, Mesh, MeshBasicMaterial, MeshDepthMaterial, MeshDistanceMaterial, MeshLambertMaterial, MeshMatcapMaterial, MeshNormalMaterial, MeshPhongMaterial, MeshPhysicalMaterial, MeshStandardMaterial, MeshToonMaterial, MinEquation, MirroredRepeatWrapping, MixOperation, MultiplyBlending, MultiplyOperation, NearestFilter, NearestMipMapLinearFilter, NearestMipMapNearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, NeutralToneMapping, NeverCompare, NeverDepth, NeverStencilFunc, NoBlending, NoColorSpace, NoToneMapping, NormalAnimationBlendMode, NormalBlending, NotEqualCompare, NotEqualDepth, NotEqualStencilFunc, NumberKeyframeTrack, Object3D, ObjectLoader, ObjectSpaceNormalMap, OctahedronGeometry, OneFactor, OneMinusConstantAlphaFactor, OneMinusConstantColorFactor, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcAlphaFactor, OneMinusSrcColorFactor, OrthographicCamera, PCFShadowMap, PCFSoftShadowMap, Path, PerspectiveCamera, Plane, PlaneGeometry, PlaneHelper, PointLight, PointLightHelper, Points, PointsMaterial, PolarGridHelper, PolyhedronGeometry, PositionalAudio, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, RAD2DEG, RED_GREEN_RGTC2_Format, RED_RGTC1_Format, REVISION, RGBADepthPacking, RGBAFormat, RGBAIntegerFormat, RGBA_ASTC_10x10_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_BPTC_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGBDepthPacking, RGBFormat, RGBIntegerFormat, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGB_S3TC_DXT1_Format, RGDepthPacking, RGFormat, RGIntegerFormat, RawShaderMaterial, Ray, Raycaster, RectAreaLight, RedFormat, RedIntegerFormat, ReinhardToneMapping, RenderTarget, RenderTarget3D, RenderTargetArray, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RingGeometry, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SRGBColorSpace, SRGBTransfer, Scene, ShaderMaterial, ShadowMaterial, Shape, ShapeGeometry, ShapePath, ShapeUtils, ShortType, Skeleton, SkeletonHelper, SkinnedMesh, Source, Sphere, SphereGeometry, Spherical, SphericalHarmonics3, SplineCurve, SpotLight, SpotLightHelper, Sprite, SpriteMaterial, SrcAlphaFactor, SrcAlphaSaturateFactor, SrcColorFactor, StaticCopyUsage, StaticDrawUsage, StaticReadUsage, StereoCamera, StreamCopyUsage, StreamDrawUsage, StreamReadUsage, StringKeyframeTrack, SubtractEquation, SubtractiveBlending, TOUCH, TangentSpaceNormalMap, TetrahedronGeometry, Texture, TextureLoader, TextureUtils, TorusGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsUtils, UnsignedByteType, UnsignedInt248Type, UnsignedInt5999Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, VideoTexture, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLCoordinateSystem, WebGLCubeRenderTarget, WebGLRenderTarget, WebGPUCoordinateSystem, WireframeGeometry, WrapAroundEnding, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, arrayNeedsUint32, cloneUniforms, createCanvasElement, createElementNS, getByteLength, getUnlitUniformColorSpace, mergeUniforms, probeAsync, toNormalizedProjectionMatrix, toReversedProjectionMatrix, warnOnce };
37436
+ export { ACESFilmicToneMapping, AddEquation, AddOperation, AdditiveAnimationBlendMode, AdditiveBlending, AgXToneMapping, AlphaFormat, AlwaysCompare, AlwaysDepth, AlwaysStencilFunc, AmbientLight, AnimationAction, AnimationClip, AnimationLoader, AnimationMixer, AnimationObjectGroup, AnimationUtils, ArcCurve, ArrayCamera, ArrowHelper, AttachedBindMode, Audio, AudioAnalyser, AudioContext, AudioListener, AudioLoader, AxesHelper, BackSide, BasicDepthPacking, BasicShadowMap, BatchedMesh, Bone, BooleanKeyframeTrack, Box2, Box3, Box3Helper, BoxGeometry, BoxHelper, BufferAttribute, BufferGeometry, BufferGeometryLoader, ByteType, Cache, Camera, CameraHelper, CanvasTexture, CapsuleGeometry, CatmullRomCurve3, CineonToneMapping, CircleGeometry, ClampToEdgeWrapping, Clock, Color, ColorKeyframeTrack, ColorManagement, CompressedArrayTexture, CompressedCubeTexture, CompressedTexture, CompressedTextureLoader, ConeGeometry, ConstantAlphaFactor, ConstantColorFactor, Controls, CubeCamera, CubeReflectionMapping, CubeRefractionMapping, CubeTexture, CubeTextureLoader, CubeUVReflectionMapping, CubicBezierCurve, CubicBezierCurve3, CubicInterpolant, CullFaceBack, CullFaceFront, CullFaceFrontBack, CullFaceNone, Curve, CurvePath, CustomBlending, CustomToneMapping, CylinderGeometry, Cylindrical, Data3DTexture, DataArrayTexture, DataTexture, DataTextureLoader, DataUtils, DecrementStencilOp, DecrementWrapStencilOp, DefaultLoadingManager, DepthFormat, DepthStencilFormat, DepthTexture, DetachedBindMode, DirectionalLight, DirectionalLightHelper, DiscreteInterpolant, DodecahedronGeometry, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicCopyUsage, DynamicDrawUsage, DynamicReadUsage, EdgesGeometry, EllipseCurve, EqualCompare, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, Euler, EventDispatcher, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, GLBufferAttribute, GLSL1, GLSL3, GreaterCompare, GreaterDepth, GreaterEqualCompare, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, GridHelper, Group, HalfFloatType, HemisphereLight, HemisphereLightHelper, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, IncrementStencilOp, IncrementWrapStencilOp, InstancedBufferAttribute, InstancedBufferGeometry, InstancedInterleavedBuffer, InstancedMesh, Int16BufferAttribute, Int32BufferAttribute, Int8BufferAttribute, IntType, InterleavedBuffer, InterleavedBufferAttribute, Interpolant, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InvertStencilOp, KeepStencilOp, KeyframeTrack, LOD, LatheGeometry, Layers, LessCompare, LessDepth, LessEqualCompare, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, Light, LightProbe, Line, Line3, LineBasicMaterial, LineCurve, LineCurve3, LineDashedMaterial, LineLoop, LineSegments, LinearFilter, LinearInterpolant, LinearMipMapLinearFilter, LinearMipMapNearestFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearSRGBColorSpace, LinearToneMapping, LinearTransfer, Loader, LoaderUtils, LoadingManager, LoopOnce, LoopPingPong, LoopRepeat, LuminanceAlphaFormat, LuminanceFormat, MOUSE, Material, MaterialLoader, MathUtils, Matrix2, Matrix3, Matrix4, MaxEquation, Mesh, MeshBasicMaterial, MeshDepthMaterial, MeshDistanceMaterial, MeshLambertMaterial, MeshMatcapMaterial, MeshNormalMaterial, MeshPhongMaterial, MeshPhysicalMaterial, MeshStandardMaterial, MeshToonMaterial, MinEquation, MirroredRepeatWrapping, MixOperation, MultiplyBlending, MultiplyOperation, NearestFilter, NearestMipMapLinearFilter, NearestMipMapNearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, NeutralToneMapping, NeverCompare, NeverDepth, NeverStencilFunc, NoBlending, NoColorSpace, NoToneMapping, NormalAnimationBlendMode, NormalBlending, NotEqualCompare, NotEqualDepth, NotEqualStencilFunc, NumberKeyframeTrack, Object3D, ObjectLoader, ObjectSpaceNormalMap, OctahedronGeometry, OneFactor, OneMinusConstantAlphaFactor, OneMinusConstantColorFactor, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcAlphaFactor, OneMinusSrcColorFactor, OrthographicCamera, PCFShadowMap, PCFSoftShadowMap, Path, PerspectiveCamera, Plane, PlaneGeometry, PlaneHelper, PointLight, PointLightHelper, Points, PointsMaterial, PolarGridHelper, PolyhedronGeometry, PositionalAudio, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, RAD2DEG, RED_GREEN_RGTC2_Format, RED_RGTC1_Format, REVISION, RGBADepthPacking, RGBAFormat, RGBAIntegerFormat, RGBA_ASTC_10x10_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_BPTC_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGBDepthPacking, RGBFormat, RGBIntegerFormat, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGB_S3TC_DXT1_Format, RGDepthPacking, RGFormat, RGIntegerFormat, RawShaderMaterial, Ray, Raycaster, RectAreaLight, RedFormat, RedIntegerFormat, ReinhardToneMapping, RenderTarget, RenderTarget3D, RenderTargetArray, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RingGeometry, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SRGBColorSpace, SRGBTransfer, Scene, ShaderMaterial, ShadowMaterial, Shape, ShapeGeometry, ShapePath, ShapeUtils, ShortType, Skeleton, SkeletonHelper, SkinnedMesh, Source, Sphere, SphereGeometry, Spherical, SphericalHarmonics3, SplineCurve, SpotLight, SpotLightHelper, Sprite, SpriteMaterial, SrcAlphaFactor, SrcAlphaSaturateFactor, SrcColorFactor, StaticCopyUsage, StaticDrawUsage, StaticReadUsage, StereoCamera, StreamCopyUsage, StreamDrawUsage, StreamReadUsage, StringKeyframeTrack, SubtractEquation, SubtractiveBlending, TOUCH, TangentSpaceNormalMap, TetrahedronGeometry, Texture, TextureLoader, TextureUtils, TimestampQuery, TorusGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsUtils, UnsignedByteType, UnsignedInt248Type, UnsignedInt5999Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, VideoFrameTexture, VideoTexture, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLCoordinateSystem, WebGLCubeRenderTarget, WebGLRenderTarget, WebGPUCoordinateSystem, WebXRController, WireframeGeometry, WrapAroundEnding, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, arrayNeedsUint32, cloneUniforms, createCanvasElement, createElementNS, getByteLength, getUnlitUniformColorSpace, mergeUniforms, probeAsync, toNormalizedProjectionMatrix, toReversedProjectionMatrix, warnOnce };