@vertexvis/viewer 0.12.0 → 0.13.0-canary.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/dist/cjs/{config-acd7cea9.js → config-90ee43d5.js} +1 -1
- package/dist/cjs/{cursors-399a9648.js → cursors-ad2fd395.js} +7 -0
- package/dist/cjs/{controller-8cbcdd8d.js → entities-aa59890e.js} +57 -22
- package/dist/cjs/{index-cc65325e.js → index-e100709a.js} +64 -3
- package/dist/cjs/index.cjs.js +21 -11
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{model-18ef3363.js → mapper-f6e6cafe.js} +37 -191
- package/dist/cjs/model-4ec0c36e.js +134 -0
- package/dist/cjs/overlays-8a582edf.js +76 -0
- package/dist/cjs/results-bc325974.js +24 -0
- package/dist/cjs/{scene-ffee07ee.js → scene-f4040800.js} +1 -1
- package/dist/cjs/{stencil-bd453a38.js → stencil-a664cd10.js} +1 -1
- package/dist/cjs/{streamAttributes-9d6226ac.js → streamAttributes-d6236448.js} +87 -30
- package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +2 -2
- package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree-table-column.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree-table-header.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree-table-resize-divider.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree-toolbar-group.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree.cjs.entry.js +3 -3
- package/dist/cjs/vertex-viewer-button_3.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-dom-element_3.cjs.entry.js +4 -4
- package/dist/cjs/vertex-viewer-icon.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-layer.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-markup.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +221 -75
- package/dist/cjs/{vertex-viewer-measurement-distance_2.cjs.entry.js → vertex-viewer-measurement-distance.cjs.entry.js} +30 -69
- package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +170 -0
- package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +163 -55
- package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +2 -2
- package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +33 -4
- package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +4 -4
- package/dist/cjs/vertex-viewer.cjs.entry.js +58 -10
- package/dist/cjs/viewer.cjs.js +2 -2
- package/dist/cjs/{viewport-51aa05ab.js → viewport-8c39089f.js} +11 -0
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/viewer/viewer.js +2 -2
- package/dist/collection/components/viewer-dom-renderer/viewer-dom-renderer.js +2 -2
- package/dist/collection/components/viewer-measurement-details/viewer-measurement-details-entry.js +14 -0
- package/dist/collection/components/viewer-measurement-details/viewer-measurement-details-results.js +22 -0
- package/dist/collection/components/viewer-measurement-details/viewer-measurement-details.css +3 -10
- package/dist/collection/components/viewer-measurement-details/viewer-measurement-details.js +125 -188
- package/dist/collection/components/viewer-measurement-distance/interactions.js +3 -14
- package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js +41 -1
- package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays-components.js +30 -0
- package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays.css +51 -0
- package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays.js +149 -0
- package/dist/collection/components/viewer-measurement-precise/viewer-measurement-precise.js +118 -26
- package/dist/collection/components/viewer-measurements/viewer-measurements.js +67 -2
- package/dist/collection/components/viewer-view-cube/viewer-view-cube.css +21 -3
- package/dist/collection/index.js +2 -2
- package/dist/collection/lib/cursors.js +7 -1
- package/dist/collection/lib/elementRectObserver.js +19 -0
- package/dist/collection/lib/interactions/interactionApi.js +53 -4
- package/dist/collection/lib/mappers/frameStreaming.js +2 -4
- package/dist/collection/lib/measurement/controller.js +21 -17
- package/dist/collection/lib/measurement/entities.js +34 -0
- package/dist/collection/lib/measurement/index.js +4 -2
- package/dist/collection/lib/measurement/interactions.js +74 -28
- package/dist/collection/lib/measurement/mapper.js +5 -5
- package/dist/collection/lib/measurement/model.js +24 -85
- package/dist/collection/lib/measurement/outcomes.js +2 -0
- package/dist/collection/lib/measurement/overlays.js +69 -0
- package/dist/collection/lib/measurement/results.js +17 -0
- package/dist/collection/lib/types/entities.js +5 -1
- package/dist/collection/lib/types/featureMap.js +14 -5
- package/dist/collection/lib/types/frame.js +3 -3
- package/dist/collection/lib/types/measurementUnits.js +7 -7
- package/dist/collection/lib/types/viewport.js +12 -1
- package/dist/collection/testing/eventually.js +30 -0
- package/dist/collection/testing/fixtures.js +11 -4
- package/dist/collection/testing/index.js +2 -1
- package/dist/custom-elements/index.d.ts +6 -0
- package/dist/custom-elements/index.js +851 -287
- package/dist/esm/{browser.esm-e6827921.js → browser.esm-59e914f6.js} +1 -1
- package/dist/esm/{bundle.esm-8f14ac60.js → bundle.esm-d899b2d5.js} +1 -1
- package/dist/esm/{config-a200c227.js → config-604c644e.js} +2 -2
- package/dist/esm/{cursors-5157d29d.js → cursors-a7ec4adb.js} +8 -2
- package/dist/esm/{dom-2d6a1e1e.js → dom-780d25be.js} +1 -1
- package/dist/esm/{controller-a756cf9c.js → entities-759d97cd.js} +52 -18
- package/dist/esm/{index-f0053642.js → index-10c1495a.js} +64 -3
- package/dist/esm/index.js +13 -11
- package/dist/esm/index.mjs +13 -11
- package/dist/esm/loader.js +2 -2
- package/dist/esm/loader.mjs +2 -2
- package/dist/esm/{model-f711a825.js → mapper-4b815e31.js} +37 -190
- package/dist/esm/{markup-e46623b3.js → markup-1d177b4a.js} +2 -2
- package/dist/esm/{measurement-702d6b8c.js → measurement-12cdbf5c.js} +2 -2
- package/dist/esm/model-e5a4f00f.js +132 -0
- package/dist/esm/overlays-dbe5d652.js +74 -0
- package/dist/esm/{png-decoder-59a0e9c2.js → png-decoder-3f1fa486.js} +1 -1
- package/dist/esm/results-994bdb50.js +22 -0
- package/dist/esm/{scene-16490983.js → scene-9ac8a484.js} +3 -3
- package/dist/esm/{stencil-7d04d41a.js → stencil-9bf7fb9e.js} +1 -1
- package/dist/esm/{streamAttributes-7aa486b2.js → streamAttributes-d623bb60.js} +77 -20
- package/dist/esm/{utils-8070900a.js → utils-01e4f587.js} +1 -1
- package/dist/esm/{utils-953a1619.js → utils-5e57bf24.js} +1 -1
- package/dist/esm/vertex-scene-tree-search_3.entry.js +3 -3
- package/dist/esm/vertex-scene-tree-table-cell.entry.js +1 -1
- package/dist/esm/vertex-scene-tree-table-column.entry.js +1 -1
- package/dist/esm/vertex-scene-tree-table-header.entry.js +1 -1
- package/dist/esm/vertex-scene-tree-table-resize-divider.entry.js +1 -1
- package/dist/esm/vertex-scene-tree-toolbar-group.entry.js +1 -1
- package/dist/esm/vertex-scene-tree.entry.js +5 -5
- package/dist/esm/vertex-viewer-button_3.entry.js +1 -1
- package/dist/esm/vertex-viewer-default-toolbar.entry.js +1 -1
- package/dist/esm/vertex-viewer-dom-element_3.entry.js +6 -6
- package/dist/esm/vertex-viewer-icon.entry.js +1 -1
- package/dist/esm/vertex-viewer-layer.entry.js +1 -1
- package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +4 -4
- package/dist/esm/vertex-viewer-markup-tool.entry.js +5 -5
- package/dist/esm/vertex-viewer-markup.entry.js +5 -5
- package/dist/esm/vertex-viewer-measurement-details.entry.js +221 -75
- package/dist/esm/{vertex-viewer-measurement-distance_2.entry.js → vertex-viewer-measurement-distance.entry.js} +35 -73
- package/dist/esm/vertex-viewer-measurement-line_2.entry.js +165 -0
- package/dist/esm/vertex-viewer-measurement-precise.entry.js +160 -52
- package/dist/esm/vertex-viewer-measurement-tool.entry.js +6 -6
- package/dist/esm/vertex-viewer-measurements.entry.js +36 -7
- package/dist/esm/vertex-viewer-view-cube.entry.js +6 -6
- package/dist/esm/vertex-viewer.entry.js +61 -13
- package/dist/esm/viewer.js +2 -2
- package/dist/esm/{viewport-bb7c46d9.js → viewport-01c886ea.js} +12 -1
- package/dist/types/components/viewer-dom-renderer/viewer-dom-renderer.d.ts +1 -1
- package/dist/types/components/viewer-measurement-details/viewer-measurement-details-entry.d.ts +8 -0
- package/dist/types/components/viewer-measurement-details/viewer-measurement-details-results.d.ts +15 -0
- package/dist/types/components/viewer-measurement-details/viewer-measurement-details.d.ts +44 -42
- package/dist/types/components/viewer-measurement-distance/interactions.d.ts +23 -1
- package/dist/types/components/viewer-measurement-distance/viewer-measurement-distance.d.ts +8 -0
- package/dist/types/components/viewer-measurement-overlays/viewer-measurement-overlays-components.d.ts +10 -0
- package/dist/types/components/viewer-measurement-overlays/viewer-measurement-overlays.d.ts +41 -0
- package/dist/types/components/viewer-measurement-precise/viewer-measurement-precise.d.ts +62 -6
- package/dist/types/components/viewer-measurements/viewer-measurements.d.ts +12 -0
- package/dist/types/components.d.ts +103 -40
- package/dist/types/index.d.ts +1 -1
- package/dist/types/lib/cursors.d.ts +5 -0
- package/dist/types/lib/elementRectObserver.d.ts +8 -0
- package/dist/types/lib/interactions/interactionApi.d.ts +32 -5
- package/dist/types/lib/measurement/controller.d.ts +8 -7
- package/dist/types/lib/measurement/entities.d.ts +10 -0
- package/dist/types/lib/measurement/index.d.ts +3 -1
- package/dist/types/lib/measurement/interactions.d.ts +19 -5
- package/dist/types/lib/measurement/mapper.d.ts +1 -1
- package/dist/types/lib/measurement/model.d.ts +18 -153
- package/dist/types/lib/measurement/outcomes.d.ts +8 -0
- package/dist/types/lib/measurement/overlays.d.ts +38 -0
- package/dist/types/lib/measurement/results.d.ts +90 -0
- package/dist/types/lib/types/entities.d.ts +5 -1
- package/dist/types/lib/types/featureMap.d.ts +2 -2
- package/dist/types/lib/types/measurementUnits.d.ts +1 -1
- package/dist/types/lib/types/viewport.d.ts +9 -1
- package/dist/types/testing/eventually.d.ts +15 -0
- package/dist/types/testing/fixtures.d.ts +2 -2
- package/dist/types/testing/index.d.ts +1 -0
- package/dist/viewer/index.esm.js +1 -1
- package/dist/viewer/p-081e6873.js +4 -0
- package/dist/viewer/{p-5d82c131.entry.js → p-099fe6ca.entry.js} +1 -1
- package/dist/viewer/{p-784914e4.js → p-0aba71fd.js} +1 -1
- package/dist/viewer/p-0aeab3fc.js +4 -0
- package/dist/viewer/p-0eb195dd.entry.js +4 -0
- package/dist/viewer/p-1a7df99a.entry.js +4 -0
- package/dist/viewer/{p-f70d8def.js → p-301660cf.js} +1 -1
- package/dist/viewer/{p-a0e49d10.entry.js → p-31658489.entry.js} +1 -1
- package/dist/viewer/{p-95f3a81c.entry.js → p-353cfc7a.entry.js} +1 -1
- package/dist/viewer/p-364ce21c.js +4 -0
- package/dist/viewer/{p-a5a0bf86.js → p-3f6ac74f.js} +1 -1
- package/dist/viewer/p-423410be.js +4 -0
- package/dist/viewer/{p-6f71f0f2.js → p-439220c6.js} +1 -1
- package/dist/viewer/{p-e84ed098.entry.js → p-46459921.entry.js} +1 -1
- package/dist/viewer/{p-c23a8b34.entry.js → p-4717c98e.entry.js} +1 -1
- package/dist/viewer/p-4985fad5.js +4 -0
- package/dist/viewer/{p-ba393340.entry.js → p-61b1097b.entry.js} +1 -1
- package/dist/viewer/{p-011eecd5.entry.js → p-6370098c.entry.js} +1 -1
- package/dist/viewer/p-67446e35.js +4 -0
- package/dist/viewer/p-7006fd4e.entry.js +4 -0
- package/dist/viewer/{p-a20e4ea1.entry.js → p-70ca1ea7.entry.js} +1 -1
- package/dist/viewer/p-76ec0245.js +4 -0
- package/dist/viewer/p-7cad9bf4.js +4 -0
- package/dist/viewer/p-7f25dcb5.entry.js +4 -0
- package/dist/viewer/{p-ca6bbe53.entry.js → p-8decee06.entry.js} +1 -1
- package/dist/viewer/{p-b7ffa306.entry.js → p-915d95ad.entry.js} +1 -1
- package/dist/viewer/{p-4485ac6d.js → p-a0df0e0c.js} +1 -1
- package/dist/viewer/{p-cc9888be.entry.js → p-a455ae02.entry.js} +1 -1
- package/dist/viewer/{p-a6a8026f.js → p-acf22d3e.js} +1 -1
- package/dist/viewer/{p-653aca1b.entry.js → p-b2b48a42.entry.js} +1 -1
- package/dist/viewer/p-bc9b1e67.entry.js +4 -0
- package/dist/viewer/p-c458f191.entry.js +32 -0
- package/dist/viewer/p-cafa57a6.js +4 -0
- package/dist/viewer/p-d00e9203.js +4 -0
- package/dist/viewer/{p-3e96bd62.entry.js → p-d2bcf788.entry.js} +1 -1
- package/dist/viewer/p-d90f2f6d.entry.js +4 -0
- package/dist/viewer/p-da2f4a56.js +4 -0
- package/dist/viewer/{p-5a2e34e1.entry.js → p-e07377fa.entry.js} +1 -1
- package/dist/viewer/{p-40800e8d.entry.js → p-f755af5a.entry.js} +1 -1
- package/dist/viewer/p-f7cb7e59.js +4 -0
- package/dist/viewer/p-fad9693e.js +4 -0
- package/dist/viewer/p-fe11d694.js +4 -0
- package/dist/viewer/{p-b92a3ac2.entry.js → p-fec1a8d0.entry.js} +1 -1
- package/dist/viewer/viewer.css +1 -1
- package/dist/viewer/viewer.esm.js +1 -1
- package/package.json +11 -10
- package/dist/cjs/summary-7bbdb4c9.js +0 -45
- package/dist/collection/lib/measurement/summary.js +0 -38
- package/dist/esm/summary-0a3d0bf9.js +0 -43
- package/dist/types/lib/measurement/summary.d.ts +0 -11
- package/dist/viewer/p-03e482ff.js +0 -4
- package/dist/viewer/p-0c052bc8.entry.js +0 -4
- package/dist/viewer/p-148cd792.js +0 -4
- package/dist/viewer/p-26d99e2d.entry.js +0 -4
- package/dist/viewer/p-38eeacc5.js +0 -4
- package/dist/viewer/p-39d1720c.js +0 -4
- package/dist/viewer/p-5dc17b8b.js +0 -4
- package/dist/viewer/p-5fea3491.js +0 -4
- package/dist/viewer/p-6b700561.entry.js +0 -4
- package/dist/viewer/p-6cd7a6e0.js +0 -4
- package/dist/viewer/p-75337d0b.js +0 -4
- package/dist/viewer/p-b83cc8a9.js +0 -4
- package/dist/viewer/p-d2a9e047.js +0 -4
- package/dist/viewer/p-d40bd835.entry.js +0 -4
- package/dist/viewer/p-e10b1526.js +0 -4
- package/dist/viewer/p-ec8a1a68.entry.js +0 -4
- package/dist/viewer/p-f4a8c901.js +0 -4
- package/dist/viewer/p-f77dde26.entry.js +0 -4
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**!
|
|
2
|
+
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
'use strict';
|
|
5
|
+
|
|
6
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
|
+
|
|
8
|
+
const index = require('./index-e100709a.js');
|
|
9
|
+
const bundle_esm = require('./bundle.esm-dc0a8361.js');
|
|
10
|
+
require('./mapper-f6e6cafe.js');
|
|
11
|
+
require('./grpc-web-client.umd-60a79aae.js');
|
|
12
|
+
require('./streamAttributes-d6236448.js');
|
|
13
|
+
const overlays = require('./overlays-8a582edf.js');
|
|
14
|
+
require('./_commonjsHelpers-537d719a.js');
|
|
15
|
+
require('./browser.esm-31b03292.js');
|
|
16
|
+
|
|
17
|
+
const viewerMeasurementLineCss = ":host{display:block;--viewer-measurement-line-stroke:var(--white);--viewer-measurement-line-stroke-opacity:0.75;--viewer-measurement-line-stroke-width:1.25px;--viewer-measurement-line-fill:var(--neutral-900);--viewer-measurement-line-fill-width:2px;--viewer-measurement-line-start-cap-visibility:initial;--viewer-measurement-line-end-cap-visibility:initial}svg{width:100%;height:100%}.line-stroke{stroke-width:calc(\n var(--viewer-measurement-line-fill-width) +\n var(--viewer-measurement-line-stroke-width)\n );stroke:var(--viewer-measurement-line-stroke);opacity:var(--viewer-measurement-line-stroke-opacity)}.line-fill{stroke-width:var(--viewer-measurement-line-fill-width);stroke:var(--viewer-measurement-line-fill)}.start-cap{visibility:var(--viewer-measurement-line-start-cap-visibility)}.end-cap{visibility:var(--viewer-measurement-line-end-cap-visibility)}";
|
|
18
|
+
|
|
19
|
+
let ViewerMeasurementLine = class {
|
|
20
|
+
constructor(hostRef) {
|
|
21
|
+
index.registerInstance(this, hostRef);
|
|
22
|
+
/**
|
|
23
|
+
* A point that specifies the starting point of the line.
|
|
24
|
+
*/
|
|
25
|
+
this.start = bundle_esm.point.create();
|
|
26
|
+
/**
|
|
27
|
+
* A point that specifies the ending point of the line.
|
|
28
|
+
*/
|
|
29
|
+
this.end = bundle_esm.point.create();
|
|
30
|
+
/**
|
|
31
|
+
* A length of the line cap. The line cap is a line at each end of a line.
|
|
32
|
+
*/
|
|
33
|
+
this.capLength = 0;
|
|
34
|
+
/**
|
|
35
|
+
* The type of [SVG pointer
|
|
36
|
+
* events](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/pointer-events)
|
|
37
|
+
* that the line should respond to.
|
|
38
|
+
*/
|
|
39
|
+
this.pointerEvents = 'none';
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @ignore
|
|
43
|
+
*/
|
|
44
|
+
render() {
|
|
45
|
+
const angle = bundle_esm.angle.fromPoints(this.start, this.end);
|
|
46
|
+
const lineFillEndCaps = getEndCapPoints(this.start, this.end, angle, this.capLength);
|
|
47
|
+
const lineStrokeEndCaps = getEndCapPoints(this.start, this.end, angle, this.capLength + 1);
|
|
48
|
+
return (index.h("svg", null, index.h("g", { class: "line-stroke", "pointer-events": this.pointerEvents }, index.h("line", { class: "line", x1: this.start.x, y1: this.start.y, x2: this.end.x, y2: this.end.y }), index.h("line", { class: "start-cap", x1: lineStrokeEndCaps.startEndCap.start.x, y1: lineStrokeEndCaps.startEndCap.start.y, x2: lineStrokeEndCaps.startEndCap.end.x, y2: lineStrokeEndCaps.startEndCap.end.y }), index.h("line", { class: "end-cap", x1: lineStrokeEndCaps.endEndCap.start.x, y1: lineStrokeEndCaps.endEndCap.start.y, x2: lineStrokeEndCaps.endEndCap.end.x, y2: lineStrokeEndCaps.endEndCap.end.y })), index.h("g", { class: "line-fill", "pointer-events": this.pointerEvents }, index.h("line", { class: "line", x1: this.start.x, y1: this.start.y, x2: this.end.x, y2: this.end.y }), index.h("line", { class: "start-cap", x1: lineFillEndCaps.startEndCap.start.x, y1: lineFillEndCaps.startEndCap.start.y, x2: lineFillEndCaps.startEndCap.end.x, y2: lineFillEndCaps.startEndCap.end.y }), index.h("line", { class: "end-cap", x1: lineFillEndCaps.endEndCap.start.x, y1: lineFillEndCaps.endEndCap.start.y, x2: lineFillEndCaps.endEndCap.end.x, y2: lineFillEndCaps.endEndCap.end.y }))));
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
function getEndCapPoints(start, end, angle, length) {
|
|
52
|
+
return {
|
|
53
|
+
startEndCap: getPerpendicularLine(start, angle, length),
|
|
54
|
+
endEndCap: getPerpendicularLine(end, angle, length),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function getPerpendicularLine(pt, angle, length) {
|
|
58
|
+
const perpAngle = angle + Math.PI / 2;
|
|
59
|
+
const start = bundle_esm.point.add(pt, bundle_esm.point.polar(length / 2, perpAngle));
|
|
60
|
+
const end = bundle_esm.point.add(pt, bundle_esm.point.polar(length / 2, perpAngle + Math.PI));
|
|
61
|
+
return { start, end };
|
|
62
|
+
}
|
|
63
|
+
ViewerMeasurementLine.style = viewerMeasurementLineCss;
|
|
64
|
+
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
66
|
+
const MeasurementOverlayView = ({ overlay, viewport, camera }) => {
|
|
67
|
+
if (overlay.type === 'line') {
|
|
68
|
+
return (index.h(LineOverlayView, { overlay: overlay, viewport: viewport, camera: camera }));
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
return (index.h(DistanceVectorOverlayView, { overlay: overlay, viewport: viewport, camera: camera }));
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
const LineOverlayView = ({ overlay: { start, end }, camera, viewport }) => {
|
|
75
|
+
const m = camera.projectionViewMatrix;
|
|
76
|
+
const sw = viewport.transformWorldToViewport(start, m);
|
|
77
|
+
const ew = viewport.transformWorldToViewport(end, m);
|
|
78
|
+
return (index.h("vertex-viewer-measurement-line", { class: "measurement-line", start: sw, end: ew }));
|
|
79
|
+
};
|
|
80
|
+
const DistanceVectorOverlayView = ({ overlay: { x, y, z }, camera, viewport }) => {
|
|
81
|
+
const m = camera.projectionViewMatrix;
|
|
82
|
+
const xs = viewport.transformWorldToViewport(x.start, m);
|
|
83
|
+
const xe = viewport.transformWorldToViewport(x.end, m);
|
|
84
|
+
const ys = viewport.transformWorldToViewport(y.start, m);
|
|
85
|
+
const ye = viewport.transformWorldToViewport(y.end, m);
|
|
86
|
+
const zs = viewport.transformWorldToViewport(z.start, m);
|
|
87
|
+
const ze = viewport.transformWorldToViewport(z.end, m);
|
|
88
|
+
return (index.h(index.Fragment, null,
|
|
89
|
+
index.h("vertex-viewer-measurement-line", { class: "measurement-line distance-vector-x", start: xs, end: xe }),
|
|
90
|
+
index.h("vertex-viewer-measurement-line", { class: "measurement-line distance-vector-y", start: ys, end: ye }),
|
|
91
|
+
index.h("vertex-viewer-measurement-line", { class: "measurement-line distance-vector-z", start: zs, end: ze })));
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
const viewerMeasurementOverlaysCss = ":host{display:block;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none;--viewer-measurement-overlays-x-axis-color:var(--x-axis-color);--viewer-measurement-overlays-y-axis-color:var(--y-axis-color);--viewer-measurement-overlays-z-axis-color:var(--z-axis-color)}.measurement-line{position:absolute;width:100%;height:100%}.measurement-line.distance-vector-x{--viewer-measurement-line-fill:var(\n --viewer-measurement-overlays-x-axis-color\n )}.measurement-line.distance-vector-y{--viewer-measurement-line-fill:var(\n --viewer-measurement-overlays-y-axis-color\n )}.measurement-line.distance-vector-z{--viewer-measurement-line-fill:var(\n --viewer-measurement-overlays-z-axis-color\n )}";
|
|
95
|
+
|
|
96
|
+
let ViewerMeasurementOverlays = class {
|
|
97
|
+
constructor(hostRef) {
|
|
98
|
+
index.registerInstance(this, hostRef);
|
|
99
|
+
/**
|
|
100
|
+
* The model that contains the overlays to present.
|
|
101
|
+
*/
|
|
102
|
+
this.measurementOverlays = new overlays.MeasurementOverlayManager();
|
|
103
|
+
this.overlays = [];
|
|
104
|
+
this.updateCamera = () => {
|
|
105
|
+
var _a, _b;
|
|
106
|
+
this.camera = (_b = (_a = this.viewer) === null || _a === void 0 ? void 0 : _a.frame) === null || _b === void 0 ? void 0 : _b.scene.camera;
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* @ignore
|
|
111
|
+
*/
|
|
112
|
+
handleMeasurementOverlaysChanged() {
|
|
113
|
+
this.removeModelListeners();
|
|
114
|
+
this.addModelListeners();
|
|
115
|
+
this.updateOverlays();
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* @ignore
|
|
119
|
+
*/
|
|
120
|
+
handleViewerChanged(newViewer, oldViewer) {
|
|
121
|
+
this.removeViewerListeners(oldViewer);
|
|
122
|
+
this.addViewerListeners();
|
|
123
|
+
this.updateCamera();
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* @ignore
|
|
127
|
+
*/
|
|
128
|
+
componentWillLoad() {
|
|
129
|
+
this.addModelListeners();
|
|
130
|
+
this.addViewerListeners();
|
|
131
|
+
this.updateOverlays();
|
|
132
|
+
this.updateCamera();
|
|
133
|
+
}
|
|
134
|
+
addModelListeners() {
|
|
135
|
+
this.onOverlaysChangedListener = this.measurementOverlays.onOverlaysChanged(() => this.updateOverlays());
|
|
136
|
+
}
|
|
137
|
+
removeModelListeners() {
|
|
138
|
+
var _a;
|
|
139
|
+
(_a = this.onOverlaysChangedListener) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
140
|
+
this.onOverlaysChangedListener = undefined;
|
|
141
|
+
}
|
|
142
|
+
addViewerListeners() {
|
|
143
|
+
var _a;
|
|
144
|
+
(_a = this.viewer) === null || _a === void 0 ? void 0 : _a.addEventListener('frameReceived', this.updateCamera);
|
|
145
|
+
}
|
|
146
|
+
removeViewerListeners(viewer) {
|
|
147
|
+
viewer === null || viewer === void 0 ? void 0 : viewer.removeEventListener('frameReceived', this.updateCamera);
|
|
148
|
+
}
|
|
149
|
+
updateOverlays() {
|
|
150
|
+
this.overlays = this.measurementOverlays.getOverlays();
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* @ignore
|
|
154
|
+
*/
|
|
155
|
+
render() {
|
|
156
|
+
return (index.h(index.Host, null, this.overlays.map((overlay) => {
|
|
157
|
+
if (this.camera != null && this.viewer != null) {
|
|
158
|
+
return (index.h(MeasurementOverlayView, { overlay: overlay, viewport: this.viewer.viewport, camera: this.camera }));
|
|
159
|
+
}
|
|
160
|
+
})));
|
|
161
|
+
}
|
|
162
|
+
static get watchers() { return {
|
|
163
|
+
"measurementOverlays": ["handleMeasurementOverlaysChanged"],
|
|
164
|
+
"viewer": ["handleViewerChanged"]
|
|
165
|
+
}; }
|
|
166
|
+
};
|
|
167
|
+
ViewerMeasurementOverlays.style = viewerMeasurementOverlaysCss;
|
|
168
|
+
|
|
169
|
+
exports.vertex_viewer_measurement_line = ViewerMeasurementLine;
|
|
170
|
+
exports.vertex_viewer_measurement_overlays = ViewerMeasurementOverlays;
|
|
@@ -5,17 +5,19 @@
|
|
|
5
5
|
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
7
|
|
|
8
|
-
const index = require('./index-
|
|
9
|
-
const
|
|
8
|
+
const index = require('./index-e100709a.js');
|
|
9
|
+
const mapper = require('./mapper-f6e6cafe.js');
|
|
10
10
|
const grpcWebClient_umd = require('./grpc-web-client.umd-60a79aae.js');
|
|
11
|
-
const config = require('./config-
|
|
12
|
-
const
|
|
11
|
+
const config = require('./config-90ee43d5.js');
|
|
12
|
+
const entities = require('./entities-aa59890e.js');
|
|
13
|
+
const streamAttributes = require('./streamAttributes-d6236448.js');
|
|
14
|
+
const model = require('./model-4ec0c36e.js');
|
|
15
|
+
const overlays = require('./overlays-8a582edf.js');
|
|
13
16
|
const bundle_esm = require('./bundle.esm-dc0a8361.js');
|
|
14
|
-
require('./cursors-
|
|
15
|
-
require('./streamAttributes-9d6226ac.js');
|
|
17
|
+
const cursors = require('./cursors-ad2fd395.js');
|
|
16
18
|
const dom = require('./dom-dd265f48.js');
|
|
17
|
-
require('./browser.esm-31b03292.js');
|
|
18
19
|
require('./_commonjsHelpers-537d719a.js');
|
|
20
|
+
require('./browser.esm-31b03292.js');
|
|
19
21
|
|
|
20
22
|
// package: vertexvis.protobuf.sceneview.v1
|
|
21
23
|
// file: sceneview/protos/scene_view_api.proto
|
|
@@ -34,8 +36,8 @@ SceneViewAPI.UpdateModelEntities = {
|
|
|
34
36
|
service: SceneViewAPI,
|
|
35
37
|
requestStream: false,
|
|
36
38
|
responseStream: false,
|
|
37
|
-
requestType:
|
|
38
|
-
responseType:
|
|
39
|
+
requestType: mapper.scene_view_api_pb.UpdateModelEntitiesRequest,
|
|
40
|
+
responseType: mapper.scene_view_api_pb.UpdateModelEntitiesResponse
|
|
39
41
|
};
|
|
40
42
|
|
|
41
43
|
SceneViewAPI.Measure = {
|
|
@@ -43,8 +45,8 @@ SceneViewAPI.Measure = {
|
|
|
43
45
|
service: SceneViewAPI,
|
|
44
46
|
requestStream: false,
|
|
45
47
|
responseStream: false,
|
|
46
|
-
requestType:
|
|
47
|
-
responseType:
|
|
48
|
+
requestType: mapper.scene_view_api_pb.MeasureRequest,
|
|
49
|
+
responseType: mapper.scene_view_api_pb.MeasureResponse
|
|
48
50
|
};
|
|
49
51
|
|
|
50
52
|
function SceneViewAPIClient(serviceHost, options) {
|
|
@@ -116,59 +118,122 @@ SceneViewAPIClient.prototype.measure = function measure(requestMessage, metadata
|
|
|
116
118
|
|
|
117
119
|
var SceneViewAPIClient_1 = SceneViewAPIClient;
|
|
118
120
|
|
|
119
|
-
class
|
|
120
|
-
constructor(
|
|
121
|
+
class ElementRectObserver {
|
|
122
|
+
constructor() {
|
|
123
|
+
this.observer = new ResizeObserver(() => this.measure());
|
|
124
|
+
}
|
|
125
|
+
observe(element) {
|
|
126
|
+
this.element = element;
|
|
127
|
+
this.observer.observe(element);
|
|
128
|
+
this.measure();
|
|
129
|
+
}
|
|
130
|
+
disconnect() {
|
|
131
|
+
this.element = undefined;
|
|
132
|
+
this.observer.disconnect();
|
|
133
|
+
}
|
|
134
|
+
measure() {
|
|
135
|
+
var _a;
|
|
136
|
+
this.rect = (_a = this.element) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
class MeasurementInteractionHandler {
|
|
141
|
+
constructor(controller, measurableEntityTypes) {
|
|
142
|
+
this.rectObserver = new ElementRectObserver();
|
|
143
|
+
this.handlePointerMove = async (event) => {
|
|
144
|
+
if (await this.isMeasurableEntityUnderPointer(event)) {
|
|
145
|
+
this.clearCursor();
|
|
146
|
+
this.addCursor(cursors.measurementWithArrowCursor);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
this.clearCursor();
|
|
150
|
+
}
|
|
151
|
+
};
|
|
121
152
|
this.handlePointerDown = (event) => {
|
|
122
|
-
this.ifNoInteraction(event, () => {
|
|
123
|
-
this.
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
else {
|
|
130
|
-
this.controller.clearEntities();
|
|
131
|
-
}
|
|
132
|
-
});
|
|
153
|
+
this.ifNoInteraction(event, async () => {
|
|
154
|
+
if (await this.isMeasurableEntityUnderPointer(event)) {
|
|
155
|
+
this.measureEntityUnderPointer(event);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
this.controller.clearEntities();
|
|
159
|
+
}
|
|
133
160
|
});
|
|
134
161
|
};
|
|
135
162
|
this.controller = controller;
|
|
163
|
+
this.measurableEntityTypes = measurableEntityTypes;
|
|
164
|
+
}
|
|
165
|
+
get elementRect() {
|
|
166
|
+
return this.rectObserver.rect;
|
|
136
167
|
}
|
|
137
168
|
initialize(element, api) {
|
|
138
169
|
this.element = element;
|
|
139
170
|
this.api = api;
|
|
171
|
+
this.rectObserver.observe(element);
|
|
172
|
+
element.addEventListener('pointermove', this.handlePointerMove);
|
|
140
173
|
element.addEventListener('pointerdown', this.handlePointerDown);
|
|
141
174
|
}
|
|
142
175
|
dispose() {
|
|
176
|
+
var _a, _b, _c;
|
|
177
|
+
this.rectObserver.disconnect();
|
|
178
|
+
(_a = this.measurementInteraction) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
179
|
+
this.clearCursor();
|
|
180
|
+
(_b = this.element) === null || _b === void 0 ? void 0 : _b.removeEventListener('pointermove', this.handlePointerMove);
|
|
181
|
+
(_c = this.element) === null || _c === void 0 ? void 0 : _c.removeEventListener('pointerdown', this.handlePointerDown);
|
|
182
|
+
this.element = undefined;
|
|
183
|
+
this.api = undefined;
|
|
184
|
+
}
|
|
185
|
+
addCursor(cursor) {
|
|
186
|
+
this.cursor = this.ifInitialized(({ api }) => api.addCursor(cursor));
|
|
187
|
+
}
|
|
188
|
+
clearCursor() {
|
|
143
189
|
var _a;
|
|
144
|
-
(_a = this.
|
|
190
|
+
(_a = this.cursor) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
191
|
+
this.cursor = undefined;
|
|
192
|
+
}
|
|
193
|
+
async isMeasurableEntityUnderPointer(event) {
|
|
194
|
+
var _a;
|
|
195
|
+
const pt = dom.getMouseClientPosition(event, this.elementRect);
|
|
196
|
+
const type = await ((_a = this.api) === null || _a === void 0 ? void 0 : _a.getEntityTypeAtPoint(pt));
|
|
197
|
+
return type != null && this.measurableEntityTypes.includes(type);
|
|
198
|
+
}
|
|
199
|
+
measureEntityUnderPointer(event) {
|
|
200
|
+
this.ifInitialized(async ({ api }) => {
|
|
201
|
+
const pt = dom.getMouseClientPosition(event, this.elementRect);
|
|
202
|
+
const [hit] = await api.hitItems(pt);
|
|
203
|
+
if (hit != null) {
|
|
204
|
+
this.controller.addEntity(entities.MeasurementEntity.fromHit(hit));
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
this.controller.clearEntities();
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
ifInitialized(f) {
|
|
212
|
+
if (this.element != null && this.api != null) {
|
|
213
|
+
return f({ element: this.element, api: this.api });
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
throw new Error('Measurement interaction handler not initialized.');
|
|
217
|
+
}
|
|
145
218
|
}
|
|
146
219
|
ifNoInteraction(event, f) {
|
|
147
220
|
const startPos = bundle_esm.point.create(event.clientX, event.clientY);
|
|
148
221
|
let didInteract = false;
|
|
149
|
-
|
|
222
|
+
const handleMouseMove = (event) => {
|
|
150
223
|
const pos = bundle_esm.point.create(event.clientX, event.clientY);
|
|
151
224
|
const dis = bundle_esm.point.distance(startPos, pos);
|
|
152
225
|
didInteract = dis > 2;
|
|
153
|
-
}
|
|
154
|
-
|
|
226
|
+
};
|
|
227
|
+
const handleMouseUp = () => {
|
|
155
228
|
window.removeEventListener('pointermove', handleMouseMove);
|
|
156
229
|
window.removeEventListener('pointerup', handleMouseUp);
|
|
157
230
|
if (!didInteract) {
|
|
158
231
|
f();
|
|
159
232
|
}
|
|
160
|
-
}
|
|
233
|
+
};
|
|
161
234
|
window.addEventListener('pointermove', handleMouseMove);
|
|
162
235
|
window.addEventListener('pointerup', handleMouseUp);
|
|
163
236
|
}
|
|
164
|
-
ifInitialized(f) {
|
|
165
|
-
if (this.element != null && this.api != null) {
|
|
166
|
-
return f({ element: this.element, api: this.api });
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
throw new Error('Measurement interaction handler not initialized');
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
237
|
}
|
|
173
238
|
|
|
174
239
|
const viewerMeasurementPreciseCss = ":host{display:block;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none}";
|
|
@@ -176,42 +241,86 @@ const viewerMeasurementPreciseCss = ":host{display:block;position:absolute;top:0
|
|
|
176
241
|
let ViewerMeasurementPrecise = class {
|
|
177
242
|
constructor(hostRef) {
|
|
178
243
|
index.registerInstance(this, hostRef);
|
|
244
|
+
/**
|
|
245
|
+
* The model that contains the entities and outcomes from performing precise
|
|
246
|
+
* measurements.
|
|
247
|
+
*/
|
|
179
248
|
this.measurementModel = new model.MeasurementModel();
|
|
249
|
+
/**
|
|
250
|
+
* The manager that is responsible for measurement overlays to present by this
|
|
251
|
+
* component.
|
|
252
|
+
*/
|
|
253
|
+
this.measurementOverlays = new overlays.MeasurementOverlayManager();
|
|
254
|
+
/**
|
|
255
|
+
* @internal
|
|
256
|
+
*
|
|
257
|
+
* An internal property that can be used to opt-in to performing measurements
|
|
258
|
+
* on other types of entities.
|
|
259
|
+
*/
|
|
260
|
+
this.measurableEntityTypes = [streamAttributes.EntityType.PRECISE_SURFACE];
|
|
261
|
+
/**
|
|
262
|
+
* The environment that will be used to request measurement results.
|
|
263
|
+
*/
|
|
180
264
|
this.configEnv = 'platprod';
|
|
181
|
-
this.
|
|
182
|
-
this.handleEntitiesChanged = () => {
|
|
183
|
-
this.updateEntities();
|
|
184
|
-
};
|
|
265
|
+
this.overlays = [];
|
|
185
266
|
}
|
|
267
|
+
/**
|
|
268
|
+
* @ignore
|
|
269
|
+
*/
|
|
186
270
|
connectedCallback() {
|
|
187
271
|
this.setupInteractionHandler();
|
|
188
272
|
}
|
|
273
|
+
/**
|
|
274
|
+
* @ignore
|
|
275
|
+
*/
|
|
189
276
|
componentWillLoad() {
|
|
190
277
|
this.setupController();
|
|
191
|
-
this.setupInteractionHandler();
|
|
192
278
|
this.setupModelListeners();
|
|
279
|
+
this.setupInteractionHandler();
|
|
193
280
|
}
|
|
281
|
+
/**
|
|
282
|
+
* @ignore
|
|
283
|
+
*/
|
|
194
284
|
disconnectedCallback() {
|
|
195
285
|
this.clearInteractionHandler();
|
|
286
|
+
this.clearModelListeners();
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* @ignore
|
|
290
|
+
*/
|
|
291
|
+
handleMeasurableEntityTypesChanged() {
|
|
292
|
+
this.setupInteractionHandler();
|
|
196
293
|
}
|
|
294
|
+
/**
|
|
295
|
+
* @ignore
|
|
296
|
+
*/
|
|
197
297
|
handleMeasurementControllerChanged() {
|
|
198
298
|
this.setupInteractionHandler();
|
|
199
299
|
}
|
|
300
|
+
/**
|
|
301
|
+
* @ignore
|
|
302
|
+
*/
|
|
200
303
|
handleMeasurementModelChanged() {
|
|
201
304
|
this.setupController();
|
|
202
305
|
this.setupModelListeners();
|
|
203
306
|
}
|
|
307
|
+
/**
|
|
308
|
+
* @ignore
|
|
309
|
+
*/
|
|
204
310
|
handleViewerChanged() {
|
|
205
311
|
this.setupInteractionHandler();
|
|
206
312
|
}
|
|
313
|
+
/**
|
|
314
|
+
* @ignore
|
|
315
|
+
*/
|
|
207
316
|
render() {
|
|
208
|
-
return index.h(index.Host, null);
|
|
317
|
+
return (index.h(index.Host, null, index.h("vertex-viewer-measurement-overlays", { viewer: this.viewer, measurementOverlays: this.measurementOverlays })));
|
|
209
318
|
}
|
|
210
319
|
setupController() {
|
|
211
320
|
var _a;
|
|
212
321
|
const config$1 = config.parseConfig(this.configEnv, this.config);
|
|
213
322
|
const client = new SceneViewAPIClient_1(config$1.network.sceneViewHost);
|
|
214
|
-
this.measurementController = new
|
|
323
|
+
this.measurementController = new entities.MeasurementController(this.measurementModel, client, () => { var _a; return (_a = this.viewer) === null || _a === void 0 ? void 0 : _a.token; }, (_a = this.viewer) === null || _a === void 0 ? void 0 : _a.deviceId);
|
|
215
324
|
}
|
|
216
325
|
clearInteractionHandler() {
|
|
217
326
|
var _a;
|
|
@@ -223,24 +332,23 @@ let ViewerMeasurementPrecise = class {
|
|
|
223
332
|
this.clearInteractionHandler();
|
|
224
333
|
if (this.measurementController != null) {
|
|
225
334
|
this.registeredInteractionHandler =
|
|
226
|
-
(_a = this.viewer) === null || _a === void 0 ? void 0 : _a.registerInteractionHandler(new
|
|
335
|
+
(_a = this.viewer) === null || _a === void 0 ? void 0 : _a.registerInteractionHandler(new MeasurementInteractionHandler(this.measurementController, this.measurableEntityTypes));
|
|
227
336
|
}
|
|
228
337
|
}
|
|
229
338
|
clearModelListeners() {
|
|
230
|
-
var _a;
|
|
231
|
-
(_a = this.
|
|
232
|
-
this.
|
|
339
|
+
var _a, _b;
|
|
340
|
+
(_a = this.onEntitiesChangedHandler) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
341
|
+
this.onEntitiesChangedHandler = undefined;
|
|
342
|
+
(_b = this.onOverlaysChangedHandler) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
343
|
+
this.onOverlaysChangedHandler = undefined;
|
|
233
344
|
}
|
|
234
345
|
setupModelListeners() {
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
}
|
|
239
|
-
updateEntities() {
|
|
240
|
-
var _a, _b;
|
|
241
|
-
this.entities = (_b = (_a = this.measurementModel) === null || _a === void 0 ? void 0 : _a.getEntities()) !== null && _b !== void 0 ? _b : [];
|
|
346
|
+
this.onOverlaysChangedHandler = this.measurementOverlays.onOverlaysChanged((overlays) => {
|
|
347
|
+
this.overlays = overlays;
|
|
348
|
+
});
|
|
242
349
|
}
|
|
243
350
|
static get watchers() { return {
|
|
351
|
+
"measurableEntityTypes": ["handleMeasurableEntityTypesChanged"],
|
|
244
352
|
"measurementController": ["handleMeasurementControllerChanged"],
|
|
245
353
|
"measurementModel": ["handleMeasurementModelChanged"],
|
|
246
354
|
"viewer": ["handleViewerChanged"]
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
7
|
|
|
8
|
-
const index = require('./index-
|
|
8
|
+
const index = require('./index-e100709a.js');
|
|
9
9
|
const utils = require('./utils-235cd490.js');
|
|
10
10
|
const templates = require('./templates-e57b3741.js');
|
|
11
|
-
require('./streamAttributes-
|
|
11
|
+
require('./streamAttributes-d6236448.js');
|
|
12
12
|
const measurement = require('./measurement-aba1e0e8.js');
|
|
13
13
|
require('./bundle.esm-dc0a8361.js');
|
|
14
14
|
require('./browser.esm-31b03292.js');
|
|
@@ -5,14 +5,18 @@
|
|
|
5
5
|
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
7
|
|
|
8
|
-
const index = require('./index-
|
|
8
|
+
const index = require('./index-e100709a.js');
|
|
9
9
|
const utils = require('./utils-235cd490.js');
|
|
10
|
+
require('./mapper-f6e6cafe.js');
|
|
11
|
+
require('./grpc-web-client.umd-60a79aae.js');
|
|
12
|
+
require('./streamAttributes-d6236448.js');
|
|
13
|
+
const model = require('./model-4ec0c36e.js');
|
|
14
|
+
const results = require('./results-bc325974.js');
|
|
10
15
|
const templates = require('./templates-e57b3741.js');
|
|
11
|
-
require('./streamAttributes-9d6226ac.js');
|
|
12
16
|
const measurement = require('./measurement-aba1e0e8.js');
|
|
13
17
|
require('./bundle.esm-dc0a8361.js');
|
|
14
|
-
require('./browser.esm-31b03292.js');
|
|
15
18
|
require('./_commonjsHelpers-537d719a.js');
|
|
19
|
+
require('./browser.esm-31b03292.js');
|
|
16
20
|
|
|
17
21
|
const viewerMeasurementsCss = ":host{display:block;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none}::slotted(.viewer-measurements__measurement[mode='']){cursor:pointer}::slotted(.viewer-measurements__measurement[mode='edit']){z-index:1}::slotted(.viewer-measurements__measurement[interacting-anchor='start']),::slotted(.viewer-measurements__measurement[interacting-anchor='end']),::slotted(vertex-viewer-measurement-tool[is-measuring]){z-index:2}";
|
|
18
22
|
|
|
@@ -43,6 +47,17 @@ let ViewerMeasurements = class {
|
|
|
43
47
|
* value of 0 disables snapping.
|
|
44
48
|
*/
|
|
45
49
|
this.snapDistance = utils.MEASUREMENT_SNAP_DISTANCE;
|
|
50
|
+
/**
|
|
51
|
+
* Enables the display of axis reference lines between the start and end
|
|
52
|
+
* point of selected measurements.
|
|
53
|
+
*/
|
|
54
|
+
this.showAxisReferenceLines = false;
|
|
55
|
+
/**
|
|
56
|
+
* The measurement model that will be updated with the selected measurement.
|
|
57
|
+
* You can pass this to a <vertex-viewer-measurement-details> component to
|
|
58
|
+
* display measurement outcomes.
|
|
59
|
+
*/
|
|
60
|
+
this.measurementModel = new model.MeasurementModel();
|
|
46
61
|
}
|
|
47
62
|
/**
|
|
48
63
|
* Adds a new measurement as a child to this component. A new measurement
|
|
@@ -111,9 +126,23 @@ let ViewerMeasurements = class {
|
|
|
111
126
|
* @ignore
|
|
112
127
|
*/
|
|
113
128
|
async handleSelectedMeasurementIdChanged() {
|
|
129
|
+
this.measurementModel.clearOutcome();
|
|
114
130
|
const measurements = await this.getMeasurementElements();
|
|
115
131
|
measurements.forEach((m) => {
|
|
116
|
-
|
|
132
|
+
if (m.id === this.selectedMeasurementId) {
|
|
133
|
+
m.mode = 'edit';
|
|
134
|
+
m.showAxisReferenceLines = this.showAxisReferenceLines;
|
|
135
|
+
if (m.start != null && m.end != null) {
|
|
136
|
+
this.measurementModel.setOutcome({
|
|
137
|
+
isApproximate: true,
|
|
138
|
+
results: [results.makeMinimumDistanceResult(m.start, m.end)],
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
m.mode = '';
|
|
144
|
+
m.showAxisReferenceLines = false;
|
|
145
|
+
}
|
|
117
146
|
});
|
|
118
147
|
}
|
|
119
148
|
/**
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
7
|
|
|
8
|
-
const index = require('./index-
|
|
8
|
+
const index = require('./index-e100709a.js');
|
|
9
9
|
const bundle_esm = require('./bundle.esm-dc0a8361.js');
|
|
10
|
-
const stencil = require('./stencil-
|
|
11
|
-
const streamAttributes = require('./streamAttributes-
|
|
10
|
+
const stencil = require('./stencil-a664cd10.js');
|
|
11
|
+
const streamAttributes = require('./streamAttributes-d6236448.js');
|
|
12
12
|
const index$1 = require('./index-3bc6bac0.js');
|
|
13
13
|
require('./browser.esm-31b03292.js');
|
|
14
14
|
require('./_commonjsHelpers-537d719a.js');
|
|
@@ -94,7 +94,7 @@ const ViewCubeShadow = ({ length, }) => {
|
|
|
94
94
|
index.h("div", { class: "cube-shadow-face" })));
|
|
95
95
|
};
|
|
96
96
|
|
|
97
|
-
const viewerViewCubeCss = ":host{--viewer-view-cube-side-background:var(--white);--viewer-view-cube-side-background-hover:var(--blue-500);--viewer-view-cube-side-background-hover-opacity:0.25;--viewer-view-cube-side-border:1.5px solid var(--neutral-500);--viewer-view-cube-edge-length:12px;--viewer-view-cube-opacity:0.8;display:block;color:var(--neutral-700);width:80px;height:80px;margin:20px;position:relative;display:flex;align-items:center;justify-content:center;user-select:none}.renderer{position:unset;width:100%;height:100%;overflow:visible}.reference-point{width:5px;height:5px;border-radius:50%;background-color:black}.triad{pointer-events:none}.triad-axis{width:100%;height:1.5px;outline:1px solid transparent;transform:translateX(50%)}.triad-axis-x{background-color:#ea3324}.triad-axis-y{background-color:#4faf32}.triad-axis-z{background-color:#0000ff}.triad-label{font-family:Arial, Helvetica, sans-serif;font-size:0.6875rem}.triad-label-x{color
|
|
97
|
+
const viewerViewCubeCss = ":host{--viewer-view-cube-side-background:var(--white);--viewer-view-cube-side-background-hover:var(--blue-500);--viewer-view-cube-side-background-hover-opacity:0.25;--viewer-view-cube-side-border:1.5px solid var(--neutral-500);--viewer-view-cube-edge-length:12px;--viewer-view-cube-opacity:0.8;--viewer-view-cube-triad-x-axis-color:var(--x-axis-color);--viewer-view-cube-triad-y-axis-color:var(--y-axis-color);--viewer-view-cube-triad-z-axis-color:var(--z-axis-color);display:block;color:var(--neutral-700);width:80px;height:80px;margin:20px;position:relative;display:flex;align-items:center;justify-content:center;user-select:none}.renderer{position:unset;width:100%;height:100%;overflow:visible}.reference-point{width:5px;height:5px;border-radius:50%;background-color:black}.triad{pointer-events:none}.triad-axis{width:100%;height:1.5px;outline:1px solid transparent;transform:translateX(50%)}.triad-axis-x{background-color:#ea3324}.triad-axis-y{background-color:#4faf32}.triad-axis-z{background-color:#0000ff}.triad-label{font-family:Arial, Helvetica, sans-serif;font-size:0.6875rem}.triad-label-x{color:var(--viewer-view-cube-triad-x-axis-color)}.triad-label-y{color:var(--viewer-view-cube-triad-y-axis-color)}.triad-label-z{color:var(--viewer-view-cube-triad-z-axis-color)}.cube{pointer-events:initial}.cube:hover .cube-side-face{opacity:1}.cube-side{backface-visibility:hidden;-webkit-backface-visibility:hidden}.cube-side-face{box-sizing:border-box;font-size:0.875rem;text-transform:uppercase;width:100%;height:100%;background-color:var(--viewer-view-cube-side-background);border:var(--viewer-view-cube-side-border);display:flex;align-items:center;justify-content:center;outline:1px solid transparent;opacity:var(--viewer-view-cube-opacity);transition:opacity 0.2s ease-in-out}.cube-side-face::before{content:'';position:absolute;left:calc(var(--viewer-view-cube-edge-length) - 4px);right:calc(var(--viewer-view-cube-edge-length) - 4px);top:calc(var(--viewer-view-cube-edge-length) - 4px);bottom:calc(var(--viewer-view-cube-edge-length) - 4px)}.cube-corner,.cube-edge{position:relative}.cube-corner-face,.cube-edge-face{position:absolute;backface-visibility:hidden;-webkit-backface-visibility:hidden}.cube-edge-face.top{top:0;left:var(--viewer-view-cube-edge-length);right:var(--viewer-view-cube-edge-length);height:var(--viewer-view-cube-edge-length)}.cube-edge-face.bottom{bottom:0;left:var(--viewer-view-cube-edge-length);right:var(--viewer-view-cube-edge-length);height:var(--viewer-view-cube-edge-length)}.cube-edge-face.left{left:0;top:var(--viewer-view-cube-edge-length);bottom:var(--viewer-view-cube-edge-length);width:var(--viewer-view-cube-edge-length)}.cube-edge-face.right{right:0;top:var(--viewer-view-cube-edge-length);bottom:var(--viewer-view-cube-edge-length);width:var(--viewer-view-cube-edge-length)}.cube-corner-face{width:var(--viewer-view-cube-edge-length);height:var(--viewer-view-cube-edge-length)}.cube-corner-face.top-left{top:0;left:0}.cube-corner-face.top-right{top:0;right:0}.cube-corner-face.bottom-right{bottom:0;right:0}.cube-corner-face.bottom-left{bottom:0;left:0}.cube-shadow{backface-visibility:hidden;-webkit-backface-visibility:hidden}.cube-shadow-face{position:absolute;left:4px;right:4px;top:4px;bottom:4px;background-color:black;opacity:0.12;filter:blur(4px)}.cube-corner .cube-corner-face,.cube-edge .cube-edge-face,.cube-side .cube-side-face::before{background:var(--viewer-view-cube-side-background-hover);opacity:0}.cube-corner:hover .cube-corner-face,.cube-edge:hover .cube-edge-face,.cube-side:hover .cube-side-face::before{opacity:var(--viewer-view-cube-side-background-hover-opacity)}.cube-corner.disabled,.cube-edge.disabled,.cube-side.disabled{pointer-events:none}";
|
|
98
98
|
|
|
99
99
|
let ViewerViewCube = class {
|
|
100
100
|
constructor(hostRef) {
|