@inweb/viewer-visualize 25.9.8 → 25.11.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.
- package/README.md +1 -1
- package/dist/viewer-visualize.js +252 -163
- package/dist/viewer-visualize.js.map +1 -1
- package/dist/viewer-visualize.min.js +1 -1
- package/dist/viewer-visualize.module.js +211 -89
- package/dist/viewer-visualize.module.js.map +1 -1
- package/lib/Viewer/Commands/index.d.ts +1 -1
- package/lib/Viewer/Draggers/Actions/PanAction.d.ts +2 -2
- package/lib/Viewer/Draggers/Actions/ZoomAction.d.ts +1 -1
- package/lib/Viewer/Draggers/Common/OdBaseDragger.d.ts +1 -1
- package/lib/Viewer/Draggers/MeasureLineDragger/index.d.ts +4 -0
- package/lib/Viewer/Draggers/OdOrbitDragger.d.ts +1 -1
- package/lib/Viewer/Draggers/OdPanDragger.d.ts +2 -2
- package/lib/Viewer/Draggers/OdZoomDragger.d.ts +5 -2
- package/lib/Viewer/Draggers/OdZoomWindowDragger/index.d.ts +1 -1
- package/lib/Viewer/Draggers/OrbitAroundBuildingDragger.d.ts +1 -1
- package/lib/Viewer/Viewer.d.ts +25 -67
- package/package.json +6 -6
- package/src/Viewer/Commands/{Unselect.ts → ClearSelected.ts} +4 -3
- package/src/Viewer/Commands/Explode.ts +1 -1
- package/src/Viewer/Commands/HideSelected.ts +2 -1
- package/src/Viewer/Commands/IsolateSelected.ts +1 -1
- package/src/Viewer/Commands/ResetView.ts +1 -1
- package/src/Viewer/Commands/ShowAll.ts +1 -1
- package/src/Viewer/Commands/index.ts +1 -1
- package/src/Viewer/Draggers/Actions/PanAction.ts +8 -8
- package/src/Viewer/Draggers/Actions/ZoomAction.ts +3 -1
- package/src/Viewer/Draggers/Common/GestureManager.ts +3 -3
- package/src/Viewer/Draggers/Common/OdBaseDragger.ts +3 -3
- package/src/Viewer/Draggers/MeasureLineDragger/MeasureLineItem.ts +6 -1
- package/src/Viewer/Draggers/MeasureLineDragger/index.ts +81 -3
- package/src/Viewer/Draggers/OdOrbitDragger.ts +1 -1
- package/src/Viewer/Draggers/OdPanDragger.ts +4 -4
- package/src/Viewer/Draggers/OdZoomDragger.ts +13 -4
- package/src/Viewer/Draggers/OdZoomWheelDragger.ts +3 -1
- package/src/Viewer/Draggers/OdZoomWindowDragger/index.ts +1 -1
- package/src/Viewer/Draggers/OrbitAroundBuildingDragger.ts +1 -1
- package/src/Viewer/Markup/Visualize/VisualizeMarkup.ts +1 -0
- package/src/Viewer/Viewer.ts +61 -77
- /package/lib/{ConvetMath.d.ts → ConvertMath.d.ts} +0 -0
- /package/lib/Viewer/Commands/{Unselect.d.ts → ClearSelected.d.ts} +0 -0
- /package/src/{ConvetMath.ts → ConvertMath.ts} +0 -0
|
@@ -99,7 +99,8 @@ function defaultOptions() {
|
|
|
99
99
|
reverseZoomWheel: false,
|
|
100
100
|
enableZoomWheel: true,
|
|
101
101
|
enableGestures: true,
|
|
102
|
-
geometryType: "vsfx"
|
|
102
|
+
geometryType: "vsfx",
|
|
103
|
+
rulerUnit: "Default"
|
|
103
104
|
};
|
|
104
105
|
}
|
|
105
106
|
|
|
@@ -359,6 +360,13 @@ class Options {
|
|
|
359
360
|
this._data.geometryType = value;
|
|
360
361
|
this.change();
|
|
361
362
|
}
|
|
363
|
+
get rulerUnit() {
|
|
364
|
+
return this._data.rulerUnit;
|
|
365
|
+
}
|
|
366
|
+
set rulerUnit(value) {
|
|
367
|
+
this._data.rulerUnit = value;
|
|
368
|
+
this.change();
|
|
369
|
+
}
|
|
362
370
|
}
|
|
363
371
|
|
|
364
372
|
const CanvasEvents = [ "click", "contextmenu", "dblclick", "mousedown", "mouseleave", "mousemove", "mouseup", "pointercancel", "pointerdown", "pointerleave", "pointermove", "pointerup", "touchcancel", "touchend", "touchmove", "touchstart", "wheel" ];
|
|
@@ -413,6 +421,22 @@ commands("VisualizeJS").registerCommand("clearMarkup", (viewer => viewer.clearOv
|
|
|
413
421
|
|
|
414
422
|
commands("VisualizeJS").registerCommandAlias("clearMarkup", "clearOverlay");
|
|
415
423
|
|
|
424
|
+
function clearSelected(viewer) {
|
|
425
|
+
if (!viewer.visualizeJs) return;
|
|
426
|
+
const visViewer = viewer.visViewer();
|
|
427
|
+
visViewer.unselect();
|
|
428
|
+
viewer.update();
|
|
429
|
+
viewer.emitEvent({
|
|
430
|
+
type: "select",
|
|
431
|
+
data: undefined,
|
|
432
|
+
handles: []
|
|
433
|
+
});
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
commands("VisualizeJS").registerCommand("clearSelected", clearSelected);
|
|
437
|
+
|
|
438
|
+
commands("VisualizeJS").registerCommandAlias("clearSelected", "unselect");
|
|
439
|
+
|
|
416
440
|
commands("VisualizeJS").registerCommand("clearSlices", (viewer => viewer.clearSlices()));
|
|
417
441
|
|
|
418
442
|
function createPreview(viewer, type = "image/jpeg", encoderOptions = .25) {
|
|
@@ -428,7 +452,7 @@ function explode(viewer, index = 0) {
|
|
|
428
452
|
const visViewer = viewer.visViewer();
|
|
429
453
|
visViewer.explode(index);
|
|
430
454
|
viewer.update();
|
|
431
|
-
viewer.
|
|
455
|
+
viewer.emitEvent({
|
|
432
456
|
type: "explode",
|
|
433
457
|
data: index
|
|
434
458
|
});
|
|
@@ -490,9 +514,14 @@ function hideSelected(viewer) {
|
|
|
490
514
|
const visViewer = viewer.visViewer();
|
|
491
515
|
visViewer.hideSelectedObjects(false);
|
|
492
516
|
viewer.update();
|
|
493
|
-
viewer.
|
|
517
|
+
viewer.emitEvent({
|
|
494
518
|
type: "hide"
|
|
495
519
|
});
|
|
520
|
+
viewer.emitEvent({
|
|
521
|
+
type: "select",
|
|
522
|
+
data: undefined,
|
|
523
|
+
handles: []
|
|
524
|
+
});
|
|
496
525
|
}
|
|
497
526
|
|
|
498
527
|
commands("VisualizeJS").registerCommand("hideSelected", hideSelected);
|
|
@@ -502,7 +531,7 @@ function isolateSelected(viewer) {
|
|
|
502
531
|
const visViewer = viewer.visViewer();
|
|
503
532
|
visViewer.isolateSelectedObjects(false);
|
|
504
533
|
viewer.update();
|
|
505
|
-
viewer.
|
|
534
|
+
viewer.emitEvent({
|
|
506
535
|
type: "isolate"
|
|
507
536
|
});
|
|
508
537
|
}
|
|
@@ -527,7 +556,7 @@ function resetView(viewer) {
|
|
|
527
556
|
viewer.executeCommand("clearSlices");
|
|
528
557
|
viewer.executeCommand("clearOverlay");
|
|
529
558
|
viewer.executeCommand("setMarkupColor");
|
|
530
|
-
viewer.executeCommand("
|
|
559
|
+
viewer.executeCommand("clearSelected");
|
|
531
560
|
viewer.executeCommand("showAll");
|
|
532
561
|
viewer.executeCommand("explode", 0);
|
|
533
562
|
viewer.executeCommand("zoomToExtents", true);
|
|
@@ -634,27 +663,13 @@ function showAll(viewer) {
|
|
|
634
663
|
const visViewer = viewer.visViewer();
|
|
635
664
|
visViewer.unisolateSelectedObjects(false);
|
|
636
665
|
viewer.update();
|
|
637
|
-
viewer.
|
|
666
|
+
viewer.emitEvent({
|
|
638
667
|
type: "showall"
|
|
639
668
|
});
|
|
640
669
|
}
|
|
641
670
|
|
|
642
671
|
commands("VisualizeJS").registerCommand("showAll", showAll);
|
|
643
672
|
|
|
644
|
-
function unselect(viewer) {
|
|
645
|
-
if (!viewer.visualizeJs) return;
|
|
646
|
-
const visViewer = viewer.visViewer();
|
|
647
|
-
visViewer.unselect();
|
|
648
|
-
viewer.update();
|
|
649
|
-
viewer.emitEvent({
|
|
650
|
-
type: "select",
|
|
651
|
-
data: visViewer.getSelected(),
|
|
652
|
-
handles: []
|
|
653
|
-
});
|
|
654
|
-
}
|
|
655
|
-
|
|
656
|
-
commands("VisualizeJS").registerCommand("unselect", unselect);
|
|
657
|
-
|
|
658
673
|
function zoomToExtents(viewer, force = false, animate = viewer.options.cameraAnimation) {
|
|
659
674
|
if (!viewer.visualizeJs) return;
|
|
660
675
|
const visViewer = viewer.visViewer();
|
|
@@ -1770,33 +1785,21 @@ class KonvaMarkup {
|
|
|
1770
1785
|
this._konvaStage.height(height);
|
|
1771
1786
|
};
|
|
1772
1787
|
this.pan = event => {
|
|
1773
|
-
const pointer = this._konvaStage.getPointerPosition();
|
|
1774
|
-
const pointTo = {
|
|
1775
|
-
x: (pointer.x - this._konvaStage.x()) / this._konvaStage.scaleX(),
|
|
1776
|
-
y: (pointer.y - this._konvaStage.y()) / this._konvaStage.scaleX()
|
|
1777
|
-
};
|
|
1778
1788
|
const newPos = {
|
|
1779
|
-
x:
|
|
1780
|
-
y:
|
|
1789
|
+
x: this._konvaStage.x() + event.dX,
|
|
1790
|
+
y: this._konvaStage.y() + event.dY
|
|
1781
1791
|
};
|
|
1782
1792
|
this._konvaStage.position(newPos);
|
|
1783
1793
|
};
|
|
1784
1794
|
this.zoomAt = event => {
|
|
1785
|
-
const
|
|
1786
|
-
const pointer = this._konvaStage.getPointerPosition();
|
|
1787
|
-
const mousePointTo = {
|
|
1788
|
-
x: (pointer.x - this._konvaStage.x()) / oldScale,
|
|
1789
|
-
y: (pointer.y - this._konvaStage.y()) / oldScale
|
|
1790
|
-
};
|
|
1791
|
-
const direction = event.data > 0 ? 1 : -1;
|
|
1792
|
-
const newScale = direction > 0 ? oldScale * event.data : oldScale / event.data;
|
|
1795
|
+
const newScale = this._konvaStage.scaleX() * event.data;
|
|
1793
1796
|
this._konvaStage.scale({
|
|
1794
1797
|
x: newScale,
|
|
1795
1798
|
y: newScale
|
|
1796
1799
|
});
|
|
1797
1800
|
const newPos = {
|
|
1798
|
-
x:
|
|
1799
|
-
y:
|
|
1801
|
+
x: event.x - (event.x - this._konvaStage.x()) * event.data,
|
|
1802
|
+
y: event.y - (event.y - this._konvaStage.y()) * event.data
|
|
1800
1803
|
};
|
|
1801
1804
|
this._konvaStage.position(newPos);
|
|
1802
1805
|
};
|
|
@@ -1822,6 +1825,7 @@ class KonvaMarkup {
|
|
|
1822
1825
|
this._markupContainer.style.top = "0px";
|
|
1823
1826
|
this._markupContainer.style.left = "0px";
|
|
1824
1827
|
this._markupContainer.style.outline = "0px";
|
|
1828
|
+
this._markupContainer.style.pointerEvents = "none";
|
|
1825
1829
|
const parentDiv = this._container.parentElement;
|
|
1826
1830
|
parentDiv.appendChild(this._markupContainer);
|
|
1827
1831
|
this._resizeObserver = new ResizeObserver(this.resizeContainer);
|
|
@@ -1829,7 +1833,6 @@ class KonvaMarkup {
|
|
|
1829
1833
|
this._markupColor.setColor(255, 0, 0);
|
|
1830
1834
|
this.initializeKonva();
|
|
1831
1835
|
if (this._viewer) {
|
|
1832
|
-
this._containerEvents.forEach((x => this._markupContainer.addEventListener(x, this.redirectToViewer)));
|
|
1833
1836
|
this._viewer.addEventListener("changeactivedragger", this.changeActiveDragger);
|
|
1834
1837
|
this._viewer.addEventListener("pan", this.pan);
|
|
1835
1838
|
this._viewer.addEventListener("zoomat", this.zoomAt);
|
|
@@ -1841,7 +1844,6 @@ class KonvaMarkup {
|
|
|
1841
1844
|
this._viewer.removeEventListener("zoomat", this.zoomAt);
|
|
1842
1845
|
this._viewer.removeEventListener("pan", this.pan);
|
|
1843
1846
|
this._viewer.removeEventListener("changeactivedragger", this.changeActiveDragger);
|
|
1844
|
-
this._containerEvents.forEach((x => this._markupContainer.removeEventListener(x, this.redirectToViewer)));
|
|
1845
1847
|
}
|
|
1846
1848
|
this.destroyKonva();
|
|
1847
1849
|
(_a = this._resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
@@ -1865,6 +1867,14 @@ class KonvaMarkup {
|
|
|
1865
1867
|
}
|
|
1866
1868
|
setMarkupColor(r, g, b) {
|
|
1867
1869
|
this._markupColor.setColor(r, g, b);
|
|
1870
|
+
this._viewer.emit({
|
|
1871
|
+
type: "changemarkupcolor",
|
|
1872
|
+
data: {
|
|
1873
|
+
r: r,
|
|
1874
|
+
g: g,
|
|
1875
|
+
b: b
|
|
1876
|
+
}
|
|
1877
|
+
});
|
|
1868
1878
|
}
|
|
1869
1879
|
colorizeAllMarkup(r, g, b) {
|
|
1870
1880
|
const hexColor = new MarkupColor(r, g, b).asHex();
|
|
@@ -1957,9 +1967,11 @@ class KonvaMarkup {
|
|
|
1957
1967
|
this.clearSelected();
|
|
1958
1968
|
this.removeTextInput();
|
|
1959
1969
|
this.removeImageInput();
|
|
1970
|
+
this._markupContainer.style.pointerEvents = "none";
|
|
1960
1971
|
this._markupIsActive = false;
|
|
1961
1972
|
} else {
|
|
1962
1973
|
this._markupMode = mode;
|
|
1974
|
+
this._markupContainer.style.pointerEvents = "all";
|
|
1963
1975
|
this._markupIsActive = true;
|
|
1964
1976
|
}
|
|
1965
1977
|
return this;
|
|
@@ -2814,7 +2826,7 @@ class OdBaseDragger extends OdaGeAction {
|
|
|
2814
2826
|
}
|
|
2815
2827
|
ev.target.releasePointerCapture(ev.pointerId);
|
|
2816
2828
|
const relCoord = this.relativeCoords(ev);
|
|
2817
|
-
this.end(relCoord.x, relCoord.y);
|
|
2829
|
+
this.end(relCoord.x, relCoord.y, ev.clientX, ev.clientY);
|
|
2818
2830
|
this.isDragging = false;
|
|
2819
2831
|
this.subject.update();
|
|
2820
2832
|
}
|
|
@@ -2829,7 +2841,7 @@ class OdBaseDragger extends OdaGeAction {
|
|
|
2829
2841
|
return;
|
|
2830
2842
|
}
|
|
2831
2843
|
const relCoord = this.relativeCoords(ev);
|
|
2832
|
-
this.drag(relCoord.x, relCoord.y, ev.
|
|
2844
|
+
this.drag(relCoord.x, relCoord.y, ev.clientX, ev.clientY);
|
|
2833
2845
|
if (this.isDragging) {
|
|
2834
2846
|
this.subject.update();
|
|
2835
2847
|
}
|
|
@@ -2884,7 +2896,7 @@ class OdBaseDragger extends OdaGeAction {
|
|
|
2884
2896
|
}
|
|
2885
2897
|
start(x, y, absoluteX = 0, absoluteY = 0) {}
|
|
2886
2898
|
drag(x, y, absoluteX = 0, absoluteY = 0) {}
|
|
2887
|
-
end(x, y) {}
|
|
2899
|
+
end(x, y, absoluteX = 0, absoluteY = 0) {}
|
|
2888
2900
|
getActiveMarkupEntity(entityName) {
|
|
2889
2901
|
return this.subject.addMarkupEntity(entityName);
|
|
2890
2902
|
}
|
|
@@ -3180,7 +3192,11 @@ class MeasureLineItem {
|
|
|
3180
3192
|
}
|
|
3181
3193
|
}
|
|
3182
3194
|
getDistance() {
|
|
3183
|
-
|
|
3195
|
+
let distance = getDistance(this.startPoint, this.endPoint, this.moduleInstance);
|
|
3196
|
+
if (Math.abs(this.scale - 1) > 1e-4) {
|
|
3197
|
+
distance = (distance / this.scale).toFixed(2);
|
|
3198
|
+
}
|
|
3199
|
+
return distance;
|
|
3184
3200
|
}
|
|
3185
3201
|
setStartPoint(gePoint) {
|
|
3186
3202
|
this.startPoint = gePoint;
|
|
@@ -3237,6 +3253,7 @@ function renameUnit(table, unit) {
|
|
|
3237
3253
|
|
|
3238
3254
|
class MeasureLineDragger extends OdBaseDragger {
|
|
3239
3255
|
constructor(subject) {
|
|
3256
|
+
var _a;
|
|
3240
3257
|
super(subject);
|
|
3241
3258
|
this.lineThickness = 2;
|
|
3242
3259
|
this.press = false;
|
|
@@ -3254,10 +3271,12 @@ class MeasureLineDragger extends OdBaseDragger {
|
|
|
3254
3271
|
Miles: "mi",
|
|
3255
3272
|
Micrometers: "µm",
|
|
3256
3273
|
MicroInches: "µin",
|
|
3257
|
-
|
|
3274
|
+
Default: "unit"
|
|
3258
3275
|
};
|
|
3259
3276
|
this.items = [];
|
|
3260
3277
|
this.canvasEvents.push("resize");
|
|
3278
|
+
this.oldRulerUnit = (_a = subject.options.rulerUnit) !== null && _a !== void 0 ? _a : "Default";
|
|
3279
|
+
this.optionsChange = this.optionsChange.bind(this);
|
|
3261
3280
|
}
|
|
3262
3281
|
initialize() {
|
|
3263
3282
|
super.initialize();
|
|
@@ -3267,11 +3286,13 @@ class MeasureLineDragger extends OdBaseDragger {
|
|
|
3267
3286
|
this.m_overlayElement.style.zIndex = "1";
|
|
3268
3287
|
this.m_overlayElement.style.pointerEvents = "none";
|
|
3269
3288
|
document.body.appendChild(this.m_overlayElement);
|
|
3289
|
+
this.subject.addEventListener("optionschange", this.optionsChange);
|
|
3270
3290
|
this.resize();
|
|
3271
3291
|
}
|
|
3272
3292
|
dispose() {
|
|
3273
3293
|
super.dispose();
|
|
3274
3294
|
this.m_overlayElement.remove();
|
|
3295
|
+
this.subject.removeEventListener("optionschange", this.optionsChange);
|
|
3275
3296
|
}
|
|
3276
3297
|
updatePreview() {
|
|
3277
3298
|
this.items.forEach((item => item.update()));
|
|
@@ -3346,10 +3367,86 @@ class MeasureLineDragger extends OdBaseDragger {
|
|
|
3346
3367
|
const viewer = this.m_module.getViewer();
|
|
3347
3368
|
const item = new MeasureLineItem(this.m_overlayElement, viewer, this.m_module);
|
|
3348
3369
|
item.lineThickness = this.lineThickness || item.lineThickness;
|
|
3349
|
-
|
|
3370
|
+
const isDefaultUnit = !this.subject.options.rulerUnit || this.subject.options.rulerUnit === "Default";
|
|
3371
|
+
item.setUnit(renameUnit(this.renameUnitTable, isDefaultUnit ? viewer.getUnit() : this.subject.options.rulerUnit));
|
|
3372
|
+
if (!isDefaultUnit) {
|
|
3373
|
+
const fromUnit = this.getKUnitByName(viewer.getUnit());
|
|
3374
|
+
const toUnit = this.getKUnitByName(this.subject.options.rulerUnit);
|
|
3375
|
+
const multiplier = viewer.getUnitsConversionCoef(fromUnit, toUnit);
|
|
3376
|
+
this.conversionFactor = 1 / multiplier;
|
|
3377
|
+
item.setConversionFactor(this.conversionFactor);
|
|
3378
|
+
} else {
|
|
3379
|
+
item.setConversionFactor(1);
|
|
3380
|
+
}
|
|
3350
3381
|
this.items.push(item);
|
|
3351
3382
|
return item;
|
|
3352
3383
|
}
|
|
3384
|
+
optionsChange(event) {
|
|
3385
|
+
var _a;
|
|
3386
|
+
const options = event.data;
|
|
3387
|
+
const toUnitName = (_a = options.rulerUnit) !== null && _a !== void 0 ? _a : "Default";
|
|
3388
|
+
if (this.oldRulerUnit === toUnitName) return;
|
|
3389
|
+
this.oldRulerUnit = toUnitName;
|
|
3390
|
+
const drawingUnit = this.m_module.getViewer().getUnit();
|
|
3391
|
+
const eToUnit = this.getKUnitByName(toUnitName);
|
|
3392
|
+
const eFromUnit = this.getKUnitByName(drawingUnit);
|
|
3393
|
+
this.items.forEach((item => {
|
|
3394
|
+
if (toUnitName === "Default") {
|
|
3395
|
+
item.setUnit(renameUnit(this.renameUnitTable, drawingUnit));
|
|
3396
|
+
item.setConversionFactor(1);
|
|
3397
|
+
} else {
|
|
3398
|
+
item.setUnit(renameUnit(this.renameUnitTable, toUnitName));
|
|
3399
|
+
const multiplier = this.m_module.getViewer().getUnitsConversionCoef(eFromUnit, eToUnit);
|
|
3400
|
+
this.conversionFactor = 1 / multiplier;
|
|
3401
|
+
item.setConversionFactor(this.conversionFactor);
|
|
3402
|
+
}
|
|
3403
|
+
}));
|
|
3404
|
+
}
|
|
3405
|
+
getKUnitByName(unitName) {
|
|
3406
|
+
let eUnit = this.m_module.Units.kUserDefined;
|
|
3407
|
+
switch (unitName) {
|
|
3408
|
+
case "Millimeters":
|
|
3409
|
+
eUnit = this.m_module.Units.kMillimeters;
|
|
3410
|
+
break;
|
|
3411
|
+
|
|
3412
|
+
case "Centimeters":
|
|
3413
|
+
eUnit = this.m_module.Units.kCentimeters;
|
|
3414
|
+
break;
|
|
3415
|
+
|
|
3416
|
+
case "Meters":
|
|
3417
|
+
eUnit = this.m_module.Units.kMeters;
|
|
3418
|
+
break;
|
|
3419
|
+
|
|
3420
|
+
case "Feet":
|
|
3421
|
+
eUnit = this.m_module.Units.kFeet;
|
|
3422
|
+
break;
|
|
3423
|
+
|
|
3424
|
+
case "Inches":
|
|
3425
|
+
eUnit = this.m_module.Units.kInches;
|
|
3426
|
+
break;
|
|
3427
|
+
|
|
3428
|
+
case "Yards":
|
|
3429
|
+
eUnit = this.m_module.Units.kYards;
|
|
3430
|
+
break;
|
|
3431
|
+
|
|
3432
|
+
case "Kilometers":
|
|
3433
|
+
eUnit = this.m_module.Units.kKilometers;
|
|
3434
|
+
break;
|
|
3435
|
+
|
|
3436
|
+
case "Miles":
|
|
3437
|
+
eUnit = this.m_module.Units.kMiles;
|
|
3438
|
+
break;
|
|
3439
|
+
|
|
3440
|
+
case "Micrometers":
|
|
3441
|
+
eUnit = this.m_module.Units.kMicrometers;
|
|
3442
|
+
break;
|
|
3443
|
+
|
|
3444
|
+
case "MicroInches":
|
|
3445
|
+
eUnit = this.m_module.Units.kMicroInches;
|
|
3446
|
+
break;
|
|
3447
|
+
}
|
|
3448
|
+
return eUnit;
|
|
3449
|
+
}
|
|
3353
3450
|
}
|
|
3354
3451
|
|
|
3355
3452
|
const FocalLengthConst = 42;
|
|
@@ -3881,7 +3978,7 @@ class OdOrbitDragger extends OdBaseDragger {
|
|
|
3881
3978
|
extView.setView(this.startCameraParams.position, this.startCameraParams.target, this.startCameraParams.upVector, this.startCameraParams.viewFieldWidth, this.startCameraParams.viewFieldHeight, this.startCameraParams.perspective);
|
|
3882
3979
|
extView.delete();
|
|
3883
3980
|
}
|
|
3884
|
-
drag(x, y
|
|
3981
|
+
drag(x, y) {
|
|
3885
3982
|
if (this.press) {
|
|
3886
3983
|
this._orbitAction.action(x, y);
|
|
3887
3984
|
}
|
|
@@ -3901,15 +3998,15 @@ class PanAction {
|
|
|
3901
3998
|
this._getViewParams = getViewParams;
|
|
3902
3999
|
this._setViewParams = setViewParams;
|
|
3903
4000
|
}
|
|
3904
|
-
beginAction(x, y) {
|
|
4001
|
+
beginAction(x, y, absoluteX, absoluteY) {
|
|
3905
4002
|
this._m_start = this.screenToWorld(x, y);
|
|
3906
4003
|
this._deltaScreenPosition = {
|
|
3907
|
-
x:
|
|
3908
|
-
y:
|
|
4004
|
+
x: absoluteX,
|
|
4005
|
+
y: absoluteY
|
|
3909
4006
|
};
|
|
3910
4007
|
this._beginInteractivity();
|
|
3911
4008
|
}
|
|
3912
|
-
action(x, y) {
|
|
4009
|
+
action(x, y, absoluteX, absoluteY) {
|
|
3913
4010
|
var _a;
|
|
3914
4011
|
const {Vector3d: Vector3d} = this._m_module;
|
|
3915
4012
|
const params = this._getViewParams();
|
|
@@ -3930,14 +4027,14 @@ class PanAction {
|
|
|
3930
4027
|
(_a = this._subject.activeDragger()) === null || _a === void 0 ? void 0 : _a.updatePreview();
|
|
3931
4028
|
this._subject.emitEvent({
|
|
3932
4029
|
type: "pan",
|
|
3933
|
-
x:
|
|
3934
|
-
y:
|
|
3935
|
-
dX:
|
|
3936
|
-
dY:
|
|
4030
|
+
x: absoluteX,
|
|
4031
|
+
y: absoluteY,
|
|
4032
|
+
dX: absoluteX - this._deltaScreenPosition.x,
|
|
4033
|
+
dY: absoluteY - this._deltaScreenPosition.y
|
|
3937
4034
|
});
|
|
3938
4035
|
this._deltaScreenPosition = {
|
|
3939
|
-
x:
|
|
3940
|
-
y:
|
|
4036
|
+
x: absoluteX,
|
|
4037
|
+
y: absoluteY
|
|
3941
4038
|
};
|
|
3942
4039
|
}
|
|
3943
4040
|
endAction() {
|
|
@@ -3955,13 +4052,13 @@ class OdPanDragger extends OdBaseDragger {
|
|
|
3955
4052
|
this.press = false;
|
|
3956
4053
|
this._panAction = new PanAction(this.m_module, this.subject, this.beginInteractivity, this.endInteractivity, this.getViewParams, this.setViewParams);
|
|
3957
4054
|
}
|
|
3958
|
-
start(x, y) {
|
|
4055
|
+
start(x, y, absoluteX, absoluteY) {
|
|
3959
4056
|
this.press = true;
|
|
3960
|
-
this._panAction.beginAction(x, y);
|
|
4057
|
+
this._panAction.beginAction(x, y, absoluteX, absoluteY);
|
|
3961
4058
|
}
|
|
3962
|
-
drag(x, y,
|
|
4059
|
+
drag(x, y, absoluteX, absoluteY) {
|
|
3963
4060
|
if (this.press) {
|
|
3964
|
-
this._panAction.action(x, y);
|
|
4061
|
+
this._panAction.action(x, y, absoluteX, absoluteY);
|
|
3965
4062
|
}
|
|
3966
4063
|
}
|
|
3967
4064
|
end(x, y) {
|
|
@@ -3975,7 +4072,7 @@ class ZoomAction {
|
|
|
3975
4072
|
this._m_module = m_module;
|
|
3976
4073
|
this._subject = subject;
|
|
3977
4074
|
}
|
|
3978
|
-
action(x, y, zoomFactor) {
|
|
4075
|
+
action(x, y, zoomFactor, absoluteX, absoluteY) {
|
|
3979
4076
|
var _a;
|
|
3980
4077
|
const viewer = this._m_module.getViewer();
|
|
3981
4078
|
viewer.zoomAt(zoomFactor, x, y);
|
|
@@ -3983,7 +4080,9 @@ class ZoomAction {
|
|
|
3983
4080
|
(_a = this._subject.activeDragger()) === null || _a === void 0 ? void 0 : _a.updatePreview();
|
|
3984
4081
|
this._subject.emitEvent({
|
|
3985
4082
|
type: "zoomat",
|
|
3986
|
-
data: zoomFactor
|
|
4083
|
+
data: zoomFactor,
|
|
4084
|
+
x: absoluteX,
|
|
4085
|
+
y: absoluteY
|
|
3987
4086
|
});
|
|
3988
4087
|
}
|
|
3989
4088
|
}
|
|
@@ -3995,17 +4094,22 @@ class OdZoomDragger extends OdBaseDragger {
|
|
|
3995
4094
|
this.press = false;
|
|
3996
4095
|
this._zoomAction = new ZoomAction(this.m_module, this.subject);
|
|
3997
4096
|
}
|
|
3998
|
-
start(x, y) {
|
|
4097
|
+
start(x, y, absoluteX = 0, absoluteY = 0) {
|
|
3999
4098
|
this.press = true;
|
|
4000
4099
|
this.pressX = x;
|
|
4001
4100
|
this.pressY = y;
|
|
4101
|
+
this.absoluteX = absoluteX;
|
|
4102
|
+
this.absoluteY = absoluteY;
|
|
4103
|
+
this.prevY = y;
|
|
4002
4104
|
this.beginInteractivity();
|
|
4003
4105
|
}
|
|
4004
|
-
drag(x, y
|
|
4106
|
+
drag(x, y) {
|
|
4107
|
+
const dltY = y - this.prevY;
|
|
4108
|
+
this.prevY = y;
|
|
4005
4109
|
if (this.press && Math.abs(dltY) >= 1e-5) {
|
|
4006
4110
|
const ZOOM_SPEED = .025;
|
|
4007
4111
|
const zoomFactor = dltY > 0 ? 1 + ZOOM_SPEED : 1 - ZOOM_SPEED;
|
|
4008
|
-
this._zoomAction.action(this.pressX, this.pressY, zoomFactor);
|
|
4112
|
+
this._zoomAction.action(this.pressX, this.pressY, zoomFactor, this.absoluteX, this.absoluteY);
|
|
4009
4113
|
}
|
|
4010
4114
|
}
|
|
4011
4115
|
end() {
|
|
@@ -4035,7 +4139,7 @@ class OdZoomWheelDragger extends OdBaseDragger {
|
|
|
4035
4139
|
const viewer = this.getViewer();
|
|
4036
4140
|
if (viewer) {
|
|
4037
4141
|
const zoomFactor = event.deltaY > 0 ? 1 + zoomSpeed : 1 - zoomSpeed;
|
|
4038
|
-
this._zoomAction.action(event.offsetX * window.devicePixelRatio, event.offsetY * window.devicePixelRatio, zoomFactor);
|
|
4142
|
+
this._zoomAction.action(event.offsetX * window.devicePixelRatio, event.offsetY * window.devicePixelRatio, zoomFactor, event.offsetX, event.offsetY);
|
|
4039
4143
|
if (!this._isEnableInteractivityMode) {
|
|
4040
4144
|
this._isEnableInteractivityMode = true;
|
|
4041
4145
|
this.beginInteractivity();
|
|
@@ -4158,7 +4262,7 @@ class OdZoomWindowDragger extends OdBaseDragger {
|
|
|
4158
4262
|
const startPoint = this.screenToWorld(x, y);
|
|
4159
4263
|
this.m_frame.setStartPoint(startPoint);
|
|
4160
4264
|
}
|
|
4161
|
-
drag(x, y
|
|
4265
|
+
drag(x, y) {
|
|
4162
4266
|
if (this.press) {
|
|
4163
4267
|
this.m_maxX = x;
|
|
4164
4268
|
this.m_maxY = y;
|
|
@@ -4201,7 +4305,7 @@ class OrbitAroundBuildingDragger extends OdBaseDragger {
|
|
|
4201
4305
|
setDefaultViewParams() {
|
|
4202
4306
|
this.setViewParams(this.startCameraParams);
|
|
4203
4307
|
}
|
|
4204
|
-
drag(x, y
|
|
4308
|
+
drag(x, y) {
|
|
4205
4309
|
if (this.press) {
|
|
4206
4310
|
let dX = x - this.m_startPoint.x;
|
|
4207
4311
|
let dY = y - this.m_startPoint.y;
|
|
@@ -4386,7 +4490,7 @@ class GestureManager extends OdBaseDragger {
|
|
|
4386
4490
|
const zoomSpeed = (currentDistance - previousDistance) / 700;
|
|
4387
4491
|
const zoomFactor = 1 + zoomSpeed;
|
|
4388
4492
|
const middlePoint = this.getMiddlePoint(this._currentEvents);
|
|
4389
|
-
this._zoomAction.action(middlePoint.x, middlePoint.y, zoomFactor);
|
|
4493
|
+
this._zoomAction.action(middlePoint.x, middlePoint.y, zoomFactor, middlePoint.x, middlePoint.y);
|
|
4390
4494
|
this.subject.update();
|
|
4391
4495
|
}
|
|
4392
4496
|
executePanAction(currentPoint) {
|
|
@@ -4394,9 +4498,9 @@ class GestureManager extends OdBaseDragger {
|
|
|
4394
4498
|
this.executeEndAction(this._lastGestureAction);
|
|
4395
4499
|
this._lastGestureAction = GestureAction.Pan;
|
|
4396
4500
|
OdBaseDragger.isGestureActive = true;
|
|
4397
|
-
this._panAction.beginAction(currentPoint.x, currentPoint.y);
|
|
4501
|
+
this._panAction.beginAction(currentPoint.x, currentPoint.y, currentPoint.x, currentPoint.y);
|
|
4398
4502
|
}
|
|
4399
|
-
this._panAction.action(currentPoint.x, currentPoint.y);
|
|
4503
|
+
this._panAction.action(currentPoint.x, currentPoint.y, currentPoint.x, currentPoint.y);
|
|
4400
4504
|
this.subject.update();
|
|
4401
4505
|
}
|
|
4402
4506
|
executeOrbitAction(currentPoint) {
|
|
@@ -5074,6 +5178,10 @@ class VisualizeMarkup {
|
|
|
5074
5178
|
b: b
|
|
5075
5179
|
};
|
|
5076
5180
|
this._markupColor = color;
|
|
5181
|
+
this._viewer.emitEvent({
|
|
5182
|
+
type: "changemarkupcolor",
|
|
5183
|
+
data: color
|
|
5184
|
+
});
|
|
5077
5185
|
}
|
|
5078
5186
|
colorizeAllMarkup(r = 255, g = 0, b = 0) {
|
|
5079
5187
|
if (!this._viewer.visualizeJs) return;
|
|
@@ -5289,7 +5397,7 @@ class Viewer extends EventEmitter2 {
|
|
|
5289
5397
|
return this._markup;
|
|
5290
5398
|
}
|
|
5291
5399
|
configure(params) {
|
|
5292
|
-
this._visualizeJsUrl = params.visualizeJsUrl || "https://
|
|
5400
|
+
this._visualizeJsUrl = params.visualizeJsUrl || "https://public-fhemb7e3embacwec.z02.azurefd.net/libs/visualizejs/master/Visualize.js";
|
|
5293
5401
|
return this;
|
|
5294
5402
|
}
|
|
5295
5403
|
async initialize(canvas, onProgress) {
|
|
@@ -5349,7 +5457,7 @@ class Viewer extends EventEmitter2 {
|
|
|
5349
5457
|
});
|
|
5350
5458
|
if (this.frameId) cancelAnimationFrame(this.frameId);
|
|
5351
5459
|
this.frameId = 0;
|
|
5352
|
-
this.setActiveDragger(
|
|
5460
|
+
this.setActiveDragger();
|
|
5353
5461
|
this.removeAllListeners();
|
|
5354
5462
|
if (this._gestureManager) this._gestureManager.dispose();
|
|
5355
5463
|
this._gestureManager = undefined;
|
|
@@ -5594,7 +5702,7 @@ class Viewer extends EventEmitter2 {
|
|
|
5594
5702
|
activeDragger() {
|
|
5595
5703
|
return this._activeDragger;
|
|
5596
5704
|
}
|
|
5597
|
-
setActiveDragger(name) {
|
|
5705
|
+
setActiveDragger(name = "") {
|
|
5598
5706
|
var _a;
|
|
5599
5707
|
if (((_a = this._activeDragger) === null || _a === void 0 ? void 0 : _a.name) !== name) {
|
|
5600
5708
|
if (this._activeDragger) {
|
|
@@ -5623,7 +5731,7 @@ class Viewer extends EventEmitter2 {
|
|
|
5623
5731
|
resetActiveDragger() {
|
|
5624
5732
|
const dragger = this._activeDragger;
|
|
5625
5733
|
if (dragger) {
|
|
5626
|
-
this.setActiveDragger(
|
|
5734
|
+
this.setActiveDragger();
|
|
5627
5735
|
this.setActiveDragger(dragger.name);
|
|
5628
5736
|
}
|
|
5629
5737
|
}
|
|
@@ -5725,6 +5833,24 @@ class Viewer extends EventEmitter2 {
|
|
|
5725
5833
|
setSelected(handles) {
|
|
5726
5834
|
this.executeCommand("setSelected", handles);
|
|
5727
5835
|
}
|
|
5836
|
+
clearSelected() {
|
|
5837
|
+
this.executeCommand("clearSelected");
|
|
5838
|
+
}
|
|
5839
|
+
hideSelected() {
|
|
5840
|
+
this.executeCommand("hideSelected");
|
|
5841
|
+
}
|
|
5842
|
+
isolateSelected() {
|
|
5843
|
+
this.executeCommand("isolateSelected");
|
|
5844
|
+
}
|
|
5845
|
+
showAll() {
|
|
5846
|
+
this.executeCommand("showAll");
|
|
5847
|
+
}
|
|
5848
|
+
explode(index = 0) {
|
|
5849
|
+
this.executeCommand("explode", index);
|
|
5850
|
+
}
|
|
5851
|
+
collect() {
|
|
5852
|
+
this.executeCommand("collect");
|
|
5853
|
+
}
|
|
5728
5854
|
async loadReferences(model) {
|
|
5729
5855
|
var _a;
|
|
5730
5856
|
if (!this.visualizeJs) return this;
|
|
@@ -5774,7 +5900,8 @@ class Viewer extends EventEmitter2 {
|
|
|
5774
5900
|
const overrideOptions = new Options;
|
|
5775
5901
|
overrideOptions.data = this._options.data;
|
|
5776
5902
|
if (file.type === ".rcs" && !overrideOptions.enablePartialMode) {
|
|
5777
|
-
console.log("Partial
|
|
5903
|
+
console.log("Partial streaming mode is forced for RCS file");
|
|
5904
|
+
overrideOptions.enableStreamingMode = true;
|
|
5778
5905
|
overrideOptions.enablePartialMode = true;
|
|
5779
5906
|
}
|
|
5780
5907
|
const loaderFactory = new LoaderFactory;
|
|
@@ -5892,6 +6019,7 @@ class Viewer extends EventEmitter2 {
|
|
|
5892
6019
|
if (!this.visualizeJs) return this;
|
|
5893
6020
|
const visLib = this.visLib();
|
|
5894
6021
|
const visViewer = visLib.getViewer();
|
|
6022
|
+
this.setActiveDragger();
|
|
5895
6023
|
this.clearOverlay();
|
|
5896
6024
|
visViewer.clear();
|
|
5897
6025
|
visViewer.createLocalDatabase();
|
|
@@ -5904,21 +6032,15 @@ class Viewer extends EventEmitter2 {
|
|
|
5904
6032
|
return this;
|
|
5905
6033
|
}
|
|
5906
6034
|
getMarkupColor() {
|
|
6035
|
+
console.warn("Viewer.getMarkupColor() has been deprecated since 25.11 and will be removed in a future release, use Viewer.markup.getMarkupColor() instead.");
|
|
5907
6036
|
return this._markup.getMarkupColor();
|
|
5908
6037
|
}
|
|
5909
6038
|
setMarkupColor(r = 255, g = 0, b = 0) {
|
|
6039
|
+
console.warn("Viewer.setMarkupColor() has been deprecated since 25.11 and will be removed in a future release, use Viewer.markup.setMarkupColor() instead.");
|
|
5910
6040
|
this._markup.setMarkupColor(r, g, b);
|
|
5911
|
-
const color = {
|
|
5912
|
-
r: r,
|
|
5913
|
-
g: g,
|
|
5914
|
-
b: b
|
|
5915
|
-
};
|
|
5916
|
-
this.emitEvent({
|
|
5917
|
-
type: "changemarkupcolor",
|
|
5918
|
-
data: color
|
|
5919
|
-
});
|
|
5920
6041
|
}
|
|
5921
6042
|
colorizeAllMarkup(r = 255, g = 0, b = 0) {
|
|
6043
|
+
console.warn("Viewer.colorizeAllMarkup() has been deprecated since 25.11 and will be removed in a future release, use Viewer.markup.colorizeAllMarkup() instead.");
|
|
5922
6044
|
this._markup.colorizeAllMarkup(r, g, b);
|
|
5923
6045
|
}
|
|
5924
6046
|
colorizeSelectedMarkups(r = 255, g = 0, b = 0) {
|
|
@@ -5944,10 +6066,10 @@ class Viewer extends EventEmitter2 {
|
|
|
5944
6066
|
this._markup.setViewpoint(viewpoint);
|
|
5945
6067
|
}
|
|
5946
6068
|
createViewpoint() {
|
|
5947
|
-
const
|
|
5948
|
-
|
|
5949
|
-
|
|
5950
|
-
return
|
|
6069
|
+
const viewpoint = this._markup.getViewpoint();
|
|
6070
|
+
viewpoint.orthogonal_camera = this.getOrthogonalCameraSettings();
|
|
6071
|
+
viewpoint.clipping_planes = this.getClippingPlanes();
|
|
6072
|
+
return viewpoint;
|
|
5951
6073
|
}
|
|
5952
6074
|
getPoint3dFromArray(array) {
|
|
5953
6075
|
return {
|