@treasuryspatial/viewer-kit 0.2.45 → 0.2.50

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 (68) hide show
  1. package/dist/autoGenerate.d.ts.map +1 -1
  2. package/dist/autoGenerate.js +7 -1
  3. package/dist/camera.d.ts +1 -0
  4. package/dist/camera.d.ts.map +1 -1
  5. package/dist/camera.js +8 -1
  6. package/dist/engine/ViewerEngine.d.ts +20 -0
  7. package/dist/engine/ViewerEngine.d.ts.map +1 -1
  8. package/dist/engine/ViewerEngine.js +254 -63
  9. package/dist/engine/types.d.ts +69 -3
  10. package/dist/engine/types.d.ts.map +1 -1
  11. package/dist/exports/download.d.ts +6 -0
  12. package/dist/exports/download.d.ts.map +1 -1
  13. package/dist/exports/download.js +142 -0
  14. package/dist/exports/three-export.d.ts +4 -1
  15. package/dist/exports/three-export.d.ts.map +1 -1
  16. package/dist/exports/three-export.js +138 -4
  17. package/dist/index.d.ts +13 -9
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +5 -4
  20. package/dist/materials/architectural.d.ts +3 -3
  21. package/dist/materials/architectural.d.ts.map +1 -1
  22. package/dist/materials/architectural.js +295 -37
  23. package/dist/materials/catalogue-data.d.ts +15 -0
  24. package/dist/materials/catalogue-data.d.ts.map +1 -1
  25. package/dist/materials/catalogue-data.js +16 -0
  26. package/dist/materials/presets.d.ts +15 -8
  27. package/dist/materials/presets.d.ts.map +1 -1
  28. package/dist/materials/presets.js +140 -39
  29. package/dist/materials/resolve.d.ts +42 -0
  30. package/dist/materials/resolve.d.ts.map +1 -1
  31. package/dist/materials/resolve.js +228 -13
  32. package/dist/materials/types.d.ts +32 -3
  33. package/dist/materials/types.d.ts.map +1 -1
  34. package/dist/presets/defaults.d.ts.map +1 -1
  35. package/dist/presets/defaults.js +17 -1
  36. package/dist/presets/sciencePresets.d.ts.map +1 -1
  37. package/dist/presets/sciencePresets.js +167 -50
  38. package/dist/scene.d.ts +28 -4
  39. package/dist/scene.d.ts.map +1 -1
  40. package/dist/scene.js +196 -31
  41. package/dist/sceneSemanticRegistry.d.ts +64 -0
  42. package/dist/sceneSemanticRegistry.d.ts.map +1 -0
  43. package/dist/sceneSemanticRegistry.js +199 -0
  44. package/dist/sky/scienceSky.d.ts.map +1 -1
  45. package/dist/sky/scienceSky.js +16 -0
  46. package/dist/systems/debugSystem.d.ts +24 -1
  47. package/dist/systems/debugSystem.d.ts.map +1 -1
  48. package/dist/systems/debugSystem.js +324 -77
  49. package/dist/systems/environmentSystem.d.ts +5 -4
  50. package/dist/systems/environmentSystem.d.ts.map +1 -1
  51. package/dist/systems/environmentSystem.js +138 -62
  52. package/dist/systems/lightingSystem.d.ts +10 -1
  53. package/dist/systems/lightingSystem.d.ts.map +1 -1
  54. package/dist/systems/lightingSystem.js +118 -17
  55. package/dist/systems/postfxSystem.d.ts +5 -1
  56. package/dist/systems/postfxSystem.d.ts.map +1 -1
  57. package/dist/systems/postfxSystem.js +84 -1
  58. package/dist/systems/rendererSystem.d.ts.map +1 -1
  59. package/dist/systems/rendererSystem.js +1 -0
  60. package/dist/tsconfig.tsbuildinfo +1 -1
  61. package/dist/uploads/geometry3dm.d.ts.map +1 -1
  62. package/dist/uploads/geometry3dm.js +1 -0
  63. package/dist/uploads/grasshopper.d.ts.map +1 -1
  64. package/dist/uploads/grasshopper.js +63 -5
  65. package/dist/uploads/mesh.js +5 -5
  66. package/dist/uploads/types.d.ts +4 -0
  67. package/dist/uploads/types.d.ts.map +1 -1
  68. package/package.json +3 -3
@@ -11,6 +11,7 @@ export type RendererConfig = {
11
11
  toneMappingExposure?: number;
12
12
  outputColorSpace?: "srgb" | "linear";
13
13
  maxPixelRatio?: number;
14
+ powerPreference?: WebGLPowerPreference;
14
15
  antialias?: boolean;
15
16
  alpha?: boolean;
16
17
  preserveDrawingBuffer?: boolean;
@@ -40,6 +41,19 @@ export type SkyHdrConfig = {
40
41
  pmremResolution?: 256 | 512 | 1024;
41
42
  usePmrem?: boolean;
42
43
  };
44
+ export type SkyImageConfig = {
45
+ src: string;
46
+ projection?: "equirectangular" | "backplate";
47
+ rotationY?: number;
48
+ rotation?: {
49
+ yaw?: number;
50
+ pitch?: number;
51
+ roll?: number;
52
+ };
53
+ showBackground?: boolean;
54
+ showLighting?: boolean;
55
+ usePmrem?: boolean;
56
+ };
43
57
  export type SkyCubeConfig = {
44
58
  px: string;
45
59
  nx: string;
@@ -64,6 +78,9 @@ export type SkyDefinition = {
64
78
  } | {
65
79
  mode: "gradient";
66
80
  gradient: SkyGradientConfig;
81
+ } | {
82
+ mode: "image";
83
+ image: SkyImageConfig;
67
84
  } | {
68
85
  mode: "hdr";
69
86
  hdr: SkyHdrConfig;
@@ -71,6 +88,7 @@ export type SkyDefinition = {
71
88
  mode: "cube";
72
89
  cube: SkyCubeConfig;
73
90
  };
91
+ export type EnvironmentMode = SkyDefinition["mode"];
74
92
  export type LightingRigConfig = {
75
93
  rig?: "studio" | "neutral" | "gallery" | "none";
76
94
  ambient?: {
@@ -86,20 +104,26 @@ export type LightingRigConfig = {
86
104
  color: string;
87
105
  intensity: number;
88
106
  position: [number, number, number];
107
+ positionMode?: "target-offset" | "world";
89
108
  castShadow?: boolean;
90
109
  };
91
110
  fill?: {
92
111
  color: string;
93
112
  intensity: number;
94
113
  position: [number, number, number];
114
+ positionMode?: "target-offset" | "world";
95
115
  };
96
116
  shadow?: {
117
+ autoFit?: boolean;
97
118
  cameraSize?: number;
98
119
  near?: number;
99
120
  far?: number;
100
121
  bias?: number;
122
+ normalBias?: number;
101
123
  radius?: number;
102
124
  mapSize?: number;
125
+ margin?: number;
126
+ depthMargin?: number;
103
127
  };
104
128
  };
105
129
  export type PostFxConfig = {
@@ -128,7 +152,10 @@ export type PostFxConfig = {
128
152
  export type SceneExtrasConfig = {
129
153
  grid?: boolean;
130
154
  ground?: boolean;
155
+ groundMode?: "finite" | "infinite";
156
+ gridMode?: "finite" | "infinite";
131
157
  axes?: boolean;
158
+ shadowHelpers?: boolean;
132
159
  origin?: boolean;
133
160
  lightTarget?: [number, number, number];
134
161
  groundColor?: number;
@@ -138,9 +165,17 @@ export type SceneExtrasConfig = {
138
165
  groundOffset?: number;
139
166
  groundAutoScale?: number;
140
167
  groundAutoScaleHdr?: number;
168
+ gridPlane?: "floor" | "ground";
169
+ gridUnit?: number;
170
+ gridMajorEvery?: number;
171
+ gridSuperMajorEvery?: number;
141
172
  gridColor?: number;
142
173
  gridColorSecondary?: number;
174
+ gridMajorColor?: number;
175
+ gridSuperMajorColor?: number;
143
176
  gridOpacity?: number;
177
+ gridMajorOpacity?: number;
178
+ gridSuperMajorOpacity?: number;
144
179
  gridDivisions?: number;
145
180
  gridSize?: number;
146
181
  gridAutoScale?: number;
@@ -162,6 +197,11 @@ export type SceneExtrasConfig = {
162
197
  originColor?: number;
163
198
  originSize?: number;
164
199
  axesPosition?: [number, number, number];
200
+ outline?: boolean;
201
+ outlineColor?: number;
202
+ outlineOpacity?: number;
203
+ outlineThresholdAngle?: number;
204
+ outlineDepthTest?: boolean;
165
205
  };
166
206
  export type RenderPresetDefinition = {
167
207
  id: string;
@@ -189,7 +229,7 @@ export type ViewerSnapshot = {
189
229
  outputColorSpace: string;
190
230
  };
191
231
  environment: {
192
- mode: "none" | "gradient" | "hdr" | "cube";
232
+ mode: EnvironmentMode;
193
233
  backgroundEnabled: boolean;
194
234
  lightingEnabled: boolean;
195
235
  };
@@ -226,9 +266,29 @@ export type ViewerDebugInfo = {
226
266
  children: number;
227
267
  rootChildren: number;
228
268
  lights: number;
269
+ bounds: {
270
+ min: [number, number, number];
271
+ max: [number, number, number];
272
+ center: [number, number, number];
273
+ radius: number;
274
+ } | null;
275
+ };
276
+ workplane: {
277
+ groundEnabled: boolean;
278
+ gridEnabled: boolean;
279
+ groundY: number | null;
280
+ gridY: number | null;
281
+ gridSize: number | null;
282
+ gridDivisions: number | null;
283
+ };
284
+ lighting: {
285
+ keyPosition: [number, number, number] | null;
286
+ keyTarget: [number, number, number] | null;
287
+ fillPosition: [number, number, number] | null;
288
+ fillTarget: [number, number, number] | null;
229
289
  };
230
290
  environment: {
231
- mode: "none" | "gradient" | "hdr" | "cube";
291
+ mode: EnvironmentMode;
232
292
  backgroundEnabled: boolean;
233
293
  lightingEnabled: boolean;
234
294
  };
@@ -238,10 +298,13 @@ export type ViewerDebugInfo = {
238
298
  vignetteEnabled: boolean;
239
299
  };
240
300
  };
301
+ export type CameraKind = "perspective" | "orthographic";
241
302
  export type CameraState = {
303
+ kind?: CameraKind;
242
304
  position: [number, number, number];
243
305
  target: [number, number, number];
244
306
  fov: number;
307
+ orthographicHeight?: number;
245
308
  near?: number;
246
309
  far?: number;
247
310
  };
@@ -254,9 +317,12 @@ export type ViewerCreateOptions = {
254
317
  antialias?: boolean;
255
318
  alpha?: boolean;
256
319
  preserveDrawingBuffer?: boolean;
320
+ powerPreference?: WebGLPowerPreference;
257
321
  };
258
322
  camera?: {
323
+ kind?: CameraKind;
259
324
  fov?: number;
325
+ orthographicHeight?: number;
260
326
  near?: number;
261
327
  far?: number;
262
328
  position?: [number, number, number];
@@ -270,7 +336,7 @@ export type ViewerCreateOptions = {
270
336
  };
271
337
  export type ViewerRuntime = {
272
338
  scene: THREE.Scene;
273
- camera: THREE.PerspectiveCamera;
339
+ camera: THREE.Camera;
274
340
  renderer: THREE.WebGLRenderer;
275
341
  rootGroup: THREE.Group;
276
342
  sceneBounds: THREE.Box3 | null;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/engine/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/engine/types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,8 @@
1
1
  export declare function downloadBlob(blob: Blob, filename: string): void;
2
+ export type StoredZipEntrySource = Blob | ArrayBuffer | Uint8Array | string;
3
+ export type StoredZipEntry = {
4
+ path: string;
5
+ data: StoredZipEntrySource;
6
+ };
7
+ export declare function createStoredZip(entries: StoredZipEntry[]): Promise<Blob>;
2
8
  //# sourceMappingURL=download.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/exports/download.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QASxD"}
1
+ {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/exports/download.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QASxD;AAED,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;AAE5E,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,oBAAoB,CAAC;CAC5B,CAAC;AAuIF,wBAAsB,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC9E"}
@@ -8,3 +8,145 @@ export function downloadBlob(blob, filename) {
8
8
  link.remove();
9
9
  setTimeout(() => URL.revokeObjectURL(url), 0);
10
10
  }
11
+ const textEncoder = new TextEncoder();
12
+ let crcTable = null;
13
+ const getCrcTable = () => {
14
+ if (crcTable)
15
+ return crcTable;
16
+ const table = new Uint32Array(256);
17
+ for (let index = 0; index < 256; index += 1) {
18
+ let value = index;
19
+ for (let bit = 0; bit < 8; bit += 1) {
20
+ value = value & 1 ? 0xedb88320 ^ (value >>> 1) : value >>> 1;
21
+ }
22
+ table[index] = value >>> 0;
23
+ }
24
+ crcTable = table;
25
+ return table;
26
+ };
27
+ const crc32 = (bytes) => {
28
+ const table = getCrcTable();
29
+ let crc = 0xffffffff;
30
+ for (let index = 0; index < bytes.length; index += 1) {
31
+ crc = table[(crc ^ bytes[index]) & 0xff] ^ (crc >>> 8);
32
+ }
33
+ return (crc ^ 0xffffffff) >>> 0;
34
+ };
35
+ const toUint8Array = async (source) => {
36
+ if (typeof source === "string")
37
+ return textEncoder.encode(source);
38
+ if (source instanceof Uint8Array)
39
+ return source;
40
+ if (source instanceof ArrayBuffer)
41
+ return new Uint8Array(source);
42
+ return new Uint8Array(await source.arrayBuffer());
43
+ };
44
+ const sanitizeZipPath = (path) => {
45
+ const normalized = path
46
+ .replace(/\\/g, "/")
47
+ .split("/")
48
+ .filter((part) => part && part !== "." && part !== "..")
49
+ .join("/");
50
+ if (!normalized)
51
+ throw new Error("ZIP entry path cannot be empty.");
52
+ return normalized;
53
+ };
54
+ const dateToDosTime = (date) => {
55
+ const year = Math.max(1980, date.getFullYear());
56
+ const time = (date.getHours() << 11) |
57
+ (date.getMinutes() << 5) |
58
+ Math.floor(date.getSeconds() / 2);
59
+ const day = ((year - 1980) << 9) |
60
+ ((date.getMonth() + 1) << 5) |
61
+ date.getDate();
62
+ return { time, day };
63
+ };
64
+ const writeUint16 = (view, offset, value) => view.setUint16(offset, value, true);
65
+ const writeUint32 = (view, offset, value) => view.setUint32(offset, value >>> 0, true);
66
+ const buildLocalFileHeader = (nameBytes, data, checksum, modified) => {
67
+ const header = new Uint8Array(30);
68
+ const view = new DataView(header.buffer);
69
+ const { time, day } = dateToDosTime(modified);
70
+ writeUint32(view, 0, 0x04034b50);
71
+ writeUint16(view, 4, 20);
72
+ writeUint16(view, 6, 0);
73
+ writeUint16(view, 8, 0);
74
+ writeUint16(view, 10, time);
75
+ writeUint16(view, 12, day);
76
+ writeUint32(view, 14, checksum);
77
+ writeUint32(view, 18, data.byteLength);
78
+ writeUint32(view, 22, data.byteLength);
79
+ writeUint16(view, 26, nameBytes.byteLength);
80
+ writeUint16(view, 28, 0);
81
+ return header;
82
+ };
83
+ const buildCentralDirectoryHeader = (nameBytes, data, checksum, localHeaderOffset, modified) => {
84
+ const header = new Uint8Array(46);
85
+ const view = new DataView(header.buffer);
86
+ const { time, day } = dateToDosTime(modified);
87
+ writeUint32(view, 0, 0x02014b50);
88
+ writeUint16(view, 4, 20);
89
+ writeUint16(view, 6, 20);
90
+ writeUint16(view, 8, 0);
91
+ writeUint16(view, 10, 0);
92
+ writeUint16(view, 12, time);
93
+ writeUint16(view, 14, day);
94
+ writeUint32(view, 16, checksum);
95
+ writeUint32(view, 20, data.byteLength);
96
+ writeUint32(view, 24, data.byteLength);
97
+ writeUint16(view, 28, nameBytes.byteLength);
98
+ writeUint16(view, 30, 0);
99
+ writeUint16(view, 32, 0);
100
+ writeUint16(view, 34, 0);
101
+ writeUint16(view, 36, 0);
102
+ writeUint32(view, 38, 0);
103
+ writeUint32(view, 42, localHeaderOffset);
104
+ return header;
105
+ };
106
+ const buildEndOfCentralDirectory = (entryCount, centralDirectorySize, centralDirectoryOffset) => {
107
+ const header = new Uint8Array(22);
108
+ const view = new DataView(header.buffer);
109
+ writeUint32(view, 0, 0x06054b50);
110
+ writeUint16(view, 4, 0);
111
+ writeUint16(view, 6, 0);
112
+ writeUint16(view, 8, entryCount);
113
+ writeUint16(view, 10, entryCount);
114
+ writeUint32(view, 12, centralDirectorySize);
115
+ writeUint32(view, 16, centralDirectoryOffset);
116
+ writeUint16(view, 20, 0);
117
+ return header;
118
+ };
119
+ const toArrayBufferPart = (bytes) => bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength);
120
+ export async function createStoredZip(entries) {
121
+ if (!entries.length)
122
+ throw new Error("ZIP requires at least one entry.");
123
+ const seen = new Set();
124
+ const modified = new Date();
125
+ const fileParts = [];
126
+ const centralParts = [];
127
+ let offset = 0;
128
+ for (const entry of entries) {
129
+ const path = sanitizeZipPath(entry.path);
130
+ if (seen.has(path))
131
+ throw new Error(`Duplicate ZIP entry: ${path}`);
132
+ seen.add(path);
133
+ const nameBytes = textEncoder.encode(path);
134
+ const data = await toUint8Array(entry.data);
135
+ if (data.byteLength > 0xffffffff || offset > 0xffffffff) {
136
+ throw new Error("ZIP64 download packages are not supported in browser export.");
137
+ }
138
+ const checksum = crc32(data);
139
+ const localHeader = buildLocalFileHeader(nameBytes, data, checksum, modified);
140
+ const centralHeader = buildCentralDirectoryHeader(nameBytes, data, checksum, offset, modified);
141
+ fileParts.push(localHeader, nameBytes, data);
142
+ centralParts.push(centralHeader, nameBytes);
143
+ offset += localHeader.byteLength + nameBytes.byteLength + data.byteLength;
144
+ }
145
+ const centralDirectoryOffset = offset;
146
+ const centralDirectorySize = centralParts.reduce((sum, part) => sum + part.byteLength, 0);
147
+ if (entries.length > 0xffff || centralDirectorySize > 0xffffffff || centralDirectoryOffset > 0xffffffff) {
148
+ throw new Error("ZIP64 download packages are not supported in browser export.");
149
+ }
150
+ const end = buildEndOfCentralDirectory(entries.length, centralDirectorySize, centralDirectoryOffset);
151
+ return new Blob([...fileParts, ...centralParts, end].map(toArrayBufferPart), { type: "application/zip" });
152
+ }
@@ -1,4 +1,7 @@
1
1
  import * as THREE from "three";
2
2
  export type ExportFormat = "glb" | "obj";
3
- export declare function exportObject(object: THREE.Object3D, format: ExportFormat): Promise<Blob>;
3
+ export type ExportObjectOptions = {
4
+ includeTextures?: boolean;
5
+ };
6
+ export declare function exportObject(object: THREE.Object3D, format: ExportFormat, options?: ExportObjectOptions): Promise<Blob>;
4
7
  //# sourceMappingURL=three-export.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"three-export.d.ts","sourceRoot":"","sources":["../../src/exports/three-export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,CAAC;AAEzC,wBAAsB,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC9F"}
1
+ {"version":3,"file":"three-export.d.ts","sourceRoot":"","sources":["../../src/exports/three-export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,CAAC;AACzC,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAgIF,wBAAsB,YAAY,CAChC,MAAM,EAAE,KAAK,CAAC,QAAQ,EACtB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAoCf"}
@@ -1,12 +1,146 @@
1
- export async function exportObject(object, format) {
1
+ import * as THREE from "three";
2
+ const TEXTURE_KEYS = [
3
+ "map",
4
+ "alphaMap",
5
+ "aoMap",
6
+ "bumpMap",
7
+ "displacementMap",
8
+ "emissiveMap",
9
+ "lightMap",
10
+ "metalnessMap",
11
+ "normalMap",
12
+ "roughnessMap",
13
+ ];
14
+ const cloneTexture = (texture) => {
15
+ if (!texture)
16
+ return texture;
17
+ const clone = texture.clone();
18
+ clone.needsUpdate = true;
19
+ return clone;
20
+ };
21
+ const cloneMaterial = (material) => {
22
+ const cloned = material.clone();
23
+ const materialRecord = cloned;
24
+ for (const key of TEXTURE_KEYS) {
25
+ if (key in materialRecord) {
26
+ const value = materialRecord[key];
27
+ if (value instanceof THREE.Texture) {
28
+ materialRecord[key] = cloneTexture(value);
29
+ }
30
+ }
31
+ }
32
+ cloned.needsUpdate = true;
33
+ return cloned;
34
+ };
35
+ const stripMaterialTextures = (material) => {
36
+ const materialRecord = material;
37
+ for (const key of TEXTURE_KEYS) {
38
+ if (key in materialRecord) {
39
+ materialRecord[key] = null;
40
+ }
41
+ }
42
+ material.needsUpdate = true;
43
+ };
44
+ const prepareObjectForExport = (object, options) => {
45
+ const clone = object.clone(true);
46
+ clone.updateMatrixWorld(true);
47
+ clone.traverse((child) => {
48
+ const mesh = child;
49
+ if (!mesh.isMesh || !mesh.material)
50
+ return;
51
+ if (Array.isArray(mesh.material)) {
52
+ mesh.material = mesh.material.map((entry) => {
53
+ const cloned = cloneMaterial(entry);
54
+ if (options?.includeTextures === false) {
55
+ stripMaterialTextures(cloned);
56
+ }
57
+ return cloned;
58
+ });
59
+ return;
60
+ }
61
+ const cloned = cloneMaterial(mesh.material);
62
+ if (options?.includeTextures === false) {
63
+ stripMaterialTextures(cloned);
64
+ }
65
+ mesh.material = cloned;
66
+ });
67
+ return clone;
68
+ };
69
+ const waitForImageLoad = async (image) => {
70
+ if (!image)
71
+ return;
72
+ if (Array.isArray(image)) {
73
+ await Promise.all(image.map((entry) => waitForImageLoad(entry)));
74
+ return;
75
+ }
76
+ if (typeof ImageBitmap !== "undefined" && image instanceof ImageBitmap)
77
+ return;
78
+ if (typeof HTMLCanvasElement !== "undefined" && image instanceof HTMLCanvasElement)
79
+ return;
80
+ if (typeof OffscreenCanvas !== "undefined" && image instanceof OffscreenCanvas)
81
+ return;
82
+ if (typeof ImageData !== "undefined" && image instanceof ImageData)
83
+ return;
84
+ if (typeof HTMLImageElement !== "undefined" && image instanceof HTMLImageElement) {
85
+ if (!image.complete || image.naturalWidth === 0) {
86
+ await new Promise((resolve) => {
87
+ const cleanup = () => {
88
+ image.removeEventListener("load", handleDone);
89
+ image.removeEventListener("error", handleDone);
90
+ };
91
+ const handleDone = () => {
92
+ cleanup();
93
+ resolve();
94
+ };
95
+ image.addEventListener("load", handleDone, { once: true });
96
+ image.addEventListener("error", handleDone, { once: true });
97
+ });
98
+ }
99
+ if (typeof image.decode === "function") {
100
+ try {
101
+ await image.decode();
102
+ }
103
+ catch {
104
+ // ignore decode failures and let the exporter use the current image state
105
+ }
106
+ }
107
+ }
108
+ };
109
+ const waitForExportTextures = async (object) => {
110
+ const seen = new Set();
111
+ const pending = [];
112
+ object.traverse((child) => {
113
+ const mesh = child;
114
+ if (!mesh.isMesh || !mesh.material)
115
+ return;
116
+ const materials = Array.isArray(mesh.material) ? mesh.material : [mesh.material];
117
+ for (const material of materials) {
118
+ const materialRecord = material;
119
+ for (const key of TEXTURE_KEYS) {
120
+ const texture = materialRecord[key];
121
+ if (!(texture instanceof THREE.Texture) || seen.has(texture))
122
+ continue;
123
+ seen.add(texture);
124
+ texture.needsUpdate = true;
125
+ pending.push(waitForImageLoad(texture.image));
126
+ }
127
+ }
128
+ });
129
+ await Promise.all(pending);
130
+ };
131
+ export async function exportObject(object, format, options) {
2
132
  if (!object || typeof object.traverse !== "function") {
3
133
  throw new Error("No exportable geometry loaded.");
4
134
  }
135
+ const exportRoot = prepareObjectForExport(object, options);
136
+ if (options?.includeTextures !== false) {
137
+ await waitForExportTextures(exportRoot);
138
+ }
5
139
  if (format === "glb") {
6
140
  const { GLTFExporter } = await import("three/examples/jsm/exporters/GLTFExporter.js");
7
141
  const exporter = new GLTFExporter();
8
142
  const arrayBuffer = await new Promise((resolve, reject) => {
9
- exporter.parse(object, (result) => {
143
+ exporter.parse(exportRoot, (result) => {
10
144
  if (result instanceof ArrayBuffer) {
11
145
  resolve(result);
12
146
  return;
@@ -17,12 +151,12 @@ export async function exportObject(object, format) {
17
151
  catch (error) {
18
152
  reject(error);
19
153
  }
20
- }, (error) => reject(error), { binary: true });
154
+ }, (error) => reject(error), { binary: true, onlyVisible: true });
21
155
  });
22
156
  return new Blob([arrayBuffer], { type: "model/gltf-binary" });
23
157
  }
24
158
  const { OBJExporter } = await import("three/examples/jsm/exporters/OBJExporter.js");
25
159
  const exporter = new OBJExporter();
26
- const text = exporter.parse(object);
160
+ const text = exporter.parse(exportRoot);
27
161
  return new Blob([text], { type: "text/plain" });
28
162
  }
package/dist/index.d.ts CHANGED
@@ -1,19 +1,22 @@
1
- export type { ViewerCreateOptions, ViewerHandle, ViewerRuntime, ViewerSnapshot, CameraState, RenderPresetDefinition, PresetCatalog, LightingRigConfig, PostFxConfig, SceneExtrasConfig, SkyDefinition, SkyHdrConfig, SkyCubeConfig, ViewerDebugInfo, } from "./engine/types";
1
+ export type { ViewerCreateOptions, ViewerHandle, ViewerRuntime, ViewerSnapshot, CameraKind, CameraState, RenderPresetDefinition, PresetCatalog, LightingRigConfig, PostFxConfig, SceneExtrasConfig, EnvironmentMode, SkyDefinition, SkyHdrConfig, SkyImageConfig, SkyCubeConfig, ViewerDebugInfo, } from "./engine/types";
2
2
  export type { CameraFrameConfig, CameraFrameMode, CameraNormalizationConfig, CameraNormalizationResult, } from "./camera";
3
3
  export { createViewer } from "./engine/createViewer";
4
4
  export { computeCameraFrame, normalizeObject3d } from "./camera";
5
- export type { CameraRigConfig, SceneStats, ApplyGroupToViewerOptions, ApplyGroupToViewerResult, RoomHeights, } from "./scene";
6
- export { DEFAULT_CAMERA_RIG, applyGroupToViewer, computeSceneStats, resolveRoomHeights, setCameraToBounds, setCameraTopDown, normalizeRenderGroup, } from "./scene";
5
+ export type { CameraRigConfig, SceneStats, ApplyGroupToViewerOptions, ApplyGroupToViewerResult, ScenePresentationPolicy, SceneClippingConfig, RoomHeights, } from "./scene";
6
+ export { DEFAULT_CAMERA_RIG, applyGroupToViewer, applyUnitScaleToGroup, computeSceneStats, resolveSceneUnitScale, resolveRoomHeights, setCameraToBounds, setCameraTopDown, normalizeRenderGroup, } from "./scene";
7
+ export type { SceneSemanticBounds, SceneSemanticObject, SceneSemanticRegistry, } from "./sceneSemanticRegistry";
8
+ export { buildSceneSemanticRegistry, findSceneSemanticObjectByThreeUuid, } from "./sceneSemanticRegistry";
7
9
  export { DEFAULT_PRESET_ID, DEFAULT_PRESETS } from "./presets/defaults";
8
10
  export { SCIENCE_PRESETS, SCIENCE_PRESET_SUMMARIES, SCIENCE_DEFAULT_PRESET_ID, buildViewerPresets, buildSciencePresets, } from "./presets/sciencePresets";
9
11
  export { listScienceSkyOptions, getScienceSkyOption } from "./sky/scienceSky";
10
12
  export type { ScienceSkyOption } from "./sky/scienceSky";
11
- export type { MaterialCatalogue, MaterialDefinition, MaterialId, MaterialColor, SurfaceMaterialConfig, MaterialsConfig, } from "./materials/types";
13
+ export type { MaterialCatalogue, MaterialDefinition, MaterialId, MaterialColor, MaterialApplicationPolicy, MaterialSurfaceConfigMap, MaterialSurfaceRole, SurfaceDefinition, SurfaceMappingRule, SurfaceMaterialConfig, MaterialsConfig, } from "./materials/types";
12
14
  export { getMaterialCatalogue, findMaterial, listMaterialsByCategory } from "./materials/catalogue";
13
15
  export { getRenderMaterialMetadata } from "./materials/renderMetadata";
14
- export { BASELINE_MATERIAL_PRESET_ID, MATERIAL_PRESET_DATA, listMaterialPresets, getMaterialPreset, resolveMaterialSlot, resolveMaterialPresetMaterials, } from "./materials/presets";
15
- export type { MaterialOverrides, MaterialResolveOptions } from "./materials/resolve";
16
- export { resolveMaterialConfig } from "./materials/resolve";
16
+ export { ARCHITECTURAL_WHITE_MATERIAL_PRESET_ID, MONOCHROME_CLAY_MATERIAL_PRESET_ID, UPLOAD_VISIBLE_MATERIAL_PRESET_ID, MATERIAL_PRESET_DATA, listMaterialPresets, getMaterialPreset, hasMaterialDefinition, resolveMaterialBinding, resolveMaterialSurfaceMap, resolveMaterialPresetMaterials, } from "./materials/presets";
17
+ export type { MaterialPresetDefinition, MaterialBindingReference, MaterialBindingReferenceMap, MaterialDefinitionLookup, } from "./materials/presets";
18
+ export type { CoreMaterialSurface, MaterialOverrideAction, MaterialOverrideNumberKey, MaterialOverrides, MaterialOverrideTargetKind, MaterialResolveOptions, SurfaceOverride, } from "./materials/resolve";
19
+ export { CORE_MATERIAL_SURFACES, isCoreMaterialSurface, mergeMaterialsConfigWithOverrides, normalizeMaterialOverrides, normalizeMaterialSurfaceConfigMap, normalizeMaterialSurfaceId, reduceMaterialOverrides, resolveMaterialConfig, } from "./materials/resolve";
17
20
  export { applyMaterialsToGroup, buildSurfaceMaterial, buildCatalogMaterial, setTextureBaseUrl, } from "./materials/architectural";
18
21
  export { EnvironmentSystem } from "./systems/environmentSystem";
19
22
  export { LightingSystem } from "./systems/lightingSystem";
@@ -22,8 +25,9 @@ export { applyRendererConfig } from "./systems/rendererSystem";
22
25
  export { warmComputeHost, warmComputeHosts } from "./compute/warm";
23
26
  export * from "./uploads";
24
27
  export { exportObject } from "./exports/three-export";
25
- export type { ExportFormat } from "./exports/three-export";
26
- export { downloadBlob } from "./exports/download";
28
+ export type { ExportFormat, ExportObjectOptions } from "./exports/three-export";
29
+ export { createStoredZip, downloadBlob } from "./exports/download";
30
+ export type { StoredZipEntry, StoredZipEntrySource } from "./exports/download";
27
31
  export type { AutoGenerateGate, AutoGenerateGateOptions } from "./autoGenerate";
28
32
  export { createAutoGenerateGate } from "./autoGenerate";
29
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACjE,YAAY,EACV,eAAe,EACf,UAAU,EACV,yBAAyB,EACzB,wBAAwB,EACxB,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnE,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,13 +1,14 @@
1
1
  export { createViewer } from "./engine/createViewer";
2
2
  export { computeCameraFrame, normalizeObject3d } from "./camera";
3
- export { DEFAULT_CAMERA_RIG, applyGroupToViewer, computeSceneStats, resolveRoomHeights, setCameraToBounds, setCameraTopDown, normalizeRenderGroup, } from "./scene";
3
+ export { DEFAULT_CAMERA_RIG, applyGroupToViewer, applyUnitScaleToGroup, computeSceneStats, resolveSceneUnitScale, resolveRoomHeights, setCameraToBounds, setCameraTopDown, normalizeRenderGroup, } from "./scene";
4
+ export { buildSceneSemanticRegistry, findSceneSemanticObjectByThreeUuid, } from "./sceneSemanticRegistry";
4
5
  export { DEFAULT_PRESET_ID, DEFAULT_PRESETS } from "./presets/defaults";
5
6
  export { SCIENCE_PRESETS, SCIENCE_PRESET_SUMMARIES, SCIENCE_DEFAULT_PRESET_ID, buildViewerPresets, buildSciencePresets, } from "./presets/sciencePresets";
6
7
  export { listScienceSkyOptions, getScienceSkyOption } from "./sky/scienceSky";
7
8
  export { getMaterialCatalogue, findMaterial, listMaterialsByCategory } from "./materials/catalogue";
8
9
  export { getRenderMaterialMetadata } from "./materials/renderMetadata";
9
- export { BASELINE_MATERIAL_PRESET_ID, MATERIAL_PRESET_DATA, listMaterialPresets, getMaterialPreset, resolveMaterialSlot, resolveMaterialPresetMaterials, } from "./materials/presets";
10
- export { resolveMaterialConfig } from "./materials/resolve";
10
+ export { ARCHITECTURAL_WHITE_MATERIAL_PRESET_ID, MONOCHROME_CLAY_MATERIAL_PRESET_ID, UPLOAD_VISIBLE_MATERIAL_PRESET_ID, MATERIAL_PRESET_DATA, listMaterialPresets, getMaterialPreset, hasMaterialDefinition, resolveMaterialBinding, resolveMaterialSurfaceMap, resolveMaterialPresetMaterials, } from "./materials/presets";
11
+ export { CORE_MATERIAL_SURFACES, isCoreMaterialSurface, mergeMaterialsConfigWithOverrides, normalizeMaterialOverrides, normalizeMaterialSurfaceConfigMap, normalizeMaterialSurfaceId, reduceMaterialOverrides, resolveMaterialConfig, } from "./materials/resolve";
11
12
  export { applyMaterialsToGroup, buildSurfaceMaterial, buildCatalogMaterial, setTextureBaseUrl, } from "./materials/architectural";
12
13
  export { EnvironmentSystem } from "./systems/environmentSystem";
13
14
  export { LightingSystem } from "./systems/lightingSystem";
@@ -16,5 +17,5 @@ export { applyRendererConfig } from "./systems/rendererSystem";
16
17
  export { warmComputeHost, warmComputeHosts } from "./compute/warm";
17
18
  export * from "./uploads";
18
19
  export { exportObject } from "./exports/three-export";
19
- export { downloadBlob } from "./exports/download";
20
+ export { createStoredZip, downloadBlob } from "./exports/download";
20
21
  export { createAutoGenerateGate } from "./autoGenerate";