@inweb/viewer-three 26.9.5 → 26.9.7
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/dist/viewer-three.js +37 -29
- package/dist/viewer-three.js.map +1 -1
- package/dist/viewer-three.min.js +3 -3
- package/dist/viewer-three.module.js +37 -29
- package/dist/viewer-three.module.js.map +1 -1
- package/lib/Viewer/components/ResetComponent.d.ts +10 -0
- package/lib/Viewer/controls/WalkControls.d.ts +1 -8
- package/package.json +5 -5
- package/src/Viewer/commands/ResetView.ts +5 -1
- package/src/Viewer/components/ResetComponent.ts +64 -0
- package/src/Viewer/components/index.ts +2 -0
- package/src/Viewer/controls/WalkControls.ts +3 -35
- package/src/Viewer/draggers/WalkDragger.ts +7 -7
|
@@ -1251,7 +1251,7 @@ class PanDragger extends OrbitDragger {
|
|
|
1251
1251
|
}
|
|
1252
1252
|
|
|
1253
1253
|
class WalkControls extends Controls {
|
|
1254
|
-
constructor(camera, canvas, groundObjects
|
|
1254
|
+
constructor(camera, canvas, groundObjects) {
|
|
1255
1255
|
super(camera, canvas);
|
|
1256
1256
|
this.EYE_HEIGHT = 1.7;
|
|
1257
1257
|
this.FAILING_DISTANCE = 2;
|
|
@@ -1327,11 +1327,7 @@ class WalkControls extends Controls {
|
|
|
1327
1327
|
if (this.moveKeys.delete(event.code))
|
|
1328
1328
|
this.update();
|
|
1329
1329
|
};
|
|
1330
|
-
this.initHighlighter = () => {
|
|
1331
|
-
this.highlighter = this.viewer.getComponent("HighlighterComponent");
|
|
1332
|
-
};
|
|
1333
1330
|
this.camera = camera;
|
|
1334
|
-
this.viewer = viewer;
|
|
1335
1331
|
this.groundObjects = groundObjects;
|
|
1336
1332
|
this.raycaster = new Raycaster();
|
|
1337
1333
|
this.raycaster.near = 0;
|
|
@@ -1360,7 +1356,8 @@ class WalkControls extends Controls {
|
|
|
1360
1356
|
super.dispose();
|
|
1361
1357
|
}
|
|
1362
1358
|
updateGroundFollowing() {
|
|
1363
|
-
|
|
1359
|
+
const up = new Vector3().copy(this.camera.up);
|
|
1360
|
+
this.raycaster.set(this.object.position, up.negate());
|
|
1364
1361
|
this.raycaster.params = this.raycaster.params = {
|
|
1365
1362
|
Mesh: {},
|
|
1366
1363
|
Line: { threshold: 0 },
|
|
@@ -1376,20 +1373,6 @@ class WalkControls extends Controls {
|
|
|
1376
1373
|
this.object.position.y = MathUtils.lerp(this.object.position.y, targetY, this.GROUND_FOLLOWING_SPEED);
|
|
1377
1374
|
}
|
|
1378
1375
|
}
|
|
1379
|
-
select(objects, model) {
|
|
1380
|
-
if (!model) {
|
|
1381
|
-
this.viewer.models.forEach((model) => this.select(objects, model));
|
|
1382
|
-
return;
|
|
1383
|
-
}
|
|
1384
|
-
if (!Array.isArray(objects))
|
|
1385
|
-
objects = [objects];
|
|
1386
|
-
if (!objects.length)
|
|
1387
|
-
return;
|
|
1388
|
-
model.showOriginalObjects(objects);
|
|
1389
|
-
this.highlighter.highlight(objects);
|
|
1390
|
-
objects.forEach((object) => this.viewer.selected.push(object));
|
|
1391
|
-
objects.forEach((object) => (object.isSelected = true));
|
|
1392
|
-
}
|
|
1393
1376
|
update() {
|
|
1394
1377
|
let moved = false;
|
|
1395
1378
|
let upgradeGroundFollowing = false;
|
|
@@ -1489,14 +1472,12 @@ class WalkDragger {
|
|
|
1489
1472
|
this.controls.rotateDelta.set(0, 0);
|
|
1490
1473
|
};
|
|
1491
1474
|
const meshOnlyGround = [];
|
|
1492
|
-
viewer.models
|
|
1493
|
-
obj
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
});
|
|
1499
|
-
this.controls = new WalkControls(viewer.camera, viewer.canvas, meshOnlyGround, viewer);
|
|
1475
|
+
viewer.models.forEach((model) => model.getVisibleObjects().forEach((obj) => {
|
|
1476
|
+
if (obj instanceof Mesh) {
|
|
1477
|
+
meshOnlyGround.push(obj);
|
|
1478
|
+
}
|
|
1479
|
+
}));
|
|
1480
|
+
this.controls = new WalkControls(viewer.camera, viewer.canvas, meshOnlyGround);
|
|
1500
1481
|
this.controls.addEventListener("change", this.controlsChange);
|
|
1501
1482
|
this.controls.addEventListener("walkspeedchange", this.walkspeedChange);
|
|
1502
1483
|
this.viewer = viewer;
|
|
@@ -1844,6 +1825,7 @@ function regenerateAll(viewer) {
|
|
|
1844
1825
|
}
|
|
1845
1826
|
|
|
1846
1827
|
function resetView(viewer) {
|
|
1828
|
+
const reset = viewer.getComponent("ResetComponent");
|
|
1847
1829
|
viewer.executeCommand("setActiveDragger");
|
|
1848
1830
|
viewer.executeCommand("clearSlices");
|
|
1849
1831
|
viewer.executeCommand("clearOverlay");
|
|
@@ -1852,7 +1834,7 @@ function resetView(viewer) {
|
|
|
1852
1834
|
viewer.executeCommand("showAll");
|
|
1853
1835
|
viewer.executeCommand("explode", 0);
|
|
1854
1836
|
viewer.executeCommand("zoomToExtents", true);
|
|
1855
|
-
|
|
1837
|
+
reset.resetCameraPosition();
|
|
1856
1838
|
viewer.emit({ type: "resetview" });
|
|
1857
1839
|
}
|
|
1858
1840
|
|
|
@@ -2590,6 +2572,31 @@ class WCSHelperComponent {
|
|
|
2590
2572
|
}
|
|
2591
2573
|
}
|
|
2592
2574
|
|
|
2575
|
+
class ResetComponent {
|
|
2576
|
+
constructor(viewer) {
|
|
2577
|
+
this.savedCameraPosition = null;
|
|
2578
|
+
this.onDatabaseChunk = () => {
|
|
2579
|
+
this.savedCameraPosition = {
|
|
2580
|
+
position: this.viewer.camera.position.clone(),
|
|
2581
|
+
up: this.viewer.camera.up.clone(),
|
|
2582
|
+
direction: this.viewer.camera.getWorldDirection(new Vector3()),
|
|
2583
|
+
};
|
|
2584
|
+
};
|
|
2585
|
+
this.viewer = viewer;
|
|
2586
|
+
this.viewer.addEventListener("databasechunk", this.onDatabaseChunk);
|
|
2587
|
+
}
|
|
2588
|
+
dispose() {
|
|
2589
|
+
this.viewer.removeEventListener("databasechunk", this.onDatabaseChunk);
|
|
2590
|
+
}
|
|
2591
|
+
resetCameraPosition() {
|
|
2592
|
+
if (this.savedCameraPosition) {
|
|
2593
|
+
this.viewer.camera.position.copy(this.savedCameraPosition.position);
|
|
2594
|
+
this.viewer.camera.up.copy(this.savedCameraPosition.up);
|
|
2595
|
+
this.viewer.camera.lookAt(this.savedCameraPosition.position.clone().add(this.savedCameraPosition.direction));
|
|
2596
|
+
}
|
|
2597
|
+
}
|
|
2598
|
+
}
|
|
2599
|
+
|
|
2593
2600
|
const components = componentsRegistry("threejs");
|
|
2594
2601
|
components.registerComponent("ExtentsComponent", (viewer) => new ExtentsComponent(viewer));
|
|
2595
2602
|
components.registerComponent("CameraComponent", (viewer) => new CameraComponent(viewer));
|
|
@@ -2600,6 +2607,7 @@ components.registerComponent("RenderLoopComponent", (viewer) => new RenderLoopCo
|
|
|
2600
2607
|
components.registerComponent("HighlighterComponent", (viewer) => new HighlighterComponent(viewer));
|
|
2601
2608
|
components.registerComponent("SelectionComponent", (viewer) => new SelectionComponent(viewer));
|
|
2602
2609
|
components.registerComponent("WCSHelperComponent", (viewer) => new WCSHelperComponent(viewer));
|
|
2610
|
+
components.registerComponent("ResetComponent", (viewer) => new ResetComponent(viewer));
|
|
2603
2611
|
|
|
2604
2612
|
class GLTFLoadingManager extends LoadingManager {
|
|
2605
2613
|
constructor(file, params = {}) {
|