@inweb/viewer-visualize 26.12.4 → 26.12.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.
@@ -1008,7 +1008,7 @@ class OdaWalkDragger extends OdBaseDragger {
1008
1008
  this.deltaAngle = Math.PI / 3600;
1009
1009
  this.autoSelect = true;
1010
1010
  this.isJoyStickMoving = false;
1011
- this.addJoyStickDragger();
1011
+ this.addJoyStickDragger(subject.canvas.parentElement);
1012
1012
  }
1013
1013
  initialize() {
1014
1014
  super.initialize();
@@ -1213,13 +1213,13 @@ class OdaWalkDragger extends OdBaseDragger {
1213
1213
  const volume = [xmax - xmin, ymax - ymin, zmax - zmin];
1214
1214
  return Math.max(...volume);
1215
1215
  }
1216
- addJoyStickDragger() {
1216
+ addJoyStickDragger(parentElement) {
1217
1217
  this.joyStickOverlayElement = document.createElement("div");
1218
1218
  this.joyStickOverlayElement.id = "joyStickDiv";
1219
1219
  this.joyStickOverlayElement.style.background = "rgba(0,0,0,0)";
1220
1220
  this.joyStickOverlayElement.style.position = "fixed";
1221
1221
  this.joyStickOverlayElement.style.zIndex = "0";
1222
- document.body.appendChild(this.joyStickOverlayElement);
1222
+ parentElement.appendChild(this.joyStickOverlayElement);
1223
1223
  this.joyStickDragger = new OdJoyStickDragger(this, this.joyStickOverlayElement, (stickData) => {
1224
1224
  if (Math.sqrt(stickData.x * stickData.x + stickData.y * stickData.y) > 20) {
1225
1225
  this.lastJoyStickCoord = { x: stickData.x, y: stickData.y };
@@ -1284,31 +1284,11 @@ class OdaFlyDragger extends OdBaseDragger {
1284
1284
  this.lastFrameJoyStickTS = 0;
1285
1285
  this.animationId = undefined;
1286
1286
  this.processMovement = this.processMovement.bind(this);
1287
- this.processJoyMovement = this.processJoyMovement.bind(this);
1287
+ this.processJoyStickMovement = this.processJoyStickMovement.bind(this);
1288
1288
  this.deltaAngle = Math.PI / 3600;
1289
1289
  this.autoSelect = true;
1290
- this.moving = false;
1291
- this.joyStickOverlayElement = document.createElement("div");
1292
- this.joyStickOverlayElement.id = "joyStickDiv";
1293
- this.joyStickOverlayElement.style.background = "rgba(0,0,0,0)";
1294
- this.joyStickOverlayElement.style.position = "fixed";
1295
- this.joyStickOverlayElement.style.zIndex = "0";
1296
- document.body.appendChild(this.joyStickOverlayElement);
1297
- this.joyStickDragger = new OdJoyStickDragger(this, this.joyStickOverlayElement, (stickData) => {
1298
- if (Math.sqrt(stickData.x * stickData.x + stickData.y * stickData.y) > 20) {
1299
- this.lastJoyStickCoord = { x: stickData.x, y: stickData.y };
1300
- if (!this.animationId && !this.moving) {
1301
- this.moving = true;
1302
- this.processJoyMovement(0);
1303
- }
1304
- }
1305
- else {
1306
- this.moving = false;
1307
- window.cancelAnimationFrame(this.animationId);
1308
- this.animationId = undefined;
1309
- this.lastFrameJoyStickTS = 0;
1310
- }
1311
- }, this.m_module.canvas);
1290
+ this.isJoyStickMoving = false;
1291
+ this.addJoyStickDragger(subject.canvas.parentElement);
1312
1292
  }
1313
1293
  initialize() {
1314
1294
  super.initialize();
@@ -1491,10 +1471,33 @@ class OdaFlyDragger extends OdBaseDragger {
1491
1471
  const volume = [xmax - xmin, ymax - ymin, zmax - zmin];
1492
1472
  return Math.max(...volume);
1493
1473
  }
1494
- processJoyMovement(timestamp) {
1495
- if (!this.moving)
1474
+ addJoyStickDragger(parentElement) {
1475
+ this.joyStickOverlayElement = document.createElement("div");
1476
+ this.joyStickOverlayElement.id = "joyStickDiv";
1477
+ this.joyStickOverlayElement.style.background = "rgba(0,0,0,0)";
1478
+ this.joyStickOverlayElement.style.position = "fixed";
1479
+ this.joyStickOverlayElement.style.zIndex = "0";
1480
+ parentElement.appendChild(this.joyStickOverlayElement);
1481
+ this.joyStickDragger = new OdJoyStickDragger(this, this.joyStickOverlayElement, (stickData) => {
1482
+ if (Math.sqrt(stickData.x * stickData.x + stickData.y * stickData.y) > 20) {
1483
+ this.lastJoyStickCoord = { x: stickData.x, y: stickData.y };
1484
+ if (!this.animationId && !this.isJoyStickMoving) {
1485
+ this.isJoyStickMoving = true;
1486
+ this.processJoyStickMovement(0);
1487
+ }
1488
+ }
1489
+ else {
1490
+ this.isJoyStickMoving = false;
1491
+ window.cancelAnimationFrame(this.animationId);
1492
+ this.animationId = undefined;
1493
+ this.lastFrameJoyStickTS = 0;
1494
+ }
1495
+ }, this.m_module.canvas);
1496
+ }
1497
+ processJoyStickMovement(timestamp) {
1498
+ if (!this.isJoyStickMoving)
1496
1499
  return;
1497
- this.animationId = requestAnimationFrame(this.processJoyMovement);
1500
+ this.animationId = requestAnimationFrame(this.processJoyStickMovement);
1498
1501
  if (this.lastFrameJoyStickTS !== 0) {
1499
1502
  const deltaTS = timestamp - this.lastFrameJoyStickTS;
1500
1503
  if (deltaTS > 0) {
@@ -2501,7 +2504,6 @@ function regenerateAll(viewer) {
2501
2504
  function resetView(viewer) {
2502
2505
  if (!viewer.visualizeJs)
2503
2506
  return;
2504
- const reset = viewer.getComponent("ResetComponent");
2505
2507
  viewer.executeCommand("setActiveDragger");
2506
2508
  viewer.executeCommand("clearSlices");
2507
2509
  viewer.executeCommand("clearOverlay");
@@ -2510,7 +2512,6 @@ function resetView(viewer) {
2510
2512
  viewer.executeCommand("showAll");
2511
2513
  viewer.executeCommand("explode", 0);
2512
2514
  viewer.executeCommand("zoomToExtents", true);
2513
- reset.resetCameraPosition();
2514
2515
  viewer.emit({ type: "resetview" });
2515
2516
  }
2516
2517
 
@@ -3025,8 +3026,10 @@ class ResetComponent {
3025
3026
  };
3026
3027
  this.viewer = viewer;
3027
3028
  this.viewer.addEventListener("databasechunk", this.onDatabaseChunk);
3029
+ this.viewer.on("resetview", this.resetCameraPosition);
3028
3030
  }
3029
3031
  dispose() {
3032
+ this.viewer.off("resetview", this.resetCameraPosition);
3030
3033
  this.viewer.removeEventListener("databasechunk", this.onDatabaseChunk);
3031
3034
  }
3032
3035
  resetCameraPosition() {