@vertexvis/viewer 0.15.2-testing.3 → 0.15.2-testing.4
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-6e330a82.js → config-4a86ae0b.js} +1 -1
- package/dist/cjs/{entities-7b2e8c03.js → entities-496b61cd.js} +2 -2
- package/dist/cjs/index.cjs.js +4 -4
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{mapper-0f2294a6.js → mapper-216603b0.js} +1 -1
- package/dist/cjs/{scene-56438693.js → scene-0ce59b26.js} +28 -1
- package/dist/cjs/{streamAttributes-c64aee75.js → streamAttributes-7725f5c4.js} +976 -4
- package/dist/cjs/vertex-scene-tree.cjs.entry.js +2 -2
- package/dist/cjs/vertex-viewer-box-query-tool.cjs.entry.js +245 -0
- package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +2 -2
- package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +2 -2
- package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +4 -4
- package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +2 -2
- package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer.cjs.entry.js +3 -3
- package/dist/cjs/viewer.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.css +74 -0
- package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.js +191 -0
- package/dist/collection/lib/scenes/mapper.js +12 -1
- package/dist/collection/lib/scenes/queries.js +17 -1
- package/dist/collection/lib/volume-intersection/controller.js +48 -0
- package/dist/collection/lib/volume-intersection/interactions.js +37 -0
- package/dist/collection/lib/volume-intersection/model.js +67 -0
- package/dist/custom-elements/index.d.ts +6 -0
- package/dist/custom-elements/index.js +1241 -5
- package/dist/esm/{config-49688db8.js → config-6cdeb6ca.js} +1 -1
- package/dist/esm/{entities-a5bfef48.js → entities-6f3c5437.js} +2 -2
- package/dist/esm/index.js +4 -4
- package/dist/esm/index.mjs +4 -4
- package/dist/esm/loader.js +1 -1
- package/dist/esm/loader.mjs +1 -1
- package/dist/esm/{mapper-5894c2a4.js → mapper-941ff03c.js} +1 -1
- package/dist/esm/{scene-5b919078.js → scene-970f5000.js} +28 -1
- package/dist/esm/{streamAttributes-7e8565be.js → streamAttributes-24bd7b3a.js} +976 -4
- package/dist/esm/vertex-scene-tree.entry.js +2 -2
- package/dist/esm/vertex-viewer-box-query-tool.entry.js +241 -0
- package/dist/esm/vertex-viewer-dom-element_2.entry.js +1 -1
- package/dist/esm/vertex-viewer-measurement-details.entry.js +1 -1
- package/dist/esm/vertex-viewer-measurement-distance.entry.js +2 -2
- package/dist/esm/vertex-viewer-measurement-line_2.entry.js +2 -2
- package/dist/esm/vertex-viewer-measurement-precise.entry.js +4 -4
- package/dist/esm/vertex-viewer-pin-group.entry.js +2 -2
- package/dist/esm/vertex-viewer-transform-widget.entry.js +1 -1
- package/dist/esm/vertex-viewer-view-cube.entry.js +1 -1
- package/dist/esm/vertex-viewer.entry.js +3 -3
- package/dist/esm/viewer.js +1 -1
- package/dist/types/components/viewer-box-query-tool/viewer-box-query-tool.d.ts +60 -0
- package/dist/types/components.d.ts +48 -0
- package/dist/types/lib/scenes/queries.d.ts +14 -2
- package/dist/types/lib/volume-intersection/controller.d.ts +17 -0
- package/dist/types/lib/volume-intersection/interactions.d.ts +13 -0
- package/dist/types/lib/volume-intersection/model.d.ts +26 -0
- package/dist/viewer/index.esm.js +1 -1
- package/dist/viewer/{p-1e0dd2e9.js → p-10145045.js} +1 -1
- package/dist/viewer/{p-a6558bb2.entry.js → p-1bba9ade.entry.js} +1 -1
- package/dist/viewer/{p-3f6f2457.entry.js → p-24cda14a.entry.js} +1 -1
- package/dist/viewer/{p-b7e170ac.entry.js → p-2b58afc3.entry.js} +1 -1
- package/dist/viewer/{p-22ae6785.entry.js → p-51966cef.entry.js} +1 -1
- package/dist/viewer/{p-1fc24ec6.js → p-52ab9ec0.js} +1 -1
- package/dist/viewer/{p-927b528b.js → p-597cc9b5.js} +1 -1
- package/dist/viewer/{p-61e50e11.entry.js → p-608925c5.entry.js} +1 -1
- package/dist/viewer/p-68e192b9.js +4 -0
- package/dist/viewer/{p-d34ad2b2.entry.js → p-69a3fce8.entry.js} +1 -1
- package/dist/viewer/{p-7579e2a1.entry.js → p-74c772bb.entry.js} +1 -1
- package/dist/viewer/{p-40a9dd7d.js → p-9e1384c9.js} +1 -1
- package/dist/viewer/{p-d64c1e14.entry.js → p-a107b65e.entry.js} +2 -2
- package/dist/viewer/p-bb425931.entry.js +4 -0
- package/dist/viewer/{p-920c9a88.entry.js → p-bfacbaa8.entry.js} +1 -1
- package/dist/viewer/{p-f3ea0c2b.entry.js → p-c72da0fb.entry.js} +1 -1
- package/dist/viewer/viewer.esm.js +1 -1
- package/package.json +8 -8
- package/dist/viewer/p-31b87b90.js +0 -4
|
@@ -5,10 +5,10 @@ import { h, F as Fragment, r as registerInstance, c as createEvent, f as forceUp
|
|
|
5
5
|
import { o as __rest } from './bundle.esm-ce2c7ad3.js';
|
|
6
6
|
import { c as createCommonjsModule } from './_commonjsHelpers-11ca3be1.js';
|
|
7
7
|
import { a as googleProtobuf, w as wrappers_pb, g as grpcWebClient_umd } from './grpc-web-client.umd-5409853c.js';
|
|
8
|
-
import { p as parseConfig } from './config-
|
|
8
|
+
import { p as parseConfig } from './config-6cdeb6ca.js';
|
|
9
9
|
import { E as EventDispatcher } from './browser.esm-ae4ca1f1.js';
|
|
10
10
|
import { i as isLoadedRow, f as fromNodeProto, g as getSceneTreeContainsElement } from './dom-e19ee80b.js';
|
|
11
|
-
import './streamAttributes-
|
|
11
|
+
import './streamAttributes-24bd7b3a.js';
|
|
12
12
|
import './entities-ce81dd7f.js';
|
|
13
13
|
|
|
14
14
|
window.requestIdleCallback =
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/**!
|
|
2
|
+
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import { r as registerInstance, h, H as Host, g as getElement } from './index-26dfb2d0.js';
|
|
5
|
+
import { p as point, i as rectangle } from './bundle.esm-ce2c7ad3.js';
|
|
6
|
+
import { E as EventDispatcher } from './browser.esm-ae4ca1f1.js';
|
|
7
|
+
|
|
8
|
+
const DEFAULT_CONCURRENT_VOLUME_QUERY_LIMIT = 5;
|
|
9
|
+
class VolumeIntersectionQueryController {
|
|
10
|
+
constructor(model, viewer) {
|
|
11
|
+
this.model = model;
|
|
12
|
+
this.viewer = viewer;
|
|
13
|
+
this.inFlightOperations = 0;
|
|
14
|
+
this.operationTransform = (builder) => builder.select();
|
|
15
|
+
}
|
|
16
|
+
setStartPoint(point) {
|
|
17
|
+
this.previousViewerCameraControls = this.viewer.cameraControls;
|
|
18
|
+
this.viewer.cameraControls = false;
|
|
19
|
+
this.model.setStartPoint(point);
|
|
20
|
+
}
|
|
21
|
+
setEndPoint(point) {
|
|
22
|
+
this.model.setEndPoint(point);
|
|
23
|
+
}
|
|
24
|
+
setOperationTransform(operationTransform) {
|
|
25
|
+
this.operationTransform = operationTransform;
|
|
26
|
+
}
|
|
27
|
+
async execute() {
|
|
28
|
+
var _a;
|
|
29
|
+
const screenBounds = this.model.getScreenBounds();
|
|
30
|
+
const type = this.model.getType();
|
|
31
|
+
this.viewer.cameraControls = (_a = this.previousViewerCameraControls) !== null && _a !== void 0 ? _a : true;
|
|
32
|
+
this.model.complete();
|
|
33
|
+
if (screenBounds != null &&
|
|
34
|
+
this.inFlightOperations < DEFAULT_CONCURRENT_VOLUME_QUERY_LIMIT) {
|
|
35
|
+
this.inFlightOperations = this.inFlightOperations + 1;
|
|
36
|
+
try {
|
|
37
|
+
const scene = await this.viewer.scene();
|
|
38
|
+
await scene
|
|
39
|
+
.items((op) => this.operationTransform(op.where((q) => q.withVolumeIntersection(screenBounds, type === 'exclusive'))))
|
|
40
|
+
.execute();
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
console.error('Failed to perform volume intersection query', e);
|
|
44
|
+
throw e;
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
this.inFlightOperations = this.inFlightOperations - 1;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else if (this.inFlightOperations >= DEFAULT_CONCURRENT_VOLUME_QUERY_LIMIT) {
|
|
51
|
+
throw new Error(`Unable to perform volume intersection query due to the limit of ${DEFAULT_CONCURRENT_VOLUME_QUERY_LIMIT}.`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
class VolumeIntersectionQueryInteractionHandler {
|
|
57
|
+
constructor(controller) {
|
|
58
|
+
this.controller = controller;
|
|
59
|
+
this.handleDragBegin = this.handleDragBegin.bind(this);
|
|
60
|
+
this.handleDrag = this.handleDrag.bind(this);
|
|
61
|
+
this.handleDragEnd = this.handleDragEnd.bind(this);
|
|
62
|
+
}
|
|
63
|
+
initialize(element) {
|
|
64
|
+
this.element = element;
|
|
65
|
+
this.element.addEventListener('pointerdown', this.handleDragBegin);
|
|
66
|
+
}
|
|
67
|
+
dispose() {
|
|
68
|
+
var _a;
|
|
69
|
+
(_a = this.element) === null || _a === void 0 ? void 0 : _a.removeEventListener('pointerdown', this.handleDragBegin);
|
|
70
|
+
window.removeEventListener('pointermove', this.handleDrag);
|
|
71
|
+
window.removeEventListener('pointerup', this.handleDragEnd);
|
|
72
|
+
}
|
|
73
|
+
handleDragBegin(event) {
|
|
74
|
+
if (event.buttons === 1 && !this.isInteracting) {
|
|
75
|
+
this.isInteracting = true;
|
|
76
|
+
this.controller.setStartPoint(point.create(event.offsetX, event.offsetY));
|
|
77
|
+
window.addEventListener('pointermove', this.handleDrag);
|
|
78
|
+
window.addEventListener('pointerup', this.handleDragEnd);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
handleDrag(event) {
|
|
82
|
+
this.controller.setEndPoint(point.create(event.offsetX, event.offsetY));
|
|
83
|
+
}
|
|
84
|
+
handleDragEnd() {
|
|
85
|
+
this.controller.execute();
|
|
86
|
+
this.isInteracting = false;
|
|
87
|
+
window.removeEventListener('pointermove', this.handleDrag);
|
|
88
|
+
window.removeEventListener('pointerup', this.handleDragEnd);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
class VolumeIntersectionQueryModel {
|
|
93
|
+
constructor() {
|
|
94
|
+
this.dragStarted = new EventDispatcher();
|
|
95
|
+
this.dragComplete = new EventDispatcher();
|
|
96
|
+
this.screenBoundsChanged = new EventDispatcher();
|
|
97
|
+
}
|
|
98
|
+
setStartPoint(point) {
|
|
99
|
+
this.startPoint = point;
|
|
100
|
+
this.dragStarted.emit();
|
|
101
|
+
}
|
|
102
|
+
setEndPoint(point) {
|
|
103
|
+
this.endPoint = point;
|
|
104
|
+
this.updateQueryType();
|
|
105
|
+
this.screenBoundsChanged.emit(this.getQueryDetails());
|
|
106
|
+
}
|
|
107
|
+
complete() {
|
|
108
|
+
if (this.startPoint != null && this.endPoint != null) {
|
|
109
|
+
this.screenBoundsChanged.emit(undefined);
|
|
110
|
+
this.dragComplete.emit(this.getQueryDetails());
|
|
111
|
+
this.reset();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
reset() {
|
|
115
|
+
this.startPoint = undefined;
|
|
116
|
+
this.endPoint = undefined;
|
|
117
|
+
this.type = undefined;
|
|
118
|
+
}
|
|
119
|
+
getScreenBounds() {
|
|
120
|
+
return this.startPoint != null && this.endPoint != null
|
|
121
|
+
? rectangle.fromPoints(this.startPoint, this.endPoint)
|
|
122
|
+
: undefined;
|
|
123
|
+
}
|
|
124
|
+
getType() {
|
|
125
|
+
return this.type;
|
|
126
|
+
}
|
|
127
|
+
onScreenBoundsChanged(listener) {
|
|
128
|
+
return this.screenBoundsChanged.on(listener);
|
|
129
|
+
}
|
|
130
|
+
onDragStarted(listener) {
|
|
131
|
+
return this.dragStarted.on(listener);
|
|
132
|
+
}
|
|
133
|
+
onDragComplete(listener) {
|
|
134
|
+
return this.dragComplete.on(listener);
|
|
135
|
+
}
|
|
136
|
+
getQueryDetails() {
|
|
137
|
+
if (this.startPoint != null && this.endPoint != null && this.type != null) {
|
|
138
|
+
return {
|
|
139
|
+
screenBounds: rectangle.fromPoints(this.startPoint, this.endPoint),
|
|
140
|
+
type: this.type,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
throw new Error('Failed to create query details, the start and end points must be set.');
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
updateQueryType() {
|
|
148
|
+
if (this.startPoint != null && this.endPoint) {
|
|
149
|
+
this.type =
|
|
150
|
+
point.subtract(this.endPoint, this.startPoint).x > 0
|
|
151
|
+
? 'exclusive'
|
|
152
|
+
: 'inclusive';
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
const viewerBoxQueryToolCss = ":host{--viewer-box-query-outline-exclusive-color:#0099cc;--viewer-box-query-outline-exclusive-border-style:solid;--viewer-box-query-outline-inclusive-color:#00cc00;--viewer-box-query-outline-inclusive-border-style:dashed;--viewer-box-query-outline-border-radius:0.25rem;--viewer-box-query-outline-fill-opacity:0.25}.bounds{position:absolute}.outline{position:relative;width:100%;height:100%;box-sizing:border-box;border-radius:var(--viewer-box-query-outline-border-radius)}:host([exclusive=\"true\"]) .outline{border:3px var(--viewer-box-query-outline-exclusive-border-style) var(--viewer-box-query-outline-exclusive-color)}:host([inclusive=\"true\"]) .outline{border:3px var(--viewer-box-query-outline-inclusive-border-style) var(--viewer-box-query-outline-inclusive-color)}.fill{position:relative;width:100%;height:100%;opacity:var(--viewer-box-query-outline-fill-opacity)}:host([exclusive=\"true\"]) .fill{background-color:var(--viewer-box-query-outline-exclusive-color)}:host([inclusive=\"true\"]) .fill{background-color:var(--viewer-box-query-outline-inclusive-color)}";
|
|
158
|
+
|
|
159
|
+
const ViewerBoxQueryTool = class {
|
|
160
|
+
constructor(hostRef) {
|
|
161
|
+
registerInstance(this, hostRef);
|
|
162
|
+
/**
|
|
163
|
+
* The default operation to perform when a drag has completed and the intersection
|
|
164
|
+
* query will be run. Defaults to `select`, and can be changed to `deselect`.
|
|
165
|
+
*
|
|
166
|
+
* The operation behavior for this intersection query tool can also be changed by
|
|
167
|
+
* providing a custom implementation of the `VolumeIntersectionQueryController`, or
|
|
168
|
+
* by using the `setOperationTransform` method of the default controller.
|
|
169
|
+
*/
|
|
170
|
+
this.operationType = 'select';
|
|
171
|
+
this.handleScreenBoundsChanged = this.handleScreenBoundsChanged.bind(this);
|
|
172
|
+
}
|
|
173
|
+
componentWillLoad() {
|
|
174
|
+
var _a;
|
|
175
|
+
this.model = (_a = this.model) !== null && _a !== void 0 ? _a : new VolumeIntersectionQueryModel();
|
|
176
|
+
this.screenBoundsChangedDisposable = this.model.onScreenBoundsChanged(this.handleScreenBoundsChanged);
|
|
177
|
+
this.handleViewerChanged(this.viewer);
|
|
178
|
+
}
|
|
179
|
+
disconnectedCallback() {
|
|
180
|
+
var _a, _b, _c;
|
|
181
|
+
(_a = this.model) === null || _a === void 0 ? void 0 : _a.reset();
|
|
182
|
+
(_b = this.screenBoundsChangedDisposable) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
183
|
+
(_c = this.interactionHandler) === null || _c === void 0 ? void 0 : _c.dispose();
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* @ignore
|
|
187
|
+
*/
|
|
188
|
+
handleViewerChanged(newViewer) {
|
|
189
|
+
this.deregisterInteractionHandler();
|
|
190
|
+
if (this.model != null && newViewer != null) {
|
|
191
|
+
this.controller = new VolumeIntersectionQueryController(this.model, newViewer);
|
|
192
|
+
this.handleDefaultOperationChange(this.operationType);
|
|
193
|
+
this.registerInteractionHandler(this.controller, newViewer);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* @ignore
|
|
198
|
+
*/
|
|
199
|
+
handleDefaultOperationChange(updatedOperationType) {
|
|
200
|
+
var _a;
|
|
201
|
+
(_a = this.controller) === null || _a === void 0 ? void 0 : _a.setOperationTransform(updatedOperationType === 'select'
|
|
202
|
+
? (builder) => builder.select()
|
|
203
|
+
: (builder) => builder.deselect());
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* @ignore
|
|
207
|
+
*/
|
|
208
|
+
render() {
|
|
209
|
+
return (h(Host, null, h("vertex-viewer-layer", null, this.details != null && (h("div", { class: "bounds", style: {
|
|
210
|
+
left: `${this.details.screenBounds.x}px`,
|
|
211
|
+
top: `${this.details.screenBounds.y}px`,
|
|
212
|
+
width: `${this.details.screenBounds.width}px`,
|
|
213
|
+
height: `${this.details.screenBounds.height}px`,
|
|
214
|
+
} }, h("slot", { name: "bounds" }, h("div", { class: "outline" }, h("div", { class: "fill" }))))))));
|
|
215
|
+
}
|
|
216
|
+
handleScreenBoundsChanged(details) {
|
|
217
|
+
this.details = details;
|
|
218
|
+
this.updateTypeAttribute(details === null || details === void 0 ? void 0 : details.type);
|
|
219
|
+
}
|
|
220
|
+
registerInteractionHandler(controller, viewer) {
|
|
221
|
+
this.interactionHandler = new VolumeIntersectionQueryInteractionHandler(controller);
|
|
222
|
+
viewer.registerInteractionHandler(this.interactionHandler);
|
|
223
|
+
}
|
|
224
|
+
deregisterInteractionHandler() {
|
|
225
|
+
var _a;
|
|
226
|
+
(_a = this.interactionHandler) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
227
|
+
this.interactionHandler = undefined;
|
|
228
|
+
}
|
|
229
|
+
updateTypeAttribute(type) {
|
|
230
|
+
this.hostEl.setAttribute('inclusive', `${type === 'inclusive'}`);
|
|
231
|
+
this.hostEl.setAttribute('exclusive', `${type === 'exclusive'}`);
|
|
232
|
+
}
|
|
233
|
+
get hostEl() { return getElement(this); }
|
|
234
|
+
static get watchers() { return {
|
|
235
|
+
"viewer": ["handleViewerChanged"],
|
|
236
|
+
"operationType": ["handleDefaultOperationChange"]
|
|
237
|
+
}; }
|
|
238
|
+
};
|
|
239
|
+
ViewerBoxQueryTool.style = viewerBoxQueryToolCss;
|
|
240
|
+
|
|
241
|
+
export { ViewerBoxQueryTool as vertex_viewer_box_query_tool };
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-26dfb2d0.js';
|
|
5
5
|
import { v as vector3, q as quaternion, m as matrix4, u as euler } from './bundle.esm-ce2c7ad3.js';
|
|
6
6
|
import { o as objects } from './browser.esm-ae4ca1f1.js';
|
|
7
|
-
import './streamAttributes-
|
|
7
|
+
import './streamAttributes-24bd7b3a.js';
|
|
8
8
|
import './entities-ce81dd7f.js';
|
|
9
9
|
import { V as Viewport } from './viewport-e39e2eba.js';
|
|
10
10
|
import './_commonjsHelpers-11ca3be1.js';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
4
|
import { h, F as Fragment, r as registerInstance, H as Host } from './index-26dfb2d0.js';
|
|
5
|
-
import { D as DistanceUnits, A as AngleUnits, f as AreaUnits } from './streamAttributes-
|
|
5
|
+
import { D as DistanceUnits, A as AngleUnits, f as AreaUnits } from './streamAttributes-24bd7b3a.js';
|
|
6
6
|
import './entities-ce81dd7f.js';
|
|
7
7
|
import { o as __rest, v as vector3 } from './bundle.esm-ce2c7ad3.js';
|
|
8
8
|
import { c as classnames } from './index-e841d91b.js';
|
|
@@ -5,9 +5,9 @@ import { h, r as registerInstance, c as createEvent, H as Host, g as getElement
|
|
|
5
5
|
import { v as vector3, h as angle, p as point, l as line3 } from './bundle.esm-ce2c7ad3.js';
|
|
6
6
|
import { m as measurementCursor } from './cursors-a8d4b3f4.js';
|
|
7
7
|
import { a as cssTransformCenterAt, g as getMouseClientPosition } from './dom-5b164305.js';
|
|
8
|
-
import './mapper-
|
|
8
|
+
import './mapper-941ff03c.js';
|
|
9
9
|
import './grpc-web-client.umd-5409853c.js';
|
|
10
|
-
import { j as fromPbVector3f, D as DistanceUnits } from './streamAttributes-
|
|
10
|
+
import { j as fromPbVector3f, D as DistanceUnits } from './streamAttributes-24bd7b3a.js';
|
|
11
11
|
import { M as MeasurementModel } from './model-fa9af61a.js';
|
|
12
12
|
import { M as MeasurementOverlayManager } from './overlays-cc3efc30.js';
|
|
13
13
|
import { m as makeMinimumDistanceResult } from './results-3b4df2cf.js';
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { r as registerInstance, h, F as Fragment, H as Host } from './index-26dfb2d0.js';
|
|
5
5
|
import { p as point, h as angle } from './bundle.esm-ce2c7ad3.js';
|
|
6
|
-
import './mapper-
|
|
6
|
+
import './mapper-941ff03c.js';
|
|
7
7
|
import './grpc-web-client.umd-5409853c.js';
|
|
8
|
-
import './streamAttributes-
|
|
8
|
+
import './streamAttributes-24bd7b3a.js';
|
|
9
9
|
import { M as MeasurementOverlayManager } from './overlays-cc3efc30.js';
|
|
10
10
|
import { t as translateWorldLineToViewport } from './utils-81347571.js';
|
|
11
11
|
import './_commonjsHelpers-11ca3be1.js';
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
4
|
import { r as registerInstance, h, H as Host } from './index-26dfb2d0.js';
|
|
5
|
-
import { s as scene_view_api_pb } from './mapper-
|
|
5
|
+
import { s as scene_view_api_pb } from './mapper-941ff03c.js';
|
|
6
6
|
import { g as grpcWebClient_umd } from './grpc-web-client.umd-5409853c.js';
|
|
7
|
-
import { p as parseConfig } from './config-
|
|
8
|
-
import { a as MeasurementEntity, M as MeasurementController } from './entities-
|
|
9
|
-
import './streamAttributes-
|
|
7
|
+
import { p as parseConfig } from './config-6cdeb6ca.js';
|
|
8
|
+
import { a as MeasurementEntity, M as MeasurementController } from './entities-6f3c5437.js';
|
|
9
|
+
import './streamAttributes-24bd7b3a.js';
|
|
10
10
|
import { M as MeasurementModel } from './model-fa9af61a.js';
|
|
11
11
|
import { M as MeasurementOverlayManager } from './overlays-cc3efc30.js';
|
|
12
12
|
import { p as point } from './bundle.esm-ce2c7ad3.js';
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
import { h, F as Fragment, r as registerInstance } from './index-26dfb2d0.js';
|
|
5
5
|
import { p as point, m as matrix4, v as vector3 } from './bundle.esm-ce2c7ad3.js';
|
|
6
6
|
import './cursors-a8d4b3f4.js';
|
|
7
|
-
import './mapper-
|
|
7
|
+
import './mapper-941ff03c.js';
|
|
8
8
|
import './grpc-web-client.umd-5409853c.js';
|
|
9
|
-
import './streamAttributes-
|
|
9
|
+
import './streamAttributes-24bd7b3a.js';
|
|
10
10
|
import './entities-ce81dd7f.js';
|
|
11
11
|
import { V as Viewport } from './viewport-e39e2eba.js';
|
|
12
12
|
import { g as getPinColors, i as isIconPin, b as isTextPin, P as PinModel, a as PinController, c as translatePointToScreen } from './model-40bd1711.js';
|
|
@@ -7,7 +7,7 @@ import { c as classnames } from './index-e841d91b.js';
|
|
|
7
7
|
import { w as writeDOM, r as readDOM } from './stencil-bfbf099f.js';
|
|
8
8
|
import { c as color, E as EventDispatcher } from './browser.esm-ae4ca1f1.js';
|
|
9
9
|
import { c as createCommonjsModule, a as commonjsGlobal, g as getAugmentedNamespace, b as getDefaultExportFromCjs } from './_commonjsHelpers-11ca3be1.js';
|
|
10
|
-
import './streamAttributes-
|
|
10
|
+
import './streamAttributes-24bd7b3a.js';
|
|
11
11
|
import './entities-ce81dd7f.js';
|
|
12
12
|
import { V as Viewport } from './viewport-e39e2eba.js';
|
|
13
13
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { h, F as Fragment, r as registerInstance, H as Host } from './index-26dfb2d0.js';
|
|
5
5
|
import { v as vector3, q as quaternion, u as euler } from './bundle.esm-ce2c7ad3.js';
|
|
6
6
|
import { r as readDOM } from './stencil-bfbf099f.js';
|
|
7
|
-
import { O as Orientation, e as FramePerspectiveCamera, G as StandardView } from './streamAttributes-
|
|
7
|
+
import { O as Orientation, e as FramePerspectiveCamera, G as StandardView } from './streamAttributes-24bd7b3a.js';
|
|
8
8
|
import './entities-ce81dd7f.js';
|
|
9
9
|
import { c as classnames } from './index-e841d91b.js';
|
|
10
10
|
import './browser.esm-ae4ca1f1.js';
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-26dfb2d0.js';
|
|
5
5
|
import { p as point, v as vector3, h as angle, j as plane, r as ray, b as boundingBox, s as matrix2, d as dimensions } from './bundle.esm-ce2c7ad3.js';
|
|
6
|
-
import { l as fromPbStencilBufferOrThrow, m as decodePng, n as DepthBuffer, t as toProtoDuration, g as toProtobuf, p as protoToDate, o as toPbStreamAttributes, q as toPbRGBi, S as StreamApi, r as StreamRequestError, s as fromPbFrameOrThrow, u as fromPbStartStreamResponseOrThrow, x as fromPbReconnectResponseOrThrow, y as fromPbSyncTimeResponseOrThrow, z as currentDateAsProtoTimestamp, B as fromPbRefreshTokenResponseOrThrow, W as WebSocketClientImpl, C as toOrthographic, E as toPerspective } from './streamAttributes-
|
|
6
|
+
import { l as fromPbStencilBufferOrThrow, m as decodePng, n as DepthBuffer, t as toProtoDuration, g as toProtobuf, p as protoToDate, o as toPbStreamAttributes, q as toPbRGBi, S as StreamApi, r as StreamRequestError, s as fromPbFrameOrThrow, u as fromPbStartStreamResponseOrThrow, x as fromPbReconnectResponseOrThrow, y as fromPbSyncTimeResponseOrThrow, z as currentDateAsProtoTimestamp, B as fromPbRefreshTokenResponseOrThrow, W as WebSocketClientImpl, C as toOrthographic, E as toPerspective } from './streamAttributes-24bd7b3a.js';
|
|
7
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-ae4ca1f1.js';
|
|
8
8
|
import { c as classnames } from './index-e841d91b.js';
|
|
9
|
-
import { p as parseConfig } from './config-
|
|
9
|
+
import { p as parseConfig } from './config-6cdeb6ca.js';
|
|
10
10
|
import { C as CursorManager } from './cursors-a8d4b3f4.js';
|
|
11
11
|
import { g as getMouseClientPosition, c as cssCursor } from './dom-5b164305.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-
|
|
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-970f5000.js';
|
|
13
13
|
import { E as EntityType } from './entities-ce81dd7f.js';
|
|
14
14
|
import { V as Viewport } from './viewport-e39e2eba.js';
|
|
15
15
|
import './_commonjsHelpers-11ca3be1.js';
|
package/dist/esm/viewer.js
CHANGED
|
@@ -72,5 +72,5 @@ const patchDynamicImport = (base, orgScriptElm) => {
|
|
|
72
72
|
|
|
73
73
|
patchBrowser().then(options => {
|
|
74
74
|
globalScripts();
|
|
75
|
-
return bootstrapLazy([["vertex-viewer-pin-tool",[[1,"vertex-viewer-pin-tool",{"pinController":[1040],"pinModel":[16],"viewer":[16],"tool":[1025],"mode":[1025],"primaryColor":[1025,"primary-color"],"accentColor":[1025,"accent-color"],"pins":[32],"selectedPinId":[32],"elementBounds":[32],"projectionViewMatrix":[32]}]]],["vertex-scene-tree",[[1,"vertex-scene-tree",{"overScanCount":[2,"over-scan-count"],"viewerSelector":[1,"viewer-selector"],"viewer":[1040],"rowData":[16],"config":[1],"configEnv":[1,"config-env"],"controller":[1040],"metadataSearchExactMatch":[1028,"metadata-search-exact-match"],"metadataSearchKeys":[1040],"metadataKeys":[16],"rows":[32],"totalRows":[32],"showLoader":[32],"stateMap":[32],"errorDetails":[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],"selectFilteredItems":[64],"fetchMetadataKeys":[64]},[[0,"search","handleSearch"]]]]],["vertex-viewer-default-toolbar",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["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-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-distance",[[1,"vertex-viewer-measurement-distance",{"start":[1040],"startJson":[1,"start-json"],"end":[1040],"endJson":[1,"end-json"],"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],"measurementModel":[16],"viewport":[32],"elementBounds":[32],"interactionCount":[32],"internalCamera":[32],"invalidateStateCounter":[32],"stateMap":[32],"measurementUnits":[32],"computeElementMetrics":[64]}]]],["vertex-viewer-measurement-precise",[[1,"vertex-viewer-measurement-precise",{"measurementModel":[16],"measurementOverlays":[16],"measurementController":[1040],"measurableEntityTypes":[16],"viewer":[16],"configEnv":[1,"config-env"],"config":[1]}]]],["vertex-scene-tree-table-cell",[[1,"vertex-scene-tree-table-cell",{"node":[16],"tree":[16],"value":[1],"placeholder":[1],"hovered":[1028],"isScrolling":[4,"is-scrolling"],"expandToggle":[4,"expand-toggle"],"visibilityToggle":[4,"visibility-toggle"],"selectionHandler":[16],"visibilityHandler":[16],"expansionHandler":[16],"hoverController":[16]}]]],["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":[1025,"device-id"],"config":[1],"configEnv":[1,"config-env"],"resolvedConfig":[1040],"cameraControls":[4,"camera-controls"],"cameraType":[1537,"camera-type"],"keyboardControls":[4,"keyboard-controls"],"rotateAroundTapPoint":[4,"rotate-around-tap-point"],"token":[1025],"depthBuffers":[1,"depth-buffers"],"experimentalGhostingOpacity":[2,"experimental-ghosting-opacity"],"noDefaultLights":[4,"no-default-lights"],"experimentalRenderingOptions":[1,"experimental-rendering-options"],"featureLines":[16],"featureHighlighting":[16],"featureMaps":[1,"feature-maps"],"selectionMaterial":[1,"selection-material"],"resizeDebounce":[2,"resize-debounce"],"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_DEPRECATED":[64],"addCursor":[64],"getInteractionHandlers":[64],"getKeyInteractions":[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],"measurementOutcome":[1040],"distanceUnits":[1,"distance-units"],"angleUnits":[1,"angle-units"],"fractionalDigits":[2,"fractional-digits"],"distanceFormatter":[16],"angleFormatter":[16],"areaFormatter":[16],"resultTypes":[16],"overlay":[32],"distanceMeasurementUnits":[32],"angleMeasurementUnits":[32],"areaMeasurementUnits":[32]}]]],["vertex-viewer-transform-widget",[[1,"vertex-viewer-transform-widget",{"viewer":[16],"position":[1040],"controller":[1040],"hovered":[1040]}]]],["vertex-viewer-pin-group",[[0,"vertex-viewer-pin-group",{"pin":[16],"matrix":[1040],"projectionViewMatrix":[16],"elementBounds":[1040],"pinModel":[16],"pinController":[16],"selected":[4],"invalidateStateCounter":[32]}]]],["vertex-viewer-dom-group",[[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]}]]],["vertex-viewer-layer",[[1,"vertex-viewer-layer",{"stretchOff":[516,"stretch-off"]}]]],["vertex-viewer-spinner",[[1,"vertex-viewer-spinner",{"size":[1]}]]],["vertex-viewer-icon",[[1,"vertex-viewer-icon",{"name":[1],"size":[1]}]]],["vertex-scene-tree-search_3",[[1,"vertex-scene-tree-search",{"debounce":[2],"disabled":[4],"placeholder":[1],"controller":[16],"value":[1025],"focused":[32],"isSearching":[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],"isComputingCellHeight":[32],"lastDividerPointerPosition":[32],"resizingColumnIndex":[32],"isScrolling":[32],"scrollTimer":[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-pin-label_2",[[0,"vertex-viewer-pin-label",{"pin":[16],"elementBounds":[16],"value":[1025],"pinController":[16],"focused":[32],"computedScreenPosition":[32],"textareaRows":[32],"contentElBounds":[32],"setFocus":[64]}],[0,"vertex-viewer-pin-label-line",{"pinPoint":[16],"labelPoint":[16],"pin":[16]}]]],["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"]}]]],["vertex-viewer-dom-element_2",[[1,"vertex-viewer-dom-renderer",{"drawMode":[1,"draw-mode"],"viewer":[16],"camera":[1040],"depthBuffer":[1040],"viewport":[32],"invalidateFrameCounter":[32]},[[0,"propertyChange","handlePropertyChange"]]],[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"]}]]],["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],"dispose":[64]}],[1,"vertex-viewer-markup-circle",{"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"dispose":[64]}],[1,"vertex-viewer-markup-freeform",{"points":[1040],"pointsJson":[1,"points"],"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"screenPoints":[32],"dispose":[64]}]]]], options);
|
|
75
|
+
return bootstrapLazy(JSON.parse("[[\"vertex-viewer-pin-tool\",[[1,\"vertex-viewer-pin-tool\",{\"pinController\":[1040],\"pinModel\":[16],\"viewer\":[16],\"tool\":[1025],\"mode\":[1025],\"primaryColor\":[1025,\"primary-color\"],\"accentColor\":[1025,\"accent-color\"],\"pins\":[32],\"selectedPinId\":[32],\"elementBounds\":[32],\"projectionViewMatrix\":[32]}]]],[\"vertex-scene-tree\",[[1,\"vertex-scene-tree\",{\"overScanCount\":[2,\"over-scan-count\"],\"viewerSelector\":[1,\"viewer-selector\"],\"viewer\":[1040],\"rowData\":[16],\"config\":[1],\"configEnv\":[1,\"config-env\"],\"controller\":[1040],\"metadataSearchExactMatch\":[1028,\"metadata-search-exact-match\"],\"metadataSearchKeys\":[1040],\"metadataKeys\":[16],\"rows\":[32],\"totalRows\":[32],\"showLoader\":[32],\"stateMap\":[32],\"errorDetails\":[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],\"selectFilteredItems\":[64],\"fetchMetadataKeys\":[64]},[[0,\"search\",\"handleSearch\"]]]]],[\"vertex-viewer-default-toolbar\",[[1,\"vertex-viewer-default-toolbar\",{\"viewer\":[16],\"placement\":[1],\"direction\":[1],\"animationsDisabled\":[4,\"animations-disabled\"],\"animationMs\":[2,\"animation-ms\"]}]]],[\"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-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-distance\",[[1,\"vertex-viewer-measurement-distance\",{\"start\":[1040],\"startJson\":[1,\"start-json\"],\"end\":[1040],\"endJson\":[1,\"end-json\"],\"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],\"measurementModel\":[16],\"viewport\":[32],\"elementBounds\":[32],\"interactionCount\":[32],\"internalCamera\":[32],\"invalidateStateCounter\":[32],\"stateMap\":[32],\"measurementUnits\":[32],\"computeElementMetrics\":[64]}]]],[\"vertex-viewer-measurement-precise\",[[1,\"vertex-viewer-measurement-precise\",{\"measurementModel\":[16],\"measurementOverlays\":[16],\"measurementController\":[1040],\"measurableEntityTypes\":[16],\"viewer\":[16],\"configEnv\":[1,\"config-env\"],\"config\":[1]}]]],[\"vertex-viewer-box-query-tool\",[[1,\"vertex-viewer-box-query-tool\",{\"viewer\":[16],\"controller\":[1040],\"model\":[1040],\"operationType\":[1,\"operation-type\"],\"details\":[32]}]]],[\"vertex-scene-tree-table-cell\",[[1,\"vertex-scene-tree-table-cell\",{\"node\":[16],\"tree\":[16],\"value\":[1],\"placeholder\":[1],\"hovered\":[1028],\"isScrolling\":[4,\"is-scrolling\"],\"expandToggle\":[4,\"expand-toggle\"],\"visibilityToggle\":[4,\"visibility-toggle\"],\"selectionHandler\":[16],\"visibilityHandler\":[16],\"expansionHandler\":[16],\"hoverController\":[16]}]]],[\"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\":[1025,\"device-id\"],\"config\":[1],\"configEnv\":[1,\"config-env\"],\"resolvedConfig\":[1040],\"cameraControls\":[4,\"camera-controls\"],\"cameraType\":[1537,\"camera-type\"],\"keyboardControls\":[4,\"keyboard-controls\"],\"rotateAroundTapPoint\":[4,\"rotate-around-tap-point\"],\"token\":[1025],\"depthBuffers\":[1,\"depth-buffers\"],\"experimentalGhostingOpacity\":[2,\"experimental-ghosting-opacity\"],\"noDefaultLights\":[4,\"no-default-lights\"],\"experimentalRenderingOptions\":[1,\"experimental-rendering-options\"],\"featureLines\":[16],\"featureHighlighting\":[16],\"featureMaps\":[1,\"feature-maps\"],\"selectionMaterial\":[1,\"selection-material\"],\"resizeDebounce\":[2,\"resize-debounce\"],\"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_DEPRECATED\":[64],\"addCursor\":[64],\"getInteractionHandlers\":[64],\"getKeyInteractions\":[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],\"measurementOutcome\":[1040],\"distanceUnits\":[1,\"distance-units\"],\"angleUnits\":[1,\"angle-units\"],\"fractionalDigits\":[2,\"fractional-digits\"],\"distanceFormatter\":[16],\"angleFormatter\":[16],\"areaFormatter\":[16],\"resultTypes\":[16],\"overlay\":[32],\"distanceMeasurementUnits\":[32],\"angleMeasurementUnits\":[32],\"areaMeasurementUnits\":[32]}]]],[\"vertex-viewer-transform-widget\",[[1,\"vertex-viewer-transform-widget\",{\"viewer\":[16],\"position\":[1040],\"controller\":[1040],\"hovered\":[1040]}]]],[\"vertex-viewer-icon\",[[1,\"vertex-viewer-icon\",{\"name\":[1],\"size\":[1]}]]],[\"vertex-viewer-pin-group\",[[0,\"vertex-viewer-pin-group\",{\"pin\":[16],\"matrix\":[1040],\"projectionViewMatrix\":[16],\"elementBounds\":[1040],\"pinModel\":[16],\"pinController\":[16],\"selected\":[4],\"invalidateStateCounter\":[32]}]]],[\"vertex-viewer-dom-group\",[[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]}]]],[\"vertex-viewer-spinner\",[[1,\"vertex-viewer-spinner\",{\"size\":[1]}]]],[\"vertex-scene-tree-search_3\",[[1,\"vertex-scene-tree-search\",{\"debounce\":[2],\"disabled\":[4],\"placeholder\":[1],\"controller\":[16],\"value\":[1025],\"focused\":[32],\"isSearching\":[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],\"isComputingCellHeight\":[32],\"lastDividerPointerPosition\":[32],\"resizingColumnIndex\":[32],\"isScrolling\":[32],\"scrollTimer\":[32],\"stateMap\":[32],\"scrollToPosition\":[64]}],[1,\"vertex-scene-tree-toolbar\"]]],[\"vertex-viewer-layer\",[[1,\"vertex-viewer-layer\",{\"stretchOff\":[516,\"stretch-off\"]}]]],[\"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-pin-label_2\",[[0,\"vertex-viewer-pin-label\",{\"pin\":[16],\"elementBounds\":[16],\"value\":[1025],\"pinController\":[16],\"focused\":[32],\"computedScreenPosition\":[32],\"textareaRows\":[32],\"contentElBounds\":[32],\"setFocus\":[64]}],[0,\"vertex-viewer-pin-label-line\",{\"pinPoint\":[16],\"labelPoint\":[16],\"pin\":[16]}]]],[\"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\"]}]]],[\"vertex-viewer-dom-element_2\",[[1,\"vertex-viewer-dom-renderer\",{\"drawMode\":[1,\"draw-mode\"],\"viewer\":[16],\"camera\":[1040],\"depthBuffer\":[1040],\"viewport\":[32],\"invalidateFrameCounter\":[32]},[[0,\"propertyChange\",\"handlePropertyChange\"]]],[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\"]}]]],[\"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],\"dispose\":[64]}],[1,\"vertex-viewer-markup-circle\",{\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-freeform\",{\"points\":[1040],\"pointsJson\":[1,\"points\"],\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"screenPoints\":[32],\"dispose\":[64]}]]]]"), options);
|
|
76
76
|
});
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { h } from '../../stencil-public-runtime';
|
|
2
|
+
import { VolumeIntersectionQueryController } from '../../lib/volume-intersection/controller';
|
|
3
|
+
import { VolumeIntersectionQueryModel } from '../../lib/volume-intersection/model';
|
|
4
|
+
export declare type VolumeIntersectionQueryType = 'select' | 'deselect';
|
|
5
|
+
/**
|
|
6
|
+
* The `ViewerBoxQueryTool` allows for the drawing of a "box" on screen to represent
|
|
7
|
+
* a query for items in a specific area of the viewer. This tool then allows for an
|
|
8
|
+
* operation to be performed on the items contained (exclusive) by the box or both
|
|
9
|
+
* contained by and intersecting with (inclusive) the box.
|
|
10
|
+
*/
|
|
11
|
+
export declare class ViewerBoxQueryTool {
|
|
12
|
+
/**
|
|
13
|
+
* The viewer that this component is bound to. This is automatically assigned
|
|
14
|
+
* if added to the light-dom of a parent viewer element.
|
|
15
|
+
*/
|
|
16
|
+
viewer?: HTMLVertexViewerElement;
|
|
17
|
+
/**
|
|
18
|
+
* The controller that is responsible for performing operations using the
|
|
19
|
+
* volume intersection query defined by the drawn box and updating the model.
|
|
20
|
+
*/
|
|
21
|
+
controller?: VolumeIntersectionQueryController;
|
|
22
|
+
/**
|
|
23
|
+
* The model that contains the points representing the corners of the box
|
|
24
|
+
* displayed on screen, the type of the query to be performed, and methods
|
|
25
|
+
* for setting these values.
|
|
26
|
+
*/
|
|
27
|
+
model?: VolumeIntersectionQueryModel;
|
|
28
|
+
/**
|
|
29
|
+
* The default operation to perform when a drag has completed and the intersection
|
|
30
|
+
* query will be run. Defaults to `select`, and can be changed to `deselect`.
|
|
31
|
+
*
|
|
32
|
+
* The operation behavior for this intersection query tool can also be changed by
|
|
33
|
+
* providing a custom implementation of the `VolumeIntersectionQueryController`, or
|
|
34
|
+
* by using the `setOperationTransform` method of the default controller.
|
|
35
|
+
*/
|
|
36
|
+
operationType: VolumeIntersectionQueryType;
|
|
37
|
+
private details?;
|
|
38
|
+
private hostEl;
|
|
39
|
+
private interactionHandler?;
|
|
40
|
+
private screenBoundsChangedDisposable?;
|
|
41
|
+
constructor();
|
|
42
|
+
componentWillLoad(): void;
|
|
43
|
+
disconnectedCallback(): void;
|
|
44
|
+
/**
|
|
45
|
+
* @ignore
|
|
46
|
+
*/
|
|
47
|
+
protected handleViewerChanged(newViewer?: HTMLVertexViewerElement): void;
|
|
48
|
+
/**
|
|
49
|
+
* @ignore
|
|
50
|
+
*/
|
|
51
|
+
protected handleDefaultOperationChange(updatedOperationType: VolumeIntersectionQueryType): void;
|
|
52
|
+
/**
|
|
53
|
+
* @ignore
|
|
54
|
+
*/
|
|
55
|
+
protected render(): h.JSX.IntrinsicElements;
|
|
56
|
+
private handleScreenBoundsChanged;
|
|
57
|
+
private registerInteractionHandler;
|
|
58
|
+
private deregisterInteractionHandler;
|
|
59
|
+
private updateTypeAttribute;
|
|
60
|
+
}
|
|
@@ -33,6 +33,9 @@ import { KeyInteraction } from "./lib/interactions/keyInteraction";
|
|
|
33
33
|
import { Cursor } from "./lib/cursors";
|
|
34
34
|
import { BaseInteractionHandler } from "./lib/interactions/baseInteractionHandler";
|
|
35
35
|
import { Scene } from "./lib/scenes/scene";
|
|
36
|
+
import { VolumeIntersectionQueryController } from "./lib/volume-intersection/controller";
|
|
37
|
+
import { VolumeIntersectionQueryModel } from "./lib/volume-intersection/model";
|
|
38
|
+
import { VolumeIntersectionQueryType } from "./components/viewer-box-query-tool/viewer-box-query-tool";
|
|
36
39
|
import { ViewerToolbarPlacement } from "./components/viewer-toolbar/viewer-toolbar";
|
|
37
40
|
import { ViewerToolbarGroupDirection } from "./components/viewer-toolbar-group/viewer-toolbar-group";
|
|
38
41
|
import { ViewerDomRendererDrawMode } from "./components/viewer-dom-renderer/viewer-dom-renderer";
|
|
@@ -464,6 +467,24 @@ export namespace Components {
|
|
|
464
467
|
*/
|
|
465
468
|
"viewport": Viewport;
|
|
466
469
|
}
|
|
470
|
+
interface VertexViewerBoxQueryTool {
|
|
471
|
+
/**
|
|
472
|
+
* The controller that is responsible for performing operations using the volume intersection query defined by the drawn box and updating the model.
|
|
473
|
+
*/
|
|
474
|
+
"controller"?: VolumeIntersectionQueryController;
|
|
475
|
+
/**
|
|
476
|
+
* The model that contains the points representing the corners of the box displayed on screen, the type of the query to be performed, and methods for setting these values.
|
|
477
|
+
*/
|
|
478
|
+
"model"?: VolumeIntersectionQueryModel;
|
|
479
|
+
/**
|
|
480
|
+
* The default operation to perform when a drag has completed and the intersection query will be run. Defaults to `select`, and can be changed to `deselect`. The operation behavior for this intersection query tool can also be changed by providing a custom implementation of the `VolumeIntersectionQueryController`, or by using the `setOperationTransform` method of the default controller.
|
|
481
|
+
*/
|
|
482
|
+
"operationType": VolumeIntersectionQueryType;
|
|
483
|
+
/**
|
|
484
|
+
* The viewer that this component is bound to. This is automatically assigned if added to the light-dom of a parent viewer element.
|
|
485
|
+
*/
|
|
486
|
+
"viewer"?: HTMLVertexViewerElement;
|
|
487
|
+
}
|
|
467
488
|
interface VertexViewerButton {
|
|
468
489
|
}
|
|
469
490
|
interface VertexViewerDefaultToolbar {
|
|
@@ -1244,6 +1265,12 @@ declare global {
|
|
|
1244
1265
|
prototype: HTMLVertexViewerElement;
|
|
1245
1266
|
new (): HTMLVertexViewerElement;
|
|
1246
1267
|
};
|
|
1268
|
+
interface HTMLVertexViewerBoxQueryToolElement extends Components.VertexViewerBoxQueryTool, HTMLStencilElement {
|
|
1269
|
+
}
|
|
1270
|
+
var HTMLVertexViewerBoxQueryToolElement: {
|
|
1271
|
+
prototype: HTMLVertexViewerBoxQueryToolElement;
|
|
1272
|
+
new (): HTMLVertexViewerBoxQueryToolElement;
|
|
1273
|
+
};
|
|
1247
1274
|
interface HTMLVertexViewerButtonElement extends Components.VertexViewerButton, HTMLStencilElement {
|
|
1248
1275
|
}
|
|
1249
1276
|
var HTMLVertexViewerButtonElement: {
|
|
@@ -1411,6 +1438,7 @@ declare global {
|
|
|
1411
1438
|
"vertex-scene-tree-toolbar": HTMLVertexSceneTreeToolbarElement;
|
|
1412
1439
|
"vertex-scene-tree-toolbar-group": HTMLVertexSceneTreeToolbarGroupElement;
|
|
1413
1440
|
"vertex-viewer": HTMLVertexViewerElement;
|
|
1441
|
+
"vertex-viewer-box-query-tool": HTMLVertexViewerBoxQueryToolElement;
|
|
1414
1442
|
"vertex-viewer-button": HTMLVertexViewerButtonElement;
|
|
1415
1443
|
"vertex-viewer-default-toolbar": HTMLVertexViewerDefaultToolbarElement;
|
|
1416
1444
|
"vertex-viewer-dom-element": HTMLVertexViewerDomElementElement;
|
|
@@ -1724,6 +1752,24 @@ declare namespace LocalJSX {
|
|
|
1724
1752
|
*/
|
|
1725
1753
|
"viewport"?: Viewport;
|
|
1726
1754
|
}
|
|
1755
|
+
interface VertexViewerBoxQueryTool {
|
|
1756
|
+
/**
|
|
1757
|
+
* The controller that is responsible for performing operations using the volume intersection query defined by the drawn box and updating the model.
|
|
1758
|
+
*/
|
|
1759
|
+
"controller"?: VolumeIntersectionQueryController;
|
|
1760
|
+
/**
|
|
1761
|
+
* The model that contains the points representing the corners of the box displayed on screen, the type of the query to be performed, and methods for setting these values.
|
|
1762
|
+
*/
|
|
1763
|
+
"model"?: VolumeIntersectionQueryModel;
|
|
1764
|
+
/**
|
|
1765
|
+
* The default operation to perform when a drag has completed and the intersection query will be run. Defaults to `select`, and can be changed to `deselect`. The operation behavior for this intersection query tool can also be changed by providing a custom implementation of the `VolumeIntersectionQueryController`, or by using the `setOperationTransform` method of the default controller.
|
|
1766
|
+
*/
|
|
1767
|
+
"operationType"?: VolumeIntersectionQueryType;
|
|
1768
|
+
/**
|
|
1769
|
+
* The viewer that this component is bound to. This is automatically assigned if added to the light-dom of a parent viewer element.
|
|
1770
|
+
*/
|
|
1771
|
+
"viewer"?: HTMLVertexViewerElement;
|
|
1772
|
+
}
|
|
1727
1773
|
interface VertexViewerButton {
|
|
1728
1774
|
}
|
|
1729
1775
|
interface VertexViewerDefaultToolbar {
|
|
@@ -2440,6 +2486,7 @@ declare namespace LocalJSX {
|
|
|
2440
2486
|
"vertex-scene-tree-toolbar": VertexSceneTreeToolbar;
|
|
2441
2487
|
"vertex-scene-tree-toolbar-group": VertexSceneTreeToolbarGroup;
|
|
2442
2488
|
"vertex-viewer": VertexViewer;
|
|
2489
|
+
"vertex-viewer-box-query-tool": VertexViewerBoxQueryTool;
|
|
2443
2490
|
"vertex-viewer-button": VertexViewerButton;
|
|
2444
2491
|
"vertex-viewer-default-toolbar": VertexViewerDefaultToolbar;
|
|
2445
2492
|
"vertex-viewer-dom-element": VertexViewerDomElement;
|
|
@@ -2482,6 +2529,7 @@ declare module "@stencil/core" {
|
|
|
2482
2529
|
"vertex-scene-tree-toolbar": LocalJSX.VertexSceneTreeToolbar & JSXBase.HTMLAttributes<HTMLVertexSceneTreeToolbarElement>;
|
|
2483
2530
|
"vertex-scene-tree-toolbar-group": LocalJSX.VertexSceneTreeToolbarGroup & JSXBase.HTMLAttributes<HTMLVertexSceneTreeToolbarGroupElement>;
|
|
2484
2531
|
"vertex-viewer": LocalJSX.VertexViewer & JSXBase.HTMLAttributes<HTMLVertexViewerElement>;
|
|
2532
|
+
"vertex-viewer-box-query-tool": LocalJSX.VertexViewerBoxQueryTool & JSXBase.HTMLAttributes<HTMLVertexViewerBoxQueryToolElement>;
|
|
2485
2533
|
"vertex-viewer-button": LocalJSX.VertexViewerButton & JSXBase.HTMLAttributes<HTMLVertexViewerButtonElement>;
|
|
2486
2534
|
"vertex-viewer-default-toolbar": LocalJSX.VertexViewerDefaultToolbar & JSXBase.HTMLAttributes<HTMLVertexViewerDefaultToolbarElement>;
|
|
2487
2535
|
"vertex-viewer-dom-element": LocalJSX.VertexViewerDomElement & JSXBase.HTMLAttributes<HTMLVertexViewerDomElementElement>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Point } from '@vertexvis/geometry';
|
|
1
|
+
import { Point, Rectangle } from '@vertexvis/geometry';
|
|
2
2
|
import { ColorMaterial } from './colorMaterial';
|
|
3
3
|
import { SceneItemOperationsBuilder } from './scene';
|
|
4
4
|
interface AllQueryExpression {
|
|
@@ -37,10 +37,15 @@ interface PointQueryExpression {
|
|
|
37
37
|
type: 'point';
|
|
38
38
|
point: Point.Point;
|
|
39
39
|
}
|
|
40
|
+
interface VolumeIntersectionQueryExpression {
|
|
41
|
+
type: 'volume-intersection';
|
|
42
|
+
rectangle: Rectangle.Rectangle;
|
|
43
|
+
exclusive: boolean;
|
|
44
|
+
}
|
|
40
45
|
/**
|
|
41
46
|
* Represents the sum of all possible types of expressions.
|
|
42
47
|
*/
|
|
43
|
-
export declare type QueryExpression = AllQueryExpression | ItemQueryExpression | AndExpression | OrExpression | SceneTreeRangeQueryExpression | PointQueryExpression | MetadataQueryExpression | AllSelectedQueryExpression;
|
|
48
|
+
export declare type QueryExpression = AllQueryExpression | ItemQueryExpression | AndExpression | OrExpression | SceneTreeRangeQueryExpression | PointQueryExpression | VolumeIntersectionQueryExpression | MetadataQueryExpression | AllSelectedQueryExpression;
|
|
44
49
|
/**
|
|
45
50
|
* An interface that represents a query is "complete" and can be turned into an
|
|
46
51
|
* expression.
|
|
@@ -66,6 +71,7 @@ export declare class RootQuery implements ItemQuery<SingleQuery> {
|
|
|
66
71
|
withMetadata(filter: string, keys: string[], exactMatch: boolean): MetadataQuery;
|
|
67
72
|
withSelected(): AllSelectedQuery;
|
|
68
73
|
withPoint(point: Point.Point): PointQuery;
|
|
74
|
+
withVolumeIntersection(rectangle: Rectangle.Rectangle, exclusive?: boolean): VolumeIntersectionQuery;
|
|
69
75
|
}
|
|
70
76
|
export declare class AllQuery implements TerminalQuery {
|
|
71
77
|
build(): QueryExpression;
|
|
@@ -90,6 +96,12 @@ export declare class PointQuery implements TerminalQuery {
|
|
|
90
96
|
constructor(point: Point.Point);
|
|
91
97
|
build(): PointQueryExpression;
|
|
92
98
|
}
|
|
99
|
+
export declare class VolumeIntersectionQuery implements TerminalQuery {
|
|
100
|
+
private rectangle;
|
|
101
|
+
private exclusive?;
|
|
102
|
+
constructor(rectangle: Rectangle.Rectangle, exclusive?: boolean | undefined);
|
|
103
|
+
build(): VolumeIntersectionQueryExpression;
|
|
104
|
+
}
|
|
93
105
|
export declare class BulkQuery implements TerminalQuery {
|
|
94
106
|
private ids;
|
|
95
107
|
private type;
|