@shapediver/viewer.rendering-engine.rendering-engine 2.12.7 → 3.0.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.
@@ -1,93 +1,7 @@
1
- import { ITreeNode } from '@shapediver/viewer.shared.node-tree';
2
- import { DomEventEngine, SettingsEngine } from '@shapediver/viewer.shared.services';
1
+ import { DomEventEngine, SESSION_SETTINGS_MODE, SettingsEngine } from '@shapediver/viewer.shared.services';
3
2
  import { IGeometryData } from '@shapediver/viewer.shared.types';
3
+ import { ITreeNode } from '@shapediver/viewer.shared.node-tree';
4
4
  import { vec2, vec3 } from 'gl-matrix';
5
- export declare enum RENDERER_TYPE {
6
- /** The standard rendering engine */
7
- STANDARD = "standard",
8
- /** A basic version of the rendering engine */
9
- ATTRIBUTES = "attributes"
10
- }
11
- export declare enum VISIBILITY_MODE {
12
- /** The viewer shows the scene instantly */
13
- INSTANT = "instant",
14
- /** The viewer shows the scene after the first session loading */
15
- SESSION = "session",
16
- /** The viewer is shown once the 'show' property is set to true */
17
- MANUAL = "manual"
18
- }
19
- export declare enum TEXTURE_ENCODING {
20
- LINEAR = "linear",
21
- SRGB = "srgb",
22
- RGBE = "rgbe",
23
- RGBM7 = "rgbm7",
24
- RGBM16 = "rgbm16",
25
- RGBD = "rgbd",
26
- GAMMA = "gamma"
27
- }
28
- export declare enum TONE_MAPPING {
29
- NONE = "none",
30
- LINEAR = "linear",
31
- REINHARD = "reinhard",
32
- CINEON = "cineon",
33
- ACES_FILMIC = "aces_filmic"
34
- }
35
- /**
36
- * Modes used to indicate that a viewport is busy.
37
- */
38
- export declare enum BUSY_MODE_DISPLAY {
39
- /** The viewport will be blurred when a session is busy. */
40
- BLUR = "blur",
41
- /** A spinner will be shown when a session is busy. */
42
- SPINNER = "spinner",
43
- /** Nothing happens when a session is busy. */
44
- NONE = "none"
45
- }
46
- /**
47
- * Session settings to be used by a viewport.
48
- *
49
- * The {@link https://help.shapediver.com/doc/Geometry-Backend.1863942173.html|ShapeDiver Geometry Backend}
50
- * allows to persist settings of the viewer, individually for each model that it hosts. Persisting the settings
51
- * of the viewer requires permissions which are typically only granted to the owner of the model. Editing
52
- * of the settings typically happens on the model edit page of the ShapeDiver Platform.
53
- *
54
- * Whenever an instance of the viewer creates a session with a model, the settings are made available to the viewer.
55
- * It is possible to use multiple sessions with different models from a single instance of the viewer.
56
- * Therefore the viewer offers a choice on which settings to use.
57
- */
58
- export declare enum SESSION_SETTINGS_MODE {
59
- /** No settings of a session will be used for the viewport. */
60
- NONE = "none",
61
- /**
62
- * The settings of the very first session created will be used for the viewport.
63
- */
64
- FIRST = "first",
65
- /**
66
- * Use this mode in case you want to assign a specific session identifier
67
- * to the viewport, whose settings will be used.
68
- */
69
- MANUAL = "manual"
70
- }
71
- /**
72
- * Types of flags used to influence the render loop.
73
- */
74
- export declare enum FLAG_TYPE {
75
- /** The flag for the busy mode. */
76
- BUSY_MODE = "busy_mode",
77
- /** The flag to freeze the camera. */
78
- CAMERA_FREEZE = "camera_freeze",
79
- /** The flag to continuously render the scene. */
80
- CONTINUOUS_RENDERING = "continuous_rendering",
81
- /** The flag to continuously update the shadow map. */
82
- CONTINUOUS_SHADOW_MAP_UPDATE = "continuous_shadow_map_update"
83
- }
84
- export declare enum SPINNER_POSITIONING {
85
- CENTER = "center",
86
- TOP_LEFT = "top_left",
87
- TOP_RIGHT = "top_right",
88
- BOTTOM_LEFT = "bottom_left",
89
- BOTTOM_RIGHT = "bottom_right"
90
- }
91
5
  export interface IRenderingEngine {
92
6
  automaticResizing: boolean;
93
7
  canvas: HTMLCanvasElement;
@@ -103,6 +17,7 @@ export interface IRenderingEngine {
103
17
  type: RENDERER_TYPE;
104
18
  visibility: VISIBILITY_MODE;
105
19
  addFlag(flag: FLAG_TYPE): string;
20
+ assignSettingsEngine(settingsEngine: SettingsEngine): void;
106
21
  continueRendering(): void;
107
22
  convert3Dto2D(p: vec3): {
108
23
  container: vec2;
@@ -112,11 +27,11 @@ export interface IRenderingEngine {
112
27
  };
113
28
  getScreenshot(type?: string, encoderOptions?: number): string;
114
29
  isMobileDeviceWithoutBrowserARSupport(): boolean;
115
- mouseEventToRay(event: MouseEvent): {
30
+ pauseRendering(): void;
31
+ pointerEventToRay(event: PointerEvent): {
116
32
  origin: vec3;
117
33
  direction: vec3;
118
34
  };
119
- pauseRendering(): void;
120
35
  raytraceScene(origin: vec3, direction: vec3, root?: ITreeNode): {
121
36
  distance: number;
122
37
  node: ITreeNode;
@@ -125,14 +40,7 @@ export interface IRenderingEngine {
125
40
  removeFlag(token: string): boolean;
126
41
  reset(): void;
127
42
  resize(width: number, height: number): void;
128
- touchToRay(event: Touch): {
129
- origin: vec3;
130
- direction: vec3;
131
- };
132
- touchEventToRay(event: TouchEvent): {
133
- origin: vec3;
134
- direction: vec3;
135
- };
43
+ start(): void;
136
44
  update(id: string): void;
137
45
  viewInAR(file: string, options?: {
138
46
  arScale?: 'auto' | 'fixed';
@@ -141,4 +49,65 @@ export interface IRenderingEngine {
141
49
  }): Promise<void>;
142
50
  viewableInAR(): boolean;
143
51
  }
52
+ /**
53
+ * Modes used to indicate that a viewport is busy.
54
+ */
55
+ export declare enum BUSY_MODE_DISPLAY {
56
+ /** The viewport will be blurred when a session is busy. */
57
+ BLUR = "blur",
58
+ /** A spinner will be shown when a session is busy. */
59
+ SPINNER = "spinner",
60
+ /** Nothing happens when a session is busy. */
61
+ NONE = "none"
62
+ }
63
+ /**
64
+ * Types of flags used to influence the render loop.
65
+ */
66
+ export declare enum FLAG_TYPE {
67
+ /** The flag for the busy mode. */
68
+ BUSY_MODE = "busy_mode",
69
+ /** The flag to freeze the camera. */
70
+ CAMERA_FREEZE = "camera_freeze",
71
+ /** The flag to continuously render the scene. */
72
+ CONTINUOUS_RENDERING = "continuous_rendering",
73
+ /** The flag to continuously update the shadow map. */
74
+ CONTINUOUS_SHADOW_MAP_UPDATE = "continuous_shadow_map_update"
75
+ }
76
+ export declare enum RENDERER_TYPE {
77
+ /** The standard rendering engine */
78
+ STANDARD = "standard",
79
+ /** A basic version of the rendering engine */
80
+ ATTRIBUTES = "attributes"
81
+ }
82
+ export declare enum SPINNER_POSITIONING {
83
+ CENTER = "center",
84
+ TOP_LEFT = "top_left",
85
+ TOP_RIGHT = "top_right",
86
+ BOTTOM_LEFT = "bottom_left",
87
+ BOTTOM_RIGHT = "bottom_right"
88
+ }
89
+ export declare enum TEXTURE_ENCODING {
90
+ LINEAR = "linear",
91
+ SRGB = "srgb",
92
+ RGBE = "rgbe",
93
+ RGBM7 = "rgbm7",
94
+ RGBM16 = "rgbm16",
95
+ RGBD = "rgbd",
96
+ GAMMA = "gamma"
97
+ }
98
+ export declare enum TONE_MAPPING {
99
+ NONE = "none",
100
+ LINEAR = "linear",
101
+ REINHARD = "reinhard",
102
+ CINEON = "cineon",
103
+ ACES_FILMIC = "aces_filmic"
104
+ }
105
+ export declare enum VISIBILITY_MODE {
106
+ /** The viewer shows the scene instantly */
107
+ INSTANT = "instant",
108
+ /** The viewer shows the scene after the first session loading */
109
+ SESSION = "session",
110
+ /** The viewer is shown once the 'show' property is set to true */
111
+ MANUAL = "manual"
112
+ }
144
113
  //# sourceMappingURL=IRenderingEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IRenderingEngine.d.ts","sourceRoot":"","sources":["../src/IRenderingEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IRenderingEngine.d.ts","sourceRoot":"","sources":["../src/IRenderingEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAC3G,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIvC,MAAM,WAAW,gBAAgB;IAG/B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,qBAAqB,CAAC;IAC3C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,OAAO,CAAC;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,eAAe,CAAC;IAM5B,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IACjC,oBAAoB,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IAC3D,iBAAiB,IAAI,IAAI,CAAC;IAC1B,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG;QAAE,SAAS,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;KAAE,CAAC;IACxF,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9D,qCAAqC,IAAI,OAAO,CAAC;IACjD,cAAc,IAAI,IAAI,CAAC;IACvB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,CAAC;IAC1E,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAC;QAAC,IAAI,CAAC,EAAE,aAAa,CAAC;KAAE,EAAE,CAAA;IAC9H,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzI,YAAY,IAAI,OAAO,CAAC;CAGzB;AAMD;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,2DAA2D;IAC3D,IAAI,SAAS;IACb,sDAAsD;IACtD,OAAO,YAAY;IACnB,8CAA8C;IAC9C,IAAI,SAAS;CACd;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,kCAAkC;IAClC,SAAS,cAAc;IACvB,qCAAqC;IACrC,aAAa,kBAAkB;IAC/B,iDAAiD;IACjD,oBAAoB,yBAAyB;IAC7C,sDAAsD;IACtD,4BAA4B,iCAAiC;CAC9D;AAED,oBAAY,aAAa;IACvB,oCAAoC;IACpC,QAAQ,aAAa;IACrB,8CAA8C;IAC9C,UAAU,eAAe;CAC1B;AAED,oBAAY,mBAAmB;IAC7B,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;CAC9B;AAED,oBAAY,gBAAgB;IAC1B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,oBAAY,YAAY;IACtB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,WAAW,gBAAgB;CAC5B;AAED,oBAAY,eAAe;IACzB,2CAA2C;IAC3C,OAAO,YAAY;IACnB,iEAAiE;IACjE,OAAO,YAAY;IACnB,kEAAkE;IAClE,MAAM,WAAW;CAClB"}
@@ -1,40 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SPINNER_POSITIONING = exports.FLAG_TYPE = exports.SESSION_SETTINGS_MODE = exports.BUSY_MODE_DISPLAY = exports.TONE_MAPPING = exports.TEXTURE_ENCODING = exports.VISIBILITY_MODE = exports.RENDERER_TYPE = void 0;
4
- var RENDERER_TYPE;
5
- (function (RENDERER_TYPE) {
6
- /** The standard rendering engine */
7
- RENDERER_TYPE["STANDARD"] = "standard";
8
- /** A basic version of the rendering engine */
9
- RENDERER_TYPE["ATTRIBUTES"] = "attributes";
10
- })(RENDERER_TYPE = exports.RENDERER_TYPE || (exports.RENDERER_TYPE = {}));
11
- var VISIBILITY_MODE;
12
- (function (VISIBILITY_MODE) {
13
- /** The viewer shows the scene instantly */
14
- VISIBILITY_MODE["INSTANT"] = "instant";
15
- /** The viewer shows the scene after the first session loading */
16
- VISIBILITY_MODE["SESSION"] = "session";
17
- /** The viewer is shown once the 'show' property is set to true */
18
- VISIBILITY_MODE["MANUAL"] = "manual";
19
- })(VISIBILITY_MODE = exports.VISIBILITY_MODE || (exports.VISIBILITY_MODE = {}));
20
- var TEXTURE_ENCODING;
21
- (function (TEXTURE_ENCODING) {
22
- TEXTURE_ENCODING["LINEAR"] = "linear";
23
- TEXTURE_ENCODING["SRGB"] = "srgb";
24
- TEXTURE_ENCODING["RGBE"] = "rgbe";
25
- TEXTURE_ENCODING["RGBM7"] = "rgbm7";
26
- TEXTURE_ENCODING["RGBM16"] = "rgbm16";
27
- TEXTURE_ENCODING["RGBD"] = "rgbd";
28
- TEXTURE_ENCODING["GAMMA"] = "gamma";
29
- })(TEXTURE_ENCODING = exports.TEXTURE_ENCODING || (exports.TEXTURE_ENCODING = {}));
30
- var TONE_MAPPING;
31
- (function (TONE_MAPPING) {
32
- TONE_MAPPING["NONE"] = "none";
33
- TONE_MAPPING["LINEAR"] = "linear";
34
- TONE_MAPPING["REINHARD"] = "reinhard";
35
- TONE_MAPPING["CINEON"] = "cineon";
36
- TONE_MAPPING["ACES_FILMIC"] = "aces_filmic";
37
- })(TONE_MAPPING = exports.TONE_MAPPING || (exports.TONE_MAPPING = {}));
3
+ exports.VISIBILITY_MODE = exports.TONE_MAPPING = exports.TEXTURE_ENCODING = exports.SPINNER_POSITIONING = exports.RENDERER_TYPE = exports.FLAG_TYPE = exports.BUSY_MODE_DISPLAY = void 0;
4
+ // #endregion Interfaces (1)
5
+ // #region Enums (7)
38
6
  /**
39
7
  * Modes used to indicate that a viewport is busy.
40
8
  */
@@ -47,34 +15,6 @@ var BUSY_MODE_DISPLAY;
47
15
  /** Nothing happens when a session is busy. */
48
16
  BUSY_MODE_DISPLAY["NONE"] = "none";
49
17
  })(BUSY_MODE_DISPLAY = exports.BUSY_MODE_DISPLAY || (exports.BUSY_MODE_DISPLAY = {}));
50
- ;
51
- /**
52
- * Session settings to be used by a viewport.
53
- *
54
- * The {@link https://help.shapediver.com/doc/Geometry-Backend.1863942173.html|ShapeDiver Geometry Backend}
55
- * allows to persist settings of the viewer, individually for each model that it hosts. Persisting the settings
56
- * of the viewer requires permissions which are typically only granted to the owner of the model. Editing
57
- * of the settings typically happens on the model edit page of the ShapeDiver Platform.
58
- *
59
- * Whenever an instance of the viewer creates a session with a model, the settings are made available to the viewer.
60
- * It is possible to use multiple sessions with different models from a single instance of the viewer.
61
- * Therefore the viewer offers a choice on which settings to use.
62
- */
63
- var SESSION_SETTINGS_MODE;
64
- (function (SESSION_SETTINGS_MODE) {
65
- /** No settings of a session will be used for the viewport. */
66
- SESSION_SETTINGS_MODE["NONE"] = "none";
67
- /**
68
- * The settings of the very first session created will be used for the viewport.
69
- */
70
- SESSION_SETTINGS_MODE["FIRST"] = "first";
71
- /**
72
- * Use this mode in case you want to assign a specific session identifier
73
- * to the viewport, whose settings will be used.
74
- */
75
- SESSION_SETTINGS_MODE["MANUAL"] = "manual";
76
- })(SESSION_SETTINGS_MODE = exports.SESSION_SETTINGS_MODE || (exports.SESSION_SETTINGS_MODE = {}));
77
- ;
78
18
  /**
79
19
  * Types of flags used to influence the render loop.
80
20
  */
@@ -89,6 +29,13 @@ var FLAG_TYPE;
89
29
  /** The flag to continuously update the shadow map. */
90
30
  FLAG_TYPE["CONTINUOUS_SHADOW_MAP_UPDATE"] = "continuous_shadow_map_update";
91
31
  })(FLAG_TYPE = exports.FLAG_TYPE || (exports.FLAG_TYPE = {}));
32
+ var RENDERER_TYPE;
33
+ (function (RENDERER_TYPE) {
34
+ /** The standard rendering engine */
35
+ RENDERER_TYPE["STANDARD"] = "standard";
36
+ /** A basic version of the rendering engine */
37
+ RENDERER_TYPE["ATTRIBUTES"] = "attributes";
38
+ })(RENDERER_TYPE = exports.RENDERER_TYPE || (exports.RENDERER_TYPE = {}));
92
39
  var SPINNER_POSITIONING;
93
40
  (function (SPINNER_POSITIONING) {
94
41
  SPINNER_POSITIONING["CENTER"] = "center";
@@ -97,4 +44,32 @@ var SPINNER_POSITIONING;
97
44
  SPINNER_POSITIONING["BOTTOM_LEFT"] = "bottom_left";
98
45
  SPINNER_POSITIONING["BOTTOM_RIGHT"] = "bottom_right";
99
46
  })(SPINNER_POSITIONING = exports.SPINNER_POSITIONING || (exports.SPINNER_POSITIONING = {}));
47
+ var TEXTURE_ENCODING;
48
+ (function (TEXTURE_ENCODING) {
49
+ TEXTURE_ENCODING["LINEAR"] = "linear";
50
+ TEXTURE_ENCODING["SRGB"] = "srgb";
51
+ TEXTURE_ENCODING["RGBE"] = "rgbe";
52
+ TEXTURE_ENCODING["RGBM7"] = "rgbm7";
53
+ TEXTURE_ENCODING["RGBM16"] = "rgbm16";
54
+ TEXTURE_ENCODING["RGBD"] = "rgbd";
55
+ TEXTURE_ENCODING["GAMMA"] = "gamma";
56
+ })(TEXTURE_ENCODING = exports.TEXTURE_ENCODING || (exports.TEXTURE_ENCODING = {}));
57
+ var TONE_MAPPING;
58
+ (function (TONE_MAPPING) {
59
+ TONE_MAPPING["NONE"] = "none";
60
+ TONE_MAPPING["LINEAR"] = "linear";
61
+ TONE_MAPPING["REINHARD"] = "reinhard";
62
+ TONE_MAPPING["CINEON"] = "cineon";
63
+ TONE_MAPPING["ACES_FILMIC"] = "aces_filmic";
64
+ })(TONE_MAPPING = exports.TONE_MAPPING || (exports.TONE_MAPPING = {}));
65
+ var VISIBILITY_MODE;
66
+ (function (VISIBILITY_MODE) {
67
+ /** The viewer shows the scene instantly */
68
+ VISIBILITY_MODE["INSTANT"] = "instant";
69
+ /** The viewer shows the scene after the first session loading */
70
+ VISIBILITY_MODE["SESSION"] = "session";
71
+ /** The viewer is shown once the 'show' property is set to true */
72
+ VISIBILITY_MODE["MANUAL"] = "manual";
73
+ })(VISIBILITY_MODE = exports.VISIBILITY_MODE || (exports.VISIBILITY_MODE = {}));
74
+ // #endregion Enums (7)
100
75
  //# sourceMappingURL=IRenderingEngine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IRenderingEngine.js","sourceRoot":"","sources":["../src/IRenderingEngine.ts"],"names":[],"mappings":";;;AAKA,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,oCAAoC;IACpC,sCAAqB,CAAA;IACrB,8CAA8C;IAC9C,0CAAyB,CAAA;AAC3B,CAAC,EALW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAKxB;AAED,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,2CAA2C;IAC3C,sCAAmB,CAAA;IACnB,iEAAiE;IACjE,sCAAmB,CAAA;IACnB,kEAAkE;IAClE,oCAAiB,CAAA;AACnB,CAAC,EAPW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAO1B;AAED,IAAY,gBAQX;AARD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,iCAAa,CAAA;IACb,mCAAe,CAAA;IACf,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,mCAAe,CAAA;AACjB,CAAC,EARW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAQ3B;AAED,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,iCAAiB,CAAA;IACjB,qCAAqB,CAAA;IACrB,iCAAiB,CAAA;IACjB,2CAA2B,CAAA;AAC7B,CAAC,EANW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAMvB;AAED;;GAEG;AACH,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,2DAA2D;IAC3D,kCAAa,CAAA;IACb,sDAAsD;IACtD,wCAAmB,CAAA;IACnB,8CAA8C;IAC9C,kCAAa,CAAA;AACf,CAAC,EAPW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAO5B;AAAA,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,IAAY,qBAYX;AAZD,WAAY,qBAAqB;IAC/B,8DAA8D;IAC9D,sCAAa,CAAA;IACb;;OAEG;IACH,wCAAe,CAAA;IACf;;;OAGG;IACH,0CAAiB,CAAA;AACnB,CAAC,EAZW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAYhC;AAAA,CAAC;AAEF;;GAEG;AACH,IAAY,SASX;AATD,WAAY,SAAS;IACnB,kCAAkC;IAClC,oCAAuB,CAAA;IACvB,qCAAqC;IACrC,4CAA+B,CAAA;IAC/B,iDAAiD;IACjD,0DAA6C,CAAA;IAC7C,sDAAsD;IACtD,0EAA6D,CAAA;AAC/D,CAAC,EATW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QASpB;AAED,IAAY,mBAMX;AAND,WAAY,mBAAmB;IAC7B,wCAAiB,CAAA;IACjB,4CAAqB,CAAA;IACrB,8CAAuB,CAAA;IACvB,kDAA2B,CAAA;IAC3B,oDAA6B,CAAA;AAC/B,CAAC,EANW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAM9B"}
1
+ {"version":3,"file":"IRenderingEngine.js","sourceRoot":"","sources":["../src/IRenderingEngine.ts"],"names":[],"mappings":";;;AAgDA,4BAA4B;AAE5B,oBAAoB;AAEpB;;GAEG;AACH,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,2DAA2D;IAC3D,kCAAa,CAAA;IACb,sDAAsD;IACtD,wCAAmB,CAAA;IACnB,8CAA8C;IAC9C,kCAAa,CAAA;AACf,CAAC,EAPW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAO5B;AAED;;GAEG;AACH,IAAY,SASX;AATD,WAAY,SAAS;IACnB,kCAAkC;IAClC,oCAAuB,CAAA;IACvB,qCAAqC;IACrC,4CAA+B,CAAA;IAC/B,iDAAiD;IACjD,0DAA6C,CAAA;IAC7C,sDAAsD;IACtD,0EAA6D,CAAA;AAC/D,CAAC,EATW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QASpB;AAED,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,oCAAoC;IACpC,sCAAqB,CAAA;IACrB,8CAA8C;IAC9C,0CAAyB,CAAA;AAC3B,CAAC,EALW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAKxB;AAED,IAAY,mBAMX;AAND,WAAY,mBAAmB;IAC7B,wCAAiB,CAAA;IACjB,4CAAqB,CAAA;IACrB,8CAAuB,CAAA;IACvB,kDAA2B,CAAA;IAC3B,oDAA6B,CAAA;AAC/B,CAAC,EANW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAM9B;AAED,IAAY,gBAQX;AARD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,iCAAa,CAAA;IACb,mCAAe,CAAA;IACf,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,mCAAe,CAAA;AACjB,CAAC,EARW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAQ3B;AAED,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,iCAAiB,CAAA;IACjB,qCAAqB,CAAA;IACrB,iCAAiB,CAAA;IACjB,2CAA2B,CAAA;AAC7B,CAAC,EANW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAMvB;AAED,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,2CAA2C;IAC3C,sCAAmB,CAAA;IACnB,iEAAiE;IACjE,sCAAmB,CAAA;IACnB,kEAAkE;IAClE,oCAAiB,CAAA;AACnB,CAAC,EAPW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAO1B;AAED,uBAAuB"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { IManager } from './IManager';
2
- import { BUSY_MODE_DISPLAY, FLAG_TYPE, IRenderingEngine, RENDERER_TYPE, SESSION_SETTINGS_MODE, TEXTURE_ENCODING, TONE_MAPPING, VISIBILITY_MODE, SPINNER_POSITIONING } from './IRenderingEngine';
2
+ import { BUSY_MODE_DISPLAY, FLAG_TYPE, IRenderingEngine, RENDERER_TYPE, TEXTURE_ENCODING, TONE_MAPPING, VISIBILITY_MODE, SPINNER_POSITIONING } from './IRenderingEngine';
3
3
  import { ISDObject } from './ISDObject';
4
- export { IRenderingEngine, ISDObject, RENDERER_TYPE, VISIBILITY_MODE, TEXTURE_ENCODING, TONE_MAPPING, BUSY_MODE_DISPLAY, SESSION_SETTINGS_MODE, FLAG_TYPE, SPINNER_POSITIONING };
4
+ export { IRenderingEngine, ISDObject, RENDERER_TYPE, VISIBILITY_MODE, TEXTURE_ENCODING, TONE_MAPPING, BUSY_MODE_DISPLAY, FLAG_TYPE, SPINNER_POSITIONING };
5
5
  export { IManager };
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC/L,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EACL,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,SAAS,EAAE,mBAAmB,EACtK,CAAA;AAED,OAAO,EACL,QAAQ,EACT,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxK,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EACL,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,mBAAmB,EAC/I,CAAA;AAED,OAAO,EACL,QAAQ,EACT,CAAA"}
package/dist/index.js CHANGED
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SPINNER_POSITIONING = exports.FLAG_TYPE = exports.SESSION_SETTINGS_MODE = exports.BUSY_MODE_DISPLAY = exports.TONE_MAPPING = exports.TEXTURE_ENCODING = exports.VISIBILITY_MODE = exports.RENDERER_TYPE = void 0;
3
+ exports.SPINNER_POSITIONING = exports.FLAG_TYPE = exports.BUSY_MODE_DISPLAY = exports.TONE_MAPPING = exports.TEXTURE_ENCODING = exports.VISIBILITY_MODE = exports.RENDERER_TYPE = void 0;
4
4
  const IRenderingEngine_1 = require("./IRenderingEngine");
5
5
  Object.defineProperty(exports, "BUSY_MODE_DISPLAY", { enumerable: true, get: function () { return IRenderingEngine_1.BUSY_MODE_DISPLAY; } });
6
6
  Object.defineProperty(exports, "FLAG_TYPE", { enumerable: true, get: function () { return IRenderingEngine_1.FLAG_TYPE; } });
7
7
  Object.defineProperty(exports, "RENDERER_TYPE", { enumerable: true, get: function () { return IRenderingEngine_1.RENDERER_TYPE; } });
8
- Object.defineProperty(exports, "SESSION_SETTINGS_MODE", { enumerable: true, get: function () { return IRenderingEngine_1.SESSION_SETTINGS_MODE; } });
9
8
  Object.defineProperty(exports, "TEXTURE_ENCODING", { enumerable: true, get: function () { return IRenderingEngine_1.TEXTURE_ENCODING; } });
10
9
  Object.defineProperty(exports, "TONE_MAPPING", { enumerable: true, get: function () { return IRenderingEngine_1.TONE_MAPPING; } });
11
10
  Object.defineProperty(exports, "VISIBILITY_MODE", { enumerable: true, get: function () { return IRenderingEngine_1.VISIBILITY_MODE; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yDAA+L;AAIhG,kGAJtF,oCAAiB,OAIsF;AAAyB,0FAJ7G,4BAAS,OAI6G;AAAnH,8FAJ0B,gCAAa,OAI1B;AAAsE,sGAJ1C,wCAAqB,OAI0C;AAAxE,iGAJgC,mCAAgB,OAIhC;AAAE,6FAJgC,+BAAY,OAIhC;AAA/C,gGAJiF,kCAAe,OAIjF;AAAuF,oGAJJ,sCAAmB,OAII"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yDAAwK;AAIzE,kGAJtF,oCAAiB,OAIsF;AAAE,0FAJtF,4BAAS,OAIsF;AAA5F,8FAJ0B,gCAAa,OAI1B;AAAmB,iGAJS,mCAAgB,OAIT;AAAE,6FAJS,+BAAY,OAIT;AAA/C,gGAJ0D,kCAAe,OAI1D;AAAgE,oGAJJ,sCAAmB,OAII"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shapediver/viewer.rendering-engine.rendering-engine",
3
- "version": "2.12.7",
3
+ "version": "3.0.0",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "author": "Michael Oppitz <michael@shapediver.com>",
@@ -39,11 +39,11 @@
39
39
  "testEnvironment": "node"
40
40
  },
41
41
  "dependencies": {
42
- "@shapediver/viewer.shared.math": "2.12.7",
43
- "@shapediver/viewer.shared.node-tree": "2.12.7",
44
- "@shapediver/viewer.shared.services": "2.12.7",
45
- "@shapediver/viewer.shared.types": "2.12.7",
42
+ "@shapediver/viewer.shared.math": "3.0.0",
43
+ "@shapediver/viewer.shared.node-tree": "3.0.0",
44
+ "@shapediver/viewer.shared.services": "3.0.0",
45
+ "@shapediver/viewer.shared.types": "3.0.0",
46
46
  "gl-matrix": "3.3.0"
47
47
  },
48
- "gitHead": "60997db1d77ac9e274e53da1caa25a190f6405b6"
48
+ "gitHead": "b6b0010bf5d5652aa338df8016405d97f33fcabb"
49
49
  }
@@ -1,42 +1,55 @@
1
- import { ITreeNode } from '@shapediver/viewer.shared.node-tree';
2
- import { DomEventEngine, SettingsEngine } from '@shapediver/viewer.shared.services'
1
+ import { DomEventEngine, SESSION_SETTINGS_MODE, SettingsEngine } from '@shapediver/viewer.shared.services';
3
2
  import { IGeometryData } from '@shapediver/viewer.shared.types';
3
+ import { ITreeNode } from '@shapediver/viewer.shared.node-tree';
4
4
  import { vec2, vec3 } from 'gl-matrix';
5
5
 
6
- export enum RENDERER_TYPE {
7
- /** The standard rendering engine */
8
- STANDARD = 'standard',
9
- /** A basic version of the rendering engine */
10
- ATTRIBUTES = 'attributes'
11
- }
6
+ // #region Interfaces (1)
12
7
 
13
- export enum VISIBILITY_MODE {
14
- /** The viewer shows the scene instantly */
15
- INSTANT = 'instant',
16
- /** The viewer shows the scene after the first session loading */
17
- SESSION = 'session',
18
- /** The viewer is shown once the 'show' property is set to true */
19
- MANUAL = 'manual'
20
- }
8
+ export interface IRenderingEngine {
9
+ // #region Properties (13)
21
10
 
22
- export enum TEXTURE_ENCODING {
23
- LINEAR = 'linear',
24
- SRGB = 'srgb',
25
- RGBE = 'rgbe',
26
- RGBM7 = 'rgbm7',
27
- RGBM16 = 'rgbm16',
28
- RGBD = 'rgbd',
29
- GAMMA = 'gamma'
30
- }
11
+ automaticResizing: boolean;
12
+ canvas: HTMLCanvasElement;
13
+ closed: boolean;
14
+ domEventEngine: DomEventEngine;
15
+ id: string;
16
+ pointSize: number;
17
+ sessionSettingsId?: string;
18
+ sessionSettingsMode: SESSION_SETTINGS_MODE;
19
+ settingsEngine?: SettingsEngine;
20
+ show: boolean;
21
+ showStatistics: boolean;
22
+ type: RENDERER_TYPE;
23
+ visibility: VISIBILITY_MODE;
31
24
 
32
- export enum TONE_MAPPING {
33
- NONE = 'none',
34
- LINEAR = 'linear',
35
- REINHARD = 'reinhard',
36
- CINEON = 'cineon',
37
- ACES_FILMIC = 'aces_filmic'
25
+ // #endregion Properties (13)
26
+
27
+ // #region Public Methods (16)
28
+
29
+ addFlag(flag: FLAG_TYPE): string;
30
+ assignSettingsEngine(settingsEngine: SettingsEngine): void;
31
+ continueRendering(): void;
32
+ convert3Dto2D(p: vec3): { container: vec2; client: vec2; page: vec2; hidden: boolean; };
33
+ getScreenshot(type?: string, encoderOptions?: number): string;
34
+ isMobileDeviceWithoutBrowserARSupport(): boolean;
35
+ pauseRendering(): void;
36
+ pointerEventToRay(event: PointerEvent): { origin: vec3, direction: vec3 };
37
+ raytraceScene(origin: vec3, direction: vec3, root?: ITreeNode): { distance: number, node: ITreeNode, data?: IGeometryData; }[]
38
+ removeFlag(token: string): boolean;
39
+ reset(): void;
40
+ resize(width: number, height: number): void;
41
+ start(): void;
42
+ update(id: string): void;
43
+ viewInAR(file: string, options?: { arScale?: 'auto' | 'fixed', arPlacement?: 'floor' | 'wall', xrEnvironment?: boolean }): Promise<void>;
44
+ viewableInAR(): boolean;
45
+
46
+ // #endregion Public Methods (16)
38
47
  }
39
48
 
49
+ // #endregion Interfaces (1)
50
+
51
+ // #region Enums (7)
52
+
40
53
  /**
41
54
  * Modes used to indicate that a viewport is busy.
42
55
  */
@@ -47,33 +60,7 @@ export enum BUSY_MODE_DISPLAY {
47
60
  SPINNER = 'spinner',
48
61
  /** Nothing happens when a session is busy. */
49
62
  NONE = 'none'
50
- };
51
-
52
- /**
53
- * Session settings to be used by a viewport.
54
- *
55
- * The {@link https://help.shapediver.com/doc/Geometry-Backend.1863942173.html|ShapeDiver Geometry Backend}
56
- * allows to persist settings of the viewer, individually for each model that it hosts. Persisting the settings
57
- * of the viewer requires permissions which are typically only granted to the owner of the model. Editing
58
- * of the settings typically happens on the model edit page of the ShapeDiver Platform.
59
- *
60
- * Whenever an instance of the viewer creates a session with a model, the settings are made available to the viewer.
61
- * It is possible to use multiple sessions with different models from a single instance of the viewer.
62
- * Therefore the viewer offers a choice on which settings to use.
63
- */
64
- export enum SESSION_SETTINGS_MODE {
65
- /** No settings of a session will be used for the viewport. */
66
- NONE = 'none',
67
- /**
68
- * The settings of the very first session created will be used for the viewport.
69
- */
70
- FIRST = 'first',
71
- /**
72
- * Use this mode in case you want to assign a specific session identifier
73
- * to the viewport, whose settings will be used.
74
- */
75
- MANUAL = 'manual',
76
- };
63
+ }
77
64
 
78
65
  /**
79
66
  * Types of flags used to influence the render loop.
@@ -89,6 +76,13 @@ export enum FLAG_TYPE {
89
76
  CONTINUOUS_SHADOW_MAP_UPDATE = 'continuous_shadow_map_update',
90
77
  }
91
78
 
79
+ export enum RENDERER_TYPE {
80
+ /** The standard rendering engine */
81
+ STANDARD = 'standard',
82
+ /** A basic version of the rendering engine */
83
+ ATTRIBUTES = 'attributes'
84
+ }
85
+
92
86
  export enum SPINNER_POSITIONING {
93
87
  CENTER = 'center',
94
88
  TOP_LEFT = 'top_left',
@@ -97,43 +91,31 @@ export enum SPINNER_POSITIONING {
97
91
  BOTTOM_RIGHT = 'bottom_right',
98
92
  }
99
93
 
100
- export interface IRenderingEngine {
101
- // #region Properties (15)
102
-
103
- automaticResizing: boolean;
104
- canvas: HTMLCanvasElement;
105
- closed: boolean;
106
- domEventEngine: DomEventEngine;
107
- id: string;
108
- pointSize: number;
109
- sessionSettingsId?: string;
110
- sessionSettingsMode: SESSION_SETTINGS_MODE;
111
- settingsEngine?: SettingsEngine;
112
- show: boolean;
113
- showStatistics: boolean;
114
- type: RENDERER_TYPE;
115
- visibility: VISIBILITY_MODE;
116
-
117
- // #endregion Properties (15)
94
+ export enum TEXTURE_ENCODING {
95
+ LINEAR = 'linear',
96
+ SRGB = 'srgb',
97
+ RGBE = 'rgbe',
98
+ RGBM7 = 'rgbm7',
99
+ RGBM16 = 'rgbm16',
100
+ RGBD = 'rgbd',
101
+ GAMMA = 'gamma'
102
+ }
118
103
 
119
- // #region Public Methods (7)
104
+ export enum TONE_MAPPING {
105
+ NONE = 'none',
106
+ LINEAR = 'linear',
107
+ REINHARD = 'reinhard',
108
+ CINEON = 'cineon',
109
+ ACES_FILMIC = 'aces_filmic'
110
+ }
120
111
 
121
- addFlag(flag: FLAG_TYPE): string;
122
- continueRendering(): void;
123
- convert3Dto2D(p: vec3): { container: vec2; client: vec2; page: vec2; hidden: boolean; };
124
- getScreenshot(type?: string, encoderOptions?: number): string;
125
- isMobileDeviceWithoutBrowserARSupport(): boolean;
126
- mouseEventToRay(event: MouseEvent): { origin: vec3, direction: vec3 };
127
- pauseRendering(): void;
128
- raytraceScene(origin: vec3, direction: vec3, root?: ITreeNode): { distance: number, node: ITreeNode, data?: IGeometryData; }[]
129
- removeFlag(token: string): boolean;
130
- reset(): void;
131
- resize(width: number, height: number): void;
132
- touchToRay(event: Touch): { origin: vec3, direction: vec3 };
133
- touchEventToRay(event: TouchEvent): { origin: vec3, direction: vec3 };
134
- update(id: string): void;
135
- viewInAR(file: string, options?: { arScale?: 'auto' | 'fixed', arPlacement?: 'floor' | 'wall', xrEnvironment?: boolean }): Promise<void>;
136
- viewableInAR(): boolean;
112
+ export enum VISIBILITY_MODE {
113
+ /** The viewer shows the scene instantly */
114
+ INSTANT = 'instant',
115
+ /** The viewer shows the scene after the first session loading */
116
+ SESSION = 'session',
117
+ /** The viewer is shown once the 'show' property is set to true */
118
+ MANUAL = 'manual'
119
+ }
137
120
 
138
- // #endregion Public Methods (7)
139
- }
121
+ // #endregion Enums (7)
package/src/index.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { IManager } from './IManager'
2
- import { BUSY_MODE_DISPLAY, FLAG_TYPE, IRenderingEngine, RENDERER_TYPE, SESSION_SETTINGS_MODE, TEXTURE_ENCODING, TONE_MAPPING, VISIBILITY_MODE, SPINNER_POSITIONING } from './IRenderingEngine'
2
+ import { BUSY_MODE_DISPLAY, FLAG_TYPE, IRenderingEngine, RENDERER_TYPE, TEXTURE_ENCODING, TONE_MAPPING, VISIBILITY_MODE, SPINNER_POSITIONING } from './IRenderingEngine'
3
3
  import { ISDObject } from './ISDObject'
4
4
 
5
5
  export {
6
- IRenderingEngine, ISDObject, RENDERER_TYPE, VISIBILITY_MODE, TEXTURE_ENCODING, TONE_MAPPING, BUSY_MODE_DISPLAY, SESSION_SETTINGS_MODE, FLAG_TYPE, SPINNER_POSITIONING
6
+ IRenderingEngine, ISDObject, RENDERER_TYPE, VISIBILITY_MODE, TEXTURE_ENCODING, TONE_MAPPING, BUSY_MODE_DISPLAY, FLAG_TYPE, SPINNER_POSITIONING
7
7
  }
8
8
 
9
9
  export {