@vertexvis/viewer 0.18.1 → 0.18.2-testing.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/components/_commonjsHelpers.js +41 -0
- package/dist/components/_commonjsHelpers.js.map +1 -0
- package/dist/components/browser.esm.js +3173 -0
- package/dist/components/browser.esm.js.map +1 -0
- package/dist/components/bundle.esm.js +2250 -0
- package/dist/components/bundle.esm.js.map +1 -0
- package/dist/components/bundle.esm2.js +39740 -0
- package/dist/components/bundle.esm2.js.map +1 -0
- package/dist/components/config.js +81 -0
- package/dist/components/config.js.map +1 -0
- package/dist/components/controller.js +7627 -0
- package/dist/components/controller.js.map +1 -0
- package/dist/components/controller2.js +124 -0
- package/dist/components/controller2.js.map +1 -0
- package/dist/components/controller3.js +111 -0
- package/dist/components/controller3.js.map +1 -0
- package/dist/components/cursors.js +110 -0
- package/dist/components/cursors.js.map +1 -0
- package/dist/components/dom.js +43 -0
- package/dist/components/dom.js.map +1 -0
- package/dist/components/dom2.js +10 -0
- package/dist/components/dom2.js.map +1 -0
- package/dist/components/elementRectObserver.js +25 -0
- package/dist/components/elementRectObserver.js.map +1 -0
- package/dist/components/entities.js +179 -0
- package/dist/components/entities.js.map +1 -0
- package/dist/components/errors.js +80 -0
- package/dist/components/errors.js.map +1 -0
- package/dist/components/events.js +11 -0
- package/dist/components/events.js.map +1 -0
- package/dist/components/index.d.ts +26 -0
- package/dist/components/index.js +365 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/index2.js +63 -0
- package/dist/components/index2.js.map +1 -0
- package/dist/components/interactions.js +236 -0
- package/dist/components/interactions.js.map +1 -0
- package/dist/components/mapper.js +9811 -0
- package/dist/components/mapper.js.map +1 -0
- package/dist/components/markup.js +33 -0
- package/dist/components/markup.js.map +1 -0
- package/dist/components/model.js +134 -0
- package/dist/components/model.js.map +1 -0
- package/dist/components/model2.js +157 -0
- package/dist/components/model2.js.map +1 -0
- package/dist/components/overlays.js +76 -0
- package/dist/components/overlays.js.map +1 -0
- package/dist/components/png-decoder.js +2405 -0
- package/dist/components/png-decoder.js.map +1 -0
- package/dist/components/regl-component.js +12582 -0
- package/dist/components/regl-component.js.map +1 -0
- package/dist/components/results.js +24 -0
- package/dist/components/results.js.map +1 -0
- package/dist/components/row.js +32 -0
- package/dist/components/row.js.map +1 -0
- package/dist/components/scene-tree-search.js +146 -0
- package/dist/components/scene-tree-search.js.map +1 -0
- package/dist/components/scene-tree-table-layout.js +928 -0
- package/dist/components/scene-tree-table-layout.js.map +1 -0
- package/dist/components/scene-tree-toolbar.js +35 -0
- package/dist/components/scene-tree-toolbar.js.map +1 -0
- package/dist/components/scene.js +1508 -0
- package/dist/components/scene.js.map +1 -0
- package/dist/components/stencil.js +25 -0
- package/dist/components/stencil.js.map +1 -0
- package/dist/components/streamAttributes.js +40833 -0
- package/dist/components/streamAttributes.js.map +1 -0
- package/dist/components/templates.js +36 -0
- package/dist/components/templates.js.map +1 -0
- package/dist/components/tslib.es6.js +125 -0
- package/dist/components/tslib.es6.js.map +1 -0
- package/dist/components/vertex-scene-tree-search.d.ts +11 -0
- package/dist/components/vertex-scene-tree-search.js +11 -0
- package/dist/components/vertex-scene-tree-search.js.map +1 -0
- package/dist/components/vertex-scene-tree-table-cell.d.ts +11 -0
- package/dist/components/vertex-scene-tree-table-cell.js +209 -0
- package/dist/components/vertex-scene-tree-table-cell.js.map +1 -0
- package/dist/components/vertex-scene-tree-table-column.d.ts +11 -0
- package/dist/components/vertex-scene-tree-table-column.js +42 -0
- package/dist/components/vertex-scene-tree-table-column.js.map +1 -0
- package/dist/components/vertex-scene-tree-table-header.d.ts +11 -0
- package/dist/components/vertex-scene-tree-table-header.js +38 -0
- package/dist/components/vertex-scene-tree-table-header.js.map +1 -0
- package/dist/components/vertex-scene-tree-table-layout.d.ts +11 -0
- package/dist/components/vertex-scene-tree-table-layout.js +11 -0
- package/dist/components/vertex-scene-tree-table-layout.js.map +1 -0
- package/dist/components/vertex-scene-tree-table-resize-divider.d.ts +11 -0
- package/dist/components/vertex-scene-tree-table-resize-divider.js +57 -0
- package/dist/components/vertex-scene-tree-table-resize-divider.js.map +1 -0
- package/dist/components/vertex-scene-tree-toolbar-group.d.ts +11 -0
- package/dist/components/vertex-scene-tree-toolbar-group.js +38 -0
- package/dist/components/vertex-scene-tree-toolbar-group.js.map +1 -0
- package/dist/components/vertex-scene-tree-toolbar.d.ts +11 -0
- package/dist/components/vertex-scene-tree-toolbar.js +11 -0
- package/dist/components/vertex-scene-tree-toolbar.js.map +1 -0
- package/dist/components/vertex-scene-tree.d.ts +11 -0
- package/dist/components/vertex-scene-tree.js +803 -0
- package/dist/components/vertex-scene-tree.js.map +1 -0
- package/dist/components/vertex-viewer-box-query-tool.d.ts +11 -0
- package/dist/components/vertex-viewer-box-query-tool.js +352 -0
- package/dist/components/vertex-viewer-box-query-tool.js.map +1 -0
- package/dist/components/vertex-viewer-button.d.ts +11 -0
- package/dist/components/vertex-viewer-button.js +11 -0
- package/dist/components/vertex-viewer-button.js.map +1 -0
- package/dist/components/vertex-viewer-default-toolbar.d.ts +11 -0
- package/dist/components/vertex-viewer-default-toolbar.js +99 -0
- package/dist/components/vertex-viewer-default-toolbar.js.map +1 -0
- package/dist/components/vertex-viewer-dom-element.d.ts +11 -0
- package/dist/components/vertex-viewer-dom-element.js +11 -0
- package/dist/components/vertex-viewer-dom-element.js.map +1 -0
- package/dist/components/vertex-viewer-dom-group.d.ts +11 -0
- package/dist/components/vertex-viewer-dom-group.js +11 -0
- package/dist/components/vertex-viewer-dom-group.js.map +1 -0
- package/dist/components/vertex-viewer-dom-renderer.d.ts +11 -0
- package/dist/components/vertex-viewer-dom-renderer.js +11 -0
- package/dist/components/vertex-viewer-dom-renderer.js.map +1 -0
- package/dist/components/vertex-viewer-hit-result-indicator.d.ts +11 -0
- package/dist/components/vertex-viewer-hit-result-indicator.js +335 -0
- package/dist/components/vertex-viewer-hit-result-indicator.js.map +1 -0
- package/dist/components/vertex-viewer-icon.d.ts +11 -0
- package/dist/components/vertex-viewer-icon.js +11 -0
- package/dist/components/vertex-viewer-icon.js.map +1 -0
- package/dist/components/vertex-viewer-layer.d.ts +11 -0
- package/dist/components/vertex-viewer-layer.js +11 -0
- package/dist/components/vertex-viewer-layer.js.map +1 -0
- package/dist/components/vertex-viewer-markup-arrow.d.ts +11 -0
- package/dist/components/vertex-viewer-markup-arrow.js +11 -0
- package/dist/components/vertex-viewer-markup-arrow.js.map +1 -0
- package/dist/components/vertex-viewer-markup-circle.d.ts +11 -0
- package/dist/components/vertex-viewer-markup-circle.js +11 -0
- package/dist/components/vertex-viewer-markup-circle.js.map +1 -0
- package/dist/components/vertex-viewer-markup-freeform.d.ts +11 -0
- package/dist/components/vertex-viewer-markup-freeform.js +11 -0
- package/dist/components/vertex-viewer-markup-freeform.js.map +1 -0
- package/dist/components/vertex-viewer-markup-tool.d.ts +11 -0
- package/dist/components/vertex-viewer-markup-tool.js +257 -0
- package/dist/components/vertex-viewer-markup-tool.js.map +1 -0
- package/dist/components/vertex-viewer-markup.d.ts +11 -0
- package/dist/components/vertex-viewer-markup.js +362 -0
- package/dist/components/vertex-viewer-markup.js.map +1 -0
- package/dist/components/vertex-viewer-measurement-details.d.ts +11 -0
- package/dist/components/vertex-viewer-measurement-details.js +307 -0
- package/dist/components/vertex-viewer-measurement-details.js.map +1 -0
- package/dist/components/vertex-viewer-measurement-distance.d.ts +11 -0
- package/dist/components/vertex-viewer-measurement-distance.js +1067 -0
- package/dist/components/vertex-viewer-measurement-distance.js.map +1 -0
- package/dist/components/vertex-viewer-measurement-line.d.ts +11 -0
- package/dist/components/vertex-viewer-measurement-line.js +11 -0
- package/dist/components/vertex-viewer-measurement-line.js.map +1 -0
- package/dist/components/vertex-viewer-measurement-overlays.d.ts +11 -0
- package/dist/components/vertex-viewer-measurement-overlays.js +11 -0
- package/dist/components/vertex-viewer-measurement-overlays.js.map +1 -0
- package/dist/components/vertex-viewer-measurement-precise.d.ts +11 -0
- package/dist/components/vertex-viewer-measurement-precise.js +362 -0
- package/dist/components/vertex-viewer-measurement-precise.js.map +1 -0
- package/dist/components/vertex-viewer-pin-group.d.ts +11 -0
- package/dist/components/vertex-viewer-pin-group.js +11 -0
- package/dist/components/vertex-viewer-pin-group.js.map +1 -0
- package/dist/components/vertex-viewer-pin-label-line.d.ts +11 -0
- package/dist/components/vertex-viewer-pin-label-line.js +11 -0
- package/dist/components/vertex-viewer-pin-label-line.js.map +1 -0
- package/dist/components/vertex-viewer-pin-label.d.ts +11 -0
- package/dist/components/vertex-viewer-pin-label.js +11 -0
- package/dist/components/vertex-viewer-pin-label.js.map +1 -0
- package/dist/components/vertex-viewer-pin-tool.d.ts +11 -0
- package/dist/components/vertex-viewer-pin-tool.js +430 -0
- package/dist/components/vertex-viewer-pin-tool.js.map +1 -0
- package/dist/components/vertex-viewer-spinner.d.ts +11 -0
- package/dist/components/vertex-viewer-spinner.js +11 -0
- package/dist/components/vertex-viewer-spinner.js.map +1 -0
- package/dist/components/vertex-viewer-toolbar-group.d.ts +11 -0
- package/dist/components/vertex-viewer-toolbar-group.js +11 -0
- package/dist/components/vertex-viewer-toolbar-group.js.map +1 -0
- package/dist/components/vertex-viewer-toolbar.d.ts +11 -0
- package/dist/components/vertex-viewer-toolbar.js +11 -0
- package/dist/components/vertex-viewer-toolbar.js.map +1 -0
- package/dist/components/vertex-viewer-transform-widget.d.ts +11 -0
- package/dist/components/vertex-viewer-transform-widget.js +838 -0
- package/dist/components/vertex-viewer-transform-widget.js.map +1 -0
- package/dist/components/vertex-viewer-view-cube.d.ts +11 -0
- package/dist/components/vertex-viewer-view-cube.js +270 -0
- package/dist/components/vertex-viewer-view-cube.js.map +1 -0
- package/dist/components/vertex-viewer.d.ts +11 -0
- package/dist/components/vertex-viewer.js +3543 -0
- package/dist/components/vertex-viewer.js.map +1 -0
- package/dist/components/viewer-button.js +35 -0
- package/dist/components/viewer-button.js.map +1 -0
- package/dist/components/viewer-dom-element.js +250 -0
- package/dist/components/viewer-dom-element.js.map +1 -0
- package/dist/components/viewer-dom-group.js +214 -0
- package/dist/components/viewer-dom-group.js.map +1 -0
- package/dist/components/viewer-dom-renderer.js +295 -0
- package/dist/components/viewer-dom-renderer.js.map +1 -0
- package/dist/components/viewer-icon.js +87 -0
- package/dist/components/viewer-icon.js.map +1 -0
- package/dist/components/viewer-layer.js +46 -0
- package/dist/components/viewer-layer.js.map +1 -0
- package/dist/components/viewer-markup-arrow.js +235 -0
- package/dist/components/viewer-markup-arrow.js.map +1 -0
- package/dist/components/viewer-markup-circle-components.js +42 -0
- package/dist/components/viewer-markup-circle-components.js.map +1 -0
- package/dist/components/viewer-markup-circle.js +201 -0
- package/dist/components/viewer-markup-circle.js.map +1 -0
- package/dist/components/viewer-markup-freeform.js +251 -0
- package/dist/components/viewer-markup-freeform.js.map +1 -0
- package/dist/components/viewer-measurement-line.js +77 -0
- package/dist/components/viewer-measurement-line.js.map +1 -0
- package/dist/components/viewer-measurement-overlays.js +184 -0
- package/dist/components/viewer-measurement-overlays.js.map +1 -0
- package/dist/components/viewer-pin-group.js +207 -0
- package/dist/components/viewer-pin-group.js.map +1 -0
- package/dist/components/viewer-pin-label-line.js +43 -0
- package/dist/components/viewer-pin-label-line.js.map +1 -0
- package/dist/components/viewer-pin-label.js +427 -0
- package/dist/components/viewer-pin-label.js.map +1 -0
- package/dist/components/viewer-spinner.js +53 -0
- package/dist/components/viewer-spinner.js.map +1 -0
- package/dist/components/viewer-toolbar-group.js +42 -0
- package/dist/components/viewer-toolbar-group.js.map +1 -0
- package/dist/components/viewer-toolbar.js +61 -0
- package/dist/components/viewer-toolbar.js.map +1 -0
- package/dist/components/viewport.js +188 -0
- package/dist/components/viewport.js.map +1 -0
- package/dist/components/wrappers_pb.js +1926 -0
- package/dist/components/wrappers_pb.js.map +1 -0
- package/package.json +7 -7
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2023 Vertex Software LLC. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import { m as mapMeasureResponseOrThrow, s as scene_view_api_pb, a as model_entity_pb, g as geometry_pb } from './mapper.js';
|
|
5
|
+
import { a as grpcWebClient_umd, w as wrappers_pb } from './wrappers_pb.js';
|
|
6
|
+
import { i as fromPbVector3f, v as vertexvis } from './streamAttributes.js';
|
|
7
|
+
import { m as mapper } from './browser.esm.js';
|
|
8
|
+
|
|
9
|
+
function requestUnary(caller) {
|
|
10
|
+
return new Promise((resolve, reject) => {
|
|
11
|
+
caller((err, res) => {
|
|
12
|
+
if (err != null) {
|
|
13
|
+
reject(err);
|
|
14
|
+
}
|
|
15
|
+
else if (res != null) {
|
|
16
|
+
resolve(res);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
reject(new Error('Invalid gRPC response. Error and result are empty.'));
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
async function createMetadata(jwtProvider, deviceId) {
|
|
25
|
+
const jwt = await jwtProvider();
|
|
26
|
+
const meta = new grpcWebClient_umd.grpc.Metadata({
|
|
27
|
+
'jwt-context': JSON.stringify({
|
|
28
|
+
jwt,
|
|
29
|
+
metadata: { 'x-device-id': deviceId || '' },
|
|
30
|
+
}),
|
|
31
|
+
});
|
|
32
|
+
return meta;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The `MeasurementController` is responsible for performing measurements of
|
|
37
|
+
* registered entities, and updating the model with their measurement results.
|
|
38
|
+
*/
|
|
39
|
+
class MeasurementController {
|
|
40
|
+
constructor(model, client, jwtProvider, deviceId) {
|
|
41
|
+
this.model = model;
|
|
42
|
+
this.client = client;
|
|
43
|
+
this.jwtProvider = jwtProvider;
|
|
44
|
+
this.deviceId = deviceId;
|
|
45
|
+
this.outcome = Promise.resolve(undefined);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Registers an entity to measure and performs a measurement if this entity
|
|
49
|
+
* has not been previously registered.
|
|
50
|
+
*
|
|
51
|
+
* @param entity The entity to measure.
|
|
52
|
+
* @returns A promise that resolves with the results after registering this
|
|
53
|
+
* entity.
|
|
54
|
+
*/
|
|
55
|
+
addEntity(entity) {
|
|
56
|
+
return this.performMeasurement(() => this.model.addEntity(entity));
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Clears all entities and returns a promise that resolves with an empty list
|
|
60
|
+
* of measurement results.
|
|
61
|
+
*/
|
|
62
|
+
clearEntities() {
|
|
63
|
+
return this.performMeasurement(() => {
|
|
64
|
+
this.model.clearEntities();
|
|
65
|
+
this.model.clearOutcome();
|
|
66
|
+
return true;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Deregisters an entity and performs a measurement if this entity was
|
|
71
|
+
* removed.
|
|
72
|
+
*
|
|
73
|
+
* @param entity The entity to remove.
|
|
74
|
+
* @returns A promise that resolves with the results after removing this
|
|
75
|
+
* entity.
|
|
76
|
+
*/
|
|
77
|
+
removeEntity(entity) {
|
|
78
|
+
return this.performMeasurement(() => this.model.removeEntity(entity));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Registers a set of entities and performs a measurement
|
|
82
|
+
*
|
|
83
|
+
* @param entities The entities to measure.
|
|
84
|
+
* @returns A promise that resolves with the results after registering these
|
|
85
|
+
* entities.
|
|
86
|
+
*/
|
|
87
|
+
setEntities(entities) {
|
|
88
|
+
return this.performMeasurement(() => this.model.setEntities(entities));
|
|
89
|
+
}
|
|
90
|
+
performMeasurement(effect) {
|
|
91
|
+
const previous = this.model.getEntities();
|
|
92
|
+
const changed = effect();
|
|
93
|
+
const entities = this.model.getEntities();
|
|
94
|
+
if (changed) {
|
|
95
|
+
this.measureAndUpdateModel(entities);
|
|
96
|
+
this.highlightEntities(previous, entities);
|
|
97
|
+
}
|
|
98
|
+
return this.outcome;
|
|
99
|
+
}
|
|
100
|
+
measureAndUpdateModel(entities) {
|
|
101
|
+
if (entities.length > 0) {
|
|
102
|
+
this.outcome = this.measureEntities(entities).then((outcome) => {
|
|
103
|
+
this.model.setOutcome(outcome);
|
|
104
|
+
return this.model.getOutcome();
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
this.outcome = Promise.resolve(undefined);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
async measureEntities(entities) {
|
|
112
|
+
if (entities.length > 0) {
|
|
113
|
+
const res = await requestUnary(async (handler) => {
|
|
114
|
+
const meta = await createMetadata(this.jwtProvider, this.deviceId);
|
|
115
|
+
const req = new scene_view_api_pb.MeasureRequest();
|
|
116
|
+
req.setEntitiesList(entities.map((e) => e.toProto()));
|
|
117
|
+
this.client.measure(req, meta, handler);
|
|
118
|
+
});
|
|
119
|
+
return mapMeasureResponseOrThrow(res.toObject());
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
async highlightEntities(previous, entities) {
|
|
126
|
+
await requestUnary(async (handler) => {
|
|
127
|
+
const meta = await createMetadata(this.jwtProvider, this.deviceId);
|
|
128
|
+
const entitySet = new Set(entities);
|
|
129
|
+
const newPrevious = previous.filter((e) => !entitySet.has(e));
|
|
130
|
+
const clearEntities = newPrevious.map((e) => {
|
|
131
|
+
const update = new scene_view_api_pb.ModelEntityUpdate();
|
|
132
|
+
update.setModelEntity(model_entity_pb.ModelEntity.deserializeBinary(e.modelEntity));
|
|
133
|
+
update.setHighlight(new wrappers_pb.BoolValue().setValue(false));
|
|
134
|
+
return update;
|
|
135
|
+
});
|
|
136
|
+
const highlightEntities = entities.map((e) => {
|
|
137
|
+
const update = new scene_view_api_pb.ModelEntityUpdate();
|
|
138
|
+
update.setModelEntity(model_entity_pb.ModelEntity.deserializeBinary(e.modelEntity));
|
|
139
|
+
update.setHighlight(new wrappers_pb.BoolValue().setValue(true));
|
|
140
|
+
return update;
|
|
141
|
+
});
|
|
142
|
+
const req = new scene_view_api_pb.UpdateModelEntitiesRequest();
|
|
143
|
+
req.setUpdatesList([...clearEntities, ...highlightEntities]);
|
|
144
|
+
this.client.updateModelEntities(req, meta, handler);
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
class MeasurementEntity {
|
|
150
|
+
constructor(point, modelEntity) {
|
|
151
|
+
this.point = point;
|
|
152
|
+
this.modelEntity = modelEntity;
|
|
153
|
+
}
|
|
154
|
+
static fromHit(hit) {
|
|
155
|
+
if (hit.hitPoint != null && hit.modelEntity != null) {
|
|
156
|
+
const hitPoint = mapper.ifInvalidThrow(fromPbVector3f)(hit.hitPoint);
|
|
157
|
+
const modelEntity = vertexvis.protobuf.core.ModelEntity.encode(hit.modelEntity).finish();
|
|
158
|
+
return new MeasurementEntity(hitPoint, modelEntity);
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
throw new Error('Cannot create MeasurementEntity from Hit. Hit is missing hit point and model entity');
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
toProto() {
|
|
165
|
+
const entity = new scene_view_api_pb.MeasureEntity();
|
|
166
|
+
const point = new geometry_pb.Vector3f();
|
|
167
|
+
point.setX(this.point.x);
|
|
168
|
+
point.setY(this.point.y);
|
|
169
|
+
point.setZ(this.point.z);
|
|
170
|
+
entity.setPoint(point);
|
|
171
|
+
const modelEntity = model_entity_pb.ModelEntity.deserializeBinary(this.modelEntity);
|
|
172
|
+
entity.setModelEntity(modelEntity);
|
|
173
|
+
return entity;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
export { MeasurementController as M, MeasurementEntity as a };
|
|
178
|
+
|
|
179
|
+
//# sourceMappingURL=entities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"entities.js","mappings":"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","names":["grpc","MeasureRequest","ModelEntityUpdate","ModelEntity","BoolValue","UpdateModelEntitiesRequest","Mapper","MeasureEntity","Vector3f"],"sources":["./src/lib/grpc.ts","./src/lib/measurement/controller.ts","./src/lib/measurement/entities.ts"],"sourcesContent":["import { grpc } from '@improbable-eng/grpc-web';\n\ntype GrpcCaller<R, E> = (handler: GrpcHandler<R, E>) => void;\n\ntype GrpcHandler<R, E> = (err: E | null, res: R | null) => void;\n\nexport type JwtProvider = () =>\n | Promise<string | undefined>\n | string\n | undefined;\n\nexport function requestUnary<R, E = unknown>(\n caller: GrpcCaller<R, E>\n): Promise<R> {\n return new Promise((resolve, reject) => {\n caller((err, res) => {\n if (err != null) {\n reject(err);\n } else if (res != null) {\n resolve(res);\n } else {\n reject(new Error('Invalid gRPC response. Error and result are empty.'));\n }\n });\n });\n}\n\nexport async function createMetadata(\n jwtProvider: JwtProvider,\n deviceId?: string\n): Promise<grpc.Metadata> {\n const jwt = await jwtProvider();\n const meta = new grpc.Metadata({\n 'jwt-context': JSON.stringify({\n jwt,\n metadata: { 'x-device-id': deviceId || '' },\n }),\n });\n\n return meta;\n}\n","import { ModelEntity } from '@vertexvis/scene-view-protos/core/protos/model_entity_pb';\nimport {\n MeasureRequest,\n MeasureResponse,\n ModelEntityUpdate,\n UpdateModelEntitiesRequest,\n} from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { SceneViewAPIClient } from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb_service';\nimport { BoolValue } from 'google-protobuf/google/protobuf/wrappers_pb';\n\nimport { createMetadata, JwtProvider, requestUnary } from '../grpc';\nimport { MeasurementEntity } from './entities';\nimport { mapMeasureResponseOrThrow } from './mapper';\nimport { MeasurementModel } from './model';\nimport { MeasurementOutcome } from './outcomes';\n\n/**\n * The `MeasurementController` is responsible for performing measurements of\n * registered entities, and updating the model with their measurement results.\n */\nexport class MeasurementController {\n private outcome = Promise.resolve<MeasurementOutcome | undefined>(undefined);\n\n public constructor(\n private model: MeasurementModel,\n private client: SceneViewAPIClient,\n private jwtProvider: JwtProvider,\n private deviceId: string | undefined\n ) {}\n\n /**\n * Registers an entity to measure and performs a measurement if this entity\n * has not been previously registered.\n *\n * @param entity The entity to measure.\n * @returns A promise that resolves with the results after registering this\n * entity.\n */\n public addEntity(\n entity: MeasurementEntity\n ): Promise<MeasurementOutcome | undefined> {\n return this.performMeasurement(() => this.model.addEntity(entity));\n }\n\n /**\n * Clears all entities and returns a promise that resolves with an empty list\n * of measurement results.\n */\n public clearEntities(): Promise<MeasurementOutcome | undefined> {\n return this.performMeasurement(() => {\n this.model.clearEntities();\n this.model.clearOutcome();\n return true;\n });\n }\n\n /**\n * Deregisters an entity and performs a measurement if this entity was\n * removed.\n *\n * @param entity The entity to remove.\n * @returns A promise that resolves with the results after removing this\n * entity.\n */\n public removeEntity(\n entity: MeasurementEntity\n ): Promise<MeasurementOutcome | undefined> {\n return this.performMeasurement(() => this.model.removeEntity(entity));\n }\n\n /**\n * Registers a set of entities and performs a measurement\n *\n * @param entities The entities to measure.\n * @returns A promise that resolves with the results after registering these\n * entities.\n */\n public setEntities(\n entities: Set<MeasurementEntity>\n ): Promise<MeasurementOutcome | undefined> {\n return this.performMeasurement(() => this.model.setEntities(entities));\n }\n\n private performMeasurement(\n effect: () => boolean\n ): Promise<MeasurementOutcome | undefined> {\n const previous = this.model.getEntities();\n const changed = effect();\n const entities = this.model.getEntities();\n if (changed) {\n this.measureAndUpdateModel(entities);\n this.highlightEntities(previous, entities);\n }\n return this.outcome;\n }\n\n private measureAndUpdateModel(entities: MeasurementEntity[]): void {\n if (entities.length > 0) {\n this.outcome = this.measureEntities(entities).then((outcome) => {\n this.model.setOutcome(outcome);\n return this.model.getOutcome();\n });\n } else {\n this.outcome = Promise.resolve(undefined);\n }\n }\n\n private async measureEntities(\n entities: MeasurementEntity[]\n ): Promise<MeasurementOutcome | undefined> {\n if (entities.length > 0) {\n const res = await requestUnary<MeasureResponse>(async (handler) => {\n const meta = await createMetadata(this.jwtProvider, this.deviceId);\n const req = new MeasureRequest();\n req.setEntitiesList(entities.map((e) => e.toProto()));\n\n this.client.measure(req, meta, handler);\n });\n\n return mapMeasureResponseOrThrow(res.toObject());\n } else {\n return undefined;\n }\n }\n\n private async highlightEntities(\n previous: MeasurementEntity[],\n entities: MeasurementEntity[]\n ): Promise<void> {\n await requestUnary(async (handler) => {\n const meta = await createMetadata(this.jwtProvider, this.deviceId);\n\n const entitySet = new Set(entities);\n const newPrevious = previous.filter((e) => !entitySet.has(e));\n\n const clearEntities = newPrevious.map((e) => {\n const update = new ModelEntityUpdate();\n update.setModelEntity(ModelEntity.deserializeBinary(e.modelEntity));\n update.setHighlight(new BoolValue().setValue(false));\n return update;\n });\n const highlightEntities = entities.map((e) => {\n const update = new ModelEntityUpdate();\n update.setModelEntity(ModelEntity.deserializeBinary(e.modelEntity));\n update.setHighlight(new BoolValue().setValue(true));\n return update;\n });\n\n const req = new UpdateModelEntitiesRequest();\n req.setUpdatesList([...clearEntities, ...highlightEntities]);\n this.client.updateModelEntities(req, meta, handler);\n });\n }\n}\n","import { vertexvis } from '@vertexvis/frame-streaming-protos';\nimport { Vector3 } from '@vertexvis/geometry';\nimport { Vector3f } from '@vertexvis/scene-view-protos/core/protos/geometry_pb';\nimport { ModelEntity } from '@vertexvis/scene-view-protos/core/protos/model_entity_pb';\nimport { MeasureEntity } from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { Mapper } from '@vertexvis/utils';\n\nimport { fromPbVector3f } from '../mappers';\n\nexport class MeasurementEntity {\n public constructor(\n public readonly point: Vector3.Vector3,\n public readonly modelEntity: Uint8Array\n ) {}\n\n public static fromHit(\n hit: vertexvis.protobuf.stream.IHit\n ): MeasurementEntity {\n if (hit.hitPoint != null && hit.modelEntity != null) {\n const hitPoint = Mapper.ifInvalidThrow(fromPbVector3f)(hit.hitPoint);\n const modelEntity = vertexvis.protobuf.core.ModelEntity.encode(\n hit.modelEntity\n ).finish();\n return new MeasurementEntity(hitPoint, modelEntity);\n } else {\n throw new Error(\n 'Cannot create MeasurementEntity from Hit. Hit is missing hit point and model entity'\n );\n }\n }\n\n public toProto(): MeasureEntity {\n const entity = new MeasureEntity();\n\n const point = new Vector3f();\n point.setX(this.point.x);\n point.setY(this.point.y);\n point.setZ(this.point.z);\n entity.setPoint(point);\n\n const modelEntity = ModelEntity.deserializeBinary(this.modelEntity);\n entity.setModelEntity(modelEntity);\n\n return entity;\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2023 Vertex Software LLC. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
class CustomError extends Error {
|
|
5
|
+
constructor(message, e) {
|
|
6
|
+
super();
|
|
7
|
+
this.message = message;
|
|
8
|
+
this.stack = e === null || e === void 0 ? void 0 : e.stack;
|
|
9
|
+
this.name = this.constructor.name;
|
|
10
|
+
// Allows for `instanceof` checks.
|
|
11
|
+
Object.setPrototypeOf(this, CustomError.prototype);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
class InvalidResourceUrnError extends CustomError {
|
|
15
|
+
constructor(message, e) {
|
|
16
|
+
super(message, e);
|
|
17
|
+
// Allows for `instanceof` checks.
|
|
18
|
+
Object.setPrototypeOf(this, InvalidResourceUrnError.prototype);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
class ViewerInitializationError extends CustomError {
|
|
22
|
+
constructor(message, e) {
|
|
23
|
+
super(message, e);
|
|
24
|
+
// Allows for `instanceof` checks.
|
|
25
|
+
Object.setPrototypeOf(this, ViewerInitializationError.prototype);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
class ComponentInitializationError extends CustomError {
|
|
29
|
+
constructor(message, e) {
|
|
30
|
+
super(message, e);
|
|
31
|
+
// Allows for `instanceof` checks.
|
|
32
|
+
Object.setPrototypeOf(this, ComponentInitializationError.prototype);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
class SceneRenderError extends CustomError {
|
|
36
|
+
constructor(message, e) {
|
|
37
|
+
super(message, e);
|
|
38
|
+
// Allows for `instanceof` checks.
|
|
39
|
+
Object.setPrototypeOf(this, SceneRenderError.prototype);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
class WebsocketConnectionError extends CustomError {
|
|
43
|
+
constructor(message, e) {
|
|
44
|
+
super(message, e);
|
|
45
|
+
// Allows for `instanceof` checks.
|
|
46
|
+
Object.setPrototypeOf(this, WebsocketConnectionError.prototype);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
class InteractionHandlerError extends CustomError {
|
|
50
|
+
constructor(message, e) {
|
|
51
|
+
super(message, e);
|
|
52
|
+
// Allows for `instanceof` checks.
|
|
53
|
+
Object.setPrototypeOf(this, InteractionHandlerError.prototype);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
class ImageLoadError extends CustomError {
|
|
57
|
+
constructor(message, e) {
|
|
58
|
+
super(message, e);
|
|
59
|
+
// Allows for `instanceof` checks.
|
|
60
|
+
Object.setPrototypeOf(this, ImageLoadError.prototype);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
class InvalidArgumentError extends CustomError {
|
|
64
|
+
constructor(message, e) {
|
|
65
|
+
super(message, e);
|
|
66
|
+
// Allows for `instanceof` checks.
|
|
67
|
+
Object.setPrototypeOf(this, InvalidArgumentError.prototype);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
class InvalidCameraError extends CustomError {
|
|
71
|
+
constructor(message, e) {
|
|
72
|
+
super(message, e);
|
|
73
|
+
// Allows for `instanceof` checks.
|
|
74
|
+
Object.setPrototypeOf(this, InvalidCameraError.prototype);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export { CustomError as C, InvalidResourceUrnError as I, SceneRenderError as S, ViewerInitializationError as V, WebsocketConnectionError as W, InvalidCameraError as a, InvalidArgumentError as b, ImageLoadError as c, InteractionHandlerError as d, ComponentInitializationError as e };
|
|
79
|
+
|
|
80
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"errors.js","mappings":";;;MAAa,WAAY,SAAQ,KAAK;EACpC,YAAmB,OAAe,EAAE,CAAS;IAC3C,KAAK,EAAE,CAAC;IAER,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,KAAK,GAAG,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,CAAC;IACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;;IAGlC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;GACpD;CACF;MAoBY,uBAAwB,SAAQ,WAAW;EACtD,YAAmB,OAAe,EAAE,CAAS;IAC3C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;IAGlB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;GAChE;CACF;MAEY,yBAA0B,SAAQ,WAAW;EACxD,YAAmB,OAAe,EAAE,CAAS;IAC3C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;IAGlB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,yBAAyB,CAAC,SAAS,CAAC,CAAC;GAClE;CACF;MAEY,4BAA6B,SAAQ,WAAW;EAC3D,YAAmB,OAAe,EAAE,CAAS;IAC3C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;IAGlB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,4BAA4B,CAAC,SAAS,CAAC,CAAC;GACrE;CACF;MAEY,gBAAiB,SAAQ,WAAW;EAC/C,YAAmB,OAAe,EAAE,CAAS;IAC3C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;IAGlB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;GACzD;CACF;MAWY,wBAAyB,SAAQ,WAAW;EACvD,YAAmB,OAAe,EAAE,CAAS;IAC3C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;IAGlB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,wBAAwB,CAAC,SAAS,CAAC,CAAC;GACjE;CACF;MAEY,uBAAwB,SAAQ,WAAW;EACtD,YAAmB,OAAe,EAAE,CAAS;IAC3C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;IAGlB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;GAChE;CACF;MAWY,cAAe,SAAQ,WAAW;EAC7C,YAAmB,OAAe,EAAE,CAAS;IAC3C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;IAGlB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;GACvD;CACF;MAoBY,oBAAqB,SAAQ,WAAW;EACnD,YAAmB,OAAe,EAAE,CAAS;IAC3C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;IAGlB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;GAC7D;CACF;MAEY,kBAAmB,SAAQ,WAAW;EACjD,YAAmB,OAAe,EAAE,CAAS;IAC3C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;IAGlB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;GAC3D;;;;;","names":[],"sources":["./src/lib/errors.ts"],"sourcesContent":["export class CustomError extends Error {\n public constructor(message: string, e?: Error) {\n super();\n\n this.message = message;\n this.stack = e?.stack;\n this.name = this.constructor.name;\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, CustomError.prototype);\n }\n}\n\nexport class ExpiredCredentialsError extends CustomError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, ExpiredCredentialsError.prototype);\n }\n}\n\nexport class InvalidCredentialsError extends CustomError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, InvalidCredentialsError.prototype);\n }\n}\n\nexport class InvalidResourceUrnError extends CustomError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, InvalidResourceUrnError.prototype);\n }\n}\n\nexport class ViewerInitializationError extends CustomError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, ViewerInitializationError.prototype);\n }\n}\n\nexport class ComponentInitializationError extends CustomError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, ComponentInitializationError.prototype);\n }\n}\n\nexport class SceneRenderError extends CustomError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, SceneRenderError.prototype);\n }\n}\n\nexport class UnsupportedOperationError extends CustomError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, UnsupportedOperationError.prototype);\n }\n}\n\nexport class WebsocketConnectionError extends CustomError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, WebsocketConnectionError.prototype);\n }\n}\n\nexport class InteractionHandlerError extends CustomError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, InteractionHandlerError.prototype);\n }\n}\n\nexport class MissingJWTError extends CustomError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, MissingJWTError.prototype);\n }\n}\n\nexport class ImageLoadError extends CustomError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, ImageLoadError.prototype);\n }\n}\n\nexport class IllegalStateError extends CustomError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, IllegalStateError.prototype);\n }\n}\n\nexport class NoImplementationFoundError extends CustomError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, NoImplementationFoundError.prototype);\n }\n}\n\nexport class InvalidArgumentError extends CustomError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, InvalidArgumentError.prototype);\n }\n}\n\nexport class InvalidCameraError extends CustomError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, InvalidCameraError.prototype);\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"events.js","mappings":";;;MAca,kBAAkB,GAAgB;EAC7C,kBAAkB,EAAE,GAAG;EACvB,kBAAkB,EAAE,GAAG;;;;;","names":[],"sources":["./src/lib/types/events.ts"],"sourcesContent":["export interface EventConfig {\n /**\n * The number of milliseconds after a single tap where a second tap will\n * trigger the \"doubletap\" event.\n */\n doubleTapThreshold: number;\n\n /**\n * The number of milliseconds that a tap or click has to be held down\n * before triggering the \"longpress\" event.\n */\n longPressThreshold: number;\n}\n\nexport const defaultEventConfig: EventConfig = {\n doubleTapThreshold: 500,\n longPressThreshold: 500,\n};\n"],"version":3}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/* viewer custom elements */
|
|
2
|
+
|
|
3
|
+
import type { Components, JSX } from "../types/regl-shape";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Used to manually set the base path where assets can be found.
|
|
7
|
+
* If the script is used as "module", it's recommended to use "import.meta.url",
|
|
8
|
+
* such as "setAssetPath(import.meta.url)". Other options include
|
|
9
|
+
* "setAssetPath(document.currentScript.src)", or using a bundler's replace plugin to
|
|
10
|
+
* dynamically set the path at build time, such as "setAssetPath(process.env.ASSET_PATH)".
|
|
11
|
+
* But do note that this configuration depends on how your script is bundled, or lack of
|
|
12
|
+
* bundling, and where your assets can be loaded from. Additionally custom bundling
|
|
13
|
+
* will have to ensure the static assets are copied to its build directory.
|
|
14
|
+
*/
|
|
15
|
+
export declare const setAssetPath: (path: string) => void;
|
|
16
|
+
|
|
17
|
+
export interface SetPlatformOptions {
|
|
18
|
+
raf?: (c: FrameRequestCallback) => number;
|
|
19
|
+
ael?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
|
|
20
|
+
rel?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
|
|
21
|
+
}
|
|
22
|
+
export declare const setPlatformOptions: (opts: SetPlatformOptions) => void;
|
|
23
|
+
|
|
24
|
+
export type { Components, JSX };
|
|
25
|
+
|
|
26
|
+
export * from '../types';
|