@shapediver/viewer.rendering-engine.camera-engine 2.11.0 → 2.12.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.
Files changed (51) hide show
  1. package/dist/implementation/camera/AbstractCamera.d.ts +5 -3
  2. package/dist/implementation/camera/AbstractCamera.d.ts.map +1 -1
  3. package/dist/implementation/camera/AbstractCamera.js +26 -18
  4. package/dist/implementation/camera/AbstractCamera.js.map +1 -1
  5. package/dist/implementation/controls/AbstractCameraControls.d.ts +13 -7
  6. package/dist/implementation/controls/AbstractCameraControls.d.ts.map +1 -1
  7. package/dist/implementation/controls/AbstractCameraControls.js +71 -38
  8. package/dist/implementation/controls/AbstractCameraControls.js.map +1 -1
  9. package/dist/implementation/controls/OrthographicCameraControls.d.ts.map +1 -1
  10. package/dist/implementation/controls/OrthographicCameraControls.js +2 -2
  11. package/dist/implementation/controls/OrthographicCameraControls.js.map +1 -1
  12. package/dist/implementation/controls/PerspectiveCameraControls.d.ts +15 -3
  13. package/dist/implementation/controls/PerspectiveCameraControls.d.ts.map +1 -1
  14. package/dist/implementation/controls/PerspectiveCameraControls.js +108 -78
  15. package/dist/implementation/controls/PerspectiveCameraControls.js.map +1 -1
  16. package/dist/implementation/controls/orthographic/CameraControlsEventDistribution.d.ts +3 -3
  17. package/dist/implementation/controls/orthographic/CameraControlsEventDistribution.d.ts.map +1 -1
  18. package/dist/implementation/controls/orthographic/CameraControlsEventDistribution.js +31 -23
  19. package/dist/implementation/controls/orthographic/CameraControlsEventDistribution.js.map +1 -1
  20. package/dist/implementation/controls/orthographic/CameraControlsLogic.d.ts.map +1 -1
  21. package/dist/implementation/controls/orthographic/CameraControlsLogic.js +36 -38
  22. package/dist/implementation/controls/orthographic/CameraControlsLogic.js.map +1 -1
  23. package/dist/implementation/controls/perspective/CameraControlsEventDistribution.d.ts +4 -4
  24. package/dist/implementation/controls/perspective/CameraControlsEventDistribution.d.ts.map +1 -1
  25. package/dist/implementation/controls/perspective/CameraControlsEventDistribution.js +39 -32
  26. package/dist/implementation/controls/perspective/CameraControlsEventDistribution.js.map +1 -1
  27. package/dist/implementation/controls/perspective/CameraControlsLogic.d.ts +3 -2
  28. package/dist/implementation/controls/perspective/CameraControlsLogic.d.ts.map +1 -1
  29. package/dist/implementation/controls/perspective/CameraControlsLogic.js +88 -66
  30. package/dist/implementation/controls/perspective/CameraControlsLogic.js.map +1 -1
  31. package/dist/interfaces/camera/ICamera.d.ts +9 -8
  32. package/dist/interfaces/camera/ICamera.d.ts.map +1 -1
  33. package/dist/interfaces/controls/ICameraControls.d.ts +4 -3
  34. package/dist/interfaces/controls/ICameraControls.d.ts.map +1 -1
  35. package/dist/interfaces/controls/ICameraControlsLogic.d.ts +3 -2
  36. package/dist/interfaces/controls/ICameraControlsLogic.d.ts.map +1 -1
  37. package/dist/interfaces/controls/IPerspectiveCameraControls.d.ts +4 -0
  38. package/dist/interfaces/controls/IPerspectiveCameraControls.d.ts.map +1 -1
  39. package/package.json +7 -7
  40. package/src/implementation/camera/AbstractCamera.ts +44 -37
  41. package/src/implementation/controls/AbstractCameraControls.ts +113 -70
  42. package/src/implementation/controls/OrthographicCameraControls.ts +9 -9
  43. package/src/implementation/controls/PerspectiveCameraControls.ts +114 -73
  44. package/src/implementation/controls/orthographic/CameraControlsEventDistribution.ts +61 -56
  45. package/src/implementation/controls/orthographic/CameraControlsLogic.ts +45 -53
  46. package/src/implementation/controls/perspective/CameraControlsEventDistribution.ts +83 -80
  47. package/src/implementation/controls/perspective/CameraControlsLogic.ts +100 -81
  48. package/src/interfaces/camera/ICamera.ts +31 -26
  49. package/src/interfaces/controls/ICameraControls.ts +5 -5
  50. package/src/interfaces/controls/ICameraControlsLogic.ts +6 -2
  51. package/src/interfaces/controls/IPerspectiveCameraControls.ts +10 -2
@@ -48,7 +48,7 @@ class CameraControlsLogic {
48
48
  autoRotationSpeed: 2 * Math.PI / 60 / 60,
49
49
  damping: 1.0,
50
50
  movementSmoothness: 1.0,
51
- panSpeed: 2.0,
51
+ panSpeed: 1.75,
52
52
  rotationSpeed: Math.PI,
53
53
  zoomSpeed: 0.025,
54
54
  };
@@ -56,8 +56,8 @@ class CameraControlsLogic {
56
56
  autoRotationSpeed: 1.0,
57
57
  damping: 1.0,
58
58
  movementSmoothness: 1.0,
59
- panSpeed: 1.5,
60
- rotationSpeed: 2.0,
59
+ panSpeed: 1.0 / 1.75,
60
+ rotationSpeed: 1.5,
61
61
  zoomSpeed: 100.0,
62
62
  };
63
63
  this._quat = gl_matrix_1.quat.fromValues(-Math.sin(Math.PI / 4), 0, 0, Math.sin(Math.PI / 4));
@@ -66,20 +66,20 @@ class CameraControlsLogic {
66
66
  // #endregion Constructors (1)
67
67
  // #region Public Methods (7)
68
68
  isWithinRestrictions(position, target) {
69
- let pBox = new viewer_shared_math_1.Box(this._controls.cubePositionRestriction.min, this._controls.cubePositionRestriction.max), pSphere = new viewer_shared_math_1.Sphere(this._controls.spherePositionRestriction.center, this._controls.spherePositionRestriction.radius), tBox = new viewer_shared_math_1.Box(this._controls.cubeTargetRestriction.min, this._controls.cubeTargetRestriction.max), tSphere = new viewer_shared_math_1.Sphere(this._controls.sphereTargetRestriction.center, this._controls.sphereTargetRestriction.radius);
69
+ const pBox = new viewer_shared_math_1.Box(this._controls.cubePositionRestriction.min, this._controls.cubePositionRestriction.max), pSphere = new viewer_shared_math_1.Sphere(this._controls.spherePositionRestriction.center, this._controls.spherePositionRestriction.radius), tBox = new viewer_shared_math_1.Box(this._controls.cubeTargetRestriction.min, this._controls.cubeTargetRestriction.max), tSphere = new viewer_shared_math_1.Sphere(this._controls.sphereTargetRestriction.center, this._controls.sphereTargetRestriction.radius);
70
70
  if (!(pBox.containsPoint(position) && pSphere.containsPoint(position)))
71
71
  return false;
72
72
  if (!(tBox.containsPoint(target) && tSphere.containsPoint(target)))
73
73
  return false;
74
- let currentDistance = gl_matrix_1.vec3.distance(position, target);
74
+ const currentDistance = gl_matrix_1.vec3.distance(position, target);
75
75
  if (currentDistance > this._controls.zoomRestriction.maxDistance || currentDistance < this._controls.zoomRestriction.minDistance)
76
76
  return false;
77
- let minPolarAngle = this._controls.rotationRestriction.minPolarAngle * (Math.PI / 180), maxPolarAngle = this._controls.rotationRestriction.maxPolarAngle * (Math.PI / 180), minAzimuthAngle = this._controls.rotationRestriction.minAzimuthAngle * (Math.PI / 180), maxAzimuthAngle = this._controls.rotationRestriction.maxAzimuthAngle * (Math.PI / 180);
77
+ const minPolarAngle = this._controls.rotationRestriction.minPolarAngle * (Math.PI / 180), maxPolarAngle = this._controls.rotationRestriction.maxPolarAngle * (Math.PI / 180), minAzimuthAngle = this._controls.rotationRestriction.minAzimuthAngle * (Math.PI / 180), maxAzimuthAngle = this._controls.rotationRestriction.maxAzimuthAngle * (Math.PI / 180);
78
78
  if (minAzimuthAngle !== -Infinity ||
79
79
  maxAzimuthAngle !== Infinity ||
80
80
  minPolarAngle !== 0 ||
81
81
  maxPolarAngle !== 180) {
82
- let offset = gl_matrix_1.vec3.sub(gl_matrix_1.vec3.create(), position, target);
82
+ const offset = gl_matrix_1.vec3.sub(gl_matrix_1.vec3.create(), position, target);
83
83
  gl_matrix_1.vec3.transformQuat(offset, offset, this._quat);
84
84
  const spherical = new viewer_shared_math_1.Spherical().fromVec3(offset);
85
85
  if (spherical.theta < minAzimuthAngle ||
@@ -92,10 +92,6 @@ class CameraControlsLogic {
92
92
  return true;
93
93
  }
94
94
  pan(x, y, active, touch) {
95
- if (touch) {
96
- x = x / window.devicePixelRatio;
97
- y = y / window.devicePixelRatio;
98
- }
99
95
  if (!active) {
100
96
  this._panStart = gl_matrix_1.vec2.fromValues(x, y);
101
97
  }
@@ -106,7 +102,7 @@ class CameraControlsLogic {
106
102
  return;
107
103
  gl_matrix_1.vec2.copy(this._panStart, this._panEnd);
108
104
  const adjustedPanSpeed = this._adjustedSettings.panSpeed() * (touch ? this._touchAdjustments.panSpeed : 1.0);
109
- let offset = this.panDeltaToOffset(gl_matrix_1.vec2.mul(gl_matrix_1.vec2.create(), this._panDelta, gl_matrix_1.vec2.fromValues(adjustedPanSpeed, adjustedPanSpeed)));
105
+ const offset = this.panDeltaToOffset(gl_matrix_1.vec2.mul(gl_matrix_1.vec2.create(), this._panDelta, gl_matrix_1.vec2.fromValues(adjustedPanSpeed, adjustedPanSpeed)));
110
106
  if (this._damping.pan.duration > 0) {
111
107
  if (offset[0] < 0) {
112
108
  offset[0] = Math.min(offset[0], this._adjustedSettings.movementSmoothness() * this._damping.pan.offset[0]);
@@ -127,10 +123,10 @@ class CameraControlsLogic {
127
123
  offset[2] = Math.max(offset[2], this._adjustedSettings.movementSmoothness() * this._damping.pan.offset[2]);
128
124
  }
129
125
  }
130
- let damping = 1 - Math.max(0.01, Math.min(0.99, this._adjustedSettings.damping()));
131
- let framesOffsetX = (Math.log(1 / Math.abs(offset[0])) - 5 * Math.log(10)) / (Math.log(damping));
132
- let framesOffsetY = (Math.log(1 / Math.abs(offset[1])) - 5 * Math.log(10)) / (Math.log(damping));
133
- let framesOffsetZ = (Math.log(1 / Math.abs(offset[2])) - 5 * Math.log(10)) / (Math.log(damping));
126
+ const damping = 1 - Math.max(0.01, Math.min(0.99, this._adjustedSettings.damping()));
127
+ const framesOffsetX = (Math.log(1 / Math.abs(offset[0])) - 5 * Math.log(10)) / (Math.log(damping));
128
+ const framesOffsetY = (Math.log(1 / Math.abs(offset[1])) - 5 * Math.log(10)) / (Math.log(damping));
129
+ const framesOffsetZ = (Math.log(1 / Math.abs(offset[2])) - 5 * Math.log(10)) / (Math.log(damping));
134
130
  this._damping.pan.time = 0;
135
131
  this._damping.pan.duration = Math.max(framesOffsetX, Math.max(framesOffsetY, framesOffsetZ)) * 16.6666;
136
132
  this._damping.pan.offset = gl_matrix_1.vec3.clone(offset);
@@ -169,8 +165,8 @@ class CameraControlsLogic {
169
165
  this._rotateEnd = gl_matrix_1.vec2.create();
170
166
  this._rotateStart = gl_matrix_1.vec2.create();
171
167
  }
172
- restrict(position, target) {
173
- let pBox = new viewer_shared_math_1.Box(this._controls.cubePositionRestriction.min, this._controls.cubePositionRestriction.max), pSphere = new viewer_shared_math_1.Sphere(this._controls.spherePositionRestriction.center, this._controls.spherePositionRestriction.radius), tBox = new viewer_shared_math_1.Box(this._controls.cubeTargetRestriction.min, this._controls.cubeTargetRestriction.max), tSphere = new viewer_shared_math_1.Sphere(this._controls.sphereTargetRestriction.center, this._controls.sphereTargetRestriction.radius);
168
+ restrict(position, target, sceneRotation) {
169
+ const pBox = new viewer_shared_math_1.Box(this._controls.cubePositionRestriction.min, this._controls.cubePositionRestriction.max), pSphere = new viewer_shared_math_1.Sphere(this._controls.spherePositionRestriction.center, this._controls.spherePositionRestriction.radius), tBox = new viewer_shared_math_1.Box(this._controls.cubeTargetRestriction.min, this._controls.cubeTargetRestriction.max), tSphere = new viewer_shared_math_1.Sphere(this._controls.sphereTargetRestriction.center, this._controls.sphereTargetRestriction.radius);
174
170
  if (!pBox.containsPoint(position))
175
171
  position = pBox.clampPoint(position);
176
172
  if (!pSphere.containsPoint(position))
@@ -180,40 +176,58 @@ class CameraControlsLogic {
180
176
  if (!tSphere.containsPoint(target))
181
177
  target = tSphere.clampPoint(target);
182
178
  // zoom restrictions
183
- let currentDistance = gl_matrix_1.vec3.distance(position, target);
179
+ const currentDistance = gl_matrix_1.vec3.distance(position, target);
184
180
  if (currentDistance > this._controls.zoomRestriction.maxDistance || currentDistance < this._controls.zoomRestriction.minDistance) {
185
- let direction = gl_matrix_1.vec3.normalize(gl_matrix_1.vec3.create(), gl_matrix_1.vec3.subtract(gl_matrix_1.vec3.create(), position, target));
186
- let distance = Math.max(this._controls.zoomRestriction.minDistance, Math.min(this._controls.zoomRestriction.maxDistance, currentDistance));
181
+ const direction = gl_matrix_1.vec3.normalize(gl_matrix_1.vec3.create(), gl_matrix_1.vec3.subtract(gl_matrix_1.vec3.create(), position, target));
182
+ const distance = Math.max(this._controls.zoomRestriction.minDistance, Math.min(this._controls.zoomRestriction.maxDistance, currentDistance));
187
183
  gl_matrix_1.vec3.add(position, gl_matrix_1.vec3.multiply(position, direction, gl_matrix_1.vec3.fromValues(distance, distance, distance)), target);
188
184
  }
189
185
  // angle restrictions
190
- let minPolarAngle = this._controls.rotationRestriction.minPolarAngle * (Math.PI / 180), maxPolarAngle = this._controls.rotationRestriction.maxPolarAngle * (Math.PI / 180), minAzimuthAngle = this._controls.rotationRestriction.minAzimuthAngle * (Math.PI / 180), maxAzimuthAngle = this._controls.rotationRestriction.maxAzimuthAngle * (Math.PI / 180);
186
+ const minPolarAngle = this._controls.rotationRestriction.minPolarAngle * (Math.PI / 180), maxPolarAngle = this._controls.rotationRestriction.maxPolarAngle * (Math.PI / 180), minAzimuthAngle = this._controls.rotationRestriction.minAzimuthAngle * (Math.PI / 180), maxAzimuthAngle = this._controls.rotationRestriction.maxAzimuthAngle * (Math.PI / 180);
191
187
  if (minAzimuthAngle !== -Infinity ||
192
188
  maxAzimuthAngle !== Infinity ||
193
189
  minPolarAngle !== 0 ||
194
- maxPolarAngle !== 180) {
190
+ maxPolarAngle !== 180 ||
191
+ this._controls.enableAzimuthRotation === false ||
192
+ this._controls.enablePolarRotation === false) {
195
193
  let offset = gl_matrix_1.vec3.subtract(gl_matrix_1.vec3.create(), position, target);
196
194
  gl_matrix_1.vec3.transformQuat(offset, offset, this._quat);
197
195
  const spherical = new viewer_shared_math_1.Spherical().fromVec3(offset);
198
196
  if (spherical.theta < minAzimuthAngle ||
199
197
  spherical.theta > maxAzimuthAngle ||
200
198
  spherical.phi < minPolarAngle ||
201
- spherical.phi > maxPolarAngle) {
199
+ spherical.phi > maxPolarAngle ||
200
+ this._controls.enableAzimuthRotation === false ||
201
+ this._controls.enablePolarRotation === false) {
202
202
  spherical.theta = Math.max(minAzimuthAngle, Math.min(maxAzimuthAngle, spherical.theta));
203
203
  spherical.phi = Math.max(minPolarAngle, Math.min(maxPolarAngle, spherical.phi));
204
+ if (this._controls.enableAzimuthRotation === false || this._controls.enablePolarRotation === false) {
205
+ const defaultOffset = gl_matrix_1.vec3.subtract(gl_matrix_1.vec3.create(), this._controls.camera.defaultPosition, this._controls.camera.defaultTarget);
206
+ gl_matrix_1.vec3.transformQuat(defaultOffset, defaultOffset, this._quat);
207
+ const defaultSpherical = new viewer_shared_math_1.Spherical().fromVec3(defaultOffset);
208
+ if (this._controls.enableAzimuthRotation === false)
209
+ spherical.theta = defaultSpherical.theta;
210
+ if (this._controls.enablePolarRotation === false)
211
+ spherical.phi = defaultSpherical.phi;
212
+ }
204
213
  spherical.makeSafe();
205
214
  offset = spherical.toVec3();
206
215
  gl_matrix_1.vec3.transformQuat(offset, offset, this._quatInverse);
207
216
  gl_matrix_1.vec3.add(position, offset, target);
208
217
  }
218
+ if (sceneRotation[1] < minAzimuthAngle ||
219
+ sceneRotation[1] > maxAzimuthAngle ||
220
+ sceneRotation[0] < minPolarAngle ||
221
+ sceneRotation[0] > maxPolarAngle ||
222
+ this._controls.enableAzimuthRotation === false ||
223
+ this._controls.enablePolarRotation === false) {
224
+ sceneRotation[1] = this._controls.enableAzimuthRotation === false ? 0 : Math.max(minAzimuthAngle, Math.min(maxAzimuthAngle, sceneRotation[1]));
225
+ sceneRotation[0] = this._controls.enablePolarRotation === false ? 0 : Math.max(minPolarAngle, Math.min(maxPolarAngle, sceneRotation[0]));
226
+ }
209
227
  }
210
- return { position, target };
228
+ return { position, target, sceneRotation };
211
229
  }
212
230
  rotate(x, y, active, touch) {
213
- if (touch) {
214
- x = x / window.devicePixelRatio;
215
- y = y / window.devicePixelRatio;
216
- }
217
231
  if (!active) {
218
232
  this._rotateStart = gl_matrix_1.vec2.fromValues(x, y);
219
233
  }
@@ -226,19 +240,19 @@ class CameraControlsLogic {
226
240
  if (this._controls.canvas.clientWidth == 0 || this._controls.canvas.clientHeight == 0)
227
241
  return;
228
242
  const spherical = new viewer_shared_math_1.Spherical();
229
- let rotationSpeed = this._adjustedSettings.rotationSpeed() * (touch ? this._touchAdjustments.rotationSpeed : 1.0);
230
- spherical.theta -= rotationSpeed * this._rotateDelta[0];
231
- spherical.phi -= rotationSpeed * this._rotateDelta[1];
243
+ const rotationSpeed = this._adjustedSettings.rotationSpeed() * (touch ? this._touchAdjustments.rotationSpeed : 1.0);
244
+ spherical.theta -= rotationSpeed * this._rotateDelta[0] / this._controls.canvas.clientHeight;
245
+ spherical.phi -= rotationSpeed * this._rotateDelta[1] / this._controls.canvas.clientHeight;
232
246
  if (this._damping.rotation.duration > 0) {
233
- let thetaDelta = this._damping.rotation.theta - spherical.theta;
247
+ const thetaDelta = this._damping.rotation.theta - spherical.theta;
234
248
  spherical.theta += thetaDelta * this._adjustedSettings.movementSmoothness();
235
- let phiDelta = this._damping.rotation.phi - spherical.phi;
249
+ const phiDelta = this._damping.rotation.phi - spherical.phi;
236
250
  spherical.phi += phiDelta * this._adjustedSettings.movementSmoothness();
237
251
  }
238
- let offset = this.rotationSphericalToOffset(spherical);
239
- let damping = 1 - Math.max(0.01, Math.min(1, this._adjustedSettings.damping()));
240
- let framesTheta = (Math.log(1 / Math.abs(spherical.theta)) - 5 * Math.log(10)) / (Math.log(damping));
241
- let framesPhi = (Math.log(1 / Math.abs(spherical.phi)) - 5 * Math.log(10)) / (Math.log(damping));
252
+ const offset = this.rotationSphericalToOffset(this._controls.enableTurntableControls ? new viewer_shared_math_1.Spherical(1.0, spherical.phi, 0) : spherical);
253
+ const damping = 1 - Math.max(0.01, Math.min(1, this._adjustedSettings.damping()));
254
+ const framesTheta = (Math.log(1 / Math.abs(spherical.theta)) - 5 * Math.log(10)) / (Math.log(damping));
255
+ const framesPhi = (Math.log(1 / Math.abs(spherical.phi)) - 5 * Math.log(10)) / (Math.log(damping));
242
256
  this._damping.rotation.time = 0;
243
257
  this._damping.rotation.duration = Math.max(framesTheta, framesPhi) * 16.6666;
244
258
  this._damping.rotation.theta = spherical.theta;
@@ -246,6 +260,8 @@ class CameraControlsLogic {
246
260
  this._damping.pan.duration = 0;
247
261
  this._damping.zoom.duration = 0;
248
262
  this._controls.applyPositionVector(offset, true);
263
+ if (this._controls.enableTurntableControls)
264
+ this._controls.applyRotation([0, spherical.theta], true);
249
265
  }
250
266
  }
251
267
  update(time, manualInteraction) {
@@ -254,7 +270,7 @@ class CameraControlsLogic {
254
270
  this._damping.pan.duration = 0;
255
271
  this._damping.rotation.duration = 0;
256
272
  }
257
- let damping = 1 - Math.max(0.01, Math.min(1, this._adjustedSettings.damping()));
273
+ const damping = 1 - Math.max(0.01, Math.min(1, this._adjustedSettings.damping()));
258
274
  if (this._damping.pan.duration > 0) {
259
275
  if (this._damping.pan.time + time > this._damping.pan.duration) {
260
276
  this._damping.pan.time = this._damping.pan.duration;
@@ -262,9 +278,9 @@ class CameraControlsLogic {
262
278
  }
263
279
  else {
264
280
  this._damping.pan.time += time;
265
- let frameSinceStart = this._damping.pan.time / 16.6666;
266
- let dampingFrames = Math.pow(damping, frameSinceStart);
267
- let offset = gl_matrix_1.vec3.multiply(gl_matrix_1.vec3.create(), this._damping.pan.offset, gl_matrix_1.vec3.fromValues(dampingFrames, dampingFrames, dampingFrames));
281
+ const frameSinceStart = this._damping.pan.time / 16.6666;
282
+ const dampingFrames = Math.pow(damping, frameSinceStart);
283
+ const offset = gl_matrix_1.vec3.multiply(gl_matrix_1.vec3.create(), this._damping.pan.offset, gl_matrix_1.vec3.fromValues(dampingFrames, dampingFrames, dampingFrames));
268
284
  this._controls.applyTargetVector(offset);
269
285
  this._controls.applyPositionVector(offset);
270
286
  }
@@ -279,12 +295,14 @@ class CameraControlsLogic {
279
295
  }
280
296
  else {
281
297
  this._damping.rotation.time += time;
282
- let frameSinceStart = this._damping.rotation.time / 16.6666;
283
- let spherical = new viewer_shared_math_1.Spherical();
298
+ const frameSinceStart = this._damping.rotation.time / 16.6666;
299
+ const spherical = new viewer_shared_math_1.Spherical();
284
300
  spherical.theta = this._damping.rotation.theta * Math.pow(damping, frameSinceStart);
285
301
  spherical.phi = this._damping.rotation.phi * Math.pow(damping, frameSinceStart);
286
- let offset = this.rotationSphericalToOffset(spherical);
302
+ const offset = this.rotationSphericalToOffset(this._controls.enableTurntableControls ? new viewer_shared_math_1.Spherical(1.0, spherical.phi, 0) : spherical);
287
303
  this._controls.applyPositionVector(offset);
304
+ if (this._controls.enableTurntableControls)
305
+ this._controls.applyRotation([0, spherical.theta]);
288
306
  }
289
307
  }
290
308
  else {
@@ -297,9 +315,9 @@ class CameraControlsLogic {
297
315
  }
298
316
  else {
299
317
  this._damping.zoom.time += time;
300
- let frameSinceStart = this._damping.zoom.time / 16.6666;
301
- let delta = this._damping.zoom.delta * Math.pow(damping, frameSinceStart);
302
- let offset = this.zoomDistanceToOffset(delta);
318
+ const frameSinceStart = this._damping.zoom.time / 16.6666;
319
+ const delta = this._damping.zoom.delta * Math.pow(damping, frameSinceStart);
320
+ const offset = this.zoomDistanceToOffset(delta);
303
321
  this._controls.applyPositionVector(offset);
304
322
  }
305
323
  }
@@ -307,15 +325,15 @@ class CameraControlsLogic {
307
325
  this._damping.zoom.time = 0;
308
326
  }
309
327
  if (this._controls.enableAutoRotation) {
310
- let spherical = new viewer_shared_math_1.Spherical(1.0, 0.0, -this._adjustedSettings.autoRotationSpeed());
311
- let offset = this.rotationSphericalToOffset(spherical);
328
+ const spherical = new viewer_shared_math_1.Spherical(1.0, 0.0, -this._adjustedSettings.autoRotationSpeed());
329
+ const offset = this.rotationSphericalToOffset(this._controls.enableTurntableControls ? new viewer_shared_math_1.Spherical(1.0, spherical.phi, 0) : spherical);
312
330
  this._controls.applyPositionVector(offset);
331
+ if (this._controls.enableTurntableControls)
332
+ this._controls.applyRotation([0, spherical.theta]);
313
333
  }
314
334
  }
315
335
  zoom(x, y, active, touch) {
316
- var distance = Math.sqrt(x * x + y * y);
317
- if (touch)
318
- distance = distance / window.devicePixelRatio;
336
+ const distance = Math.sqrt(x * x + y * y);
319
337
  if (!active) {
320
338
  this._dollyStart = distance;
321
339
  }
@@ -331,38 +349,43 @@ class CameraControlsLogic {
331
349
  this._dollyDelta = Math.max(this._dollyDelta, this._adjustedSettings.movementSmoothness() * this._damping.zoom.delta);
332
350
  }
333
351
  }
334
- let delta = -this._dollyDelta * this._adjustedSettings.zoomSpeed() * (touch ? this._touchAdjustments.zoomSpeed : 1.0);
335
- let damping = 1 - Math.max(0.01, Math.min(1, this._adjustedSettings.damping()));
336
- let framesDelta = (Math.log(1 / Math.abs(this._dollyDelta)) - 5 * Math.log(10)) / (Math.log(damping));
352
+ const delta = -this._dollyDelta * this._adjustedSettings.zoomSpeed() * (touch ? this._touchAdjustments.zoomSpeed : 1.0);
353
+ const damping = 1 - Math.max(0.01, Math.min(1, this._adjustedSettings.damping()));
354
+ const framesDelta = (Math.log(1 / Math.abs(this._dollyDelta)) - 5 * Math.log(10)) / (Math.log(damping));
337
355
  this._damping.zoom.time = 0;
338
356
  this._damping.zoom.duration = framesDelta * 16.6666;
339
357
  this._damping.zoom.delta = delta;
340
358
  this._damping.rotation.duration = 0;
341
359
  this._damping.pan.duration = 0;
342
- let offset = this.zoomDistanceToOffset(delta);
360
+ const offset = this.zoomDistanceToOffset(delta);
343
361
  this._controls.applyPositionVector(offset, true);
344
362
  }
345
363
  }
346
364
  // #endregion Public Methods (7)
347
365
  // #region Private Methods (3)
348
366
  panDeltaToOffset(panDelta) {
349
- let offset = gl_matrix_1.vec3.create();
350
- let panOffset = gl_matrix_1.vec3.create();
367
+ var _a, _b;
368
+ const offset = gl_matrix_1.vec3.create();
369
+ const panOffset = gl_matrix_1.vec3.create();
370
+ if (!this._controls.canvas)
371
+ return offset;
372
+ if (this._controls.canvas.clientWidth == 0 || this._controls.canvas.clientHeight == 0)
373
+ return offset;
351
374
  // perspective
352
375
  gl_matrix_1.vec3.subtract(offset, this._controls.getPositionWithManualUpdates(), this._controls.getTargetWithManualUpdates());
353
- var targetDistance = gl_matrix_1.vec3.length(offset);
376
+ let targetDistance = gl_matrix_1.vec3.length(offset);
354
377
  // half of the fov is center to top of screen
355
378
  targetDistance *= Math.tan(((this._controls.camera.fov / 2) * Math.PI) / 180.0);
356
379
  // we use only clientHeight here so aspect ratio does not distort speed
357
380
  // left
358
381
  const mat = gl_matrix_1.mat4.targetTo(gl_matrix_1.mat4.create(), this._controls.camera.position, this._controls.camera.target, gl_matrix_1.vec3.fromValues(0, 0, 1));
359
382
  const v1 = gl_matrix_1.vec3.fromValues(mat[0], mat[1], mat[2]);
360
- const scalar1 = -(2 * panDelta[0] * targetDistance);
383
+ const scalar1 = -(2 * panDelta[0] * targetDistance / ((_a = this._controls.canvas) === null || _a === void 0 ? void 0 : _a.clientHeight));
361
384
  gl_matrix_1.vec3.multiply(v1, v1, gl_matrix_1.vec3.fromValues(scalar1, scalar1, scalar1));
362
385
  gl_matrix_1.vec3.add(panOffset, panOffset, v1);
363
386
  // // up
364
387
  const v2 = gl_matrix_1.vec3.fromValues(mat[4], mat[5], mat[6]);
365
- const scalar2 = 2 * panDelta[1] * targetDistance;
388
+ const scalar2 = 2 * panDelta[1] * targetDistance / ((_b = this._controls.canvas) === null || _b === void 0 ? void 0 : _b.clientHeight);
366
389
  gl_matrix_1.vec3.multiply(v2, v2, gl_matrix_1.vec3.fromValues(scalar2, scalar2, scalar2));
367
390
  gl_matrix_1.vec3.add(panOffset, panOffset, v2);
368
391
  return gl_matrix_1.vec3.clone(panOffset);
@@ -371,10 +394,10 @@ class CameraControlsLogic {
371
394
  let offset = gl_matrix_1.vec3.create();
372
395
  gl_matrix_1.vec3.subtract(offset, this._controls.getPositionWithManualUpdates(), this._controls.getTargetWithManualUpdates());
373
396
  gl_matrix_1.vec3.transformQuat(offset, offset, this._quat);
374
- let spherical = new viewer_shared_math_1.Spherical().fromVec3(offset);
397
+ const spherical = new viewer_shared_math_1.Spherical().fromVec3(offset);
375
398
  spherical.theta += s.theta;
376
399
  spherical.phi += s.phi;
377
- let minAzimuthAngle = this._controls.rotationRestriction.minAzimuthAngle * (Math.PI / 180), maxAzimuthAngle = this._controls.rotationRestriction.maxAzimuthAngle * (Math.PI / 180);
400
+ const minAzimuthAngle = this._controls.rotationRestriction.minAzimuthAngle * (Math.PI / 180), maxAzimuthAngle = this._controls.rotationRestriction.maxAzimuthAngle * (Math.PI / 180);
378
401
  if (spherical.theta > Math.PI) {
379
402
  spherical.theta -= 2 * Math.PI;
380
403
  if (minAzimuthAngle > spherical.theta) {
@@ -395,11 +418,10 @@ class CameraControlsLogic {
395
418
  return gl_matrix_1.vec3.clone(offset);
396
419
  }
397
420
  zoomDistanceToOffset(distance) {
398
- let offset = gl_matrix_1.vec3.create();
421
+ const offset = gl_matrix_1.vec3.create();
399
422
  gl_matrix_1.vec3.subtract(offset, this._controls.getPositionWithManualUpdates(), this._controls.getTargetWithManualUpdates());
400
423
  return gl_matrix_1.vec3.multiply(gl_matrix_1.vec3.create(), offset, gl_matrix_1.vec3.fromValues(distance, distance, distance));
401
424
  }
402
425
  }
403
426
  exports.CameraControlsLogic = CameraControlsLogic;
404
- ;
405
427
  //# sourceMappingURL=CameraControlsLogic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CameraControlsLogic.js","sourceRoot":"","sources":["../../../../src/implementation/controls/perspective/CameraControlsLogic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CameraControlsLogic.js","sourceRoot":"","sources":["../../../../src/implementation/controls/perspective/CameraControlsLogic.ts"],"names":[],"mappings":"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"}
@@ -6,18 +6,18 @@ import { IBox } from '@shapediver/viewer.shared.math';
6
6
  import { SettingsEngine } from '@shapediver/viewer.shared.services';
7
7
  export interface ICameraOptions {
8
8
  /**
9
- * The easing type of the camera interpolation. (default: 'Quadratic.InOut')
9
+ * The coordinate type of the camera interpolation. (default: 'cylindrical')
10
10
  */
11
- easing?: 'Linear.None' | 'Quadratic.In' | 'Quadratic.Out' | 'Quadratic.InOut' | 'Cubic.In' | 'Cubic.Out' | 'Cubic.InOut' | 'Quartic.In' | 'Quartic.Out' | 'Quartic.InOut' | 'Quintic.In' | 'Quintic.Out' | 'Quintic.InOut' | 'Sinusoidal.In' | 'Sinusoidal.Out' | 'Sinusoidal.InOut' | 'Exponential.In' | 'Exponential.Out' | 'Exponential.InOut' | 'Circular.In' | 'Circular.Out' | 'Circular.InOut' | 'Elastic.In' | 'Elastic.Out' | 'Elastic.InOut' | 'Back.In' | 'Back.Out' | 'Back.InOut' | 'Bounce.In' | 'Bounce.Out' | 'Bounce.InOut' | Function;
11
+ coordinates?: 'spherical' | 'linear' | 'cylindrical';
12
12
  /**
13
13
  * The duration of the camera movement. (default: cameraMovementDuration set in the settings)
14
14
  * When set to 0, the camera is immediately updated to the specified position and target.
15
15
  */
16
16
  duration?: number;
17
17
  /**
18
- * The coordinate type of the camera interpolation. (default: 'cylindrical')
18
+ * The easing type of the camera interpolation. (default: 'Quadratic.InOut')
19
19
  */
20
- coordinates?: 'spherical' | 'linear' | 'cylindrical';
20
+ easing?: 'Linear.None' | 'Quadratic.In' | 'Quadratic.Out' | 'Quadratic.InOut' | 'Cubic.In' | 'Cubic.Out' | 'Cubic.InOut' | 'Quartic.In' | 'Quartic.Out' | 'Quartic.InOut' | 'Quintic.In' | 'Quintic.Out' | 'Quintic.InOut' | 'Sinusoidal.In' | 'Sinusoidal.Out' | 'Sinusoidal.InOut' | 'Exponential.In' | 'Exponential.Out' | 'Exponential.InOut' | 'Circular.In' | 'Circular.Out' | 'Circular.InOut' | 'Elastic.In' | 'Elastic.Out' | 'Elastic.InOut' | 'Back.In' | 'Back.Out' | 'Back.InOut' | 'Bounce.In' | 'Bounce.Out' | 'Bounce.InOut' | Function;
21
21
  /**
22
22
  * The interpolation type of the camera interpolation. (default: 'CatmullRom')
23
23
  */
@@ -34,12 +34,13 @@ export interface ICamera extends ITreeNodeData {
34
34
  defaultPosition: vec3;
35
35
  defaultTarget: vec3;
36
36
  enableCameraControls: boolean;
37
- position: vec3;
38
37
  name?: string;
39
38
  node?: ITreeNode;
40
39
  order?: number;
40
+ position: vec3;
41
41
  revertAtMouseUp: boolean;
42
42
  revertAtMouseUpDuration: number;
43
+ sceneRotation: vec2;
43
44
  target: vec3;
44
45
  useNodeData: boolean;
45
46
  zoomExtentsFactor: number;
@@ -48,14 +49,14 @@ export interface ICamera extends ITreeNodeData {
48
49
  target: vec3;
49
50
  }[], options?: ICameraOptions): Promise<boolean>;
50
51
  applySettings(settingsEngine: SettingsEngine): void;
51
- reset(options?: ICameraOptions): Promise<boolean>;
52
- set(position: vec3, target: vec3, options?: ICameraOptions): Promise<boolean>;
53
- zoomTo(zoomTarget?: IBox, options?: ICameraOptions): Promise<boolean>;
54
52
  calculateZoomTo(zoomTarget?: IBox, startingPosition?: vec3, startingTarget?: vec3): {
55
53
  position: vec3;
56
54
  target: vec3;
57
55
  };
58
56
  project(p: vec3): vec2;
57
+ reset(options?: ICameraOptions): Promise<boolean>;
58
+ set(position: vec3, target: vec3, options?: ICameraOptions): Promise<boolean>;
59
59
  unproject(p: vec3): vec3;
60
+ zoomTo(zoomTarget?: IBox, options?: ICameraOptions): Promise<boolean>;
60
61
  }
61
62
  //# sourceMappingURL=ICamera.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ICamera.d.ts","sourceRoot":"","sources":["../../../src/interfaces/camera/ICamera.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ICamera.d.ts","sourceRoot":"","sources":["../../../src/interfaces/camera/ICamera.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { mat4, vec3 } from "gl-matrix";
2
- import { ICamera, ICameraOptions } from "../camera/ICamera";
3
- import { ICameraControlsEventDistribution } from "./ICameraControlsEventDistribution";
1
+ import { mat4, vec2, vec3 } from 'gl-matrix';
2
+ import { ICamera, ICameraOptions } from '../camera/ICamera';
3
+ import { ICameraControlsEventDistribution } from './ICameraControlsEventDistribution';
4
4
  export interface ICameraControls {
5
5
  readonly cameraControlsEventDistribution: ICameraControlsEventDistribution;
6
6
  camera: ICamera;
@@ -28,6 +28,7 @@ export interface ICameraControls {
28
28
  update(time: number): {
29
29
  position: vec3;
30
30
  target: vec3;
31
+ sceneRotation: vec2;
31
32
  };
32
33
  }
33
34
  //# sourceMappingURL=ICameraControls.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ICameraControls.d.ts","sourceRoot":"","sources":["../../../src/interfaces/controls/ICameraControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAEtF,MAAM,WAAW,eAAe;IAG5B,QAAQ,CAAC,+BAA+B,EAAE,gCAAgC,CAAC;IAE3E,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,IAAI,CAAC;IAMb,OAAO,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,IAAI,CAAA;KAAE,EAAE,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7F,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACjF,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACjF,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/E,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/E,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IAC3E,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAE,IAAI,CAAC;IACjE,4BAA4B,IAAI,IAAI,CAAC;IACrC,sBAAsB,IAAI,IAAI,CAAC;IAC/B,0BAA0B,IAAI,IAAI,CAAC;IACnC,oBAAoB,IAAI,IAAI,CAAC;IAC7B,QAAQ,IAAI,OAAO,CAAC;IACpB,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IAC5D,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,IAAI,CAAA;KAAE,CAAC;CAG1D"}
1
+ {"version":3,"file":"ICameraControls.d.ts","sourceRoot":"","sources":["../../../src/interfaces/controls/ICameraControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAEtF,MAAM,WAAW,eAAe;IAG5B,QAAQ,CAAC,+BAA+B,EAAE,gCAAgC,CAAC;IAE3E,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,IAAI,CAAC;IAMb,OAAO,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,IAAI,CAAA;KAAE,EAAE,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7F,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACjF,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACjF,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/E,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/E,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IAC3E,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClE,4BAA4B,IAAI,IAAI,CAAC;IACrC,sBAAsB,IAAI,IAAI,CAAC;IAC/B,0BAA0B,IAAI,IAAI,CAAC;IACnC,oBAAoB,IAAI,IAAI,CAAC;IAC7B,QAAQ,IAAI,OAAO,CAAC;IACpB,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IAC5D,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,IAAI,CAAC;QAAC,aAAa,EAAE,IAAI,CAAA;KAAE,CAAC;CAG/E"}
@@ -1,10 +1,11 @@
1
- import { vec3 } from 'gl-matrix';
1
+ import { vec2, vec3 } from 'gl-matrix';
2
2
  export interface ICameraControlsLogic {
3
3
  isWithinRestrictions(position: any, target: any): boolean;
4
4
  reset(): void;
5
- restrict(p: vec3, t: vec3): {
5
+ restrict(p: vec3, t: vec3, s?: vec2): {
6
6
  position: vec3;
7
7
  target: vec3;
8
+ sceneRotation?: vec2;
8
9
  };
9
10
  update(time: number, manualInteraction: boolean): void;
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ICameraControlsLogic.d.ts","sourceRoot":"","sources":["../../../src/interfaces/controls/ICameraControlsLogic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,WAAW,oBAAoB;IACjC,oBAAoB,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IAC1D,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,IAAI,CAAA;KAAE,CAAC;IAC7D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAA;CACzD"}
1
+ {"version":3,"file":"ICameraControlsLogic.d.ts","sourceRoot":"","sources":["../../../src/interfaces/controls/ICameraControlsLogic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,WAAW,oBAAoB;IAGjC,oBAAoB,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IAC1D,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,IAAI,CAAC;QAAC,aAAa,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC;IAC7F,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAA;CAGzD"}
@@ -12,9 +12,12 @@ export interface IPerspectiveCameraControls extends ICameraControls {
12
12
  };
13
13
  damping: number;
14
14
  enableAutoRotation: boolean;
15
+ enableAzimuthRotation: boolean;
15
16
  enableKeyPan: boolean;
16
17
  enablePan: boolean;
18
+ enablePolarRotation: boolean;
17
19
  enableRotation: boolean;
20
+ enableTurntableControls: boolean;
18
21
  enableZoom: boolean;
19
22
  input: {
20
23
  keys: {
@@ -52,6 +55,7 @@ export interface IPerspectiveCameraControls extends ICameraControls {
52
55
  center: vec3;
53
56
  radius: number;
54
57
  };
58
+ turntableCenter: vec3;
55
59
  zoomRestriction: {
56
60
  minDistance: number;
57
61
  maxDistance: number;
@@ -1 +1 @@
1
- {"version":3,"file":"IPerspectiveCameraControls.d.ts","sourceRoot":"","sources":["../../../src/interfaces/controls/IPerspectiveCameraControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,WAAW,0BAA2B,SAAQ,eAAe;IAC/D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,CAAC;IAClD,qBAAqB,EAAE;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE;QAAE,IAAI,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,KAAK,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,KAAK,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACvL,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IACxH,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB,EAAE;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,uBAAuB,EAAE;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,eAAe,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,SAAS,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"IPerspectiveCameraControls.d.ts","sourceRoot":"","sources":["../../../src/interfaces/controls/IPerspectiveCameraControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,WAAW,0BAA2B,SAAQ,eAAe;IAG/D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,CAAC;IAClD,qBAAqB,EAAE;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,uBAAuB,EAAE,OAAO,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE;QAAE,IAAI,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,KAAK,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,KAAK,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACvL,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IACxH,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB,EAAE;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,uBAAuB,EAAE;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,eAAe,EAAE,IAAI,CAAC;IACtB,eAAe,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,SAAS,EAAE,MAAM,CAAC;CAGrB"}