@lumiscaphe/viewer 4.1.13 → 4.1.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.
Files changed (58) hide show
  1. package/dist/lib/index.cjs +25 -0
  2. package/dist/lib/index.d.ts +833 -0
  3. package/dist/lib/index.js +1771 -0
  4. package/package.json +18 -28
  5. package/.prettierrc +0 -6
  6. package/dist/Animation.d.ts +0 -7
  7. package/dist/Basis3.d.ts +0 -10
  8. package/dist/Canvas2D.d.ts +0 -19
  9. package/dist/Canvas3D.d.ts +0 -8
  10. package/dist/Database.d.ts +0 -25
  11. package/dist/Encoder.d.ts +0 -5
  12. package/dist/EventHelper.d.ts +0 -5
  13. package/dist/Hotspot.d.ts +0 -14
  14. package/dist/Inertia.d.ts +0 -14
  15. package/dist/InertiaPoint.d.ts +0 -6
  16. package/dist/InteractiveCamera.d.ts +0 -25
  17. package/dist/InteractivePosition.d.ts +0 -26
  18. package/dist/Loader.d.ts +0 -37
  19. package/dist/LoaderDelegate.d.ts +0 -5
  20. package/dist/Maths.d.ts +0 -11
  21. package/dist/Options.d.ts +0 -11
  22. package/dist/Parameters.d.ts +0 -9
  23. package/dist/Point.d.ts +0 -6
  24. package/dist/PointOfView.d.ts +0 -13
  25. package/dist/Position.d.ts +0 -4
  26. package/dist/Resolution.d.ts +0 -6
  27. package/dist/Scene.d.ts +0 -14
  28. package/dist/Size.d.ts +0 -5
  29. package/dist/Snapshot.d.ts +0 -10
  30. package/dist/Spherical.d.ts +0 -11
  31. package/dist/Transition.d.ts +0 -6
  32. package/dist/Video.d.ts +0 -8
  33. package/dist/View.d.ts +0 -20
  34. package/dist/Viewer.d.ts +0 -67
  35. package/dist/Viewport.d.ts +0 -19
  36. package/dist/WRAPIv1.d.ts +0 -37
  37. package/dist/WRAPIv2.d.ts +0 -355
  38. package/dist/WebRenderAPIv1.d.ts +0 -16
  39. package/dist/WebRenderAPIv1Requests.d.ts +0 -35
  40. package/dist/WebRenderAPIv2.d.ts +0 -14
  41. package/dist/WebRenderAPIv2Requests.d.ts +0 -220
  42. package/dist/WebRenderAPIv2Responses.d.ts +0 -3
  43. package/dist/WebRenderStatic.d.ts +0 -11
  44. package/dist/WebRenderV1.d.ts +0 -18
  45. package/dist/WebRenderV2.d.ts +0 -26
  46. package/dist/Widget.d.ts +0 -21
  47. package/dist/WidgetImage.d.ts +0 -32
  48. package/dist/WidgetVRCube.d.ts +0 -45
  49. package/dist/WidgetVRObject.d.ts +0 -40
  50. package/dist/WidgetVideo.d.ts +0 -30
  51. package/dist/index-full.js +0 -20
  52. package/dist/index-full.js.map +0 -1
  53. package/dist/index.d.ts +0 -16
  54. package/dist/index.es.js +0 -2
  55. package/dist/index.es.js.map +0 -1
  56. package/dist/index.js +0 -2
  57. package/dist/index.js.map +0 -1
  58. package/patches/twgl.js+5.5.3.patch +0 -27
@@ -0,0 +1,833 @@
1
+ import { m4 } from 'twgl.js';
2
+ import { v3 } from 'twgl.js';
3
+
4
+ declare interface Animation_2 {
5
+ name: string;
6
+ camera: any;
7
+ duration: number;
8
+ reverse?: boolean;
9
+ loop?: boolean;
10
+ }
11
+ export { Animation_2 as Animation }
12
+
13
+ declare class Canvas2D {
14
+ element: HTMLCanvasElement;
15
+ image?: HTMLImageElement;
16
+ fit: 'contain' | 'cover' | 'fill';
17
+ private context;
18
+ private backCanvas;
19
+ private backContext;
20
+ private pixelRatio;
21
+ private requestAnimationId?;
22
+ constructor(fit: 'contain' | 'cover' | 'fill');
23
+ destroy(): void;
24
+ show(useDisplay: boolean): void;
25
+ hide(useDisplay: boolean): void;
26
+ get resolution(): Resolution;
27
+ resize(width: number, height: number, pixelRatio: number): void;
28
+ draw(img: HTMLImageElement, fade: boolean, speed?: number): void;
29
+ private fadeLoop;
30
+ }
31
+
32
+ declare class Canvas3D {
33
+ element: HTMLCanvasElement;
34
+ context: WebGLRenderingContext | undefined;
35
+ constructor();
36
+ show(): void;
37
+ hide(): void;
38
+ resize(width: number, height: number, pixelRatio: number): void;
39
+ }
40
+
41
+ export declare interface Encoder {
42
+ format: string;
43
+ compression?: number;
44
+ quality?: number;
45
+ }
46
+
47
+ export declare interface Hotspot {
48
+ id: string;
49
+ name: string;
50
+ position2D: {
51
+ x: number;
52
+ y: number;
53
+ };
54
+ position3D: {
55
+ x: number;
56
+ y: number;
57
+ z: number;
58
+ };
59
+ visibility: 'Visible' | 'Occluded' | 'Clipped' | 'OutOfFrustum';
60
+ }
61
+
62
+ export declare type ImageScene = string;
63
+
64
+ declare class Loader {
65
+ private webrender;
66
+ private webrenderV2?;
67
+ private delegate?;
68
+ private loadingId;
69
+ private loaded;
70
+ private total;
71
+ private databases;
72
+ constructor(server: string, api: string, delegate: LoaderDelegate);
73
+ get progress(): number;
74
+ loadImageSnapshot(snapshot: Snapshot): Promise<HTMLImageElement>;
75
+ loadVideoSnapshot(video: HTMLVideoElement, snapshot: Snapshot): Promise<any>;
76
+ loadVRCubeSnapshot(snapshot: Snapshot): Promise<HTMLImageElement[]>;
77
+ loadVRObjectSnapshot(snapshot: Snapshot, position: number): Promise<Promise<HTMLImageElement>[]>;
78
+ private loadImage;
79
+ private loadImageFrames;
80
+ private loadVideo;
81
+ private loadVideoFrame;
82
+ private loadVideoFrames;
83
+ loadImageHotspots(snapshot: Snapshot, hotspots: Array<string | WRAPIv2.Vector3D>): Promise<Hotspot[]>;
84
+ loadVRCubeHotspots(snapshot: Snapshot, hotspots: Array<string | WRAPIv2.Vector3D>): Promise<Hotspot[][]>;
85
+ loadVRObjectHotspots(snapshot: Snapshot, hotspots: Array<string | WRAPIv2.Vector3D>): Promise<Hotspot[][]>;
86
+ loadImagePick(snapshot: Snapshot, position: WRAPIv2.Vector2D): Promise<WRAPIv2.PickResult>;
87
+ loadVRObjectPick(snapshot: Snapshot, position: WRAPIv2.Vector2D, index: number, frames: number): Promise<WRAPIv2.PickResult>;
88
+ loadVRCubePick(snapshot: Snapshot, position: WRAPIv2.Vector2D, face: string): Promise<WRAPIv2.PickResult>;
89
+ private convert;
90
+ private vrObjectFrameSnapshot;
91
+ private vrCubeFrameSnapshot;
92
+ private onLoadStart;
93
+ private onLoadProgress;
94
+ private onLoadEnd;
95
+ private static isValidHttpUrl;
96
+ }
97
+
98
+ declare interface LoaderDelegate {
99
+ onLoadStart: (progress: number) => void;
100
+ onLoadProgress: (progress: number) => void;
101
+ onLoadEnd: (progress: number) => void;
102
+ }
103
+
104
+ export declare interface Options {
105
+ server: string;
106
+ api: string;
107
+ autores: boolean;
108
+ fit: 'contain' | 'cover' | 'fill';
109
+ image: any;
110
+ video: any;
111
+ vrcube: any;
112
+ vrobject: any;
113
+ events: any;
114
+ }
115
+
116
+ declare interface Parameters_2 {
117
+ width?: number;
118
+ height?: number;
119
+ antialiasing: boolean;
120
+ superSampling: number;
121
+ imageFormat?: string;
122
+ imageQuality?: number;
123
+ softwareAntialiasing?: boolean;
124
+ }
125
+ export { Parameters_2 as Parameters }
126
+
127
+ declare class PointOfView {
128
+ target: v3.Vec3;
129
+ eye: v3.Vec3;
130
+ up: v3.Vec3;
131
+ static readonly default: PointOfView;
132
+ static initCubeFace(eye: v3.Vec3, target: v3.Vec3, face: string): PointOfView;
133
+ constructor(target: v3.Vec3, eye: v3.Vec3, up: v3.Vec3);
134
+ get viewVector(): v3.Vec3;
135
+ get rightVector(): v3.Vec3;
136
+ get viewMatrix(): m4.Mat4;
137
+ clone(): PointOfView;
138
+ }
139
+
140
+ declare class Resolution {
141
+ width: number;
142
+ height: number;
143
+ constructor(width: number, height: number);
144
+ get aspect(): number;
145
+ }
146
+
147
+ export declare type Scene = ImageScene | WebRenderScene | WRAPIv2.Scene;
148
+
149
+ declare interface Snapshot {
150
+ scene: Scene[];
151
+ view: View;
152
+ parameters: Parameters_2;
153
+ encoder: Encoder;
154
+ }
155
+
156
+ export declare interface Transition {
157
+ fromPosition: number;
158
+ toPosition: number;
159
+ animation: Animation_2;
160
+ }
161
+
162
+ declare class Video {
163
+ element: HTMLVideoElement;
164
+ constructor();
165
+ show(): void;
166
+ hide(): void;
167
+ resize(width: number, height: number, resolution: Resolution, fit: 'contain' | 'cover' | 'fill'): void;
168
+ }
169
+
170
+ export declare interface View {
171
+ mode: string;
172
+ camera?: string | any;
173
+ background?: string;
174
+ animation?: string;
175
+ frames?: number;
176
+ loop?: boolean;
177
+ cameraGroup?: any;
178
+ panFrom?: number;
179
+ panTo?: number;
180
+ panFrames?: number;
181
+ panLoop?: boolean;
182
+ tiltFrom?: number;
183
+ tiltTo?: number;
184
+ tiltFrames?: number;
185
+ tiltLoop?: boolean;
186
+ duration?: number;
187
+ reverse?: boolean;
188
+ fps?: number;
189
+ }
190
+
191
+ export declare class Viewer {
192
+ options: Options;
193
+ private container;
194
+ private containerWidth;
195
+ private containerHeight;
196
+ private canvas2D;
197
+ private canvas3D;
198
+ private video;
199
+ private loader;
200
+ private scene?;
201
+ private view?;
202
+ private parameters;
203
+ private encoder;
204
+ private hotspots;
205
+ private resolution;
206
+ private widget;
207
+ private widgetImage;
208
+ private widgetVideo;
209
+ private widgetVRCube;
210
+ private widgetVRObject;
211
+ private isDestroyed;
212
+ constructor(container: HTMLElement, options: Partial<Options>);
213
+ destroy(): void;
214
+ load(scene: Scene | Scene[], transition?: Transition): Promise<void>;
215
+ setEncoder(encoder: Encoder): Promise<void>;
216
+ setParameters(parameters: Parameters_2): Promise<void>;
217
+ setHotspots(hotspots: Array<string | WRAPIv2.Vector3D>): void;
218
+ setView(view: View, transition?: Transition): Promise<void>;
219
+ setVrcube(data: Partial<WidgetVRCube>): void;
220
+ setVrobject(data: Partial<WidgetVRObject>): void;
221
+ private loadAnimation;
222
+ playAnimation(animation: Animation_2): Promise<void>;
223
+ stopAnimation(): void;
224
+ pick(position: WRAPIv2.Vector2D): Promise<WRAPIv2.PickResult>;
225
+ pickHotspot(position: WRAPIv2.Vector2D): Promise<WRAPIv2.PickResult>;
226
+ snapshot(type: string, quality: number): string;
227
+ private loadWidget;
228
+ private get viewWidget();
229
+ private checkResize;
230
+ private onMouseDown;
231
+ private onMouseEnter;
232
+ private onMouseMove;
233
+ private onMouseUp;
234
+ private onTouchStart;
235
+ private onTouchMove;
236
+ private onTouchEnd;
237
+ private onDeviceOrientation;
238
+ private onResize;
239
+ private onVrcubeInteraction;
240
+ private onVrobjectInteraction;
241
+ private onHotspotsChange;
242
+ onLoadStart(...args: any[]): void;
243
+ onLoadProgress(...args: any[]): void;
244
+ onLoadEnd(...args: any[]): void;
245
+ private onLoadError;
246
+ }
247
+
248
+ export declare interface WebRenderScene {
249
+ database: string;
250
+ configuration?: string;
251
+ animations?: string[];
252
+ translation?: {
253
+ x: number;
254
+ y: number;
255
+ };
256
+ accessory?: boolean;
257
+ decor?: boolean;
258
+ }
259
+
260
+ export declare interface Widget {
261
+ destroy(): void;
262
+ show(): void;
263
+ hide(): void;
264
+ load(snapshot: Snapshot, hotspots: Array<string | WRAPIv2.Vector3D>, reset: boolean, fade: boolean): Promise<void>;
265
+ hotspots(resolution: Resolution): Hotspot[];
266
+ pick(snapshot: Snapshot, position: WRAPIv2.Vector2D): Promise<WRAPIv2.PickResult>;
267
+ snapshot(type: string, quality: number): string;
268
+ onMouseDown(e: MouseEvent): void;
269
+ onMouseEnter(e: MouseEvent): void;
270
+ onMouseMove(e: MouseEvent): void;
271
+ onMouseUp(e: MouseEvent): void;
272
+ onTouchStart(e: TouchEvent): void;
273
+ onTouchMove(e: TouchEvent): void;
274
+ onTouchEnd(e: TouchEvent): void;
275
+ onDeviceOrientation(e: DeviceOrientationEvent): void;
276
+ }
277
+
278
+ export declare class WidgetImage implements Widget {
279
+ private container;
280
+ private canvas;
281
+ private loader;
282
+ private image?;
283
+ private hotspotList;
284
+ private hotspotsHash?;
285
+ private snapshotHash?;
286
+ constructor(container: HTMLElement, canvas: Canvas2D, loader: Loader);
287
+ destroy(): void;
288
+ show(): void;
289
+ hide(): void;
290
+ load(snapshot: Snapshot, hotspots: Array<string | WRAPIv2.Vector3D>, reset: boolean, fade: boolean): Promise<void>;
291
+ pick(snapshot: Snapshot, position: WRAPIv2.Vector2D): Promise<WRAPIv2.PickResult>;
292
+ hotspots(resolution: Resolution): Hotspot[];
293
+ snapshot(type: string, quality: number): string;
294
+ onMouseDown(e: MouseEvent): void;
295
+ onMouseMove(e: MouseEvent): void;
296
+ onMouseUp(e: MouseEvent): void;
297
+ onMouseEnter(e: MouseEvent): void;
298
+ onTouchStart(e: TouchEvent): void;
299
+ onTouchMove(e: TouchEvent): void;
300
+ onTouchEnd(e: TouchEvent): void;
301
+ onDeviceOrientation(e: DeviceOrientationEvent): void;
302
+ }
303
+
304
+ export declare class WidgetVideo implements Widget {
305
+ private container;
306
+ private loader;
307
+ private video;
308
+ private hash?;
309
+ constructor(container: HTMLElement, video: Video, loader: Loader);
310
+ destroy(): void;
311
+ show(): void;
312
+ hide(): void;
313
+ load(snapshot: Snapshot): Promise<void>;
314
+ pick(snapshot: Snapshot, position: WRAPIv2.Vector2D): Promise<WRAPIv2.PickResult>;
315
+ hotspots(resolution: Resolution): Hotspot[];
316
+ snapshot(type: string, quality: number): string;
317
+ play(): Promise<void>;
318
+ onMouseDown(e: MouseEvent): void;
319
+ onMouseMove(e: MouseEvent): void;
320
+ onMouseUp(e: MouseEvent): void;
321
+ onMouseEnter(e: MouseEvent): void;
322
+ onTouchStart(e: TouchEvent): void;
323
+ onTouchMove(e: TouchEvent): void;
324
+ onTouchEnd(e: TouchEvent): void;
325
+ onDeviceOrientation(e: DeviceOrientationEvent): void;
326
+ }
327
+
328
+ export declare class WidgetVRCube implements Widget {
329
+ private container;
330
+ private canvas;
331
+ private loader;
332
+ private images;
333
+ private hotspotsList;
334
+ private interaction;
335
+ private onInteraction;
336
+ private gl;
337
+ private programInfo;
338
+ private quad;
339
+ private uniforms;
340
+ private hotspotsHash?;
341
+ private snapshotHash?;
342
+ private animationFrameId?;
343
+ constructor(container: HTMLElement, canvas: Canvas3D, loader: Loader, onInteraction: (...args: any[]) => void);
344
+ destroy(): void;
345
+ show(): void;
346
+ hide(): void;
347
+ get pov(): PointOfView;
348
+ set pov(pov: PointOfView);
349
+ get fov(): number;
350
+ set fov(fov: number);
351
+ load(snapshot: Snapshot, hotspots: Array<string | WRAPIv2.Vector3D>, reset: boolean, fade: boolean): Promise<void>;
352
+ pick(snapshot: Snapshot, position: WRAPIv2.Vector2D): Promise<WRAPIv2.PickResult>;
353
+ hotspots(): Hotspot[];
354
+ snapshot(type: string, quality: number): string;
355
+ private get modelViewProjectionMatrix();
356
+ render(): void;
357
+ onMouseDown(e: MouseEvent): void;
358
+ onMouseMove(e: MouseEvent): void;
359
+ onMouseUp(e: MouseEvent): void;
360
+ onMouseEnter(e: MouseEvent): void;
361
+ onTouchStart(e: TouchEvent): void;
362
+ onTouchMove(e: TouchEvent): void;
363
+ onTouchEnd(e: TouchEvent): void;
364
+ onDeviceOrientation(e: DeviceOrientationEvent): void;
365
+ }
366
+
367
+ export declare class WidgetVRObject implements Widget {
368
+ private container;
369
+ private canvas;
370
+ private loader;
371
+ private images;
372
+ private frames;
373
+ private hotspotsList;
374
+ private interaction;
375
+ private onInteraction;
376
+ private hotspotsHash?;
377
+ private snapshotHash?;
378
+ private animationFrameId?;
379
+ constructor(container: HTMLElement, canvas: Canvas2D, loader: Loader, onInteraction: (...args: any[]) => void);
380
+ destroy(): void;
381
+ show(): void;
382
+ hide(): void;
383
+ goto(position: number): Promise<void>;
384
+ get position(): number;
385
+ set position(position: number);
386
+ get image(): HTMLImageElement;
387
+ load(snapshot: Snapshot, hotspots: Array<string | WRAPIv2.Vector3D>, reset: boolean, fade: boolean): Promise<void>;
388
+ pick(snapshot: Snapshot, position: WRAPIv2.Vector2D): Promise<WRAPIv2.PickResult>;
389
+ hotspots(resolution: Resolution): Hotspot[];
390
+ snapshot(type: string, quality: number): string;
391
+ onMouseDown(e: MouseEvent): void;
392
+ onMouseMove(e: MouseEvent): void;
393
+ onMouseUp(e: MouseEvent): void;
394
+ onMouseEnter(e: MouseEvent): void;
395
+ onTouchStart(e: TouchEvent): void;
396
+ onTouchMove(e: TouchEvent): void;
397
+ onTouchEnd(e: TouchEvent): void;
398
+ onDeviceOrientation(e: DeviceOrientationEvent): void;
399
+ }
400
+
401
+ export declare namespace WRAPIv1 {
402
+ export interface RequestRender {
403
+ databaseId: string;
404
+ configuration?: string;
405
+ animations?: string;
406
+ accessoryDatabaseId?: string;
407
+ decorDatabaseId?: string;
408
+ decorDeltaAltitude?: number;
409
+ background?: string;
410
+ width: number;
411
+ height: number;
412
+ softwareAntialiasing: boolean;
413
+ superSampling: number;
414
+ imageFormat: string;
415
+ imageQuality: number;
416
+ }
417
+ export interface RequestRenderBatchCubeFromBookmark extends RequestRender {
418
+ bookmarkSet: string;
419
+ bookmark: string;
420
+ }
421
+ export interface RequestRenderBatchImagesFromAnimation extends RequestRender {
422
+ animation: string;
423
+ bookmarkSet: string;
424
+ bookmark: string;
425
+ duration?: number;
426
+ frames?: number;
427
+ loop?: boolean;
428
+ reverse?: boolean;
429
+ }
430
+ export interface RequestRenderBatchImagesFromBookmarkSet extends RequestRender {
431
+ bookmarkSet: string;
432
+ }
433
+ export interface RequestRenderImageFromBookmark extends RequestRender {
434
+ bookmarkSet: string;
435
+ bookmark: string;
436
+ }
437
+ }
438
+
439
+ export declare namespace WRAPIv2 {
440
+ export interface AabbRequest {
441
+ scene: Scene;
442
+ }
443
+ export interface HotspotRequest {
444
+ scene: Scene;
445
+ mode: AnimationMode | ImageMode | ImagesMode | VrCubeMode | VrObjectMode;
446
+ renderParameters?: RenderParameters;
447
+ positions?: Vector3D[];
448
+ tags?: string[];
449
+ }
450
+ export interface PickRequest {
451
+ scene: Scene;
452
+ camera: Camera;
453
+ renderParameters?: RenderParameters;
454
+ positions: PositionArray;
455
+ }
456
+ export interface SnapshotRequest {
457
+ scene: Scene;
458
+ mode: AnimationMode | ImageMode | ImagesMode | VrCubeMode | VrObjectMode;
459
+ renderParameters?: RenderParameters;
460
+ encoder?: JpegEncoder | PngEncoder | WebpEncoder | VideoEncoder;
461
+ }
462
+ export interface AabbResponse {
463
+ min: {
464
+ x: number;
465
+ y: number;
466
+ z: number;
467
+ };
468
+ max: {
469
+ x: number;
470
+ y: number;
471
+ z: number;
472
+ };
473
+ size: {
474
+ x: number;
475
+ y: number;
476
+ z: number;
477
+ };
478
+ }
479
+ export type HotspotReponse = Hotspot | Hotspot[];
480
+ export interface Hotspot {
481
+ id: string;
482
+ name: string;
483
+ position2D: Vector2D;
484
+ position3D: Vector3D;
485
+ visibility: HotspotVisibility;
486
+ }
487
+ export enum HotspotVisibility {
488
+ Visible = "Visible",
489
+ Occluded = "Occluded",
490
+ Clipped = "Clipped",
491
+ OutOfFrustum = "OutOfFrustum"
492
+ }
493
+ export type PickResponse = PickResult[];
494
+ export interface PickResult {
495
+ product: string;
496
+ surface: PickResultSurface;
497
+ normal: {
498
+ x: number;
499
+ y: number;
500
+ z: number;
501
+ };
502
+ point: {
503
+ x: number;
504
+ y: number;
505
+ z: number;
506
+ };
507
+ uvw: {
508
+ u: number;
509
+ v: number;
510
+ w: number;
511
+ };
512
+ }
513
+ export interface PickResultSurface {
514
+ id: string;
515
+ name: string;
516
+ tags: string[];
517
+ }
518
+ export type SnapshotResponse = Frame | Frame[];
519
+ export interface Frame {
520
+ url: string;
521
+ }
522
+ export type AnimationArray = Animation[];
523
+ export type Camera = Guid | CameraObj;
524
+ export type CameraGroup = Guid;
525
+ export type Color = string;
526
+ export type ColoredBackground = {
527
+ color: Color;
528
+ } | {
529
+ startColor: Color;
530
+ endColor: Color;
531
+ };
532
+ export type Guid = string;
533
+ export type LabelArray = (Label | ImageLabel | TextLabel)[];
534
+ export type LabelTransformArray = LabelTransform[];
535
+ export type MaterialArray = Material[];
536
+ export type MaterialMultiLayerArray = MaterialMultiLayer[];
537
+ export type MaterialSeamArray = MaterialSeam[];
538
+ export type MaterialStandardArray = MaterialStandard[];
539
+ export type PositionArray = Vector2D[];
540
+ export type ProductArray = Product[];
541
+ export type Scene = Guid | Product | ProductArray;
542
+ export type SurfaceArray = Surface[];
543
+ export interface Animation {
544
+ id: Guid;
545
+ time: number;
546
+ }
547
+ export interface AnimationMode {
548
+ animation: {
549
+ id: Guid;
550
+ camera?: Camera;
551
+ fps?: number;
552
+ reverse?: boolean;
553
+ };
554
+ }
555
+ export interface CameraObj {
556
+ id?: Guid;
557
+ depthPolicy?: DepthPolicy;
558
+ lens?: LensFov | LensFrustum;
559
+ pov?: Pov;
560
+ sensor?: Guid | Sensor;
561
+ }
562
+ export interface DepthPolicy {
563
+ mode?: DepthPolicyMode;
564
+ zMin?: number;
565
+ zMax?: number;
566
+ }
567
+ export type DepthPolicyMode = 'frustumBased' | 'fixedDepthRange' | 'lookAtPointBasedInterest' | 'useGlobalPolicy';
568
+ export interface ImageMode {
569
+ image: {
570
+ camera: Camera;
571
+ };
572
+ }
573
+ export interface ImagesMode {
574
+ images: {
575
+ cameraGroup: CameraGroup;
576
+ };
577
+ }
578
+ export interface JpegEncoder {
579
+ jpeg: {
580
+ quality?: number;
581
+ };
582
+ }
583
+ export interface Label {
584
+ type?: string;
585
+ surface?: string;
586
+ tag?: string;
587
+ id?: Guid;
588
+ filename?: string;
589
+ translation?: Vector2D;
590
+ rotation?: number;
591
+ scaling?: Vector2D;
592
+ }
593
+ export interface ImageLabel extends Label {
594
+ type: 'image';
595
+ src: string;
596
+ }
597
+ export interface TextLabel extends Label {
598
+ type: 'text';
599
+ text: string;
600
+ fontFamily: string;
601
+ fontSize: number;
602
+ color?: Color;
603
+ textAlign?: 'left' | 'start' | 'center' | 'right' | 'end';
604
+ }
605
+ export interface LabelTransform {
606
+ index?: number;
607
+ translation?: Vector2D;
608
+ rotation?: number;
609
+ scaling?: Vector2D;
610
+ }
611
+ export interface LensFov {
612
+ fov: number;
613
+ view?: 'perspective' | 'isometric';
614
+ axis?: 'x' | 'y';
615
+ }
616
+ export interface LensFrustum {
617
+ left: number;
618
+ right: number;
619
+ top: number;
620
+ bottom: number;
621
+ view?: 'perspective' | 'isometric';
622
+ }
623
+ export interface Material {
624
+ name?: string;
625
+ tag?: string;
626
+ id?: Guid;
627
+ filename?: string;
628
+ }
629
+ export interface MaterialMultiLayer {
630
+ name: string;
631
+ layer: number;
632
+ diffuseColor?: Color;
633
+ diffuseColorIntensity?: number;
634
+ specularRoughness?: number;
635
+ }
636
+ export interface MaterialSeam {
637
+ name: string;
638
+ diffuseColor?: Color;
639
+ diffuseColorIntensity?: number;
640
+ specularRoughness?: number;
641
+ }
642
+ export interface MaterialStandard {
643
+ name: string;
644
+ diffuseColor?: Color;
645
+ diffuseColorIntensity?: number;
646
+ diffuseColorMap?: string;
647
+ specularRoughness?: number;
648
+ }
649
+ export interface Pov {
650
+ target: Vector3D;
651
+ eye: Vector3D;
652
+ up: Vector3D;
653
+ }
654
+ export interface PngEncoder {
655
+ png: {
656
+ compression?: number;
657
+ };
658
+ }
659
+ export interface Product {
660
+ id?: Guid;
661
+ database: Guid;
662
+ product?: Guid;
663
+ animations?: AnimationArray;
664
+ configuration?: string;
665
+ labels?: LabelArray;
666
+ materials?: MaterialArray;
667
+ materialMultiLayers?: MaterialMultiLayerArray;
668
+ materialSeams?: MaterialSeamArray;
669
+ materialStandards?: MaterialStandardArray;
670
+ partitions?: RenderPartitions;
671
+ surfaces?: SurfaceArray;
672
+ surfacesFilter?: SurfacesFilter;
673
+ translation?: Vector3D;
674
+ rotation?: Vector3D;
675
+ visible?: boolean;
676
+ isMaster?: boolean;
677
+ }
678
+ export type RenderMode = 'aabb' | 'fill' | 'gbuffer' | 'lightmap' | 'material' | 'mix' | 'normalDepth' | 'uv' | 'wireframe' | 'worldPosition' | 'zbuffer';
679
+ export interface RenderParameters {
680
+ width?: number;
681
+ height?: number;
682
+ mode?: RenderMode;
683
+ antialiasing?: boolean;
684
+ background?: boolean;
685
+ compositing?: boolean;
686
+ enhancedTransparency?: boolean;
687
+ grid?: boolean;
688
+ matting?: boolean;
689
+ mipmap?: boolean;
690
+ mirror?: boolean;
691
+ overlay?: boolean;
692
+ partitions?: RenderPartitions;
693
+ postProcess?: boolean;
694
+ product?: boolean;
695
+ referential?: boolean;
696
+ superSampling?: '1' | '2' | '3' | '4';
697
+ screenSpaceReflections?: boolean;
698
+ screenSpaceReflectionsGrazingAngleFadeoff?: number;
699
+ screenSpaceReflectionsQualityFactor?: number;
700
+ screenSpaceReflectionsRayDepthFactor?: number;
701
+ ssaoParameters?: SSAOParameters;
702
+ sunAuthoringData?: SunAuthoringData;
703
+ }
704
+ export interface RenderPartitions {
705
+ axfCpa2?: boolean;
706
+ environment?: boolean;
707
+ error?: boolean;
708
+ label?: boolean;
709
+ matte?: boolean;
710
+ mirrorOpaque?: boolean;
711
+ mirrorTransparent?: boolean;
712
+ multiLayerOpaque?: boolean;
713
+ multiLayerTransparent?: boolean;
714
+ null?: boolean;
715
+ seam?: boolean;
716
+ shaper?: boolean;
717
+ standardOpaque?: boolean;
718
+ standardTransparent?: boolean;
719
+ }
720
+ export interface Sensor {
721
+ id?: Guid;
722
+ background?: Guid | ColoredBackground | ('product' | 'transparent');
723
+ overlay?: Guid;
724
+ }
725
+ export interface SSAOParameters {
726
+ enabled: boolean;
727
+ lightmaps: boolean;
728
+ transparentSurfaces: boolean;
729
+ radius: number;
730
+ intensity: number;
731
+ bias: number;
732
+ steps: number;
733
+ }
734
+ export interface SunAuthoringData {
735
+ enabled?: boolean;
736
+ sunColor?: string;
737
+ intensity?: number;
738
+ lightmapIntensity?: number;
739
+ enabledShadowsInMirrors?: boolean;
740
+ shadowIntensity?: number;
741
+ shadowQuality?: SunShadowQualityMode;
742
+ shadowSmoothness?: SunShadowSmoothnessMode;
743
+ specularEnabled?: boolean;
744
+ specularIntensity?: number;
745
+ northOrientation?: number;
746
+ useCase?: SunUseCaseMode;
747
+ manualData?: SunManualData;
748
+ }
749
+ export interface SunManualData {
750
+ azimuth: number;
751
+ altitude: number;
752
+ }
753
+ export enum SunShadowQualityMode {
754
+ VeryLow = "veryLow",
755
+ Low = "low",
756
+ Medium = "medium",
757
+ Fine = "fine",
758
+ Ultra = "ultra"
759
+ }
760
+ export enum SunShadowSmoothnessMode {
761
+ None = "none",
762
+ Weak = "weak",
763
+ Normal = "normal",
764
+ Fine = "fine",
765
+ UltraFine = "ultraFine",
766
+ Max = "max"
767
+ }
768
+ export enum SunUseCaseMode {
769
+ Manual = "manual",
770
+ ExtractedFromEnv = "extractedFromEnv"
771
+ }
772
+ export interface Surface {
773
+ tag: string;
774
+ hide?: boolean;
775
+ labels?: LabelTransformArray;
776
+ vertices?: number[];
777
+ normals?: number[];
778
+ uvs?: number[];
779
+ }
780
+ export interface SurfacesFilter {
781
+ mode: SurfacesFilterMode;
782
+ tags: string[];
783
+ }
784
+ export enum SurfacesFilterMode {
785
+ ShowOnly = "showOnly",
786
+ HideOnly = "hideOnly"
787
+ }
788
+ export interface Vector2D {
789
+ x: number;
790
+ y: number;
791
+ }
792
+ export interface Vector3D {
793
+ x: number;
794
+ y: number;
795
+ z: number;
796
+ }
797
+ export interface VideoEncoder {
798
+ video: {
799
+ container?: string;
800
+ encoder?: string;
801
+ bitrate?: number;
802
+ fps?: number;
803
+ };
804
+ }
805
+ export interface VrCubeMode {
806
+ vrCube: {
807
+ camera: Camera;
808
+ };
809
+ }
810
+ export interface VrObjectMode {
811
+ vrObject: {
812
+ camera: Camera;
813
+ frames: number;
814
+ } | {
815
+ camera: Camera;
816
+ panLoop?: boolean;
817
+ panFrom?: number;
818
+ panTo?: number;
819
+ panFrames: number;
820
+ tiltLoop?: boolean;
821
+ tiltFrom?: number;
822
+ tiltTo?: number;
823
+ tiltFrames?: number;
824
+ };
825
+ }
826
+ export interface WebpEncoder {
827
+ webp?: {
828
+ quality?: number;
829
+ };
830
+ }
831
+ }
832
+
833
+ export { }