@shapediver/viewer.rendering-engine.rendering-engine-threejs 3.15.11 → 3.16.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 (78) hide show
  1. package/dist/RenderingEngine.d.ts +4 -2
  2. package/dist/RenderingEngine.d.ts.map +1 -1
  3. package/dist/RenderingEngine.js +4 -0
  4. package/dist/RenderingEngine.js.map +1 -1
  5. package/dist/index.d.ts +4 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +7 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/interfaces/IRenderingEngine.d.ts +2 -1
  10. package/dist/interfaces/IRenderingEngine.d.ts.map +1 -1
  11. package/dist/loaders/GeometryLoader.d.ts +6 -4
  12. package/dist/loaders/GeometryLoader.d.ts.map +1 -1
  13. package/dist/loaders/GeometryLoader.js +162 -108
  14. package/dist/loaders/GeometryLoader.js.map +1 -1
  15. package/dist/loaders/HTMLElementAnchorLoader.d.ts +1 -2
  16. package/dist/loaders/HTMLElementAnchorLoader.d.ts.map +1 -1
  17. package/dist/loaders/HTMLElementAnchorLoader.js.map +1 -1
  18. package/dist/loaders/LightLoader.d.ts +4 -3
  19. package/dist/loaders/LightLoader.d.ts.map +1 -1
  20. package/dist/loaders/LightLoader.js +8 -0
  21. package/dist/loaders/LightLoader.js.map +1 -1
  22. package/dist/loaders/MaterialLoader.d.ts +15 -2
  23. package/dist/loaders/MaterialLoader.d.ts.map +1 -1
  24. package/dist/loaders/MaterialLoader.js +124 -61
  25. package/dist/loaders/MaterialLoader.js.map +1 -1
  26. package/dist/managers/CameraManager.d.ts +2 -2
  27. package/dist/managers/CameraManager.d.ts.map +1 -1
  28. package/dist/managers/CameraManager.js +25 -5
  29. package/dist/managers/CameraManager.js.map +1 -1
  30. package/dist/managers/EnvironmentGeometryManager.d.ts.map +1 -1
  31. package/dist/managers/EnvironmentGeometryManager.js +6 -19
  32. package/dist/managers/EnvironmentGeometryManager.js.map +1 -1
  33. package/dist/managers/PostProcessingManager.d.ts.map +1 -1
  34. package/dist/managers/PostProcessingManager.js +18 -1
  35. package/dist/managers/PostProcessingManager.js.map +1 -1
  36. package/dist/managers/RenderingManager.d.ts.map +1 -1
  37. package/dist/managers/RenderingManager.js +6 -1
  38. package/dist/managers/RenderingManager.js.map +1 -1
  39. package/dist/managers/SceneTracingManager.d.ts.map +1 -1
  40. package/dist/managers/SceneTracingManager.js +2 -0
  41. package/dist/managers/SceneTracingManager.js.map +1 -1
  42. package/dist/managers/SceneTreeManager.d.ts +40 -11
  43. package/dist/managers/SceneTreeManager.d.ts.map +1 -1
  44. package/dist/managers/SceneTreeManager.js +304 -247
  45. package/dist/managers/SceneTreeManager.js.map +1 -1
  46. package/dist/managers/environmentGeometry/ContactShadow.d.ts.map +1 -1
  47. package/dist/managers/environmentGeometry/ContactShadow.js +2 -2
  48. package/dist/managers/environmentGeometry/ContactShadow.js.map +1 -1
  49. package/dist/managers/environmentGeometry/Grid.d.ts.map +1 -1
  50. package/dist/managers/environmentGeometry/Grid.js +2 -2
  51. package/dist/managers/environmentGeometry/Grid.js.map +1 -1
  52. package/dist/managers/environmentGeometry/GroundPlane.d.ts.map +1 -1
  53. package/dist/managers/environmentGeometry/GroundPlane.js +4 -3
  54. package/dist/managers/environmentGeometry/GroundPlane.js.map +1 -1
  55. package/dist/managers/environmentGeometry/GroundPlaneShadow.d.ts.map +1 -1
  56. package/dist/managers/environmentGeometry/GroundPlaneShadow.js +4 -4
  57. package/dist/managers/environmentGeometry/GroundPlaneShadow.js.map +1 -1
  58. package/dist/managers/sceneTree/SDTFUtils.d.ts +2 -2
  59. package/dist/managers/sceneTree/SDTFUtils.d.ts.map +1 -1
  60. package/dist/managers/sceneTree/SDTFUtils.js +6 -6
  61. package/dist/managers/sceneTree/SDTFUtils.js.map +1 -1
  62. package/dist/managers/sceneTree/SceenTreeManagerUtils.d.ts +3 -5
  63. package/dist/managers/sceneTree/SceenTreeManagerUtils.d.ts.map +1 -1
  64. package/dist/managers/sceneTree/SceenTreeManagerUtils.js +24 -32
  65. package/dist/managers/sceneTree/SceenTreeManagerUtils.js.map +1 -1
  66. package/dist/objects/SDObject.d.ts +15 -1
  67. package/dist/objects/SDObject.d.ts.map +1 -1
  68. package/dist/objects/SDObject.js +26 -4
  69. package/dist/objects/SDObject.js.map +1 -1
  70. package/package.json +17 -17
  71. package/dist/objects/SDBone.d.ts +0 -13
  72. package/dist/objects/SDBone.d.ts.map +0 -1
  73. package/dist/objects/SDBone.js +0 -75
  74. package/dist/objects/SDBone.js.map +0 -1
  75. package/dist/objects/SDData.d.ts +0 -19
  76. package/dist/objects/SDData.d.ts.map +0 -1
  77. package/dist/objects/SDData.js +0 -48
  78. package/dist/objects/SDData.js.map +0 -1
@@ -24,12 +24,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.GeometryLoader = void 0;
27
+ const viewer_shared_node_tree_1 = require("@shapediver/viewer.shared.node-tree");
27
28
  const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
28
29
  const viewer_shared_types_1 = require("@shapediver/viewer.shared.types");
29
30
  const gl_matrix_1 = require("gl-matrix");
30
31
  const THREE = __importStar(require("three"));
31
32
  const GemMaterial_1 = require("../materials/GemMaterial");
32
- const SDData_1 = require("../objects/SDData");
33
33
  class GeometryLoader {
34
34
  // #endregion Properties (8)
35
35
  // #region Constructors (1)
@@ -57,15 +57,18 @@ class GeometryLoader {
57
57
  * @param geometry the geometry data
58
58
  * @returns the geometry object
59
59
  */
60
- load(geometry, parent, newChild, skeleton, instanceData) {
60
+ load(geometry, instanceData) {
61
+ // Cache key to avoid repeated string concatenation
62
+ const primitiveCacheKey = geometry.primitive.id + "_" + geometry.primitive.version;
61
63
  const threeGeometry = (() => {
62
- if (!this._primitiveCache[geometry.primitive.id + "_" + geometry.primitive.version]) {
64
+ const cachedPrimitive = this._primitiveCache[primitiveCacheKey];
65
+ if (!cachedPrimitive) {
63
66
  return this.loadPrimitive(geometry.primitive);
64
67
  }
65
68
  else {
66
- this._primitiveCache[geometry.primitive.id + "_" + geometry.primitive.version].counter++;
67
- const clone = this._primitiveCache[geometry.primitive.id + "_" + geometry.primitive.version].threeGeometry.clone();
68
- this._primitiveCache[geometry.primitive.id + "_" + geometry.primitive.version].clones.push(clone);
69
+ cachedPrimitive.counter++;
70
+ const clone = cachedPrimitive.threeGeometry.clone();
71
+ cachedPrimitive.clones.push(clone);
69
72
  return clone;
70
73
  }
71
74
  })();
@@ -81,19 +84,26 @@ class GeometryLoader {
81
84
  else {
82
85
  incomingMaterialData = geometry.material;
83
86
  }
87
+ const attributes = threeGeometry.attributes;
88
+ const morphAttributes = threeGeometry.morphAttributes;
89
+ const hasMorphTargets = Object.keys(morphAttributes).length > 0;
90
+ // Performance: Normalize settings to maximize shader program sharing
91
+ // These settings affect shader generation, so keep them consistent across materials
84
92
  const materialSettings = {
85
93
  mode: geometry.mode,
86
- useVertexTangents: threeGeometry.attributes.tangent !== undefined,
87
- useVertexColors: threeGeometry.attributes.color !== undefined &&
94
+ useVertexTangents: attributes.tangent !== undefined,
95
+ useVertexColors: attributes.color !== undefined &&
88
96
  this._renderingEngine.type !== viewer_shared_types_1.RENDERER_TYPE.ATTRIBUTES,
89
- useFlatShading: threeGeometry.attributes.normal === undefined,
90
- useMorphTargets: Object.keys(threeGeometry.morphAttributes).length > 0,
91
- useMorphNormals: Object.keys(threeGeometry.morphAttributes).length > 0 &&
92
- threeGeometry.morphAttributes.normal !== undefined,
97
+ useFlatShading: attributes.normal === undefined,
98
+ useMorphTargets: hasMorphTargets,
99
+ useMorphNormals: hasMorphTargets && morphAttributes.normal !== undefined,
93
100
  };
94
- if (incomingMaterialData instanceof viewer_shared_types_1.MaterialGemData) {
101
+ if (incomingMaterialData instanceof viewer_shared_node_tree_1.MaterialGemData) {
95
102
  const gemMaterialData = incomingMaterialData;
96
- threeGeometry.computeBoundingSphere();
103
+ // Only compute if not already computed
104
+ if (!threeGeometry.boundingSphere) {
105
+ threeGeometry.computeBoundingSphere();
106
+ }
97
107
  const sphericalNormalMap = this.createCubeNormalMap(geometry, threeGeometry);
98
108
  const center = threeGeometry.boundingSphere.center, radius = threeGeometry.boundingSphere.radius;
99
109
  gemMaterialData.side = viewer_shared_types_1.MATERIAL_SIDE.FRONT;
@@ -101,52 +111,55 @@ class GeometryLoader {
101
111
  gemMaterialData.radius = radius;
102
112
  gemMaterialData.sphericalNormalMap = sphericalNormalMap;
103
113
  }
104
- while (parent.children.length !== 0)
105
- parent.remove(parent.children[0]);
106
114
  const material = this._renderingEngine.materialLoader.load(incomingMaterialData || geometry, materialSettings);
107
- let obj;
108
- if (this._geometryCache[geometry.id + "_" + geometry.version] &&
109
- !skeleton) {
115
+ // Performance: Disable unnecessary material features for static materials
116
+ if (!hasMorphTargets) {
117
+ // For non-transparent materials, ensure depth write/test are optimized
118
+ if (!material.transparent) {
119
+ material.depthWrite = true;
120
+ material.depthTest = true;
121
+ }
122
+ }
123
+ // Performance: Mark material as not needing update to avoid shader recompilation
124
+ // unless properties that affect the shader have changed
125
+ material.needsUpdate = false;
126
+ let threeGeometryObject;
127
+ if (this._geometryCache[geometry.id + "_" + geometry.version]) {
110
128
  this._geometryCache[geometry.id + "_" + geometry.version].counter++;
111
- obj = this._geometryCache[geometry.id + "_" + geometry.version].obj;
112
- // case 1: in case the geometry data was cloned and this is a different object
113
- // case 2: it is a new child
114
- if ((newChild === false && obj.parent !== parent) ||
115
- newChild === true) {
116
- obj = obj.cloneObject();
117
- this._geometryCache[geometry.id + "_" + geometry.version].clones.push(obj);
118
- obj.userData.cacheKey = geometry.id + "_" + geometry.version;
119
- parent.add(obj);
129
+ threeGeometryObject =
130
+ this._geometryCache[geometry.id + "_" + geometry.version].obj;
131
+ threeGeometryObject.material = material;
132
+ // Clear instance colors when in ATTRIBUTES mode to prevent them
133
+ // from multiplying with the attribute material color
134
+ if (threeGeometryObject instanceof THREE.InstancedMesh) {
135
+ if (this._renderingEngine.type === viewer_shared_types_1.RENDERER_TYPE.ATTRIBUTES) {
136
+ threeGeometryObject.instanceColor = null;
137
+ }
138
+ else if (instanceData && !threeGeometryObject.instanceColor) {
139
+ for (let i = 0; i < instanceData.instanceColors.length; i++) {
140
+ threeGeometryObject.setColorAt(i, this._renderingEngine.createThreeJsColor(instanceData.instanceColors[i]));
141
+ }
142
+ // setColorAt creates instanceColor; re-read after mutation
143
+ threeGeometryObject.instanceColor.needsUpdate = true;
144
+ }
120
145
  }
121
- obj.traverse((o) => {
122
- if (o instanceof THREE.Points ||
123
- o instanceof THREE.LineSegments ||
124
- o instanceof THREE.LineLoop ||
125
- o instanceof THREE.Line ||
126
- o instanceof THREE.Mesh)
127
- o.material = material;
128
- });
129
146
  }
130
147
  else {
131
- obj = new SDData_1.SDData(geometry.id, geometry.version);
132
- this.createMesh(obj, geometry, threeGeometry, material, skeleton, instanceData);
133
- obj.userData.cacheKey = geometry.id + "_" + geometry.version;
148
+ threeGeometryObject = this.createMesh(geometry, threeGeometry, material, instanceData);
149
+ threeGeometryObject.userData.cacheKey =
150
+ geometry.id + "_" + geometry.version;
134
151
  this._geometryCache[geometry.id + "_" + geometry.version] = {
135
- obj,
152
+ obj: threeGeometryObject,
136
153
  counter: 1,
137
154
  clones: [],
138
155
  primitiveCacheId: geometry.primitive.id + "_" + geometry.primitive.version,
139
156
  };
140
- parent.add(obj);
141
- }
142
- obj.children.forEach((m) => (m.castShadow = true));
143
- if (material instanceof GemMaterial_1.GemMaterial) {
144
- obj.children.forEach((m) => (m.receiveShadow = false));
145
157
  }
146
- else {
147
- obj.children.forEach((m) => (m.receiveShadow = true));
148
- }
149
- return geometry.boundingBox.clone();
158
+ threeGeometryObject.castShadow = geometry.castShadow;
159
+ threeGeometryObject.receiveShadow = !(material instanceof GemMaterial_1.GemMaterial)
160
+ ? geometry.receiveShadow
161
+ : false;
162
+ return threeGeometryObject;
150
163
  }
151
164
  loadPrimitive(primitive) {
152
165
  const geometry = new THREE.BufferGeometry();
@@ -184,7 +197,8 @@ class GeometryLoader {
184
197
  }
185
198
  }
186
199
  primitive.convertedObject[this._renderingEngine.id] = geometry;
187
- this._primitiveCache[primitive.id + "_" + primitive.version] = {
200
+ const primitiveCacheKey = primitive.id + "_" + primitive.version;
201
+ this._primitiveCache[primitiveCacheKey] = {
188
202
  threeGeometry: geometry,
189
203
  counter: 1,
190
204
  clones: [],
@@ -203,6 +217,45 @@ class GeometryLoader {
203
217
  }
204
218
  }
205
219
  }
220
+ updateGeometryMaterial(geometry) {
221
+ const cacheKey = geometry.id + "_" + geometry.version;
222
+ const cached = this._geometryCache[cacheKey];
223
+ if (!cached)
224
+ return;
225
+ let incomingMaterialData;
226
+ if (geometry.effectMaterials.length > 0) {
227
+ incomingMaterialData =
228
+ geometry.effectMaterials[geometry.effectMaterials.length - 1]
229
+ .material;
230
+ }
231
+ else if (this._renderingEngine.type === viewer_shared_types_1.RENDERER_TYPE.ATTRIBUTES) {
232
+ incomingMaterialData = geometry.attributeMaterial;
233
+ }
234
+ else {
235
+ incomingMaterialData = geometry.material;
236
+ }
237
+ const threeGeometry = cached.obj.geometry;
238
+ const attributes = threeGeometry.attributes;
239
+ const morphAttributes = threeGeometry.morphAttributes;
240
+ const hasMorphTargets = Object.keys(morphAttributes).length > 0;
241
+ const materialSettings = {
242
+ mode: geometry.mode,
243
+ useVertexTangents: attributes.tangent !== undefined,
244
+ useVertexColors: attributes.color !== undefined &&
245
+ this._renderingEngine.type !== viewer_shared_types_1.RENDERER_TYPE.ATTRIBUTES,
246
+ useFlatShading: attributes.normal === undefined,
247
+ useMorphTargets: hasMorphTargets,
248
+ useMorphNormals: hasMorphTargets && morphAttributes.normal !== undefined,
249
+ };
250
+ cached.obj.material = this._renderingEngine.materialLoader.load(incomingMaterialData || geometry, materialSettings);
251
+ // Clear instance colors when in ATTRIBUTES mode to prevent them
252
+ // from multiplying with the attribute material color
253
+ if (cached.obj instanceof THREE.InstancedMesh) {
254
+ if (this._renderingEngine.type === viewer_shared_types_1.RENDERER_TYPE.ATTRIBUTES) {
255
+ cached.obj.instanceColor = null;
256
+ }
257
+ }
258
+ }
206
259
  removeFromGeometryCache(id) {
207
260
  if (this._geometryCache[id]) {
208
261
  if (this._geometryCache[id].counter === 1) {
@@ -239,7 +292,7 @@ class GeometryLoader {
239
292
  geometry.computeVertexNormals();
240
293
  const computedNormalAttribute = (geometry.getAttribute("normal"));
241
294
  // store the computed normals in the attribute data
242
- primitive.attributes[attributeId] = new viewer_shared_types_1.AttributeData(new Float32Array(computedNormalAttribute.array), computedNormalAttribute.itemSize, 0, 0, 3, computedNormalAttribute.normalized, computedNormalAttribute.array.length / 3);
295
+ primitive.attributes[attributeId] = new viewer_shared_node_tree_1.AttributeData(new Float32Array(computedNormalAttribute.array), computedNormalAttribute.itemSize, 0, 0, 3, computedNormalAttribute.normalized, computedNormalAttribute.array.length / 3);
243
296
  return true;
244
297
  }
245
298
  return false;
@@ -402,26 +455,27 @@ class GeometryLoader {
402
455
  };
403
456
  return this._gemSphericalMapsCache[geometryData.primitive.id + "_" + geometryData.primitive.version].texture;
404
457
  }
405
- createMesh(obj, geometry, threeGeometry, material, skeleton, instanceData) {
458
+ createMesh(geometry, threeGeometry, material, instanceData) {
459
+ let threeGeometryObject;
406
460
  if (geometry.mode === viewer_shared_types_1.PRIMITIVE_MODE.POINTS) {
407
461
  const points = new THREE.Points(threeGeometry, material);
408
462
  geometry.convertedObject[this._renderingEngine.id] = points;
409
- obj.add(points);
463
+ threeGeometryObject = points;
410
464
  }
411
465
  else if (geometry.mode === viewer_shared_types_1.PRIMITIVE_MODE.LINES) {
412
466
  const lineSegments = new THREE.LineSegments(threeGeometry, material);
413
467
  geometry.convertedObject[this._renderingEngine.id] = lineSegments;
414
- obj.add(lineSegments);
468
+ threeGeometryObject = lineSegments;
415
469
  }
416
470
  else if (geometry.mode === viewer_shared_types_1.PRIMITIVE_MODE.LINE_LOOP) {
417
471
  const lineLoop = new THREE.LineLoop(threeGeometry, material);
418
472
  geometry.convertedObject[this._renderingEngine.id] = lineLoop;
419
- obj.add(lineLoop);
473
+ threeGeometryObject = lineLoop;
420
474
  }
421
475
  else if (geometry.mode === viewer_shared_types_1.PRIMITIVE_MODE.LINE_STRIP) {
422
476
  const line = new THREE.Line(threeGeometry, material);
423
477
  geometry.convertedObject[this._renderingEngine.id] = line;
424
- obj.add(line);
478
+ threeGeometryObject = line;
425
479
  }
426
480
  else if (geometry.mode === viewer_shared_types_1.PRIMITIVE_MODE.TRIANGLES ||
427
481
  geometry.mode === viewer_shared_types_1.PRIMITIVE_MODE.TRIANGLE_STRIP ||
@@ -430,60 +484,66 @@ class GeometryLoader {
430
484
  if (geometry.mode === viewer_shared_types_1.PRIMITIVE_MODE.TRIANGLE_STRIP ||
431
485
  geometry.mode === viewer_shared_types_1.PRIMITIVE_MODE.TRIANGLE_FAN)
432
486
  this.convertToTriangleMode(bufferGeometry, geometry.mode);
433
- if (skeleton) {
434
- const skinnedMesh = new THREE.SkinnedMesh(bufferGeometry, material);
435
- geometry.convertedObject[this._renderingEngine.id] =
436
- skinnedMesh;
437
- skinnedMesh.bind(skeleton, skinnedMesh.matrixWorld);
438
- if ((bufferGeometry.attributes.skinWeight).normalized)
439
- skinnedMesh.normalizeSkinWeights();
440
- obj.add(skinnedMesh);
441
- }
442
- else {
443
- if (instanceData && instanceData.instanceMatrices.length > 0) {
444
- const instancedMesh = new THREE.InstancedMesh(bufferGeometry, material, instanceData.instanceMatrices.length);
445
- for (let i = 0; i < instanceData.instanceMatrices.length; i++) {
446
- instancedMesh.setMatrixAt(i, new THREE.Matrix4().fromArray(instanceData.instanceMatrices[i]));
487
+ if (instanceData && instanceData.instanceMatrices.length > 0) {
488
+ const instanceCount = instanceData.instanceMatrices.length;
489
+ const instancedMesh = new THREE.InstancedMesh(bufferGeometry, material, instanceCount);
490
+ // Reuse matrix object to reduce allocations
491
+ const tempMatrix = new THREE.Matrix4();
492
+ const useInstanceColors = this._renderingEngine.type !== viewer_shared_types_1.RENDERER_TYPE.ATTRIBUTES;
493
+ for (let i = 0; i < instanceCount; i++) {
494
+ tempMatrix.fromArray(instanceData.instanceMatrices[i]);
495
+ instancedMesh.setMatrixAt(i, tempMatrix);
496
+ if (useInstanceColors) {
447
497
  instancedMesh.setColorAt(i, this._renderingEngine.createThreeJsColor(instanceData.instanceColors[i]));
448
498
  }
449
- if (instancedMesh.instanceColor)
450
- instancedMesh.instanceColor.needsUpdate = true;
451
- instancedMesh.instanceMatrix.needsUpdate = true;
452
- geometry.convertedObject[this._renderingEngine.id] =
453
- instancedMesh;
454
- obj.add(instancedMesh);
455
- }
456
- else {
457
- const mesh = new THREE.Mesh(bufferGeometry, material);
458
- geometry.convertedObject[this._renderingEngine.id] = mesh;
459
- obj.add(mesh);
460
499
  }
500
+ if (instancedMesh.instanceColor)
501
+ instancedMesh.instanceColor.needsUpdate = true;
502
+ instancedMesh.instanceMatrix.needsUpdate = true;
503
+ // Enable frustum culling for instanced meshes
504
+ instancedMesh.frustumCulled = true;
505
+ geometry.convertedObject[this._renderingEngine.id] =
506
+ instancedMesh;
507
+ threeGeometryObject = instancedMesh;
508
+ }
509
+ else {
510
+ const mesh = new THREE.Mesh(bufferGeometry, material);
511
+ geometry.convertedObject[this._renderingEngine.id] = mesh;
512
+ threeGeometryObject = mesh;
461
513
  }
462
514
  }
463
515
  else {
464
516
  throw new viewer_shared_services_1.ShapeDiverViewerDataProcessingError(`GeometryLoader.load: Unrecognized primitive mode ${geometry.mode}.`);
465
517
  }
466
- obj.traverse((m) => {
467
- if (m instanceof THREE.Mesh ||
468
- m instanceof THREE.Points ||
469
- m instanceof THREE.LineSegments ||
470
- m instanceof THREE.LineLoop ||
471
- m instanceof THREE.Line) {
472
- m.geometry.userData = {
473
- SDid: geometry.id,
474
- SDversion: geometry.version,
475
- primitiveSDid: geometry.primitive.id,
476
- primitiveSDversion: geometry.primitive.version,
477
- };
478
- m.renderOrder = geometry.renderOrder;
479
- }
480
- if (m instanceof THREE.Mesh &&
481
- m.userData.transparencyPlaceholder !== true) {
482
- m.geometry.boundingBox = new THREE.Box3(new THREE.Vector3(geometry.boundingBox.min[0], geometry.boundingBox.min[1], geometry.boundingBox.min[2]), new THREE.Vector3(geometry.boundingBox.max[0], geometry.boundingBox.max[1], geometry.boundingBox.max[2]));
483
- m.geometry.boundingSphere = new THREE.Sphere(new THREE.Vector3(geometry.boundingBox.boundingSphere.center[0], geometry.boundingBox.boundingSphere.center[1], geometry.boundingBox.boundingSphere.center[2]), geometry.boundingBox.boundingSphere.radius);
484
- m.morphTargetInfluences = geometry.morphWeights;
485
- }
486
- });
518
+ // Cache userData and bounding box data to reduce allocations
519
+ const userDataCache = {
520
+ SDid: geometry.id,
521
+ SDversion: geometry.version,
522
+ primitiveSDid: geometry.primitive.id,
523
+ primitiveSDversion: geometry.primitive.version,
524
+ };
525
+ const bbox = geometry.boundingBox;
526
+ const bboxMin = new THREE.Vector3(bbox.min[0], bbox.min[1], bbox.min[2]);
527
+ const bboxMax = new THREE.Vector3(bbox.max[0], bbox.max[1], bbox.max[2]);
528
+ const bsphereCenter = new THREE.Vector3(bbox.boundingSphere.center[0], bbox.boundingSphere.center[1], bbox.boundingSphere.center[2]);
529
+ const renderOrder = geometry.renderOrder;
530
+ const threeGeom = threeGeometryObject.geometry;
531
+ threeGeom.userData = userDataCache;
532
+ threeGeometryObject.renderOrder = renderOrder;
533
+ // Performance: Disable matrixAutoUpdate for static geometry (no animations/transforms)
534
+ // This prevents Three.js from recalculating matrices every frame
535
+ if (!instanceData) {
536
+ threeGeometryObject.matrixAutoUpdate = false;
537
+ }
538
+ if (threeGeometryObject instanceof THREE.Mesh &&
539
+ threeGeometryObject.userData.transparencyPlaceholder !== true) {
540
+ // Assign bounding box directly without unnecessary clones
541
+ threeGeom.boundingBox = new THREE.Box3(bboxMin, bboxMax);
542
+ threeGeom.boundingSphere = new THREE.Sphere(bsphereCenter, bbox.boundingSphere.radius);
543
+ threeGeometryObject.morphTargetInfluences =
544
+ geometry.morphWeights;
545
+ }
546
+ return threeGeometryObject;
487
547
  }
488
548
  getAttributeName(attributeId) {
489
549
  switch (attributeId) {
@@ -506,12 +566,6 @@ class GeometryLoader {
506
566
  case "COLOR0":
507
567
  case "COLOR":
508
568
  return "color";
509
- case "WEIGHT":
510
- case "WEIGHTS_0":
511
- return "skinWeight";
512
- case "JOINT":
513
- case "JOINTS_0":
514
- return "skinIndex";
515
569
  case "TANGENT":
516
570
  return "tangent";
517
571
  case "POSITION_INDEX":
@@ -1 +1 @@
1
- {"version":3,"file":"GeometryLoader.js","sourceRoot":"","sources":["../../src/loaders/GeometryLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeometryLoader.js","sourceRoot":"","sources":["../../src/loaders/GeometryLoader.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { ITreeNode } from "@shapediver/viewer.shared.node-tree";
2
- import { HTMLElementAnchorData } from "@shapediver/viewer.shared.types";
1
+ import { HTMLElementAnchorData, ITreeNode } from "@shapediver/viewer.shared.node-tree";
3
2
  import { ILoader } from "../interfaces/ILoader";
4
3
  import { RenderingEngine } from "../RenderingEngine";
5
4
  export declare class HTMLElementAnchorLoader implements ILoader {
@@ -1 +1 @@
1
- {"version":3,"file":"HTMLElementAnchorLoader.d.ts","sourceRoot":"","sources":["../../src/loaders/HTMLElementAnchorLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,qCAAqC,CAAC;AAC9D,OAAO,EAEN,qBAAqB,EACrB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AAEnD,qBAAa,uBAAwB,YAAW,OAAO;IAe1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAZ7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAKvB;IACP,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;gBAMf,gBAAgB,EAAE,eAAe;IAS9D,IAAW,SAAS,IAAI,cAAc,CAErC;IAMM,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IA4C9D,IAAI,IAAI,IAAI;IAIZ,IAAI,CACV,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,qBAAqB,EAC7B,oBAAoB,EAAE,OAAO,GAC3B,IAAI;IAuBA,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IActC,cAAc,CAAC,MAAM,EAAE,OAAO;CAiBrC"}
1
+ {"version":3,"file":"HTMLElementAnchorLoader.d.ts","sourceRoot":"","sources":["../../src/loaders/HTMLElementAnchorLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,qBAAqB,EACrB,SAAS,EACT,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AAEnD,qBAAa,uBAAwB,YAAW,OAAO;IAe1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAZ7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAKvB;IACP,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;gBAMf,gBAAgB,EAAE,eAAe;IAS9D,IAAW,SAAS,IAAI,cAAc,CAErC;IAMM,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IA4C9D,IAAI,IAAI,IAAI;IAIZ,IAAI,CACV,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,qBAAqB,EAC7B,oBAAoB,EAAE,OAAO,GAC3B,IAAI;IAuBA,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IActC,cAAc,CAAC,MAAM,EAAE,OAAO;CAiBrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"HTMLElementAnchorLoader.js","sourceRoot":"","sources":["../../src/loaders/HTMLElementAnchorLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HTMLElementAnchorLoader.js","sourceRoot":"","sources":["../../src/loaders/HTMLElementAnchorLoader.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { AbstractLight } from "@shapediver/viewer.rendering-engine.light-engine";
2
2
  import { IBox } from "@shapediver/viewer.shared.math";
3
+ import * as THREE from "three";
3
4
  import { ILoader } from "../interfaces/ILoader";
4
- import { SDData } from "../objects/SDData";
5
+ import { SDObject } from "../objects/SDObject";
5
6
  import { RenderingEngine } from "../RenderingEngine";
6
7
  export declare class LightLoader implements ILoader {
7
8
  private readonly _renderingEngine;
@@ -12,8 +13,8 @@ export declare class LightLoader implements ILoader {
12
13
  set forceDisabledShadows(value: boolean);
13
14
  get shadowMapCount(): number;
14
15
  set shadowMapCount(value: number);
15
- adjustToBoundingBox(light: AbstractLight, dataChild: SDData, boundingBox: IBox): void;
16
+ adjustToBoundingBox(light: AbstractLight, dataChild: SDObject, boundingBox: IBox): void;
16
17
  init(): void;
17
- load(light: AbstractLight, dataChild: SDData): void;
18
+ load(light: AbstractLight, dataChild: SDObject): THREE.Light<THREE.LightShadow<THREE.Camera> | undefined> | null;
18
19
  }
19
20
  //# sourceMappingURL=LightLoader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LightLoader.d.ts","sourceRoot":"","sources":["../../src/loaders/LightLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EAMb,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAC,IAAI,EAAU,MAAM,gCAAgC,CAAC;AAE7D,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AAEnD,qBAAa,WAAY,YAAW,OAAO;IAU9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAP7C,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,eAAe,CAAK;gBAMC,gBAAgB,EAAE,eAAe;IAM9D,IAAW,oBAAoB,IAAI,OAAO,CAEzC;IAED,IAAW,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAE7C;IAED,IAAW,cAAc,IAAI,MAAM,CAElC;IAED,IAAW,cAAc,CAAC,KAAK,EAAE,MAAM,EAEtC;IAMM,mBAAmB,CACzB,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,IAAI;IA2CX,IAAI,IAAI,IAAI;IAEZ,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM;CA+InD"}
1
+ {"version":3,"file":"LightLoader.d.ts","sourceRoot":"","sources":["../../src/loaders/LightLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EAMb,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAC,IAAI,EAAU,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AAEnD,qBAAa,WAAY,YAAW,OAAO;IAU9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAP7C,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,eAAe,CAAK;gBAMC,gBAAgB,EAAE,eAAe;IAM9D,IAAW,oBAAoB,IAAI,OAAO,CAEzC;IAED,IAAW,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAE7C;IAED,IAAW,cAAc,IAAI,MAAM,CAElC;IAED,IAAW,cAAc,CAAC,KAAK,EAAE,MAAM,EAEtC;IAMM,mBAAmB,CACzB,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,QAAQ,EACnB,WAAW,EAAE,IAAI;IA2CX,IAAI,IAAI,IAAI;IAEZ,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ;CAwJrD"}
@@ -102,6 +102,10 @@ class LightLoader {
102
102
  if (!threeLight) {
103
103
  threeLight = new THREE.DirectionalLight();
104
104
  dataChild.add(threeLight);
105
+ threeLight.target.userData.SDid =
106
+ light.id;
107
+ threeLight.target.userData.SDversion =
108
+ light.version;
105
109
  dataChild.add(threeLight.target);
106
110
  light.convertedObject[this._renderingEngine.id] = threeLight;
107
111
  }
@@ -157,6 +161,9 @@ class LightLoader {
157
161
  threeLight = new THREE.SpotLight(this._renderingEngine.createThreeJsColor(light.color), light.intensity, light.distance, light.angle, light.penumbra, light.decay);
158
162
  dataChild.add(threeLight);
159
163
  dataChild.add(threeLight.target);
164
+ threeLight.target.userData.SDid = light.id;
165
+ threeLight.target.userData.SDversion =
166
+ light.version;
160
167
  light.convertedObject[this._renderingEngine.id] = threeLight;
161
168
  }
162
169
  const threeSpotLight = threeLight;
@@ -174,6 +181,7 @@ class LightLoader {
174
181
  threeSpotLight.position.set(light.position[0], light.position[1], light.position[2]);
175
182
  threeSpotLight.target.position.set(light.target[0], light.target[1], light.target[2]);
176
183
  }
184
+ return threeLight;
177
185
  }
178
186
  }
179
187
  exports.LightLoader = LightLoader;
@@ -1 +1 @@
1
- {"version":3,"file":"LightLoader.js","sourceRoot":"","sources":["../../src/loaders/LightLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LightLoader.js","sourceRoot":"","sources":["../../src/loaders/LightLoader.ts"],"names":[],"mappings":"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"}