@gnsx/three 0.185.14 → 0.185.15

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.
@@ -11743,6 +11743,488 @@ class Layers {
11743
11743
 
11744
11744
  }
11745
11745
 
11746
+ // WITH_GENESYS
11747
+ /**
11748
+ * Shared deterministic PRNG helpers (FNV-1a seed hash + xorshift32).
11749
+ * Used by sibling-local nodeId allocation and other deterministic streams.
11750
+ */
11751
+
11752
+ /**
11753
+ * Lightweight FNV-1a hash for converting strings into a deterministic 32-bit seed.
11754
+ * @param {string} input
11755
+ * @return {number}
11756
+ */
11757
+ function hashStringToUint32( input ) {
11758
+
11759
+ let hash = 0x811c9dc5;
11760
+
11761
+ for ( let i = 0; i < input.length; i ++ ) {
11762
+
11763
+ hash ^= input.charCodeAt( i );
11764
+ hash = Math.imul( hash, 0x01000193 );
11765
+
11766
+ }
11767
+
11768
+ return ( hash >>> 0 ) || 0x9e3779b9;
11769
+
11770
+ }
11771
+
11772
+ /**
11773
+ * Xorshift32 step; deterministic and fast for ID generation. Never returns 0.
11774
+ * @param {number} state
11775
+ * @return {number}
11776
+ */
11777
+ function xorshift32( state ) {
11778
+
11779
+ let next = state | 0;
11780
+ next ^= next << 13;
11781
+ next ^= next >>> 17;
11782
+ next ^= next << 5;
11783
+ return ( next >>> 0 ) || 0x9e3779b9;
11784
+
11785
+ }
11786
+
11787
+ /**
11788
+ * Random non-zero uint32 seed for non-deterministic streams.
11789
+ * @return {number}
11790
+ */
11791
+ function randomSeedUint32() {
11792
+
11793
+ return ( ( Math.random() * 0x100000000 ) >>> 0 ) || 0x9e3779b9;
11794
+
11795
+ }
11796
+
11797
+ /**
11798
+ * Deterministic xorshift32 stream. Internal state is never 0.
11799
+ */
11800
+ class XorShift32 {
11801
+
11802
+ /**
11803
+ * @param {number|string} [seed]
11804
+ */
11805
+ constructor( seed = randomSeedUint32() ) {
11806
+
11807
+ this._state = typeof seed === 'string'
11808
+ ? hashStringToUint32( seed )
11809
+ : ( ( seed >>> 0 ) || 0x9e3779b9 );
11810
+
11811
+ }
11812
+
11813
+ /**
11814
+ * Advance and return the next non-zero uint32.
11815
+ * @return {number}
11816
+ */
11817
+ nextUint32() {
11818
+
11819
+ this._state = xorshift32( this._state );
11820
+ return this._state;
11821
+
11822
+ }
11823
+
11824
+ /**
11825
+ * Advance and return the low 16 bits (0 is allowed).
11826
+ * @return {number}
11827
+ */
11828
+ nextUint16() {
11829
+
11830
+ return this.nextUint32() & 0xffff;
11831
+
11832
+ }
11833
+
11834
+ /**
11835
+ * @return {number}
11836
+ */
11837
+ getState() {
11838
+
11839
+ return this._state >>> 0;
11840
+
11841
+ }
11842
+
11843
+ /**
11844
+ * @param {number} state
11845
+ */
11846
+ setState( state ) {
11847
+
11848
+ this._state = ( state >>> 0 ) || 0x9e3779b9;
11849
+
11850
+ }
11851
+
11852
+ /**
11853
+ * @return {XorShift32}
11854
+ */
11855
+ clone() {
11856
+
11857
+ return new XorShift32( this._state );
11858
+
11859
+ }
11860
+
11861
+ }
11862
+ // !WITH_GENESYS
11863
+
11864
+ // WITH_GENESYS
11865
+ /**
11866
+ * Sibling-local 16-bit node identities.
11867
+ *
11868
+ * `null` / `undefined` mean unset. `0` is a valid NodeId.
11869
+ */
11870
+
11871
+
11872
+ /**
11873
+ * True when `id` is a finite integer in the uint16 range (including 0).
11874
+ * @param {unknown} id
11875
+ * @return {boolean}
11876
+ */
11877
+ function isValidNodeId( id ) {
11878
+
11879
+ return typeof id === 'number' && Number.isInteger( id ) && id >= 0 && id <= 0xffff;
11880
+
11881
+ }
11882
+
11883
+ /**
11884
+ * Canonical display form: 4 lowercase hex characters.
11885
+ * @param {number} id
11886
+ * @return {string}
11887
+ */
11888
+ function nodeIdToString( id ) {
11889
+
11890
+ return ( id & 0xffff ).toString( 16 ).padStart( 4, '0' );
11891
+
11892
+ }
11893
+
11894
+ /**
11895
+ * Parses a hex node-id segment (1–4 hex digits).
11896
+ * @param {string} value
11897
+ * @return {?number}
11898
+ */
11899
+ function nodeIdFromString( value ) {
11900
+
11901
+ const trimmed = value.trim();
11902
+ if ( ! /^[0-9a-fA-F]{1,4}$/.test( trimmed ) ) {
11903
+
11904
+ return null;
11905
+
11906
+ }
11907
+
11908
+ return Number.parseInt( trimmed, 16 ) & 0xffff;
11909
+
11910
+ }
11911
+
11912
+ const defaultNodeIdRng = new XorShift32();
11913
+
11914
+ /**
11915
+ * Seeds the process-wide NodeId RNG for deterministic construction.
11916
+ * Pass `undefined` / omit to restore a non-deterministic stream.
11917
+ * @param {string} [seed]
11918
+ */
11919
+ function configureNodeIdSeed( seed ) {
11920
+
11921
+ if ( seed == null ) {
11922
+
11923
+ defaultNodeIdRng.setState( randomSeedUint32() );
11924
+ return;
11925
+
11926
+ }
11927
+
11928
+ defaultNodeIdRng.setState( hashStringToUint32( seed ) );
11929
+
11930
+ }
11931
+
11932
+ /**
11933
+ * Generates a random NodeId from the process-wide default RNG.
11934
+ * @param {XorShift32} [rng]
11935
+ * @return {number}
11936
+ */
11937
+ function generateNodeId( rng = defaultNodeIdRng ) {
11938
+
11939
+ return rng.nextUint16();
11940
+
11941
+ }
11942
+
11943
+ /**
11944
+ * Allocates a NodeId not present in `existing`.
11945
+ * @param {Iterable<number>|ReadonlySet<number>} existing
11946
+ * @param {XorShift32} [rng]
11947
+ * @return {number}
11948
+ */
11949
+ function allocateNodeId( existing, rng = defaultNodeIdRng ) {
11950
+
11951
+ const taken = existing instanceof Set ? existing : new Set( existing );
11952
+ if ( taken.size >= 0x10000 ) {
11953
+
11954
+ throw new Error( '[nodeId] Cannot allocate NodeId: all 65536 sibling ids are in use' );
11955
+
11956
+ }
11957
+
11958
+ let id = rng.nextUint16();
11959
+ while ( taken.has( id ) ) {
11960
+
11961
+ id = rng.nextUint16();
11962
+
11963
+ }
11964
+
11965
+ return id;
11966
+
11967
+ }
11968
+
11969
+ /**
11970
+ * Deterministic NodeId from a stable key (first-try candidate for remints).
11971
+ * @param {string} key
11972
+ * @return {number}
11973
+ */
11974
+ function nodeIdFromKey( key ) {
11975
+
11976
+ return new XorShift32( key ).nextUint16();
11977
+
11978
+ }
11979
+
11980
+ /**
11981
+ * Collects nodeId values from a sibling set.
11982
+ * @param {Iterable<{nodeId?: ?number}>} nodes
11983
+ * @param {Object} [except]
11984
+ * @return {Set<number>}
11985
+ */
11986
+ function collectSiblingNodeIds( nodes, except ) {
11987
+
11988
+ const taken = new Set();
11989
+ for ( const node of nodes ) {
11990
+
11991
+ if ( node !== except && isValidNodeId( node.nodeId ) ) {
11992
+
11993
+ taken.add( node.nodeId );
11994
+
11995
+ }
11996
+
11997
+ }
11998
+
11999
+ return taken;
12000
+
12001
+ }
12002
+
12003
+ /**
12004
+ * Ensures `object.nodeId` is unique among `parent.children`.
12005
+ * @param {import('./Object3D.js').Object3D} object
12006
+ * @param {import('./Object3D.js').Object3D} parent
12007
+ */
12008
+ function ensureUniqueNodeIdAmongParentChildren( object, parent ) {
12009
+
12010
+ const taken = collectSiblingNodeIds( parent.children, object );
12011
+ if ( ! isValidNodeId( object.nodeId ) || taken.has( object.nodeId ) ) {
12012
+
12013
+ object.nodeId = allocateNodeId( taken );
12014
+
12015
+ }
12016
+
12017
+ }
12018
+ // !WITH_GENESYS
12019
+
12020
+ // WITH_GENESYS
12021
+ /**
12022
+ * Path of sibling-local nodeIds identifying a node in the scene tree.
12023
+ * String form: `"a1b2/c3d4"` (4-hex segments separated by `/`).
12024
+ */
12025
+
12026
+
12027
+ class NodePath {
12028
+
12029
+ /**
12030
+ * @param {readonly number[]} [ids]
12031
+ */
12032
+ constructor( ids = [] ) {
12033
+
12034
+ const normalized = [];
12035
+ for ( const id of ids ) {
12036
+
12037
+ if ( ! isValidNodeId( id ) ) {
12038
+
12039
+ throw new Error( `[NodePath] Invalid NodeId segment: ${ String( id ) }` );
12040
+
12041
+ }
12042
+
12043
+ normalized.push( id & 0xffff );
12044
+
12045
+ }
12046
+
12047
+ this.ids = normalized;
12048
+
12049
+ }
12050
+
12051
+ /**
12052
+ * @param {...number} ids
12053
+ * @return {NodePath}
12054
+ */
12055
+ static fromIds( ...ids ) {
12056
+
12057
+ return new NodePath( ids );
12058
+
12059
+ }
12060
+
12061
+ /**
12062
+ * Parses `"a1b2/c3d4"`. Empty / whitespace-only string yields {@link NodePath.empty}.
12063
+ * @param {string} path
12064
+ * @return {NodePath}
12065
+ */
12066
+ static fromString( path ) {
12067
+
12068
+ const trimmed = path.trim();
12069
+ if ( trimmed.length === 0 ) {
12070
+
12071
+ return NodePath.empty;
12072
+
12073
+ }
12074
+
12075
+ const parts = trimmed.split( '/' );
12076
+ const ids = [];
12077
+ for ( const part of parts ) {
12078
+
12079
+ if ( part.length === 0 ) {
12080
+
12081
+ throw new Error( `[NodePath] Empty segment in path "${ path }"` );
12082
+
12083
+ }
12084
+
12085
+ const id = nodeIdFromString( part );
12086
+ if ( id === null ) {
12087
+
12088
+ throw new Error( `[NodePath] Invalid segment "${ part }" in path "${ path }"` );
12089
+
12090
+ }
12091
+
12092
+ ids.push( id );
12093
+
12094
+ }
12095
+
12096
+ return new NodePath( ids );
12097
+
12098
+ }
12099
+
12100
+ /**
12101
+ * @param {NodePath|string} path
12102
+ * @return {NodePath}
12103
+ */
12104
+ static coerce( path ) {
12105
+
12106
+ return typeof path === 'string' ? NodePath.fromString( path ) : path;
12107
+
12108
+ }
12109
+
12110
+ /** @return {number} */
12111
+ get length() {
12112
+
12113
+ return this.ids.length;
12114
+
12115
+ }
12116
+
12117
+ /** @return {boolean} */
12118
+ get isEmpty() {
12119
+
12120
+ return this.ids.length === 0;
12121
+
12122
+ }
12123
+
12124
+ /** @return {string} */
12125
+ toString() {
12126
+
12127
+ return this.ids.map( nodeIdToString ).join( '/' );
12128
+
12129
+ }
12130
+
12131
+ /**
12132
+ * @param {NodePath} other
12133
+ * @return {boolean}
12134
+ */
12135
+ equals( other ) {
12136
+
12137
+ if ( this.ids.length !== other.ids.length ) {
12138
+
12139
+ return false;
12140
+
12141
+ }
12142
+
12143
+ for ( let i = 0; i < this.ids.length; i ++ ) {
12144
+
12145
+ if ( this.ids[ i ] !== other.ids[ i ] ) {
12146
+
12147
+ return false;
12148
+
12149
+ }
12150
+
12151
+ }
12152
+
12153
+ return true;
12154
+
12155
+ }
12156
+
12157
+ /**
12158
+ * @param {NodePath} prefix
12159
+ * @return {boolean}
12160
+ */
12161
+ startsWith( prefix ) {
12162
+
12163
+ if ( prefix.ids.length > this.ids.length ) {
12164
+
12165
+ return false;
12166
+
12167
+ }
12168
+
12169
+ for ( let i = 0; i < prefix.ids.length; i ++ ) {
12170
+
12171
+ if ( this.ids[ i ] !== prefix.ids[ i ] ) {
12172
+
12173
+ return false;
12174
+
12175
+ }
12176
+
12177
+ }
12178
+
12179
+ return true;
12180
+
12181
+ }
12182
+
12183
+ /**
12184
+ * @param {number} start
12185
+ * @param {number} [end]
12186
+ * @return {NodePath}
12187
+ */
12188
+ slice( start, end ) {
12189
+
12190
+ return new NodePath( this.ids.slice( start, end ) );
12191
+
12192
+ }
12193
+
12194
+ /**
12195
+ * @param {NodePath} relative
12196
+ * @return {NodePath}
12197
+ */
12198
+ concat( relative ) {
12199
+
12200
+ return new NodePath( [ ...this.ids, ...relative.ids ] );
12201
+
12202
+ }
12203
+
12204
+ /**
12205
+ * If this path starts with `ancestor`, returns the remainder; otherwise `null`.
12206
+ * @param {NodePath} ancestor
12207
+ * @return {?NodePath}
12208
+ */
12209
+ relativeFrom( ancestor ) {
12210
+
12211
+ if ( ! this.startsWith( ancestor ) ) {
12212
+
12213
+ return null;
12214
+
12215
+ }
12216
+
12217
+ return this.slice( ancestor.length );
12218
+
12219
+ }
12220
+
12221
+ }
12222
+
12223
+ NodePath.empty = new NodePath( [] );
12224
+ // !WITH_GENESYS
12225
+
12226
+ // !WITH_GENESYS
12227
+
11746
12228
  let _object3DId = 0;
11747
12229
 
11748
12230
  const _v1$6 = /*@__PURE__*/ new Vector3();
@@ -11831,6 +12313,16 @@ class Object3D extends EventDispatcher {
11831
12313
  */
11832
12314
  this.uuid = generateUUID();
11833
12315
 
12316
+ // WITH_GENESYS
12317
+ /**
12318
+ * Sibling-local 16-bit identity for scene-graph addressing ({@link NodePath}).
12319
+ * `0` is valid. Reminted on parent attach when colliding with a sibling.
12320
+ *
12321
+ * @type {number}
12322
+ */
12323
+ this.nodeId = generateNodeId();
12324
+ // !WITH_GENESYS
12325
+
11834
12326
  /**
11835
12327
  * The name of the 3D object.
11836
12328
  *
@@ -12513,6 +13005,9 @@ class Object3D extends EventDispatcher {
12513
13005
  if ( object && object.isObject3D ) {
12514
13006
 
12515
13007
  object.removeFromParent();
13008
+ // WITH_GENESYS
13009
+ ensureUniqueNodeIdAmongParentChildren( object, this );
13010
+ // !WITH_GENESYS
12516
13011
  object.parent = this;
12517
13012
  this.children.push( object );
12518
13013
 
@@ -12638,6 +13133,9 @@ class Object3D extends EventDispatcher {
12638
13133
  object.applyMatrix4( _m1$1 );
12639
13134
 
12640
13135
  object.removeFromParent();
13136
+ // WITH_GENESYS
13137
+ ensureUniqueNodeIdAmongParentChildren( object, this );
13138
+ // !WITH_GENESYS
12641
13139
  object.parent = this;
12642
13140
  this.children.push( object );
12643
13141
 
@@ -12653,6 +13151,166 @@ class Object3D extends EventDispatcher {
12653
13151
 
12654
13152
  }
12655
13153
 
13154
+ // WITH_GENESYS
13155
+ /**
13156
+ * Assigns a {@link nodeId} when unset or outside the uint16 range.
13157
+ * @return {number}
13158
+ */
13159
+ ensureNodeId() {
13160
+
13161
+ if ( ! isValidNodeId( this.nodeId ) ) {
13162
+
13163
+ this.nodeId = generateNodeId();
13164
+
13165
+ }
13166
+
13167
+ return this.nodeId;
13168
+
13169
+ }
13170
+
13171
+ /**
13172
+ * Replaces {@link nodeId} with a newly generated value (e.g. prefab instance roots).
13173
+ * @param {Iterable<number>} [existingSiblingIds]
13174
+ * @return {number}
13175
+ */
13176
+ remintNodeId( existingSiblingIds ) {
13177
+
13178
+ this.nodeId = existingSiblingIds !== undefined
13179
+ ? allocateNodeId( existingSiblingIds )
13180
+ : generateNodeId();
13181
+ return this.nodeId;
13182
+
13183
+ }
13184
+
13185
+ /**
13186
+ * Direct child with the given {@link nodeId}, or `null`.
13187
+ * @param {number} id
13188
+ * @return {?Object3D}
13189
+ */
13190
+ findChildByNodeId( id ) {
13191
+
13192
+ for ( let i = 0; i < this.children.length; i ++ ) {
13193
+
13194
+ const child = this.children[ i ];
13195
+ if ( child.nodeId === id ) {
13196
+
13197
+ return child;
13198
+
13199
+ }
13200
+
13201
+ }
13202
+
13203
+ return null;
13204
+
13205
+ }
13206
+
13207
+ /**
13208
+ * Resolves a path relative to this node. An empty path returns `this`.
13209
+ * @param {NodePath|string} path
13210
+ * @return {?Object3D}
13211
+ */
13212
+ resolvePath( path ) {
13213
+
13214
+ const nodePath = NodePath.coerce( path );
13215
+ if ( nodePath.isEmpty ) {
13216
+
13217
+ return this;
13218
+
13219
+ }
13220
+
13221
+ let current = this;
13222
+ for ( let i = 0; i < nodePath.ids.length; i ++ ) {
13223
+
13224
+ const next = current.findChildByNodeId( nodePath.ids[ i ] );
13225
+ if ( ! next ) {
13226
+
13227
+ return null;
13228
+
13229
+ }
13230
+
13231
+ current = next;
13232
+
13233
+ }
13234
+
13235
+ return current;
13236
+
13237
+ }
13238
+
13239
+ /**
13240
+ * Builds a {@link NodePath} for this node.
13241
+ * - Without `root`: absolute path from the topmost non-Scene ancestor down to this node.
13242
+ * - With `root`: path relative to `root` (empty when `this === root`); `null` when not under `root`.
13243
+ * @param {Object3D} [root]
13244
+ * @return {?NodePath}
13245
+ */
13246
+ getNodePath( root ) {
13247
+
13248
+ if ( root !== undefined ) {
13249
+
13250
+ if ( this === root ) {
13251
+
13252
+ return NodePath.empty;
13253
+
13254
+ }
13255
+
13256
+ const absolute = this.getNodePath();
13257
+ const rootAbsolute = root.getNodePath();
13258
+ if ( ! absolute || ! rootAbsolute ) {
13259
+
13260
+ return null;
13261
+
13262
+ }
13263
+
13264
+ return absolute.relativeFrom( rootAbsolute );
13265
+
13266
+ }
13267
+
13268
+ const ids = [];
13269
+ let current = this;
13270
+ while ( current ) {
13271
+
13272
+ ids.push( current.ensureNodeId() );
13273
+ const parent = current.parent;
13274
+ // Scene / World containers are not part of authored NodePaths.
13275
+ if ( parent === null || parent.isScene === true ) {
13276
+
13277
+ break;
13278
+
13279
+ }
13280
+
13281
+ current = parent;
13282
+
13283
+ }
13284
+
13285
+ ids.reverse();
13286
+ return new NodePath( ids );
13287
+
13288
+ }
13289
+
13290
+ /**
13291
+ * Ensures every Object3D in this subtree has a valid {@link nodeId}, unique among its siblings.
13292
+ */
13293
+ ensureNodeIdsInSubtree() {
13294
+
13295
+ this.ensureNodeId();
13296
+ const taken = new Set();
13297
+ for ( let i = 0; i < this.children.length; i ++ ) {
13298
+
13299
+ const child = this.children[ i ];
13300
+ if ( ! isValidNodeId( child.nodeId ) || taken.has( child.nodeId ) ) {
13301
+
13302
+ child.nodeId = allocateNodeId( taken );
13303
+
13304
+ }
13305
+
13306
+ taken.add( child.nodeId );
13307
+ child.ensureNodeIdsInSubtree();
13308
+
13309
+ }
13310
+
13311
+ }
13312
+ // !WITH_GENESYS
13313
+
12656
13314
  /**
12657
13315
  * Searches through the 3D object and its children, starting with the 3D object
12658
13316
  * itself, and returns the first with a matching ID.
@@ -13055,6 +13713,10 @@ class Object3D extends EventDispatcher {
13055
13713
  object.uuid = this.uuid;
13056
13714
  object.type = this.type;
13057
13715
 
13716
+ // WITH_GENESYS
13717
+ object.nodeId = this.nodeId;
13718
+ // !WITH_GENESYS
13719
+
13058
13720
  if ( this.name !== '' ) object.name = this.name;
13059
13721
  if ( this.castShadow === true ) object.castShadow = true;
13060
13722
  if ( this.receiveShadow === true ) object.receiveShadow = true;
@@ -13365,6 +14027,8 @@ class Object3D extends EventDispatcher {
13365
14027
  this.visible = source.visible;
13366
14028
  // WITH_GENESYS
13367
14029
  this.selfHidden = source.selfHidden;
14030
+ // Keep nodeId; reminted on attach if it collides with a sibling.
14031
+ this.nodeId = source.nodeId;
13368
14032
  // !WITH_GENESYS
13369
14033
 
13370
14034
  this.castShadow = source.castShadow;
@@ -49601,6 +50265,10 @@ class ObjectLoader extends Loader {
49601
50265
 
49602
50266
  object.uuid = data.uuid;
49603
50267
 
50268
+ // WITH_GENESYS
50269
+ if ( data.nodeId !== undefined ) object.nodeId = data.nodeId;
50270
+ // !WITH_GENESYS
50271
+
49604
50272
  if ( data.name !== undefined ) object.name = data.name;
49605
50273
 
49606
50274
  if ( data.matrix !== undefined ) {
@@ -61731,4 +62399,4 @@ if ( typeof window !== 'undefined' ) {
61731
62399
 
61732
62400
  }
61733
62401
 
61734
- 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, BezierInterpolant, Bone, BooleanKeyframeTrack, Box2, Box3, Box3Helper, BoxGeometry, BoxHelper, BufferAttribute, BufferGeometry, BufferGeometryLoader, ByteType, Cache, Camera, CameraHelper, CanvasTexture, CapsuleGeometry, CatmullRomCurve3, CineonToneMapping, CircleGeometry, ClampToEdgeWrapping, Clock, Color, ColorKeyframeTrack, ColorManagement, Compatibility, CompressedArrayTexture, CompressedCubeTexture, CompressedTexture, CompressedTextureLoader, ConeGeometry, ConstantAlphaFactor, ConstantColorFactor, Controls, CubeCamera, CubeDepthTexture, 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, ExternalTexture, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, FrustumArray, GLBufferAttribute, GLSL1, GLSL3, GreaterCompare, GreaterDepth, GreaterEqualCompare, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, GridHelper, Group, HTMLTexture, HalfFloatType, HemisphereLight, HemisphereLightHelper, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, IncrementStencilOp, IncrementWrapStencilOp, InstancedBufferAttribute, InstancedBufferGeometry, InstancedInterleavedBuffer, InstancedMesh, Int16BufferAttribute, Int32BufferAttribute, Int8BufferAttribute, IntType, InterleavedBuffer, InterleavedBufferAttribute, Interpolant, InterpolateBezier, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InterpolationSamplingMode, InterpolationSamplingType, 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, MOUSE, Material, MaterialBlending, 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, NoNormalPacking, NoToneMapping, NormalAnimationBlendMode, NormalBlending, NormalGAPacking, NormalRGPacking, 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, ProfilerService, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, R11_EAC_Format, RAD2DEG, RED_GREEN_RGTC2_Format, RED_RGTC1_Format, REVISION, RG11_EAC_Format, 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, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, ReversedDepthFuncs, RingGeometry, SIGNED_R11_EAC_Format, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SIGNED_RG11_EAC_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, Timer, TimestampQuery, TorusGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsUtils, UnsignedByteType, UnsignedInt101111Type, UnsignedInt248Type, UnsignedInt5999Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, VideoFrameTexture, VideoTexture, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLCoordinateSystem, WebGLRenderTarget, WebGPUCoordinateSystem, WebXRController, WireframeGeometry, WrapAroundEnding, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, cloneUniforms, createCanvasElement, createElementNS, error, getByteLength, getConsoleFunction, getUnlitUniformColorSpace, isTypedArray, log, mergeUniforms, probeAsync, profile, profileClass, setConsoleFunction, warn, warnOnce, yieldToMain };
62402
+ 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, BezierInterpolant, Bone, BooleanKeyframeTrack, Box2, Box3, Box3Helper, BoxGeometry, BoxHelper, BufferAttribute, BufferGeometry, BufferGeometryLoader, ByteType, Cache, Camera, CameraHelper, CanvasTexture, CapsuleGeometry, CatmullRomCurve3, CineonToneMapping, CircleGeometry, ClampToEdgeWrapping, Clock, Color, ColorKeyframeTrack, ColorManagement, Compatibility, CompressedArrayTexture, CompressedCubeTexture, CompressedTexture, CompressedTextureLoader, ConeGeometry, ConstantAlphaFactor, ConstantColorFactor, Controls, CubeCamera, CubeDepthTexture, 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, ExternalTexture, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, FrustumArray, GLBufferAttribute, GLSL1, GLSL3, GreaterCompare, GreaterDepth, GreaterEqualCompare, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, GridHelper, Group, HTMLTexture, HalfFloatType, HemisphereLight, HemisphereLightHelper, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, IncrementStencilOp, IncrementWrapStencilOp, InstancedBufferAttribute, InstancedBufferGeometry, InstancedInterleavedBuffer, InstancedMesh, Int16BufferAttribute, Int32BufferAttribute, Int8BufferAttribute, IntType, InterleavedBuffer, InterleavedBufferAttribute, Interpolant, InterpolateBezier, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InterpolationSamplingMode, InterpolationSamplingType, 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, MOUSE, Material, MaterialBlending, 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, NoNormalPacking, NoToneMapping, NodePath, NormalAnimationBlendMode, NormalBlending, NormalGAPacking, NormalRGPacking, 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, ProfilerService, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, R11_EAC_Format, RAD2DEG, RED_GREEN_RGTC2_Format, RED_RGTC1_Format, REVISION, RG11_EAC_Format, 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, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, ReversedDepthFuncs, RingGeometry, SIGNED_R11_EAC_Format, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SIGNED_RG11_EAC_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, Timer, TimestampQuery, TorusGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsUtils, UnsignedByteType, UnsignedInt101111Type, UnsignedInt248Type, UnsignedInt5999Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, VideoFrameTexture, VideoTexture, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLCoordinateSystem, WebGLRenderTarget, WebGPUCoordinateSystem, WebXRController, WireframeGeometry, WrapAroundEnding, XorShift32, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, allocateNodeId, cloneUniforms, collectSiblingNodeIds, configureNodeIdSeed, createCanvasElement, createElementNS, ensureUniqueNodeIdAmongParentChildren, error, generateNodeId, getByteLength, getConsoleFunction, getUnlitUniformColorSpace, hashStringToUint32, isTypedArray, isValidNodeId, log, mergeUniforms, nodeIdFromKey, nodeIdFromString, nodeIdToString, probeAsync, profile, profileClass, randomSeedUint32, setConsoleFunction, warn, warnOnce, xorshift32, yieldToMain };