@shapediver/viewer.rendering-engine.camera-engine 3.16.8 → 3.16.9

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 (60) hide show
  1. package/dist/implementation/CameraEngine.d.ts +42 -42
  2. package/dist/implementation/CameraEngine.js +607 -607
  3. package/dist/implementation/CameraEngine.js.map +1 -1
  4. package/dist/implementation/camera/AbstractCamera.d.ts +90 -90
  5. package/dist/implementation/camera/AbstractCamera.js +354 -354
  6. package/dist/implementation/camera/AbstractCamera.js.map +1 -1
  7. package/dist/implementation/camera/OrthographicCamera.d.ts +37 -37
  8. package/dist/implementation/camera/OrthographicCamera.js +268 -268
  9. package/dist/implementation/camera/OrthographicCamera.js.map +1 -1
  10. package/dist/implementation/camera/PerspectiveCamera.d.ts +28 -28
  11. package/dist/implementation/camera/PerspectiveCamera.js +250 -250
  12. package/dist/implementation/camera/PerspectiveCamera.js.map +1 -1
  13. package/dist/implementation/controls/AbstractCameraControls.d.ts +217 -217
  14. package/dist/implementation/controls/AbstractCameraControls.js +635 -635
  15. package/dist/implementation/controls/AbstractCameraControls.js.map +1 -1
  16. package/dist/implementation/controls/CameraControlsEventDistribution.d.ts +39 -39
  17. package/dist/implementation/controls/CameraControlsEventDistribution.d.ts.map +1 -1
  18. package/dist/implementation/controls/CameraControlsEventDistribution.js +287 -287
  19. package/dist/implementation/controls/CameraControlsEventDistribution.js.map +1 -1
  20. package/dist/implementation/controls/CameraControlsLogic.d.ts +36 -36
  21. package/dist/implementation/controls/CameraControlsLogic.js +530 -530
  22. package/dist/implementation/controls/CameraControlsLogic.js.map +1 -1
  23. package/dist/implementation/controls/OrthographicCameraControls.d.ts +7 -7
  24. package/dist/implementation/controls/OrthographicCameraControls.js +34 -34
  25. package/dist/implementation/controls/PerspectiveCameraControls.d.ts +7 -7
  26. package/dist/implementation/controls/PerspectiveCameraControls.js +34 -34
  27. package/dist/implementation/interpolation/CameraInterpolationManager.d.ts +22 -22
  28. package/dist/implementation/interpolation/CameraInterpolationManager.js +165 -155
  29. package/dist/implementation/interpolation/CameraInterpolationManager.js.map +1 -1
  30. package/dist/implementation/interpolation/interpolationMethods/CameraCylindricalInterpolation.d.ts +36 -36
  31. package/dist/implementation/interpolation/interpolationMethods/CameraCylindricalInterpolation.js +57 -57
  32. package/dist/implementation/interpolation/interpolationMethods/CameraLinearInterpolation.d.ts +26 -26
  33. package/dist/implementation/interpolation/interpolationMethods/CameraLinearInterpolation.js +31 -31
  34. package/dist/implementation/interpolation/interpolationMethods/CameraMultipleInterpolation.d.ts +35 -35
  35. package/dist/implementation/interpolation/interpolationMethods/CameraMultipleInterpolation.js +45 -45
  36. package/dist/implementation/interpolation/interpolationMethods/CameraMultipleInterpolation.js.map +1 -1
  37. package/dist/implementation/interpolation/interpolationMethods/CameraOrthographicInterpolation.d.ts +26 -26
  38. package/dist/implementation/interpolation/interpolationMethods/CameraOrthographicInterpolation.js +31 -31
  39. package/dist/implementation/interpolation/interpolationMethods/CameraSphericalInterpolation.d.ts +32 -32
  40. package/dist/implementation/interpolation/interpolationMethods/CameraSphericalInterpolation.js +42 -42
  41. package/dist/index.d.ts +16 -16
  42. package/dist/index.js +18 -18
  43. package/dist/interfaces/ICameraEngine.d.ts +12 -12
  44. package/dist/interfaces/ICameraEngine.js +3 -3
  45. package/dist/interfaces/camera/ICamera.d.ts +47 -47
  46. package/dist/interfaces/camera/ICamera.js +2 -2
  47. package/dist/interfaces/camera/IOrthographicCamera.d.ts +8 -8
  48. package/dist/interfaces/camera/IOrthographicCamera.js +3 -3
  49. package/dist/interfaces/camera/IPerspectiveCamera.d.ts +7 -7
  50. package/dist/interfaces/camera/IPerspectiveCamera.js +2 -2
  51. package/dist/interfaces/controls/ICameraControls.d.ts +105 -105
  52. package/dist/interfaces/controls/ICameraControls.d.ts.map +1 -1
  53. package/dist/interfaces/controls/ICameraControls.js +3 -3
  54. package/dist/interfaces/controls/ICameraControlsEventDistribution.d.ts +6 -6
  55. package/dist/interfaces/controls/ICameraControlsEventDistribution.js +2 -2
  56. package/dist/interfaces/controls/ICameraControlsLogic.d.ts +14 -14
  57. package/dist/interfaces/controls/ICameraControlsLogic.js +2 -2
  58. package/dist/interfaces/interpolation/ICameraInterpolation.d.ts +11 -11
  59. package/dist/interfaces/interpolation/ICameraInterpolation.js +2 -2
  60. package/package.json +8 -8
@@ -1,269 +1,269 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
12
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
13
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
14
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
15
- };
16
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
17
- if (kind === "m") throw new TypeError("Private method is not writable");
18
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
19
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
20
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
21
- };
22
- var _OrthographicCamera_converter, _OrthographicCamera_logger, _OrthographicCamera_tree, _OrthographicCamera_bottom, _OrthographicCamera_direction, _OrthographicCamera_domEventEngine, _OrthographicCamera_left, _OrthographicCamera_right, _OrthographicCamera_top, _OrthographicCamera_up;
23
- Object.defineProperty(exports, "__esModule", { value: true });
24
- exports.OrthographicCamera = void 0;
25
- const viewer_shared_node_tree_1 = require("@shapediver/viewer.shared.node-tree");
26
- const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
27
- const viewer_shared_types_1 = require("@shapediver/viewer.shared.types");
28
- const gl_matrix_1 = require("gl-matrix");
29
- const OrthographicCameraControls_1 = require("../controls/OrthographicCameraControls");
30
- const AbstractCamera_1 = require("./AbstractCamera");
31
- class OrthographicCamera extends AbstractCamera_1.AbstractCamera {
32
- // #endregion Properties (11)
33
- // #region Constructors (1)
34
- constructor(id, version, isDefault = false) {
35
- super(id, viewer_shared_types_1.CAMERA_TYPE.ORTHOGRAPHIC, version, isDefault);
36
- // #region Properties (11)
37
- _OrthographicCamera_converter.set(this, viewer_shared_services_1.Converter.instance);
38
- _OrthographicCamera_logger.set(this, viewer_shared_services_1.Logger.instance);
39
- _OrthographicCamera_tree.set(this, viewer_shared_node_tree_1.Tree.instance);
40
- _OrthographicCamera_bottom.set(this, -100);
41
- _OrthographicCamera_direction.set(this, viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.CUSTOM);
42
- _OrthographicCamera_domEventEngine.set(this, void 0);
43
- _OrthographicCamera_left.set(this, -100);
44
- _OrthographicCamera_right.set(this, 100);
45
- _OrthographicCamera_top.set(this, 100);
46
- _OrthographicCamera_up.set(this, gl_matrix_1.vec3.fromValues(0, 0, 1));
47
- this._controls = new OrthographicCameraControls_1.OrthographicCameraControls(this, true);
48
- }
49
- // #endregion Constructors (1)
50
- // #region Public Getters And Setters (14)
51
- get bottom() {
52
- return __classPrivateFieldGet(this, _OrthographicCamera_bottom, "f");
53
- }
54
- set bottom(value) {
55
- __classPrivateFieldSet(this, _OrthographicCamera_bottom, value, "f");
56
- }
57
- get controls() {
58
- return this._controls;
59
- }
60
- set controls(value) {
61
- this._controls = value;
62
- }
63
- get direction() {
64
- return __classPrivateFieldGet(this, _OrthographicCamera_direction, "f");
65
- }
66
- set direction(value) {
67
- const changedDirection = __classPrivateFieldGet(this, _OrthographicCamera_direction, "f") !== value;
68
- __classPrivateFieldSet(this, _OrthographicCamera_direction, value, "f");
69
- switch (__classPrivateFieldGet(this, _OrthographicCamera_direction, "f")) {
70
- case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.TOP:
71
- case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.BOTTOM:
72
- this.up = gl_matrix_1.vec3.fromValues(0, 1, 0);
73
- break;
74
- case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.RIGHT:
75
- case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.LEFT:
76
- this.up = gl_matrix_1.vec3.fromValues(0, 0, 1);
77
- break;
78
- case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.BACK:
79
- case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.FRONT:
80
- this.up = gl_matrix_1.vec3.fromValues(0, 0, 1);
81
- break;
82
- default:
83
- this.up = gl_matrix_1.vec3.fromValues(0, 0, 1);
84
- }
85
- if (changedDirection) {
86
- const { position, target } = this.calculateZoomTo(undefined);
87
- this.defaultPosition = gl_matrix_1.vec3.clone(position);
88
- this.defaultTarget = gl_matrix_1.vec3.clone(target);
89
- this.position = gl_matrix_1.vec3.clone(position);
90
- this.target = gl_matrix_1.vec3.clone(target);
91
- }
92
- }
93
- get left() {
94
- return __classPrivateFieldGet(this, _OrthographicCamera_left, "f");
95
- }
96
- set left(value) {
97
- __classPrivateFieldSet(this, _OrthographicCamera_left, value, "f");
98
- }
99
- get right() {
100
- return __classPrivateFieldGet(this, _OrthographicCamera_right, "f");
101
- }
102
- set right(value) {
103
- __classPrivateFieldSet(this, _OrthographicCamera_right, value, "f");
104
- }
105
- get top() {
106
- return __classPrivateFieldGet(this, _OrthographicCamera_top, "f");
107
- }
108
- set top(value) {
109
- __classPrivateFieldSet(this, _OrthographicCamera_top, value, "f");
110
- }
111
- get up() {
112
- return __classPrivateFieldGet(this, _OrthographicCamera_up, "f");
113
- }
114
- set up(value) {
115
- __classPrivateFieldSet(this, _OrthographicCamera_up, value, "f");
116
- }
117
- // #endregion Public Getters And Setters (14)
118
- // #region Public Methods (6)
119
- applySettings(settingsEngine) {
120
- var _a;
121
- const cameraSetting = (settingsEngine.camera.cameras[this.id]);
122
- if (cameraSetting) {
123
- this.name = cameraSetting.name;
124
- this.autoAdjust = cameraSetting.autoAdjust;
125
- this.cameraMovementDuration = cameraSetting.cameraMovementDuration;
126
- this.enableCameraControls = cameraSetting.enableCameraControls;
127
- this.initialAutoAdjust = cameraSetting.initialAutoAdjust;
128
- this.revertAtMouseUp = cameraSetting.revertAtMouseUp;
129
- this.revertAtMouseUpDuration =
130
- cameraSetting.revertAtMouseUpDuration;
131
- this.sceneRotation = gl_matrix_1.vec2.fromValues(cameraSetting.sceneRotation.x, cameraSetting.sceneRotation.y);
132
- this.zoomExtentsFactor = cameraSetting.zoomExtentsFactor;
133
- const position = __classPrivateFieldGet(this, _OrthographicCamera_converter, "f").toVec3(cameraSetting.position);
134
- const target = __classPrivateFieldGet(this, _OrthographicCamera_converter, "f").toVec3(cameraSetting.target);
135
- this.defaultPosition = gl_matrix_1.vec3.clone(position);
136
- this.defaultTarget = gl_matrix_1.vec3.clone(target);
137
- this.position = position;
138
- this.target = target;
139
- }
140
- if (this.position[0] === this.target[0] &&
141
- this.position[1] === this.target[1] &&
142
- this.position[2] === this.target[2]) {
143
- if (this._viewportId) {
144
- (_a = this._stateEngine.viewportEngines[this._viewportId]) === null || _a === void 0 ? void 0 : _a.boundingBoxCreated.then(() => __awaiter(this, void 0, void 0, function* () {
145
- yield this.zoomTo(undefined, { duration: 0 });
146
- this.defaultPosition = gl_matrix_1.vec3.clone(this._controls.position);
147
- this.defaultTarget = gl_matrix_1.vec3.clone(this._controls.target);
148
- }));
149
- }
150
- }
151
- this._controls.applySettings(settingsEngine);
152
- }
153
- assignViewer(renderingEngine) {
154
- var _a;
155
- if (renderingEngine.closed)
156
- throw new viewer_shared_services_1.ShapeDiverViewerCameraError(`OrthographicCamera(${this.id}).assignViewer: Viewer with id ${renderingEngine.id} not found.`);
157
- this.assignViewerInternal(renderingEngine.id);
158
- this._controls.assignViewer(renderingEngine.id, renderingEngine.canvas);
159
- if (this.domEventListenerToken && __classPrivateFieldGet(this, _OrthographicCamera_domEventEngine, "f"))
160
- __classPrivateFieldGet(this, _OrthographicCamera_domEventEngine, "f").removeDomEventListener(this.domEventListenerToken);
161
- __classPrivateFieldSet(this, _OrthographicCamera_domEventEngine, renderingEngine.domEventEngine, "f");
162
- this.domEventListenerToken = __classPrivateFieldGet(this, _OrthographicCamera_domEventEngine, "f").addDomEventListener(this._controls
163
- .cameraControlsEventDistribution);
164
- this.boundingBox = __classPrivateFieldGet(this, _OrthographicCamera_tree, "f").root.boundingBox.clone();
165
- (_a = this._stateEngine.viewportEngines[renderingEngine.id]) === null || _a === void 0 ? void 0 : _a.boundingBoxCreated.then(() => __awaiter(this, void 0, void 0, function* () {
166
- if (this.position[0] === this.target[0] &&
167
- this.position[1] === this.target[1] &&
168
- this.position[2] === this.target[2])
169
- yield this.zoomTo(undefined, { duration: 0 });
170
- }));
171
- }
172
- calculateZoomTo(zoomTarget, startingPosition = this.position, startingTarget = this.target) {
173
- let box;
174
- // Part 1 - calculate the bounding box that we should zoom to
175
- if (!zoomTarget) {
176
- // complete scene
177
- box = this._boundingBox.clone();
178
- }
179
- else {
180
- // specified Box
181
- box = zoomTarget.clone();
182
- }
183
- if (box.isEmpty())
184
- return { position: startingPosition, target: startingTarget };
185
- const target = gl_matrix_1.vec3.fromValues((box.max[0] + box.min[0]) / 2, (box.max[1] + box.min[1]) / 2, (box.max[2] + box.min[2]) / 2);
186
- if (startingPosition[0] === startingTarget[0] &&
187
- startingPosition[1] === startingTarget[1] &&
188
- startingPosition[2] === startingTarget[2])
189
- startingPosition = gl_matrix_1.vec3.fromValues(target[0], target[1] - 7.5, target[2] + 5);
190
- const factor = 2 * box.boundingSphere.radius * this.zoomExtentsFactor;
191
- switch (__classPrivateFieldGet(this, _OrthographicCamera_direction, "f")) {
192
- case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.TOP:
193
- return {
194
- position: gl_matrix_1.vec3.fromValues(target[0], target[1], target[2] + factor),
195
- target: gl_matrix_1.vec3.clone(target),
196
- };
197
- case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.BOTTOM:
198
- return {
199
- position: gl_matrix_1.vec3.fromValues(target[0], target[1], target[2] - factor),
200
- target: gl_matrix_1.vec3.clone(target),
201
- };
202
- case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.RIGHT:
203
- return {
204
- position: gl_matrix_1.vec3.fromValues(target[0] + factor, target[1], target[2]),
205
- target: gl_matrix_1.vec3.clone(target),
206
- };
207
- case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.LEFT:
208
- return {
209
- position: gl_matrix_1.vec3.fromValues(target[0] - factor, target[1], target[2]),
210
- target: gl_matrix_1.vec3.clone(target),
211
- };
212
- case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.BACK:
213
- return {
214
- position: gl_matrix_1.vec3.fromValues(target[0], target[1] + factor, target[2]),
215
- target: gl_matrix_1.vec3.clone(target),
216
- };
217
- case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.FRONT:
218
- return {
219
- position: gl_matrix_1.vec3.fromValues(target[0], target[1] - factor, target[2]),
220
- target: gl_matrix_1.vec3.clone(target),
221
- };
222
- default: {
223
- // get the direction from the starting position to the starting target
224
- const direction = gl_matrix_1.vec3.subtract(gl_matrix_1.vec3.create(), startingPosition, target);
225
- // normalize the direction
226
- gl_matrix_1.vec3.normalize(direction, direction);
227
- // get the new position
228
- return {
229
- position: gl_matrix_1.vec3.add(gl_matrix_1.vec3.create(), target, gl_matrix_1.vec3.scale(gl_matrix_1.vec3.create(), direction, factor)),
230
- target: gl_matrix_1.vec3.clone(target),
231
- };
232
- }
233
- }
234
- }
235
- clone() {
236
- return new OrthographicCamera(this.id, this.version);
237
- }
238
- project(pos) {
239
- const m = gl_matrix_1.mat4.targetTo(gl_matrix_1.mat4.create(), this.position, this.target, this.up);
240
- const p = gl_matrix_1.mat4.ortho(gl_matrix_1.mat4.create(), this.left, this.right, this.bottom, this.top, this.near, this.far);
241
- let inverse = gl_matrix_1.mat4.invert(gl_matrix_1.mat4.create(), m);
242
- if (!inverse)
243
- inverse = gl_matrix_1.mat4.create();
244
- gl_matrix_1.vec3.transformMat4(pos, pos, inverse);
245
- gl_matrix_1.vec3.transformMat4(pos, pos, p);
246
- return gl_matrix_1.vec2.fromValues(pos[0], pos[1]);
247
- }
248
- unproject(pos) {
249
- const m = gl_matrix_1.mat4.targetTo(gl_matrix_1.mat4.create(), this.position, this.target, this.up);
250
- const p = gl_matrix_1.mat4.ortho(gl_matrix_1.mat4.create(), this.left, this.right, this.bottom, this.top, this.near, this.far);
251
- let inverse = gl_matrix_1.mat4.invert(gl_matrix_1.mat4.create(), p);
252
- if (!inverse)
253
- inverse = gl_matrix_1.mat4.create();
254
- gl_matrix_1.vec3.transformMat4(pos, pos, inverse);
255
- gl_matrix_1.vec3.transformMat4(pos, pos, m);
256
- return gl_matrix_1.vec3.clone(pos);
257
- }
258
- // #endregion Public Methods (6)
259
- // #region Protected Methods (1)
260
- getProjectionMatrix(sphere) {
261
- const distance = gl_matrix_1.vec3.distance(this.position, this.target) / 2;
262
- if (distance === 0)
263
- return;
264
- return gl_matrix_1.mat4.ortho(gl_matrix_1.mat4.create(), __classPrivateFieldGet(this, _OrthographicCamera_left, "f"), __classPrivateFieldGet(this, _OrthographicCamera_right, "f"), __classPrivateFieldGet(this, _OrthographicCamera_bottom, "f"), __classPrivateFieldGet(this, _OrthographicCamera_top, "f"), this.near, this.far);
265
- }
266
- }
267
- exports.OrthographicCamera = OrthographicCamera;
268
- _OrthographicCamera_converter = new WeakMap(), _OrthographicCamera_logger = new WeakMap(), _OrthographicCamera_tree = new WeakMap(), _OrthographicCamera_bottom = new WeakMap(), _OrthographicCamera_direction = new WeakMap(), _OrthographicCamera_domEventEngine = new WeakMap(), _OrthographicCamera_left = new WeakMap(), _OrthographicCamera_right = new WeakMap(), _OrthographicCamera_top = new WeakMap(), _OrthographicCamera_up = new WeakMap();
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
12
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
13
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
14
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
15
+ };
16
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
17
+ if (kind === "m") throw new TypeError("Private method is not writable");
18
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
19
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
20
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
21
+ };
22
+ var _OrthographicCamera_converter, _OrthographicCamera_logger, _OrthographicCamera_tree, _OrthographicCamera_bottom, _OrthographicCamera_direction, _OrthographicCamera_domEventEngine, _OrthographicCamera_left, _OrthographicCamera_right, _OrthographicCamera_top, _OrthographicCamera_up;
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.OrthographicCamera = void 0;
25
+ const viewer_shared_node_tree_1 = require("@shapediver/viewer.shared.node-tree");
26
+ const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
27
+ const viewer_shared_types_1 = require("@shapediver/viewer.shared.types");
28
+ const gl_matrix_1 = require("gl-matrix");
29
+ const OrthographicCameraControls_1 = require("../controls/OrthographicCameraControls");
30
+ const AbstractCamera_1 = require("./AbstractCamera");
31
+ class OrthographicCamera extends AbstractCamera_1.AbstractCamera {
32
+ // #endregion Properties (11)
33
+ // #region Constructors (1)
34
+ constructor(id, version, isDefault = false) {
35
+ super(id, viewer_shared_types_1.CAMERA_TYPE.ORTHOGRAPHIC, version, isDefault);
36
+ // #region Properties (11)
37
+ _OrthographicCamera_converter.set(this, viewer_shared_services_1.Converter.instance);
38
+ _OrthographicCamera_logger.set(this, viewer_shared_services_1.Logger.instance);
39
+ _OrthographicCamera_tree.set(this, viewer_shared_node_tree_1.Tree.instance);
40
+ _OrthographicCamera_bottom.set(this, -100);
41
+ _OrthographicCamera_direction.set(this, viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.CUSTOM);
42
+ _OrthographicCamera_domEventEngine.set(this, void 0);
43
+ _OrthographicCamera_left.set(this, -100);
44
+ _OrthographicCamera_right.set(this, 100);
45
+ _OrthographicCamera_top.set(this, 100);
46
+ _OrthographicCamera_up.set(this, gl_matrix_1.vec3.fromValues(0, 0, 1));
47
+ this._controls = new OrthographicCameraControls_1.OrthographicCameraControls(this, true);
48
+ }
49
+ // #endregion Constructors (1)
50
+ // #region Public Getters And Setters (14)
51
+ get bottom() {
52
+ return __classPrivateFieldGet(this, _OrthographicCamera_bottom, "f");
53
+ }
54
+ set bottom(value) {
55
+ __classPrivateFieldSet(this, _OrthographicCamera_bottom, value, "f");
56
+ }
57
+ get controls() {
58
+ return this._controls;
59
+ }
60
+ set controls(value) {
61
+ this._controls = value;
62
+ }
63
+ get direction() {
64
+ return __classPrivateFieldGet(this, _OrthographicCamera_direction, "f");
65
+ }
66
+ set direction(value) {
67
+ const changedDirection = __classPrivateFieldGet(this, _OrthographicCamera_direction, "f") !== value;
68
+ __classPrivateFieldSet(this, _OrthographicCamera_direction, value, "f");
69
+ switch (__classPrivateFieldGet(this, _OrthographicCamera_direction, "f")) {
70
+ case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.TOP:
71
+ case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.BOTTOM:
72
+ this.up = gl_matrix_1.vec3.fromValues(0, 1, 0);
73
+ break;
74
+ case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.RIGHT:
75
+ case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.LEFT:
76
+ this.up = gl_matrix_1.vec3.fromValues(0, 0, 1);
77
+ break;
78
+ case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.BACK:
79
+ case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.FRONT:
80
+ this.up = gl_matrix_1.vec3.fromValues(0, 0, 1);
81
+ break;
82
+ default:
83
+ this.up = gl_matrix_1.vec3.fromValues(0, 0, 1);
84
+ }
85
+ if (changedDirection) {
86
+ const { position, target } = this.calculateZoomTo(undefined);
87
+ this.defaultPosition = gl_matrix_1.vec3.clone(position);
88
+ this.defaultTarget = gl_matrix_1.vec3.clone(target);
89
+ this.position = gl_matrix_1.vec3.clone(position);
90
+ this.target = gl_matrix_1.vec3.clone(target);
91
+ }
92
+ }
93
+ get left() {
94
+ return __classPrivateFieldGet(this, _OrthographicCamera_left, "f");
95
+ }
96
+ set left(value) {
97
+ __classPrivateFieldSet(this, _OrthographicCamera_left, value, "f");
98
+ }
99
+ get right() {
100
+ return __classPrivateFieldGet(this, _OrthographicCamera_right, "f");
101
+ }
102
+ set right(value) {
103
+ __classPrivateFieldSet(this, _OrthographicCamera_right, value, "f");
104
+ }
105
+ get top() {
106
+ return __classPrivateFieldGet(this, _OrthographicCamera_top, "f");
107
+ }
108
+ set top(value) {
109
+ __classPrivateFieldSet(this, _OrthographicCamera_top, value, "f");
110
+ }
111
+ get up() {
112
+ return __classPrivateFieldGet(this, _OrthographicCamera_up, "f");
113
+ }
114
+ set up(value) {
115
+ __classPrivateFieldSet(this, _OrthographicCamera_up, value, "f");
116
+ }
117
+ // #endregion Public Getters And Setters (14)
118
+ // #region Public Methods (6)
119
+ applySettings(settingsEngine) {
120
+ var _a;
121
+ const cameraSetting = (settingsEngine.camera.cameras[this.id]);
122
+ if (cameraSetting) {
123
+ this.name = cameraSetting.name;
124
+ this.autoAdjust = cameraSetting.autoAdjust;
125
+ this.cameraMovementDuration = cameraSetting.cameraMovementDuration;
126
+ this.enableCameraControls = cameraSetting.enableCameraControls;
127
+ this.initialAutoAdjust = cameraSetting.initialAutoAdjust;
128
+ this.revertAtMouseUp = cameraSetting.revertAtMouseUp;
129
+ this.revertAtMouseUpDuration =
130
+ cameraSetting.revertAtMouseUpDuration;
131
+ this.sceneRotation = gl_matrix_1.vec2.fromValues(cameraSetting.sceneRotation.x, cameraSetting.sceneRotation.y);
132
+ this.zoomExtentsFactor = cameraSetting.zoomExtentsFactor;
133
+ const position = __classPrivateFieldGet(this, _OrthographicCamera_converter, "f").toVec3(cameraSetting.position);
134
+ const target = __classPrivateFieldGet(this, _OrthographicCamera_converter, "f").toVec3(cameraSetting.target);
135
+ this.defaultPosition = gl_matrix_1.vec3.clone(position);
136
+ this.defaultTarget = gl_matrix_1.vec3.clone(target);
137
+ this.position = position;
138
+ this.target = target;
139
+ }
140
+ if (this.position[0] === this.target[0] &&
141
+ this.position[1] === this.target[1] &&
142
+ this.position[2] === this.target[2]) {
143
+ if (this._viewportId) {
144
+ (_a = this._stateEngine.viewportEngines[this._viewportId]) === null || _a === void 0 ? void 0 : _a.boundingBoxCreated.then(() => __awaiter(this, void 0, void 0, function* () {
145
+ yield this.zoomTo(undefined, { duration: 0 });
146
+ this.defaultPosition = gl_matrix_1.vec3.clone(this._controls.position);
147
+ this.defaultTarget = gl_matrix_1.vec3.clone(this._controls.target);
148
+ }));
149
+ }
150
+ }
151
+ this._controls.applySettings(settingsEngine);
152
+ }
153
+ assignViewer(renderingEngine) {
154
+ var _a;
155
+ if (renderingEngine.closed)
156
+ throw new viewer_shared_services_1.ShapeDiverViewerCameraError(`OrthographicCamera(${this.id}).assignViewer: Viewer with id ${renderingEngine.id} not found.`);
157
+ this.assignViewerInternal(renderingEngine.id);
158
+ this._controls.assignViewer(renderingEngine.id, renderingEngine.canvas);
159
+ if (this.domEventListenerToken && __classPrivateFieldGet(this, _OrthographicCamera_domEventEngine, "f"))
160
+ __classPrivateFieldGet(this, _OrthographicCamera_domEventEngine, "f").removeDomEventListener(this.domEventListenerToken);
161
+ __classPrivateFieldSet(this, _OrthographicCamera_domEventEngine, renderingEngine.domEventEngine, "f");
162
+ this.domEventListenerToken = __classPrivateFieldGet(this, _OrthographicCamera_domEventEngine, "f").addDomEventListener(this._controls
163
+ .cameraControlsEventDistribution);
164
+ this.boundingBox = __classPrivateFieldGet(this, _OrthographicCamera_tree, "f").root.boundingBox.clone();
165
+ (_a = this._stateEngine.viewportEngines[renderingEngine.id]) === null || _a === void 0 ? void 0 : _a.boundingBoxCreated.then(() => __awaiter(this, void 0, void 0, function* () {
166
+ if (this.position[0] === this.target[0] &&
167
+ this.position[1] === this.target[1] &&
168
+ this.position[2] === this.target[2])
169
+ yield this.zoomTo(undefined, { duration: 0 });
170
+ }));
171
+ }
172
+ calculateZoomTo(zoomTarget, startingPosition = this.position, startingTarget = this.target) {
173
+ let box;
174
+ // Part 1 - calculate the bounding box that we should zoom to
175
+ if (!zoomTarget) {
176
+ // complete scene
177
+ box = this._boundingBox.clone();
178
+ }
179
+ else {
180
+ // specified Box
181
+ box = zoomTarget.clone();
182
+ }
183
+ if (box.isEmpty())
184
+ return { position: startingPosition, target: startingTarget };
185
+ const target = gl_matrix_1.vec3.fromValues((box.max[0] + box.min[0]) / 2, (box.max[1] + box.min[1]) / 2, (box.max[2] + box.min[2]) / 2);
186
+ if (startingPosition[0] === startingTarget[0] &&
187
+ startingPosition[1] === startingTarget[1] &&
188
+ startingPosition[2] === startingTarget[2])
189
+ startingPosition = gl_matrix_1.vec3.fromValues(target[0], target[1] - 7.5, target[2] + 5);
190
+ const factor = 2 * box.boundingSphere.radius * this.zoomExtentsFactor;
191
+ switch (__classPrivateFieldGet(this, _OrthographicCamera_direction, "f")) {
192
+ case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.TOP:
193
+ return {
194
+ position: gl_matrix_1.vec3.fromValues(target[0], target[1], target[2] + factor),
195
+ target: gl_matrix_1.vec3.clone(target),
196
+ };
197
+ case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.BOTTOM:
198
+ return {
199
+ position: gl_matrix_1.vec3.fromValues(target[0], target[1], target[2] - factor),
200
+ target: gl_matrix_1.vec3.clone(target),
201
+ };
202
+ case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.RIGHT:
203
+ return {
204
+ position: gl_matrix_1.vec3.fromValues(target[0] + factor, target[1], target[2]),
205
+ target: gl_matrix_1.vec3.clone(target),
206
+ };
207
+ case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.LEFT:
208
+ return {
209
+ position: gl_matrix_1.vec3.fromValues(target[0] - factor, target[1], target[2]),
210
+ target: gl_matrix_1.vec3.clone(target),
211
+ };
212
+ case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.BACK:
213
+ return {
214
+ position: gl_matrix_1.vec3.fromValues(target[0], target[1] + factor, target[2]),
215
+ target: gl_matrix_1.vec3.clone(target),
216
+ };
217
+ case viewer_shared_types_1.ORTHOGRAPHIC_CAMERA_DIRECTION.FRONT:
218
+ return {
219
+ position: gl_matrix_1.vec3.fromValues(target[0], target[1] - factor, target[2]),
220
+ target: gl_matrix_1.vec3.clone(target),
221
+ };
222
+ default: {
223
+ // get the direction from the starting position to the starting target
224
+ const direction = gl_matrix_1.vec3.subtract(gl_matrix_1.vec3.create(), startingPosition, target);
225
+ // normalize the direction
226
+ gl_matrix_1.vec3.normalize(direction, direction);
227
+ // get the new position
228
+ return {
229
+ position: gl_matrix_1.vec3.add(gl_matrix_1.vec3.create(), target, gl_matrix_1.vec3.scale(gl_matrix_1.vec3.create(), direction, factor)),
230
+ target: gl_matrix_1.vec3.clone(target),
231
+ };
232
+ }
233
+ }
234
+ }
235
+ clone() {
236
+ return new OrthographicCamera(this.id, this.version);
237
+ }
238
+ project(pos) {
239
+ const m = gl_matrix_1.mat4.targetTo(gl_matrix_1.mat4.create(), this.position, this.target, this.up);
240
+ const p = gl_matrix_1.mat4.ortho(gl_matrix_1.mat4.create(), this.left, this.right, this.bottom, this.top, this.near, this.far);
241
+ let inverse = gl_matrix_1.mat4.invert(gl_matrix_1.mat4.create(), m);
242
+ if (!inverse)
243
+ inverse = gl_matrix_1.mat4.create();
244
+ gl_matrix_1.vec3.transformMat4(pos, pos, inverse);
245
+ gl_matrix_1.vec3.transformMat4(pos, pos, p);
246
+ return gl_matrix_1.vec2.fromValues(pos[0], pos[1]);
247
+ }
248
+ unproject(pos) {
249
+ const m = gl_matrix_1.mat4.targetTo(gl_matrix_1.mat4.create(), this.position, this.target, this.up);
250
+ const p = gl_matrix_1.mat4.ortho(gl_matrix_1.mat4.create(), this.left, this.right, this.bottom, this.top, this.near, this.far);
251
+ let inverse = gl_matrix_1.mat4.invert(gl_matrix_1.mat4.create(), p);
252
+ if (!inverse)
253
+ inverse = gl_matrix_1.mat4.create();
254
+ gl_matrix_1.vec3.transformMat4(pos, pos, inverse);
255
+ gl_matrix_1.vec3.transformMat4(pos, pos, m);
256
+ return gl_matrix_1.vec3.clone(pos);
257
+ }
258
+ // #endregion Public Methods (6)
259
+ // #region Protected Methods (1)
260
+ getProjectionMatrix(sphere) {
261
+ const distance = gl_matrix_1.vec3.distance(this.position, this.target) / 2;
262
+ if (distance === 0)
263
+ return;
264
+ return gl_matrix_1.mat4.ortho(gl_matrix_1.mat4.create(), __classPrivateFieldGet(this, _OrthographicCamera_left, "f"), __classPrivateFieldGet(this, _OrthographicCamera_right, "f"), __classPrivateFieldGet(this, _OrthographicCamera_bottom, "f"), __classPrivateFieldGet(this, _OrthographicCamera_top, "f"), this.near, this.far);
265
+ }
266
+ }
267
+ exports.OrthographicCamera = OrthographicCamera;
268
+ _OrthographicCamera_converter = new WeakMap(), _OrthographicCamera_logger = new WeakMap(), _OrthographicCamera_tree = new WeakMap(), _OrthographicCamera_bottom = new WeakMap(), _OrthographicCamera_direction = new WeakMap(), _OrthographicCamera_domEventEngine = new WeakMap(), _OrthographicCamera_left = new WeakMap(), _OrthographicCamera_right = new WeakMap(), _OrthographicCamera_top = new WeakMap(), _OrthographicCamera_up = new WeakMap();
269
269
  //# sourceMappingURL=OrthographicCamera.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrthographicCamera.js","sourceRoot":"","sources":["../../../src/implementation/camera/OrthographicCamera.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OrthographicCamera.js","sourceRoot":"","sources":["../../../src/implementation/camera/OrthographicCamera.ts"],"names":[],"mappings":"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"}