@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
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**!
|
|
2
2
|
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-
|
|
5
|
-
import { p as point, v as vector3,
|
|
6
|
-
import { h as fromPbStencilBufferOrThrow, i as decodePng, j as DepthBuffer, t as toProtoDuration, p as protoToDate, k as toPbStreamAttributes, l as toPbRGBi, S as StreamApi, m as StreamRequestError, n as fromPbFrameOrThrow, o as fromPbStartStreamResponseOrThrow, q as fromPbReconnectResponseOrThrow, r as fromPbSyncTimeResponseOrThrow, s as currentDateAsProtoTimestamp, u as fromPbRefreshTokenResponseOrThrow, W as WebSocketClientImpl } from './streamAttributes-
|
|
7
|
-
import { E as EventDispatcher, m as mapper, c as color, o as objects, u as uri, a as async, b as uuid } from './browser.esm-
|
|
4
|
+
import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-10c1495a.js';
|
|
5
|
+
import { p as point, v as vector3, i as angle, h as plane, r as ray, b as boundingBox, o as matrix2, d as dimensions } from './bundle.esm-d899b2d5.js';
|
|
6
|
+
import { h as fromPbStencilBufferOrThrow, i as decodePng, j as DepthBuffer, t as toProtoDuration, E as EntityType, p as protoToDate, k as toPbStreamAttributes, l as toPbRGBi, S as StreamApi, m as StreamRequestError, n as fromPbFrameOrThrow, o as fromPbStartStreamResponseOrThrow, q as fromPbReconnectResponseOrThrow, r as fromPbSyncTimeResponseOrThrow, s as currentDateAsProtoTimestamp, u as fromPbRefreshTokenResponseOrThrow, W as WebSocketClientImpl } from './streamAttributes-d623bb60.js';
|
|
7
|
+
import { E as EventDispatcher, m as mapper, c as color, o as objects, u as uri, a as async, b as uuid } from './browser.esm-59e914f6.js';
|
|
8
8
|
import { c as classnames } from './index-455380d0.js';
|
|
9
|
-
import { p as parseConfig } from './config-
|
|
10
|
-
import { C as CursorManager } from './cursors-
|
|
11
|
-
import { g as getMouseClientPosition, c as cssCursor } from './dom-
|
|
12
|
-
import { I as ImageLoadError, f as fromUrn, C as CustomError, W as WebsocketConnectionError, a as SynchronizedClock, b as SceneRenderError, d as defaultSelectionMaterial, V as ViewerInitializationError, e as InteractionHandlerError, g as ComponentInitializationError, h as IllegalStateError, i as fromHex, S as Scene } from './scene-
|
|
13
|
-
import { V as Viewport } from './viewport-
|
|
9
|
+
import { p as parseConfig } from './config-604c644e.js';
|
|
10
|
+
import { C as CursorManager } from './cursors-a7ec4adb.js';
|
|
11
|
+
import { g as getMouseClientPosition, c as cssCursor } from './dom-780d25be.js';
|
|
12
|
+
import { I as ImageLoadError, f as fromUrn, C as CustomError, W as WebsocketConnectionError, a as SynchronizedClock, b as SceneRenderError, d as defaultSelectionMaterial, V as ViewerInitializationError, e as InteractionHandlerError, g as ComponentInitializationError, h as IllegalStateError, i as fromHex, S as Scene } from './scene-9ac8a484.js';
|
|
13
|
+
import { V as Viewport } from './viewport-01c886ea.js';
|
|
14
14
|
import './_commonjsHelpers-9943807e.js';
|
|
15
15
|
|
|
16
16
|
/**
|
|
@@ -320,8 +320,9 @@ class FlyToPositionKeyInteraction {
|
|
|
320
320
|
* the internal state of an interaction.
|
|
321
321
|
*/
|
|
322
322
|
class InteractionApi {
|
|
323
|
-
constructor(stream, getConfig, getScene, getFrame, getViewport, tapEmitter, doubleTapEmitter, longPressEmitter, interactionStartedEmitter, interactionFinishedEmitter) {
|
|
323
|
+
constructor(stream, cursors, getConfig, getScene, getFrame, getViewport, tapEmitter, doubleTapEmitter, longPressEmitter, interactionStartedEmitter, interactionFinishedEmitter) {
|
|
324
324
|
this.stream = stream;
|
|
325
|
+
this.cursors = cursors;
|
|
325
326
|
this.getConfig = getConfig;
|
|
326
327
|
this.getScene = getScene;
|
|
327
328
|
this.getFrame = getFrame;
|
|
@@ -336,6 +337,53 @@ class InteractionApi {
|
|
|
336
337
|
this.longPress = this.longPress.bind(this);
|
|
337
338
|
this.emitTapEvent = this.emitTapEvent.bind(this);
|
|
338
339
|
}
|
|
340
|
+
/**
|
|
341
|
+
* Displays a cursor over the viewer with the given priority. Cursors with
|
|
342
|
+
* higher priority will take precedence over cursors with lower priorities if
|
|
343
|
+
* there's more than a single cursor added.
|
|
344
|
+
*
|
|
345
|
+
* @param cursor The cursor to add.
|
|
346
|
+
* @param priority The priority of the cursor.
|
|
347
|
+
* @returns A `Disposable` that can be used to remove the cursor.
|
|
348
|
+
*/
|
|
349
|
+
addCursor(cursor, priority) {
|
|
350
|
+
return this.cursors.add(cursor, priority);
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Returns a 3D point in world space for the given 2D point in viewport space.
|
|
354
|
+
*
|
|
355
|
+
* @param point A point in 2D viewport space to transform.
|
|
356
|
+
* @returns A 3D point in world space.
|
|
357
|
+
*/
|
|
358
|
+
async getWorldPointFromViewport(point) {
|
|
359
|
+
const viewport = this.getViewport();
|
|
360
|
+
const frame = this.getFrame();
|
|
361
|
+
if (frame == null) {
|
|
362
|
+
throw new Error('Cannot get world point. Frame is undefined.');
|
|
363
|
+
}
|
|
364
|
+
const depthBuffer = await frame.depthBuffer();
|
|
365
|
+
return depthBuffer != null
|
|
366
|
+
? viewport.transformPointToWorldSpace(point, depthBuffer, 0.5)
|
|
367
|
+
: undefined;
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Returns the entity at the given point in viewport space.
|
|
371
|
+
*
|
|
372
|
+
* @param point A point in viewport space.
|
|
373
|
+
* @returns The entity that was found.
|
|
374
|
+
*/
|
|
375
|
+
async getEntityTypeAtPoint(point) {
|
|
376
|
+
var _a;
|
|
377
|
+
const viewport = this.getViewport();
|
|
378
|
+
const featureMap = await ((_a = this.getFrame()) === null || _a === void 0 ? void 0 : _a.featureMap());
|
|
379
|
+
if (featureMap != null) {
|
|
380
|
+
const framePt = viewport.transformPointToFrame(point, featureMap);
|
|
381
|
+
return featureMap.getEntityType(framePt);
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
return EntityType.NO_GEOMETRY;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
339
387
|
/**
|
|
340
388
|
* Generates a ray from the given point, in viewport coordinates.
|
|
341
389
|
*
|
|
@@ -496,8 +544,8 @@ class InteractionApi {
|
|
|
496
544
|
});
|
|
497
545
|
}
|
|
498
546
|
/**
|
|
499
|
-
* Performs a view all operation for the scene's bounding box, and requests a
|
|
500
|
-
* for the updated scene.
|
|
547
|
+
* Performs a view all operation for the scene's bounding box, and requests a
|
|
548
|
+
* new image for the updated scene.
|
|
501
549
|
*/
|
|
502
550
|
async viewAll() {
|
|
503
551
|
await this.getScene().camera().viewAll().render();
|
|
@@ -2745,7 +2793,7 @@ let Viewer = class {
|
|
|
2745
2793
|
if (this.stream == null) {
|
|
2746
2794
|
throw new ComponentInitializationError('Cannot create interaction API. Component has not been initialized.');
|
|
2747
2795
|
}
|
|
2748
|
-
return new InteractionApi(this.stream, () => this.getResolvedConfig().interactions, () => this.createScene(), () => this.frame, () => this.viewport, this.tap, this.doubletap, this.longpress, this.interactionStarted, this.interactionFinished);
|
|
2796
|
+
return new InteractionApi(this.stream, this.stateMap.cursorManager, () => this.getResolvedConfig().interactions, () => this.createScene(), () => this.frame, () => this.viewport, this.tap, this.doubletap, this.longpress, this.interactionStarted, this.interactionFinished);
|
|
2749
2797
|
}
|
|
2750
2798
|
handleCursorChanged() {
|
|
2751
2799
|
window.requestAnimationFrame(() => {
|
package/dist/esm/viewer.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**!
|
|
2
2
|
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import { d as doc, N as NAMESPACE, w as win, p as promiseResolve, b as bootstrapLazy } from './index-
|
|
4
|
+
import { d as doc, N as NAMESPACE, w as win, p as promiseResolve, b as bootstrapLazy } from './index-10c1495a.js';
|
|
5
5
|
|
|
6
6
|
/*
|
|
7
7
|
Stencil Client Patch Browser v2.12.1 | MIT Licensed | https://stenciljs.com
|
|
@@ -69,5 +69,5 @@ const patchDynamicImport = (base, orgScriptElm) => {
|
|
|
69
69
|
};
|
|
70
70
|
|
|
71
71
|
patchBrowser().then(options => {
|
|
72
|
-
return bootstrapLazy([["vertex-viewer-default-toolbar",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["vertex-scene-tree",[[1,"vertex-scene-tree",{"overScanCount":[2,"over-scan-count"],"viewerSelector":[1,"viewer-selector"],"viewer":[1040],"rowData":[16],"config":[16],"configEnv":[1,"config-env"],"controller":[1040],"filterOnMetadata":[1028,"filter-on-metadata"],"metadataKeys":[16],"rows":[32],"totalRows":[32],"stateMap":[32],"connectionErrorDetails":[32],"attemptingRetry":[32],"invalidateRows":[64],"scrollToIndex":[64],"scrollToItem":[64],"expandAll":[64],"collapseAll":[64],"expandItem":[64],"collapseItem":[64],"toggleExpandItem":[64],"toggleItemVisibility":[64],"hideItem":[64],"showItem":[64],"selectItem":[64],"deselectItem":[64],"getRowAtIndex":[64],"getRowForEvent":[64],"getRowAtClientY":[64],"filterItems":[64],"fetchMetadataKeys":[64]},[[0,"search","handleSearch"]]]]],["vertex-viewer-markup",[[1,"vertex-viewer-markup",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"selectedMarkupId":[1025,"selected-markup-id"],"selectNew":[4,"select-new"],"toSelectMarkupId":[32],"pointerDownPosition":[32],"addMarkup":[64],"removeMarkup":[64],"getMarkupElements":[64],"getMarkupElement":[64]},[[0,"markupEnd","handleMarkupEnd"],[1,"pointerdown","handleMarkupPointerDown"]]]]],["vertex-viewer-markup-tool",[[1,"vertex-viewer-markup-tool",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"stateMap":[32],"reset":[64]}]]],["vertex-viewer-
|
|
72
|
+
return bootstrapLazy([["vertex-viewer-default-toolbar",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["vertex-scene-tree",[[1,"vertex-scene-tree",{"overScanCount":[2,"over-scan-count"],"viewerSelector":[1,"viewer-selector"],"viewer":[1040],"rowData":[16],"config":[16],"configEnv":[1,"config-env"],"controller":[1040],"filterOnMetadata":[1028,"filter-on-metadata"],"metadataKeys":[16],"rows":[32],"totalRows":[32],"stateMap":[32],"connectionErrorDetails":[32],"attemptingRetry":[32],"invalidateRows":[64],"scrollToIndex":[64],"scrollToItem":[64],"expandAll":[64],"collapseAll":[64],"expandItem":[64],"collapseItem":[64],"toggleExpandItem":[64],"toggleItemVisibility":[64],"hideItem":[64],"showItem":[64],"selectItem":[64],"deselectItem":[64],"getRowAtIndex":[64],"getRowForEvent":[64],"getRowAtClientY":[64],"filterItems":[64],"fetchMetadataKeys":[64]},[[0,"search","handleSearch"]]]]],["vertex-viewer-measurement-tool",[[1,"vertex-viewer-measurement-tool",{"distanceTemplateId":[1,"distance-template-id"],"tool":[1],"units":[1],"fractionalDigits":[2,"fractional-digits"],"disabled":[4],"viewer":[16],"isMeasuring":[1540,"is-measuring"],"snapDistance":[2,"snap-distance"],"stateMap":[32]}]]],["vertex-viewer-markup",[[1,"vertex-viewer-markup",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"selectedMarkupId":[1025,"selected-markup-id"],"selectNew":[4,"select-new"],"toSelectMarkupId":[32],"pointerDownPosition":[32],"addMarkup":[64],"removeMarkup":[64],"getMarkupElements":[64],"getMarkupElement":[64]},[[0,"markupEnd","handleMarkupEnd"],[1,"pointerdown","handleMarkupPointerDown"]]]]],["vertex-viewer-markup-tool",[[1,"vertex-viewer-markup-tool",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"stateMap":[32],"reset":[64]}]]],["vertex-viewer-measurements",[[1,"vertex-viewer-measurements",{"distanceTemplateId":[1,"distance-template-id"],"tool":[1],"units":[1],"fractionalDigits":[2,"fractional-digits"],"disabled":[4],"viewer":[16],"selectedMeasurementId":[1025,"selected-measurement-id"],"snapDistance":[2,"snap-distance"],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"measurementModel":[16],"addMeasurement":[64],"removeMeasurement":[64],"getMeasurementElement":[64],"getMeasurementElements":[64]},[[0,"measureEnd","handleMeasureEnd"],[1,"pointerdown","handleMeasurementPointerDown"]]]]],["vertex-viewer-view-cube",[[1,"vertex-viewer-view-cube",{"xPositiveLabel":[1,"x-positive-label"],"xNegativeLabel":[1,"x-negative-label"],"yPositiveLabel":[1,"y-positive-label"],"yNegativeLabel":[1,"y-negative-label"],"zPositiveLabel":[1,"z-positive-label"],"zNegativeLabel":[1,"z-negative-label"],"standardViewsOff":[4,"standard-views-off"],"animationDuration":[2,"animation-duration"],"triadOff":[4,"triad-off"],"worldOrientation":[1040],"camera":[1040],"viewer":[16],"boxLength":[32],"triadPosition":[32]}]]],["vertex-viewer-measurement-precise",[[1,"vertex-viewer-measurement-precise",{"measurementModel":[16],"measurementOverlays":[16],"measurementController":[1040],"measurableEntityTypes":[16],"viewer":[16],"configEnv":[1,"config-env"],"config":[16],"overlays":[32]}]]],["vertex-scene-tree-table-cell",[[1,"vertex-scene-tree-table-cell",{"node":[16],"tree":[16],"value":[1],"placeholder":[1],"hoveredNodeId":[1,"hovered-node-id"],"expandToggle":[4,"expand-toggle"],"visibilityToggle":[4,"visibility-toggle"],"interactionsDisabled":[4,"interactions-disabled"],"recurseParentSelectionDisabled":[4,"recurse-parent-selection-disabled"]}]]],["vertex-scene-tree-table-column",[[1,"vertex-scene-tree-table-column",{"initialWidth":[2,"initial-width"],"minWidth":[2,"min-width"],"maxWidth":[2,"max-width"]}]]],["vertex-scene-tree-table-header",[[1,"vertex-scene-tree-table-header"]]],["vertex-scene-tree-table-resize-divider",[[1,"vertex-scene-tree-table-resize-divider",{"dragging":[32]}]]],["vertex-scene-tree-toolbar-group",[[1,"vertex-scene-tree-toolbar-group"]]],["vertex-viewer",[[1,"vertex-viewer",{"src":[1],"clientId":[1,"client-id"],"deviceId":[1,"device-id"],"config":[1],"configEnv":[1,"config-env"],"resolvedConfig":[1040],"cameraControls":[4,"camera-controls"],"keyboardControls":[4,"keyboard-controls"],"rotateAroundTapPoint":[4,"rotate-around-tap-point"],"token":[1025],"depthBuffers":[1,"depth-buffers"],"experimentalGhostingOpacity":[2,"experimental-ghosting-opacity"],"featureLines":[16],"featureHighlighting":[16],"featureMaps":[1,"feature-maps"],"selectionMaterial":[1,"selection-material"],"frame":[1040],"stream":[1040],"stencilBuffer":[1040],"viewport":[1040],"dimensions":[32],"hostDimensions":[32],"errorMessage":[32],"cursor":[32],"stateMap":[32],"dispatchFrameDrawn":[64],"registerInteractionHandler":[64],"registerTapKeyInteraction":[64],"getInteractionTarget":[64],"addCursor":[64],"getInteractionHandlers":[64],"getBaseInteractionHandler":[64],"getJwt":[64],"load":[64],"unload":[64],"scene":[64],"isSceneReady":[64]},[[0,"tap","handleTapEvent"]]]]],["vertex-viewer-measurement-details",[[1,"vertex-viewer-measurement-details",{"measurementModel":[16],"measurementOverlays":[16],"distanceUnits":[1,"distance-units"],"angleUnits":[1,"angle-units"],"fractionalDigits":[2,"fractional-digits"],"distanceFormatter":[16],"angleFormatter":[16],"areaFormatter":[16],"resultTypes":[16],"results":[32],"isApproximate":[32],"overlay":[32],"distanceMeasurementUnits":[32],"angleMeasurementUnits":[32],"areaMeasurementUnits":[32]}]]],["vertex-viewer-measurement-distance",[[1,"vertex-viewer-measurement-distance",{"start":[1040],"startJson":[1,"start"],"end":[1040],"endJson":[1,"end"],"distance":[1026],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"snapDistance":[2,"snap-distance"],"units":[1],"fractionalDigits":[2,"fractional-digits"],"labelFormatter":[16],"anchorLabelOffset":[2,"anchor-label-offset"],"lineCapLength":[2,"line-cap-length"],"mode":[513],"interactingAnchor":[1537,"interacting-anchor"],"invalid":[1540],"camera":[16],"hitProvider":[16],"indicatorPt":[1040],"viewer":[16],"viewport":[32],"elementBounds":[32],"interactionCount":[32],"internalCamera":[32],"invalidateStateCounter":[32],"stateMap":[32],"computeElementMetrics":[64]}]]],["vertex-scene-tree-search_3",[[1,"vertex-scene-tree-search",{"debounce":[2],"disabled":[4],"placeholder":[1],"value":[1025],"focused":[32],"setFocus":[64]}],[1,"vertex-scene-tree-table-layout",{"tree":[16],"controller":[16],"rows":[16],"totalRows":[2,"total-rows"],"rowHeight":[1026,"row-height"],"overScanCount":[2,"over-scan-count"],"rowData":[16],"layoutOffset":[1026,"layout-offset"],"scrollOffset":[1026,"scroll-offset"],"layoutHeight":[1026,"layout-height"],"layoutWidth":[1026,"layout-width"],"viewportStartIndex":[1026,"viewport-start-index"],"viewportEndIndex":[1026,"viewport-end-index"],"columnGridLayout":[32],"columnGridFixedLayout":[32],"hoveredNodeId":[32],"isComputingCellHeight":[32],"lastDividerPointerPosition":[32],"resizingColumnIndex":[32],"stateMap":[32],"scrollToPosition":[64]}],[1,"vertex-scene-tree-toolbar"]]],["vertex-viewer-button_3",[[1,"vertex-viewer-toolbar",{"placement":[1],"direction":[1]}],[1,"vertex-viewer-button"],[1,"vertex-viewer-toolbar-group",{"direction":[1]}]]],["vertex-viewer-dom-element_3",[[1,"vertex-viewer-dom-element",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040],"occlusionOff":[4,"occlusion-off"],"occluded":[516],"billboardOff":[4,"billboard-off"],"interactionsOff":[516,"interactions-off"]}],[1,"vertex-viewer-dom-group",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040]}],[1,"vertex-viewer-dom-renderer",{"drawMode":[1,"draw-mode"],"viewer":[16],"camera":[1040],"depthBuffer":[1040],"viewport":[32],"invalidateFrameCounter":[32]},[[0,"propertyChange","handlePropertyChange"]]]]],["vertex-viewer-icon",[[1,"vertex-viewer-icon",{"name":[1],"size":[1]}]]],["vertex-viewer-layer",[[1,"vertex-viewer-layer",{"stretchOff":[516,"stretch-off"]}]]],["vertex-viewer-markup-arrow_3",[[1,"vertex-viewer-markup-arrow",{"start":[1040],"startJson":[1,"start"],"end":[1040],"endJson":[1,"end"],"mode":[513],"viewer":[16],"elementBounds":[32],"editAnchor":[32],"dispose":[64]}],[1,"vertex-viewer-markup-circle",{"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"startPosition":[32],"editAnchor":[32],"resizeBounds":[32],"dispose":[64]}],[1,"vertex-viewer-markup-freeform",{"points":[1040],"pointsJson":[1,"points"],"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"resizeStartPosition":[32],"editAnchor":[32],"resizeBounds":[32],"resizePoints":[32],"screenPoints":[32],"dispose":[64]}]]],["vertex-viewer-measurement-line_2",[[1,"vertex-viewer-measurement-overlays",{"measurementOverlays":[16],"camera":[1040],"viewer":[16],"overlays":[32]}],[1,"vertex-viewer-measurement-line",{"start":[16],"end":[16],"capLength":[2,"cap-length"],"pointerEvents":[1,"pointer-events"]}]]]], options);
|
|
73
73
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**!
|
|
2
2
|
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import { d as dimensions, p as point, v as vector3, r as ray,
|
|
4
|
+
import { d as dimensions, p as point, v as vector3, r as ray, g as rectangle } from './bundle.esm-d899b2d5.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* A `Viewport` represents the drawing area in the viewer.
|
|
@@ -45,6 +45,17 @@ class Viewport {
|
|
|
45
45
|
transformVectorToViewport(ndc) {
|
|
46
46
|
return point.create(ndc.x * this.center.x + this.center.x, -ndc.y * this.center.y + this.center.y);
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Transforms a world point to 2D point in viewport space.
|
|
50
|
+
*
|
|
51
|
+
* @param worldPt The world point to transform.
|
|
52
|
+
* @param projectionViewMatrix The projection matrix to transform a 3D point to 2D point.
|
|
53
|
+
* @returns A point in viewport space.
|
|
54
|
+
*/
|
|
55
|
+
transformWorldToViewport(worldPt, projectionViewMatrix) {
|
|
56
|
+
const ndc = vector3.transformMatrix(worldPt, projectionViewMatrix);
|
|
57
|
+
return this.transformVectorToViewport(ndc);
|
|
58
|
+
}
|
|
48
59
|
transformPointToViewport(pt, image) {
|
|
49
60
|
const { x: scaleX, y: scaleY } = this.calculateFrameScale(image);
|
|
50
61
|
return point.scale(pt, 1 * scaleX, 1 * scaleY);
|
package/dist/types/components/viewer-measurement-details/viewer-measurement-details-entry.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FunctionalComponent } from '../../stencil-public-runtime';
|
|
2
|
+
interface MeasurementDetailsEntryProps {
|
|
3
|
+
label: string;
|
|
4
|
+
onMouseEnter?: () => void;
|
|
5
|
+
onMouseLeave?: () => void;
|
|
6
|
+
}
|
|
7
|
+
export declare const MeasurementDetailsEntry: FunctionalComponent<MeasurementDetailsEntryProps>;
|
|
8
|
+
export {};
|
package/dist/types/components/viewer-measurement-details/viewer-measurement-details-results.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FunctionalComponent } from '../../stencil-public-runtime';
|
|
2
|
+
import { Formatter } from '../../lib/formatter';
|
|
3
|
+
import { MeasurementOverlay, MeasurementOverlayManager, MeasurementResult, MinimumDistanceMeasurementResult, PlanarAngleMeasurementResult, PlanarDistanceMeasurementResult, SurfaceAreaMeasurementResult } from '../../lib/measurement';
|
|
4
|
+
interface MeasurementResultEntryProps<R extends MeasurementResult> {
|
|
5
|
+
result: R;
|
|
6
|
+
overlays?: MeasurementOverlayManager;
|
|
7
|
+
formatter: Formatter<number>;
|
|
8
|
+
onShowOverlay: (overlay: MeasurementOverlay | undefined) => void;
|
|
9
|
+
onHideOverlay: () => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const MinimumDistanceResultEntry: FunctionalComponent<MeasurementResultEntryProps<MinimumDistanceMeasurementResult>>;
|
|
12
|
+
export declare const PlanarAngleResultEntry: FunctionalComponent<MeasurementResultEntryProps<PlanarAngleMeasurementResult>>;
|
|
13
|
+
export declare const PlanarDistanceResultEntry: FunctionalComponent<MeasurementResultEntryProps<PlanarDistanceMeasurementResult>>;
|
|
14
|
+
export declare const SurfaceAreaResultEntry: FunctionalComponent<MeasurementResultEntryProps<SurfaceAreaMeasurementResult>>;
|
|
15
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { h } from '../../stencil-public-runtime';
|
|
2
2
|
import { Formatter } from '../../lib/formatter';
|
|
3
|
-
import {
|
|
3
|
+
import { MeasurementModel, MeasurementOverlayManager, MeasurementResult } from '../../lib/measurement';
|
|
4
4
|
import { AngleUnitType, DistanceUnitType } from '../../lib/types';
|
|
5
5
|
export declare class ViewerMeasurementDetails {
|
|
6
6
|
/**
|
|
@@ -9,6 +9,10 @@ export declare class ViewerMeasurementDetails {
|
|
|
9
9
|
* which can then be used to update the display.
|
|
10
10
|
*/
|
|
11
11
|
measurementModel: MeasurementModel;
|
|
12
|
+
/**
|
|
13
|
+
* The manager that the component will use to present measurement overlays.
|
|
14
|
+
*/
|
|
15
|
+
measurementOverlays?: MeasurementOverlayManager;
|
|
12
16
|
/**
|
|
13
17
|
* The unit of distance-based measurement.
|
|
14
18
|
*/
|
|
@@ -40,56 +44,54 @@ export declare class ViewerMeasurementDetails {
|
|
|
40
44
|
*/
|
|
41
45
|
areaFormatter?: Formatter<number>;
|
|
42
46
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* Can be provided as an array of keys from the `MeasurementDetailsSummary`
|
|
46
|
-
* type, or as a JSON array with the format '["angle", "minDistance"]'.
|
|
47
|
+
* A set of result types to display. If `undefined`, then all results will be
|
|
48
|
+
* displayed.
|
|
47
49
|
*/
|
|
48
|
-
|
|
50
|
+
resultTypes?: MeasurementResult['type'][];
|
|
51
|
+
private results;
|
|
52
|
+
private isApproximate;
|
|
53
|
+
private overlay?;
|
|
54
|
+
private distanceMeasurementUnits;
|
|
55
|
+
private angleMeasurementUnits;
|
|
56
|
+
private areaMeasurementUnits;
|
|
57
|
+
private onOutcomeChangedHandler?;
|
|
49
58
|
/**
|
|
50
|
-
*
|
|
51
|
-
* reduced sets of details for more a more focused representation.
|
|
52
|
-
* Can be provided as an array of keys from the `MeasurementDetailsSummary`
|
|
53
|
-
* type, or as a JSON array with the format '["angle", "minDistance"]'.
|
|
59
|
+
* @internal
|
|
54
60
|
*/
|
|
55
|
-
|
|
61
|
+
protected connectedCallback(): void;
|
|
56
62
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* @readonly
|
|
63
|
+
* @internal
|
|
60
64
|
*/
|
|
61
|
-
|
|
65
|
+
protected disconnectedCallback(): void;
|
|
62
66
|
/**
|
|
63
|
-
*
|
|
64
|
-
* the current `MeasurementResult` set.
|
|
65
|
-
*
|
|
66
|
-
* @readonly
|
|
67
|
+
* @internal
|
|
67
68
|
*/
|
|
68
|
-
|
|
69
|
+
protected handleDistanceUnitsChanged(): void;
|
|
69
70
|
/**
|
|
70
|
-
*
|
|
71
|
-
* and `hiddenDetails`.
|
|
72
|
-
*
|
|
73
|
-
* @readonly
|
|
71
|
+
* @internal
|
|
74
72
|
*/
|
|
75
|
-
visibleSummary?: MeasurementDetailsSummary;
|
|
76
|
-
private distanceMeasurementUnits;
|
|
77
|
-
private angleMeasurementUnits;
|
|
78
|
-
private areaMeasurementUnits;
|
|
79
|
-
private resultsChangeListener?;
|
|
80
|
-
connectedCallback(): void;
|
|
81
|
-
componentWillLoad(): void;
|
|
82
|
-
componentWillUpdate(): void;
|
|
83
|
-
disconnectedCallback(): void;
|
|
84
|
-
protected handleDistanceUnitsChanged(): void;
|
|
85
73
|
protected handleAngleUnitsChanged(): void;
|
|
74
|
+
/**
|
|
75
|
+
* @internal
|
|
76
|
+
*/
|
|
86
77
|
protected handleMeasurementModelChanged(): void;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
78
|
+
/**
|
|
79
|
+
* @internal
|
|
80
|
+
*/
|
|
81
|
+
protected handleResultTypesChanged(): void;
|
|
82
|
+
/**
|
|
83
|
+
* @internal
|
|
84
|
+
*/
|
|
85
|
+
protected render(): h.JSX.IntrinsicElements;
|
|
86
|
+
private handleShowOverlay;
|
|
87
|
+
private handleHideOverlay;
|
|
88
|
+
private handleOutcomeChange;
|
|
89
|
+
private updateStateFromModel;
|
|
90
|
+
private renderResult;
|
|
91
|
+
private getResultForType;
|
|
92
|
+
private makeDistanceFormatter;
|
|
93
|
+
private makeAngleFormatter;
|
|
94
|
+
private makeAreaFormatter;
|
|
95
|
+
private makeFormatter;
|
|
96
|
+
private formatValue;
|
|
95
97
|
}
|
|
@@ -1,9 +1,31 @@
|
|
|
1
1
|
import { Point, Vector3 } from '@vertexvis/geometry';
|
|
2
2
|
import { Disposable, Listener } from '@vertexvis/utils';
|
|
3
|
-
import { PointToPointMeasurementResult } from '../../lib/measurement';
|
|
4
3
|
import { RaycasterLike } from '../../lib/scenes';
|
|
5
4
|
import { PointToPointHitTester } from './hitTest';
|
|
6
5
|
import { Anchor } from './utils';
|
|
6
|
+
/**
|
|
7
|
+
* A measurement result that represents the distance between two points.
|
|
8
|
+
*/
|
|
9
|
+
export interface PointToPointMeasurementResult {
|
|
10
|
+
/**
|
|
11
|
+
* The distance, in world units, between two points. This value is only
|
|
12
|
+
* populated if the result is valid.
|
|
13
|
+
*/
|
|
14
|
+
distance?: number;
|
|
15
|
+
/**
|
|
16
|
+
* The first point, in world units.
|
|
17
|
+
*/
|
|
18
|
+
start: Vector3.Vector3;
|
|
19
|
+
/**
|
|
20
|
+
* The second point, in world units.
|
|
21
|
+
*/
|
|
22
|
+
end: Vector3.Vector3;
|
|
23
|
+
/**
|
|
24
|
+
* Indicates if this result is valid. A value of `false` indicates that one of
|
|
25
|
+
* the points does not touch any geometry.
|
|
26
|
+
*/
|
|
27
|
+
valid: boolean;
|
|
28
|
+
}
|
|
7
29
|
/**
|
|
8
30
|
* Provides APIs to perform local or remote hit tests.
|
|
9
31
|
*/
|
|
@@ -69,6 +69,11 @@ export declare class ViewerMeasurementDistance {
|
|
|
69
69
|
* measurement is invalid.
|
|
70
70
|
*/
|
|
71
71
|
distance?: number;
|
|
72
|
+
/**
|
|
73
|
+
* Enables the display of axis reference lines between the start and end
|
|
74
|
+
* point.
|
|
75
|
+
*/
|
|
76
|
+
showAxisReferenceLines: boolean;
|
|
72
77
|
/**
|
|
73
78
|
* The distance, in pixels, between the mouse and nearest snappable edge. A
|
|
74
79
|
* value of 0 disables snapping.
|
|
@@ -151,6 +156,8 @@ export declare class ViewerMeasurementDistance {
|
|
|
151
156
|
private model;
|
|
152
157
|
private controller;
|
|
153
158
|
private interaction?;
|
|
159
|
+
private overlays;
|
|
160
|
+
private overlay?;
|
|
154
161
|
private measurementUnits;
|
|
155
162
|
private isUserInteractingWithModel;
|
|
156
163
|
/**
|
|
@@ -195,6 +202,7 @@ export declare class ViewerMeasurementDistance {
|
|
|
195
202
|
protected handleEndChanged(): void;
|
|
196
203
|
protected handleInvalidChanged(): void;
|
|
197
204
|
private computePropsAndState;
|
|
205
|
+
private updateOverlays;
|
|
198
206
|
private setCursor;
|
|
199
207
|
private computeElementPositions;
|
|
200
208
|
private computeEditOrViewElementPositions;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FunctionalComponent } from '../../stencil-public-runtime';
|
|
2
|
+
import { MeasurementOverlay } from '../../lib/measurement';
|
|
3
|
+
import { FramePerspectiveCamera, Viewport } from '../../lib/types';
|
|
4
|
+
interface MeasurementOverlayViewProps<O extends MeasurementOverlay> {
|
|
5
|
+
overlay: O;
|
|
6
|
+
viewport: Viewport;
|
|
7
|
+
camera: FramePerspectiveCamera;
|
|
8
|
+
}
|
|
9
|
+
export declare const MeasurementOverlayView: FunctionalComponent<MeasurementOverlayViewProps<MeasurementOverlay>>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { h } from '../../stencil-public-runtime';
|
|
2
|
+
import { MeasurementOverlayManager } from '../../lib/measurement';
|
|
3
|
+
import { FramePerspectiveCamera } from '../../lib/types';
|
|
4
|
+
export declare class ViewerMeasurementOverlays {
|
|
5
|
+
/**
|
|
6
|
+
* The model that contains the overlays to present.
|
|
7
|
+
*/
|
|
8
|
+
measurementOverlays: MeasurementOverlayManager;
|
|
9
|
+
private onOverlaysChangedListener?;
|
|
10
|
+
/**
|
|
11
|
+
* @ignore
|
|
12
|
+
*/
|
|
13
|
+
protected handleMeasurementOverlaysChanged(): void;
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
camera?: FramePerspectiveCamera;
|
|
18
|
+
/**
|
|
19
|
+
* The viewer that this component is bound to.
|
|
20
|
+
*/
|
|
21
|
+
viewer?: HTMLVertexViewerElement;
|
|
22
|
+
/**
|
|
23
|
+
* @ignore
|
|
24
|
+
*/
|
|
25
|
+
protected handleViewerChanged(newViewer?: HTMLVertexViewerElement, oldViewer?: HTMLVertexViewerElement): void;
|
|
26
|
+
private overlays;
|
|
27
|
+
/**
|
|
28
|
+
* @ignore
|
|
29
|
+
*/
|
|
30
|
+
protected componentWillLoad(): void;
|
|
31
|
+
private addModelListeners;
|
|
32
|
+
private removeModelListeners;
|
|
33
|
+
private addViewerListeners;
|
|
34
|
+
private removeViewerListeners;
|
|
35
|
+
private updateCamera;
|
|
36
|
+
private updateOverlays;
|
|
37
|
+
/**
|
|
38
|
+
* @ignore
|
|
39
|
+
*/
|
|
40
|
+
protected render(): h.JSX.IntrinsicElements;
|
|
41
|
+
}
|
|
@@ -1,28 +1,84 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { Config } from '../../lib/config';
|
|
3
3
|
import { Environment } from '../../lib/environment';
|
|
4
|
-
import { MeasurementController, MeasurementModel } from '../../lib/measurement';
|
|
4
|
+
import { MeasurementController, MeasurementModel, MeasurementOverlayManager } from '../../lib/measurement';
|
|
5
|
+
import { EntityType } from '../../lib/types';
|
|
5
6
|
export declare class ViewerMeasurementPrecise {
|
|
7
|
+
/**
|
|
8
|
+
* The model that contains the entities and outcomes from performing precise
|
|
9
|
+
* measurements.
|
|
10
|
+
*/
|
|
6
11
|
measurementModel: MeasurementModel;
|
|
12
|
+
/**
|
|
13
|
+
* The manager that is responsible for measurement overlays to present by this
|
|
14
|
+
* component.
|
|
15
|
+
*/
|
|
16
|
+
measurementOverlays: MeasurementOverlayManager;
|
|
17
|
+
/**
|
|
18
|
+
* The controller that is responsible for performing measurements and updating
|
|
19
|
+
* the model.
|
|
20
|
+
*/
|
|
7
21
|
measurementController?: MeasurementController;
|
|
22
|
+
/**
|
|
23
|
+
* @internal
|
|
24
|
+
*
|
|
25
|
+
* An internal property that can be used to opt-in to performing measurements
|
|
26
|
+
* on other types of entities.
|
|
27
|
+
*/
|
|
28
|
+
measurableEntityTypes: EntityType[];
|
|
29
|
+
/**
|
|
30
|
+
* The viewer that this component is bound to. This is automatically assigned
|
|
31
|
+
* if added to the light-dom of a parent viewer element.
|
|
32
|
+
*/
|
|
8
33
|
viewer?: HTMLVertexViewerElement;
|
|
34
|
+
/**
|
|
35
|
+
* The environment that will be used to request measurement results.
|
|
36
|
+
*/
|
|
9
37
|
configEnv: Environment;
|
|
38
|
+
/**
|
|
39
|
+
* An optional configuration to setup network configuration of measurement
|
|
40
|
+
* endpoints.
|
|
41
|
+
*/
|
|
10
42
|
config?: Config;
|
|
11
|
-
private
|
|
43
|
+
private overlays;
|
|
12
44
|
private registeredInteractionHandler?;
|
|
13
|
-
private
|
|
45
|
+
private onEntitiesChangedHandler?;
|
|
46
|
+
private onOverlaysChangedHandler?;
|
|
47
|
+
/**
|
|
48
|
+
* @ignore
|
|
49
|
+
*/
|
|
14
50
|
protected connectedCallback(): void;
|
|
51
|
+
/**
|
|
52
|
+
* @ignore
|
|
53
|
+
*/
|
|
15
54
|
protected componentWillLoad(): void;
|
|
55
|
+
/**
|
|
56
|
+
* @ignore
|
|
57
|
+
*/
|
|
16
58
|
protected disconnectedCallback(): void;
|
|
59
|
+
/**
|
|
60
|
+
* @ignore
|
|
61
|
+
*/
|
|
62
|
+
protected handleMeasurableEntityTypesChanged(): void;
|
|
63
|
+
/**
|
|
64
|
+
* @ignore
|
|
65
|
+
*/
|
|
17
66
|
protected handleMeasurementControllerChanged(): void;
|
|
67
|
+
/**
|
|
68
|
+
* @ignore
|
|
69
|
+
*/
|
|
18
70
|
protected handleMeasurementModelChanged(): void;
|
|
71
|
+
/**
|
|
72
|
+
* @ignore
|
|
73
|
+
*/
|
|
19
74
|
protected handleViewerChanged(): void;
|
|
20
|
-
|
|
75
|
+
/**
|
|
76
|
+
* @ignore
|
|
77
|
+
*/
|
|
78
|
+
protected render(): JSX.Element;
|
|
21
79
|
private setupController;
|
|
22
80
|
private clearInteractionHandler;
|
|
23
81
|
private setupInteractionHandler;
|
|
24
82
|
private clearModelListeners;
|
|
25
83
|
private setupModelListeners;
|
|
26
|
-
private handleEntitiesChanged;
|
|
27
|
-
private updateEntities;
|
|
28
84
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EventEmitter, h } from '../../stencil-public-runtime';
|
|
2
|
+
import { MeasurementModel } from '../../lib/measurement';
|
|
2
3
|
import { DistanceUnitType, Measurement } from '../../lib/types';
|
|
3
4
|
import { ViewerMeasurementToolType } from '../viewer-measurement-tool/viewer-measurement-tool';
|
|
4
5
|
export declare class ViewerMeasurements {
|
|
@@ -39,6 +40,17 @@ export declare class ViewerMeasurements {
|
|
|
39
40
|
* value of 0 disables snapping.
|
|
40
41
|
*/
|
|
41
42
|
snapDistance: number;
|
|
43
|
+
/**
|
|
44
|
+
* Enables the display of axis reference lines between the start and end
|
|
45
|
+
* point of selected measurements.
|
|
46
|
+
*/
|
|
47
|
+
showAxisReferenceLines: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* The measurement model that will be updated with the selected measurement.
|
|
50
|
+
* You can pass this to a <vertex-viewer-measurement-details> component to
|
|
51
|
+
* display measurement outcomes.
|
|
52
|
+
*/
|
|
53
|
+
measurementModel: MeasurementModel;
|
|
42
54
|
/**
|
|
43
55
|
* Dispatched when a new measurement is added, either through user interaction
|
|
44
56
|
* or programmatically.
|