three-cad-viewer 4.3.4 → 4.3.6

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 (59) hide show
  1. package/dist/scene/clipping.d.ts +6 -0
  2. package/dist/three-cad-viewer.esm.js +20 -5
  3. package/dist/three-cad-viewer.esm.js.map +1 -1
  4. package/dist/three-cad-viewer.esm.min.js +1 -1
  5. package/dist/three-cad-viewer.js +20 -5
  6. package/dist/three-cad-viewer.min.js +1 -1
  7. package/package.json +2 -3
  8. package/src/_version.ts +0 -1
  9. package/src/camera/camera.ts +0 -445
  10. package/src/camera/controls/CADOrbitControls.ts +0 -241
  11. package/src/camera/controls/CADTrackballControls.ts +0 -598
  12. package/src/camera/controls.ts +0 -380
  13. package/src/core/patches.ts +0 -16
  14. package/src/core/studio-manager.ts +0 -652
  15. package/src/core/types.ts +0 -892
  16. package/src/core/viewer-state.ts +0 -784
  17. package/src/core/viewer.ts +0 -4821
  18. package/src/index.ts +0 -151
  19. package/src/rendering/environment.ts +0 -840
  20. package/src/rendering/light-detection.ts +0 -327
  21. package/src/rendering/material-factory.ts +0 -735
  22. package/src/rendering/material-presets.ts +0 -289
  23. package/src/rendering/raycast.ts +0 -291
  24. package/src/rendering/room-environment.ts +0 -192
  25. package/src/rendering/studio-composer.ts +0 -577
  26. package/src/rendering/studio-floor.ts +0 -108
  27. package/src/rendering/texture-cache.ts +0 -324
  28. package/src/rendering/tree-model.ts +0 -542
  29. package/src/rendering/triplanar.ts +0 -329
  30. package/src/scene/animation.ts +0 -343
  31. package/src/scene/axes.ts +0 -108
  32. package/src/scene/bbox.ts +0 -223
  33. package/src/scene/clipping.ts +0 -640
  34. package/src/scene/grid.ts +0 -864
  35. package/src/scene/nestedgroup.ts +0 -1444
  36. package/src/scene/objectgroup.ts +0 -866
  37. package/src/scene/orientation.ts +0 -259
  38. package/src/scene/render-shape.ts +0 -634
  39. package/src/tools/cad_tools/measure.ts +0 -811
  40. package/src/tools/cad_tools/select.ts +0 -100
  41. package/src/tools/cad_tools/tools.ts +0 -231
  42. package/src/tools/cad_tools/ui.ts +0 -454
  43. package/src/tools/cad_tools/zebra.ts +0 -369
  44. package/src/types/html.d.ts +0 -5
  45. package/src/types/n8ao.d.ts +0 -28
  46. package/src/types/three-augmentation.d.ts +0 -60
  47. package/src/ui/display.ts +0 -3295
  48. package/src/ui/index.html +0 -505
  49. package/src/ui/info.ts +0 -177
  50. package/src/ui/slider.ts +0 -206
  51. package/src/ui/toolbar.ts +0 -347
  52. package/src/ui/treeview.ts +0 -945
  53. package/src/utils/decode-instances.ts +0 -233
  54. package/src/utils/font.ts +0 -60
  55. package/src/utils/gpu-tracker.ts +0 -265
  56. package/src/utils/logger.ts +0 -92
  57. package/src/utils/sizeof.ts +0 -116
  58. package/src/utils/timer.ts +0 -69
  59. package/src/utils/utils.ts +0 -446
@@ -20,6 +20,12 @@ declare class CenteredPlane extends THREE.Plane {
20
20
  * @param value - The centered constant value.
21
21
  */
22
22
  setConstant(value: number): void;
23
+ /**
24
+ * Clone this CenteredPlane.
25
+ * Overrides THREE.Plane.clone() which calls `new this.constructor()` without
26
+ * arguments, causing `center` to be undefined during shadow map generation.
27
+ */
28
+ clone(): CenteredPlane;
23
29
  }
24
30
  /**
25
31
  * A THREE.Group that only contains PlaneMesh children.
@@ -83215,9 +83215,11 @@ class MaterialFactory {
83215
83215
  const roleForCache = colorSpace === SRGBColorSpace
83216
83216
  ? "baseColorTexture"
83217
83217
  : "normalTexture";
83218
- const tex = await textureCache.get(textureRef, roleForCache);
83218
+ let tex = await textureCache.get(textureRef, roleForCache);
83219
83219
  if (tex) {
83220
- if (textureRepeat) {
83220
+ if (textureRepeat && (textureRepeat[0] !== 1 || textureRepeat[1] !== 1)) {
83221
+ // Clone to avoid mutating shared cached texture
83222
+ tex = tex.clone();
83221
83223
  tex.repeat.set(textureRepeat[0], textureRepeat[1]);
83222
83224
  }
83223
83225
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -84131,11 +84133,15 @@ class NestedGroup {
84131
84133
  logger.warn(`Unknown builtin preset '${presetName}' referenced by '${tag}' on '${objectPath}'`);
84132
84134
  return null;
84133
84135
  }
84134
- const resolved = { ...preset, ...appearance };
84136
+ // Strip preset color unless the user explicitly provides one,
84137
+ // so the leaf node's CAD color is used as fallback.
84138
+ const { color: presetColor, ...presetRest } = preset;
84139
+ const resolved = "color" in appearance
84140
+ ? { ...preset, ...appearance }
84141
+ : { ...presetRest, ...appearance };
84135
84142
  this.resolvedMaterials.set(tag, resolved);
84136
84143
  return resolved;
84137
84144
  }
84138
- // Should not happen with current type, but guard anyway
84139
84145
  logger.warn(`Unrecognised material entry for tag '${tag}' on '${objectPath}'`);
84140
84146
  return null;
84141
84147
  }
@@ -87474,6 +87480,15 @@ class CenteredPlane extends Plane {
87474
87480
  const z = this.distanceToPoint(new Vector3(0, 0, 0));
87475
87481
  this.constant = z - c + value;
87476
87482
  }
87483
+ /**
87484
+ * Clone this CenteredPlane.
87485
+ * Overrides THREE.Plane.clone() which calls `new this.constructor()` without
87486
+ * arguments, causing `center` to be undefined during shadow map generation.
87487
+ */
87488
+ // @ts-expect-error -- THREE.Plane.clone() returns `this`, but we need a concrete CenteredPlane
87489
+ clone() {
87490
+ return new CenteredPlane(this.normal.clone(), this.centeredConstant, [...this.center]);
87491
+ }
87477
87492
  }
87478
87493
  // ============================================================================
87479
87494
  // PlaneMesh - Visual representation of a clipping plane
@@ -94288,7 +94303,7 @@ class Tools {
94288
94303
  }
94289
94304
  }
94290
94305
 
94291
- const version = "4.3.4";
94306
+ const version = "4.3.6";
94292
94307
 
94293
94308
  /**
94294
94309
  * Clean room environment for Studio mode PMREM generation.