@shapediver/viewer.creation-control-center.viewport 3.3.4 → 3.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapediver/viewer.creation-control-center.viewport",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.6",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"author": "Michael Oppitz <michael@shapediver.com>",
|
|
@@ -10,11 +10,10 @@
|
|
|
10
10
|
"test": "__tests__"
|
|
11
11
|
},
|
|
12
12
|
"files": [
|
|
13
|
-
"dist",
|
|
14
|
-
"src",
|
|
15
13
|
"package.json",
|
|
14
|
+
"dist/",
|
|
16
15
|
"README.md",
|
|
17
|
-
"
|
|
16
|
+
"LICENSE"
|
|
18
17
|
],
|
|
19
18
|
"publishConfig": {
|
|
20
19
|
"access": "public"
|
|
@@ -39,13 +38,13 @@
|
|
|
39
38
|
"testEnvironment": "node"
|
|
40
39
|
},
|
|
41
40
|
"dependencies": {
|
|
42
|
-
"@shapediver/viewer.rendering-engine.rendering-engine": "3.3.
|
|
43
|
-
"@shapediver/viewer.rendering-engine.rendering-engine-threejs": "3.3.
|
|
41
|
+
"@shapediver/viewer.rendering-engine.rendering-engine": "3.3.6",
|
|
42
|
+
"@shapediver/viewer.rendering-engine.rendering-engine-threejs": "3.3.6",
|
|
44
43
|
"@shapediver/viewer.settings": "1.0.2",
|
|
45
|
-
"@shapediver/viewer.shared.math": "3.3.
|
|
46
|
-
"@shapediver/viewer.shared.node-tree": "3.3.
|
|
47
|
-
"@shapediver/viewer.shared.services": "3.3.
|
|
48
|
-
"@shapediver/viewer.shared.types": "3.3.
|
|
44
|
+
"@shapediver/viewer.shared.math": "3.3.6",
|
|
45
|
+
"@shapediver/viewer.shared.node-tree": "3.3.6",
|
|
46
|
+
"@shapediver/viewer.shared.services": "3.3.6",
|
|
47
|
+
"@shapediver/viewer.shared.types": "3.3.6"
|
|
49
48
|
},
|
|
50
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "13aea937b128a001e6e93be300674c4a04624c29"
|
|
51
50
|
}
|
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
import { Box } from '@shapediver/viewer.shared.math';
|
|
2
|
-
import {
|
|
3
|
-
EventEngine,
|
|
4
|
-
EVENTTYPE,
|
|
5
|
-
Logger,
|
|
6
|
-
SESSION_SETTINGS_MODE,
|
|
7
|
-
SettingsEngine,
|
|
8
|
-
ShapeDiverViewerViewportError,
|
|
9
|
-
StateEngine,
|
|
10
|
-
UuidGenerator
|
|
11
|
-
} from '@shapediver/viewer.shared.services';
|
|
12
|
-
import { ICreationControlCenterViewport, ViewportCreationDefinition } from '../interfaces/ICreationControlCenterViewport';
|
|
13
|
-
import {
|
|
14
|
-
ISceneEvent,
|
|
15
|
-
ITaskEvent,
|
|
16
|
-
IViewportSettingsSections,
|
|
17
|
-
TASK_TYPE
|
|
18
|
-
} from '@shapediver/viewer.shared.types';
|
|
19
|
-
import { ISettings } from '@shapediver/viewer.settings';
|
|
20
|
-
import { ITree, Tree } from '@shapediver/viewer.shared.node-tree';
|
|
21
|
-
import { RenderingEngine as RenderingEngineThreeJs } from '@shapediver/viewer.rendering-engine.rendering-engine-threejs';
|
|
22
|
-
import { ViewportGlobalAccessObject } from './ViewportGlobalAccessObject';
|
|
23
|
-
import { VISIBILITY_MODE } from '@shapediver/viewer.rendering-engine.rendering-engine';
|
|
24
|
-
|
|
25
|
-
export class CreationControlCenterViewport implements ICreationControlCenterViewport {
|
|
26
|
-
// #region Properties (8)
|
|
27
|
-
|
|
28
|
-
readonly #eventEngine: EventEngine = EventEngine.instance;
|
|
29
|
-
readonly #logger: Logger = Logger.instance;
|
|
30
|
-
readonly #sceneTree: ITree = Tree.instance;
|
|
31
|
-
readonly #stateEngine: StateEngine = StateEngine.instance;
|
|
32
|
-
readonly #uuidGenerator: UuidGenerator = UuidGenerator.instance;
|
|
33
|
-
|
|
34
|
-
private static _instance: CreationControlCenterViewport;
|
|
35
|
-
|
|
36
|
-
public readonly viewportEngines: { [key: string]: RenderingEngineThreeJs } = {};
|
|
37
|
-
|
|
38
|
-
public updateViewports?: (
|
|
39
|
-
viewportEngines: { [key: string]: RenderingEngineThreeJs; },
|
|
40
|
-
) => void;
|
|
41
|
-
|
|
42
|
-
// #endregion Properties (8)
|
|
43
|
-
|
|
44
|
-
// #region Public Static Getters And Setters (1)
|
|
45
|
-
|
|
46
|
-
public static get instance() {
|
|
47
|
-
return this._instance || (this._instance = new this());
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// #endregion Public Static Getters And Setters (1)
|
|
51
|
-
|
|
52
|
-
// #region Public Methods (4)
|
|
53
|
-
|
|
54
|
-
public applyViewportSettings(viewportId: string, settings: ISettings, sections: IViewportSettingsSections = { ar: false, scene: false, camera: false, light: false, environment: false, general: false }): Promise<void> {
|
|
55
|
-
sections = sections || {};
|
|
56
|
-
|
|
57
|
-
const settingsEngine: SettingsEngine = new SettingsEngine();
|
|
58
|
-
settingsEngine.loadSettings(settings);
|
|
59
|
-
|
|
60
|
-
const promises: Promise<unknown>[] = [];
|
|
61
|
-
this.#stateEngine.viewportEngines[viewportId]?.settingsAssigned.reset();
|
|
62
|
-
promises.push(new Promise<void>(resolve => {
|
|
63
|
-
this.#stateEngine.viewportEngines[viewportId]?.settingsAssigned.then(() => {
|
|
64
|
-
resolve();
|
|
65
|
-
});
|
|
66
|
-
}));
|
|
67
|
-
|
|
68
|
-
this.viewportEngines[viewportId].applySettings(sections, settingsEngine);
|
|
69
|
-
return new Promise(resolve => Promise.all(promises).then(() => resolve()));
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
public async closeViewportEngine(id: string): Promise<void> {
|
|
73
|
-
if (!this.viewportEngines[id]) return;
|
|
74
|
-
|
|
75
|
-
this.#logger.debugLow(`CreationControlCenter.closeViewportEngine: Closing viewport ${id}.`);
|
|
76
|
-
if (this.#stateEngine.viewportEngines[id]?.initialized.resolved === false)
|
|
77
|
-
await new Promise<void>(resolve => { this.#stateEngine.viewportEngines[id]?.initialized.then(() => resolve()); });
|
|
78
|
-
|
|
79
|
-
this.#stateEngine.viewportEngines[id]?.settingsAssigned.reset();
|
|
80
|
-
this.#stateEngine.viewportEngines[id]?.environmentMapLoaded.reset();
|
|
81
|
-
this.#stateEngine.viewportEngines[id]?.initialized.reset();
|
|
82
|
-
|
|
83
|
-
await this.viewportEngines[id].close();
|
|
84
|
-
|
|
85
|
-
(<unknown>this.viewportEngines[id]) = undefined;
|
|
86
|
-
delete this.viewportEngines[id];
|
|
87
|
-
delete this.#stateEngine.viewportEngines[id];
|
|
88
|
-
|
|
89
|
-
this.#logger.debug('CreationControlCenter.closeViewportEngine: Viewport closed.');
|
|
90
|
-
if (this.updateViewports) this.updateViewports(this.viewportEngines);
|
|
91
|
-
|
|
92
|
-
this.#eventEngine.emitEvent(EVENTTYPE.VIEWPORT.VIEWPORT_CLOSED, { viewportId: id });
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
public async createViewportEngine(properties: ViewportCreationDefinition): Promise<RenderingEngineThreeJs> {
|
|
96
|
-
const eventId = this.#uuidGenerator.create();
|
|
97
|
-
const viewportEngineId = properties.id || this.#uuidGenerator.create();
|
|
98
|
-
properties.id = viewportEngineId;
|
|
99
|
-
try {
|
|
100
|
-
const eventStart: ITaskEvent = { type: TASK_TYPE.VIEWPORT_CREATION, id: eventId, progress: 0, status: 'Creating viewport', data: { viewportId: viewportEngineId } };
|
|
101
|
-
this.#eventEngine.emitEvent(EVENTTYPE.TASK.TASK_START, eventStart);
|
|
102
|
-
|
|
103
|
-
// check if the given id is valid
|
|
104
|
-
if (this.viewportEngines[viewportEngineId]) {
|
|
105
|
-
const eventClose: ITaskEvent = { type: TASK_TYPE.VIEWPORT_CREATION, id: eventId, progress: 0.1, status: 'Closing viewport with same id', data: { viewportId: viewportEngineId } };
|
|
106
|
-
this.#eventEngine.emitEvent(EVENTTYPE.TASK.TASK_PROCESS, eventClose);
|
|
107
|
-
|
|
108
|
-
this.#logger.warn(`CreationControlCenter.createViewport: Viewer with this id (${viewportEngineId}) already exists. Closing initial instance.`);
|
|
109
|
-
await this.closeViewportEngine(viewportEngineId);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
const viewportEngine = new RenderingEngineThreeJs(properties);
|
|
113
|
-
this.#stateEngine.viewportEngines[viewportEngineId] = new ViewportGlobalAccessObject(viewportEngine);
|
|
114
|
-
this.viewportEngines[viewportEngineId] = viewportEngine;
|
|
115
|
-
viewportEngine.start();
|
|
116
|
-
|
|
117
|
-
viewportEngine.cameraEngine.createDefaultCameras();
|
|
118
|
-
|
|
119
|
-
if (properties.sessionSettingsMode === SESSION_SETTINGS_MODE.MANUAL) {
|
|
120
|
-
if (!properties.sessionSettingsId)
|
|
121
|
-
throw new ShapeDiverViewerViewportError('Session with sessionSettingsMode MANUAL needs to have a sessionSettingsId.');
|
|
122
|
-
const sessionSettingsId = properties.sessionSettingsId;
|
|
123
|
-
if (this.#stateEngine.sessionEngines[sessionSettingsId]) {
|
|
124
|
-
await this.assignSettings(viewportEngine.id, sessionSettingsId, true);
|
|
125
|
-
} else {
|
|
126
|
-
// in createSession
|
|
127
|
-
}
|
|
128
|
-
} else if (properties.sessionSettingsMode === SESSION_SETTINGS_MODE.FIRST) {
|
|
129
|
-
const firstSessionEngine = Object.values(this.#stateEngine.sessionEngines).find(sessionEngine => sessionEngine && sessionEngine.isFirstSession === true);
|
|
130
|
-
if (firstSessionEngine) {
|
|
131
|
-
await this.assignSettings(viewportEngine.id, firstSessionEngine.id, true);
|
|
132
|
-
} else {
|
|
133
|
-
// in createSession
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
if (viewportEngine.sessionSettingsMode === SESSION_SETTINGS_MODE.NONE &&
|
|
138
|
-
viewportEngine.visibility === VISIBILITY_MODE.SESSION) {
|
|
139
|
-
viewportEngine.show = true;
|
|
140
|
-
} else if (viewportEngine.visibility === VISIBILITY_MODE.INSTANT) {
|
|
141
|
-
viewportEngine.show = true;
|
|
142
|
-
} else if (viewportEngine.visibility === VISIBILITY_MODE.SESSION) {
|
|
143
|
-
// wait for settings to load before showing the scene
|
|
144
|
-
if (this.#sceneTree.root.boundingBox.isEmpty()) {
|
|
145
|
-
this.#eventEngine.addListener(EVENTTYPE.SCENE.SCENE_BOUNDING_BOX_CHANGE, (e) => {
|
|
146
|
-
const event = e as ISceneEvent;
|
|
147
|
-
if (event.viewportId === viewportEngine.id) {
|
|
148
|
-
const boundingBox = new Box(event.boundingBox!.min, event.boundingBox!.max);
|
|
149
|
-
if (boundingBox.isEmpty()) {
|
|
150
|
-
viewportEngine.show = false;
|
|
151
|
-
} else {
|
|
152
|
-
if (this.#stateEngine.viewportEngines[viewportEngineId]?.settingsAssigned.resolved) {
|
|
153
|
-
viewportEngine.show = true;
|
|
154
|
-
} else {
|
|
155
|
-
this.#stateEngine.viewportEngines[viewportEngineId]?.settingsAssigned.then(() => {
|
|
156
|
-
viewportEngine.show = true;
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
} else {
|
|
163
|
-
if (this.#stateEngine.viewportEngines[viewportEngineId]?.settingsAssigned.resolved) {
|
|
164
|
-
viewportEngine.show = true;
|
|
165
|
-
} else {
|
|
166
|
-
this.#stateEngine.viewportEngines[viewportEngineId]?.settingsAssigned.then(() => {
|
|
167
|
-
viewportEngine.show = true;
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
this.#stateEngine.viewportEngines[viewportEngineId]?.initialized.resolve(true);
|
|
174
|
-
|
|
175
|
-
this.#logger.debug(`CreationControlCenter.createViewport: Viewport(${viewportEngineId}) created.`);
|
|
176
|
-
|
|
177
|
-
const eventEnd: ITaskEvent = { type: TASK_TYPE.VIEWPORT_CREATION, id: eventId, progress: 1, status: 'Viewport created', data: { viewportId: viewportEngineId } };
|
|
178
|
-
|
|
179
|
-
if (this.updateViewports) this.updateViewports(this.viewportEngines);
|
|
180
|
-
|
|
181
|
-
this.#eventEngine.emitEvent(EVENTTYPE.VIEWPORT.VIEWPORT_CREATED, { viewportId: viewportEngineId });
|
|
182
|
-
this.#eventEngine.emitEvent(EVENTTYPE.TASK.TASK_END, eventEnd);
|
|
183
|
-
return <RenderingEngineThreeJs>this.viewportEngines[viewportEngineId];
|
|
184
|
-
} catch (e) {
|
|
185
|
-
const eventCancel1: ITaskEvent = { type: TASK_TYPE.VIEWPORT_CREATION, id: eventId, progress: 0.9, status: 'Viewport created failed, closing viewport', data: { viewportId: viewportEngineId } };
|
|
186
|
-
this.#eventEngine.emitEvent(EVENTTYPE.TASK.TASK_PROCESS, eventCancel1);
|
|
187
|
-
|
|
188
|
-
try { await this.closeViewportEngine(viewportEngineId); } catch { /* empty */ }
|
|
189
|
-
|
|
190
|
-
const eventCancel2: ITaskEvent = { type: TASK_TYPE.VIEWPORT_CREATION, id: eventId, progress: 1, status: 'Viewport created failed, exiting', data: { viewportId: viewportEngineId } };
|
|
191
|
-
this.#eventEngine.emitEvent(EVENTTYPE.TASK.TASK_CANCEL, eventCancel2);
|
|
192
|
-
|
|
193
|
-
throw e;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
public getViewportSettings(viewportId: string): ISettings {
|
|
198
|
-
const viewportEngine = this.viewportEngines[viewportId];
|
|
199
|
-
if (!viewportEngine)
|
|
200
|
-
throw new ShapeDiverViewerViewportError('Viewport with id ' + viewportId + ' could not be found.');
|
|
201
|
-
|
|
202
|
-
const settingsEngine: SettingsEngine = new SettingsEngine();
|
|
203
|
-
viewportEngine.saveSettings(settingsEngine);
|
|
204
|
-
return settingsEngine.settings;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
// #endregion Public Methods (4)
|
|
208
|
-
|
|
209
|
-
// #region Private Methods (1)
|
|
210
|
-
|
|
211
|
-
private async assignSettings(viewportEngineId: string, sessionEngineId: string, updateViewports: boolean = false) {
|
|
212
|
-
const viewportEngine = this.#stateEngine.viewportEngines[viewportEngineId];
|
|
213
|
-
if (!viewportEngine) return;
|
|
214
|
-
|
|
215
|
-
if (this.#stateEngine.sessionEngines[sessionEngineId] && this.#stateEngine.sessionEngines[sessionEngineId]!.initialized.resolved === true) {
|
|
216
|
-
// immediate
|
|
217
|
-
viewportEngine.assignSettingsEngine(this.#stateEngine.sessionEngines[sessionEngineId]!.settingsEngine);
|
|
218
|
-
await viewportEngine.applySettings(undefined, undefined, updateViewports);
|
|
219
|
-
} else {
|
|
220
|
-
await new Promise<void>(resolve => {
|
|
221
|
-
this.#stateEngine.sessionEngines[sessionEngineId]?.initialized.then(async () => {
|
|
222
|
-
if(this.#stateEngine.sessionEngines[sessionEngineId]) {
|
|
223
|
-
viewportEngine.assignSettingsEngine(this.#stateEngine.sessionEngines[sessionEngineId]!.settingsEngine);
|
|
224
|
-
await viewportEngine.applySettings(undefined, undefined, updateViewports);
|
|
225
|
-
}
|
|
226
|
-
resolve();
|
|
227
|
-
});
|
|
228
|
-
});
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
// #endregion Private Methods (1)
|
|
233
|
-
}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { RenderingEngine } from '@shapediver/viewer.rendering-engine.rendering-engine-threejs';
|
|
2
|
-
import { IViewportGlobalAccessObjectDefinition, SettingsEngine, StatePromise } from '@shapediver/viewer.shared.services';
|
|
3
|
-
|
|
4
|
-
export class ViewportGlobalAccessObject implements IViewportGlobalAccessObjectDefinition {
|
|
5
|
-
// #region Properties (6)
|
|
6
|
-
|
|
7
|
-
readonly #boundingBoxCreated: StatePromise<boolean> = new StatePromise();
|
|
8
|
-
readonly #initialized: StatePromise<boolean> = new StatePromise();
|
|
9
|
-
readonly #settingsAssigned: StatePromise<boolean> = new StatePromise();
|
|
10
|
-
readonly #viewportEngine: RenderingEngine;
|
|
11
|
-
|
|
12
|
-
#busy: string[] = [];
|
|
13
|
-
#environmentMapLoaded: StatePromise<boolean> = new StatePromise();
|
|
14
|
-
|
|
15
|
-
// #endregion Properties (6)
|
|
16
|
-
|
|
17
|
-
// #region Constructors (1)
|
|
18
|
-
|
|
19
|
-
constructor(viewportEngine: RenderingEngine) {
|
|
20
|
-
this.#viewportEngine = viewportEngine;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// #endregion Constructors (1)
|
|
24
|
-
|
|
25
|
-
// #region Public Getters And Setters (9)
|
|
26
|
-
|
|
27
|
-
public get boundingBoxCreated(): StatePromise<boolean> {
|
|
28
|
-
return this.#boundingBoxCreated;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
public get busy(): string[] {
|
|
32
|
-
return this.#busy;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
public get environmentMapLoaded(): StatePromise<boolean> {
|
|
36
|
-
return this.#environmentMapLoaded;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
public set environmentMapLoaded(value: StatePromise<boolean>) {
|
|
40
|
-
this.#environmentMapLoaded = value;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
public get id(): string {
|
|
44
|
-
return this.#viewportEngine.id;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
public get initialized(): StatePromise<boolean> {
|
|
48
|
-
return this.#initialized;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
public get sessionSettingsId(): string | undefined {
|
|
52
|
-
return this.#viewportEngine.sessionSettingsId;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
public get sessionSettingsMode() {
|
|
56
|
-
return this.#viewportEngine.sessionSettingsMode;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
public get settingsAssigned(): StatePromise<boolean> {
|
|
60
|
-
return this.#settingsAssigned;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// #endregion Public Getters And Setters (9)
|
|
64
|
-
|
|
65
|
-
// #region Public Methods (6)
|
|
66
|
-
|
|
67
|
-
public applySettings(sections?: { ar?: boolean | undefined; scene?: boolean | undefined; camera?: boolean | undefined; light?: boolean | undefined; environment?: boolean | undefined; general?: boolean | undefined; postprocessing?: boolean | undefined; } | undefined, settingsEngine?: SettingsEngine | undefined, updateViewport?: boolean | undefined): Promise<void> {
|
|
68
|
-
return this.#viewportEngine.applySettings(sections, settingsEngine, updateViewport);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
public assignSettingsEngine(settingsEngine: SettingsEngine): void {
|
|
72
|
-
this.#viewportEngine.assignSettingsEngine(settingsEngine);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
public displayErrorMessage(message: string): void {
|
|
76
|
-
this.#viewportEngine.displayErrorMessage(message);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
public reset(): void {
|
|
80
|
-
this.#viewportEngine.reset();
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
public saveSettings(): void {
|
|
84
|
-
this.#viewportEngine.saveSettings();
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
public update(id: string): void {
|
|
88
|
-
this.#viewportEngine.update(id);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// #endregion Public Methods (6)
|
|
92
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { CreationControlCenterViewport } from './implementation/CreationControlCenterViewport';
|
|
2
|
-
import { ICreationControlCenterViewport, ViewportCreationDefinition } from './interfaces/ICreationControlCenterViewport';
|
|
3
|
-
|
|
4
|
-
export {
|
|
5
|
-
ICreationControlCenterViewport, CreationControlCenterViewport,
|
|
6
|
-
ViewportCreationDefinition
|
|
7
|
-
};
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { BUSY_MODE_DISPLAY, SPINNER_POSITIONING, VISIBILITY_MODE } from '@shapediver/viewer.rendering-engine.rendering-engine';
|
|
2
|
-
import { ISettings } from '@shapediver/viewer.settings';
|
|
3
|
-
import { IViewportSettingsSections } from '@shapediver/viewer.shared.types';
|
|
4
|
-
import { RenderingEngine as RenderingEngineThreeJs } from '@shapediver/viewer.rendering-engine.rendering-engine-threejs';
|
|
5
|
-
import { SESSION_SETTINGS_MODE } from '@shapediver/viewer.shared.services';
|
|
6
|
-
|
|
7
|
-
// #region Type aliases (1)
|
|
8
|
-
|
|
9
|
-
export type ViewportCreationDefinition = {
|
|
10
|
-
/** The canvas element in which the viewport should be created, it is encourage to provide one. If none was provided, a canvas will be created. */
|
|
11
|
-
canvas?: HTMLCanvasElement,
|
|
12
|
-
/** The unique identifier of the session that was specified or automatically chosen on creation of the viewport. */
|
|
13
|
-
id?: string,
|
|
14
|
-
/** The branding options of the viewport. */
|
|
15
|
-
branding?: {
|
|
16
|
-
/**
|
|
17
|
-
* Optional URL to a logo to be displayed while the viewport is hidden.
|
|
18
|
-
* A default logo will be used if none is provided.
|
|
19
|
-
* Supply null to display no logo at all.
|
|
20
|
-
*/
|
|
21
|
-
logo?: string | null,
|
|
22
|
-
/**
|
|
23
|
-
* Optional background color to show while the viewport is hidden, can include alpha channel.
|
|
24
|
-
* A default color will be used if none is provided.
|
|
25
|
-
*/
|
|
26
|
-
backgroundColor?: string,
|
|
27
|
-
/**
|
|
28
|
-
* Optional URL to a logo to be displayed while the viewport is in busy mode.
|
|
29
|
-
* A default logo will be used if none is provided.
|
|
30
|
-
* The positioning of the spinner can be influenced via {@link SPINNER_POSITIONING}.
|
|
31
|
-
*/
|
|
32
|
-
busyModeSpinner?: string,
|
|
33
|
-
/**
|
|
34
|
-
* The mode used to indicate that the viewport is busy. (default: BUSY_MODE_DISPLAY.SPINNER)
|
|
35
|
-
* Whenever the busy mode gets toggled, the events {@link EVENTTYPE_VIEWPORT.BUSY_MODE_ON} and {@link EVENTTYPE_VIEWPORT.BUSY_MODE_OFF} will be emitted.
|
|
36
|
-
*/
|
|
37
|
-
busyModeDisplay?: BUSY_MODE_DISPLAY,
|
|
38
|
-
/**
|
|
39
|
-
* Where the spinner that is specified by {@link BUSY_MODE_DISPLAY} is displayed on the screen. (default: BUSY_MODE_DISPLAY.BOTTOM_RIGHT)
|
|
40
|
-
*/
|
|
41
|
-
spinnerPositioning?: SPINNER_POSITIONING
|
|
42
|
-
|
|
43
|
-
},
|
|
44
|
-
/** The id of the session of which the settings should be used. Only works when {@link sessionSettingsMode} is set to {@link SESSION_SETTINGS_MODE.SESSION}. */
|
|
45
|
-
sessionSettingsId?: string,
|
|
46
|
-
/** The mode in which settings should be applied. (default: SESSION_SETTINGS_MODE.FIRST) */
|
|
47
|
-
sessionSettingsMode?: SESSION_SETTINGS_MODE,
|
|
48
|
-
/** The initial visibility of the viewport. (default: VISIBILITY_MODE.SESSION) */
|
|
49
|
-
visibility?: VISIBILITY_MODE,
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// #endregion Type aliases (1)
|
|
53
|
-
|
|
54
|
-
// #region Interfaces (1)
|
|
55
|
-
|
|
56
|
-
export interface ICreationControlCenterViewport {
|
|
57
|
-
// #region Properties (2)
|
|
58
|
-
|
|
59
|
-
updateViewports?: (viewportEngines: { [key: string]: RenderingEngineThreeJs; }) => void;
|
|
60
|
-
viewportEngines: { [key: string]: RenderingEngineThreeJs; };
|
|
61
|
-
|
|
62
|
-
// #endregion Properties (2)
|
|
63
|
-
|
|
64
|
-
// #region Public Methods (4)
|
|
65
|
-
|
|
66
|
-
applyViewportSettings(viewportId: string, settings: ISettings, sections?: IViewportSettingsSections): Promise<void>;
|
|
67
|
-
closeViewportEngine(id: string): Promise<void>;
|
|
68
|
-
createViewportEngine(properties: ViewportCreationDefinition): Promise<RenderingEngineThreeJs>;
|
|
69
|
-
getViewportSettings(viewportId: string): ISettings;
|
|
70
|
-
|
|
71
|
-
// #endregion Public Methods (4)
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// #endregion Interfaces (1)
|
package/tsconfig.json
DELETED