@omrips/viewstl 2.0.0-rc.5 → 2.0.0-rc.7

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 (37) hide show
  1. package/README.md +3 -3
  2. package/build/THIRD-PARTY-NOTICES.txt +1006 -1006
  3. package/build/cad/occt-import-js.source.txt +19 -19
  4. package/build/chunks/archive-QK7XZSVT.js +1 -0
  5. package/build/chunks/{cad-4JYHORYZ.js → cad-QGVO6UGR.js} +1 -1
  6. package/build/chunks/chunk-6AW5U52H.js +1 -0
  7. package/build/chunks/{chunk-Y6VY64LY.js → chunk-CVGQTUJ5.js} +2 -2
  8. package/build/chunks/chunk-FUXP2W57.js +1 -0
  9. package/build/chunks/chunk-LFTKNL2V.js +1 -0
  10. package/build/chunks/{chunk-PQYEV7WH.js → chunk-T6PPRDOE.js} +1 -1
  11. package/build/chunks/chunk-V6KYGP62.js +1 -0
  12. package/build/chunks/{export-VM6OQCQJ.js → export-2CFMTPJ3.js} +3 -3
  13. package/build/chunks/{export-cad-QXCB6UDU.js → export-cad-XOXIE726.js} +1 -1
  14. package/build/chunks/{export-zip-PVXETVLK.js → export-zip-I2ADLFJI.js} +1 -1
  15. package/build/chunks/measure-3LDALPCN.js +1 -0
  16. package/build/chunks/print-check-WWHTT5PW.js +1 -0
  17. package/build/chunks/scene-export-7P6ZJOG3.js +1 -0
  18. package/build/chunks/scene-reader-WXTRELY3.js +1 -0
  19. package/build/node/analysis-worker.js +2 -1
  20. package/build/stl_viewer.min.js +6 -5
  21. package/build/viewstl.cjs +1246 -403
  22. package/build/viewstl.d.cts +48 -0
  23. package/build/viewstl.d.ts +48 -0
  24. package/build/viewstl.js +1246 -402
  25. package/build/viewstl.min.js +6 -5
  26. package/build/viewstl.worker.js +1 -1
  27. package/docs/releases/2.0.0-rc.7.md +16 -0
  28. package/docs/v2-usage.md +39 -0
  29. package/docs/v2-verification.md +71 -0
  30. package/package.json +2 -2
  31. package/build/chunks/archive-JU75RPTU.js +0 -1
  32. package/build/chunks/chunk-IK3WL53C.js +0 -1
  33. package/build/chunks/chunk-OP2L7L4N.js +0 -1
  34. package/build/chunks/print-check-NJ4IONC5.js +0 -1
  35. package/build/chunks/scene-export-ZIXMUNLI.js +0 -1
  36. package/build/chunks/scene-reader-JGHERXR2.js +0 -1
  37. package/docs/releases/2.0.0-rc.5.md +0 -46
@@ -131,7 +131,28 @@ export interface GeometryData {
131
131
  positions: Float32Array | number[];
132
132
  colors?: Float32Array | number[] | null;
133
133
  }
134
+ export interface ModelSize {
135
+ version: 1;
136
+ baseline_mm: [number, number, number];
137
+ unit_factor?: number;
138
+ file_units: Units;
139
+ editable: boolean;
140
+ dimensions_mm: [number, number, number];
141
+ }
142
+ export interface CameraBookmark {
143
+ name: string;
144
+ camera: CameraState;
145
+ }
146
+ export interface ModelMeasurements {
147
+ area_mm2: number;
148
+ volume_mm3: number | null;
149
+ volume_valid: boolean;
150
+ volume_reason: string;
151
+ }
134
152
  export interface ModelOptions extends Transform {
153
+ /** Display label; filename remains the source reference for VSJ. */
154
+ display_name?: string;
155
+ size_state?: Omit<ModelSize, "dimensions_mm">;
135
156
  id?: number;
136
157
  filename?: string;
137
158
  /** Retrieve a public URL through the explicitly configured same-origin relay. */
@@ -247,6 +268,8 @@ export interface Scene {
247
268
  auto_rotate: boolean;
248
269
  mouse_zoom: boolean;
249
270
  auto_resize: boolean;
271
+ camera_bookmarks?: CameraBookmark[];
272
+ display_units?: Units;
250
273
  center_models: boolean;
251
274
  grid?: boolean;
252
275
  infinite_grid?: { spacing: number; height: number };
@@ -324,6 +347,31 @@ export class StlViewer {
324
347
  set_camera_state(state: Partial<CameraState>): void;
325
348
  set_camera(x?: number, y?: number, z?: number): void;
326
349
  get_model_info(id: number): ModelInfo | null;
350
+ get_model_info(
351
+ id: number,
352
+ options: { measurements: false },
353
+ ): (Omit<ModelInfo, "area" | "volume"> & { area: null; volume: null }) | null;
354
+ get_model_size(id: number): ModelSize;
355
+ /** Multiplicative XYZ factors about the world-space center. Throws on invalid input. */
356
+ resize_model(id: number, factors: [number, number, number]): ModelSize;
357
+ set_file_units(id: number, units: Units): ModelSize;
358
+ reset_model_size(id: number): ModelSize;
359
+ duplicate_model(id: number): number;
360
+ display_units: Units;
361
+ set_display_units(units: Units): void;
362
+ set_camera_view(
363
+ name: "front" | "back" | "left" | "right" | "top" | "bottom" | "isometric",
364
+ ): void;
365
+ get_camera_bookmarks(): CameraBookmark[];
366
+ set_camera_bookmarks(bookmarks: CameraBookmark[]): void;
367
+ measure_model(
368
+ id: number,
369
+ options?: {
370
+ signal?: AbortSignal;
371
+ max_time_ms?: number;
372
+ on_progress?: (progress: { phase: string; elapsed_ms: number }) => void;
373
+ },
374
+ ): Promise<ModelMeasurements>;
327
375
  get_model_data(id: number): GeometryData | null;
328
376
  get_model_mesh(id: number): unknown;
329
377
  get_stl_bin(id: number): ArrayBuffer | null;
@@ -131,7 +131,28 @@ export interface GeometryData {
131
131
  positions: Float32Array | number[];
132
132
  colors?: Float32Array | number[] | null;
133
133
  }
134
+ export interface ModelSize {
135
+ version: 1;
136
+ baseline_mm: [number, number, number];
137
+ unit_factor?: number;
138
+ file_units: Units;
139
+ editable: boolean;
140
+ dimensions_mm: [number, number, number];
141
+ }
142
+ export interface CameraBookmark {
143
+ name: string;
144
+ camera: CameraState;
145
+ }
146
+ export interface ModelMeasurements {
147
+ area_mm2: number;
148
+ volume_mm3: number | null;
149
+ volume_valid: boolean;
150
+ volume_reason: string;
151
+ }
134
152
  export interface ModelOptions extends Transform {
153
+ /** Display label; filename remains the source reference for VSJ. */
154
+ display_name?: string;
155
+ size_state?: Omit<ModelSize, "dimensions_mm">;
135
156
  id?: number;
136
157
  filename?: string;
137
158
  /** Retrieve a public URL through the explicitly configured same-origin relay. */
@@ -247,6 +268,8 @@ export interface Scene {
247
268
  auto_rotate: boolean;
248
269
  mouse_zoom: boolean;
249
270
  auto_resize: boolean;
271
+ camera_bookmarks?: CameraBookmark[];
272
+ display_units?: Units;
250
273
  center_models: boolean;
251
274
  grid?: boolean;
252
275
  infinite_grid?: { spacing: number; height: number };
@@ -324,6 +347,31 @@ export class StlViewer {
324
347
  set_camera_state(state: Partial<CameraState>): void;
325
348
  set_camera(x?: number, y?: number, z?: number): void;
326
349
  get_model_info(id: number): ModelInfo | null;
350
+ get_model_info(
351
+ id: number,
352
+ options: { measurements: false },
353
+ ): (Omit<ModelInfo, "area" | "volume"> & { area: null; volume: null }) | null;
354
+ get_model_size(id: number): ModelSize;
355
+ /** Multiplicative XYZ factors about the world-space center. Throws on invalid input. */
356
+ resize_model(id: number, factors: [number, number, number]): ModelSize;
357
+ set_file_units(id: number, units: Units): ModelSize;
358
+ reset_model_size(id: number): ModelSize;
359
+ duplicate_model(id: number): number;
360
+ display_units: Units;
361
+ set_display_units(units: Units): void;
362
+ set_camera_view(
363
+ name: "front" | "back" | "left" | "right" | "top" | "bottom" | "isometric",
364
+ ): void;
365
+ get_camera_bookmarks(): CameraBookmark[];
366
+ set_camera_bookmarks(bookmarks: CameraBookmark[]): void;
367
+ measure_model(
368
+ id: number,
369
+ options?: {
370
+ signal?: AbortSignal;
371
+ max_time_ms?: number;
372
+ on_progress?: (progress: { phase: string; elapsed_ms: number }) => void;
373
+ },
374
+ ): Promise<ModelMeasurements>;
327
375
  get_model_data(id: number): GeometryData | null;
328
376
  get_model_mesh(id: number): unknown;
329
377
  get_stl_bin(id: number): ArrayBuffer | null;