@vertexvis/viewer 0.13.2-canary.44 → 0.13.2-canary.45

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.
Files changed (36) hide show
  1. package/dist/cjs/index.cjs.js +1 -1
  2. package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js +1 -1
  3. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +1 -1
  4. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +1 -1
  5. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +61 -17
  6. package/dist/cjs/vertex-viewer.cjs.entry.js +1 -1
  7. package/dist/cjs/{viewport-a259d895.js → viewport-aeb8a3f3.js} +13 -3
  8. package/dist/collection/components/viewer-transform-widget/util.js +15 -4
  9. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.js +5 -3
  10. package/dist/collection/components/viewer-transform-widget/widget.js +25 -5
  11. package/dist/collection/lib/transforms/hits.js +12 -4
  12. package/dist/collection/lib/transforms/mesh.js +6 -3
  13. package/dist/collection/lib/types/viewport.js +14 -4
  14. package/dist/custom-elements/index.js +73 -19
  15. package/dist/esm/index.js +1 -1
  16. package/dist/esm/index.mjs +1 -1
  17. package/dist/esm/vertex-viewer-dom-element_2.entry.js +1 -1
  18. package/dist/esm/vertex-viewer-measurement-distance.entry.js +1 -1
  19. package/dist/esm/vertex-viewer-pin-group.entry.js +1 -1
  20. package/dist/esm/vertex-viewer-transform-widget.entry.js +62 -18
  21. package/dist/esm/vertex-viewer.entry.js +1 -1
  22. package/dist/esm/{viewport-7421cd5c.js → viewport-7e612d0d.js} +13 -3
  23. package/dist/types/components/viewer-transform-widget/widget.d.ts +2 -0
  24. package/dist/types/lib/transforms/mesh.d.ts +2 -1
  25. package/dist/types/lib/types/viewport.d.ts +8 -0
  26. package/dist/viewer/index.esm.js +1 -1
  27. package/dist/viewer/p-4d6ea58f.entry.js +4 -0
  28. package/dist/viewer/{p-5d833a6d.entry.js → p-831fe8e4.entry.js} +1 -1
  29. package/dist/viewer/{p-b2a5d2ee.entry.js → p-8897b397.entry.js} +1 -1
  30. package/dist/viewer/p-8cf1d174.js +4 -0
  31. package/dist/viewer/{p-d2d6cf52.entry.js → p-b09a7169.entry.js} +1 -1
  32. package/dist/viewer/{p-10655c8a.entry.js → p-cfc93df0.entry.js} +1 -1
  33. package/dist/viewer/viewer.esm.js +1 -1
  34. package/package.json +7 -7
  35. package/dist/viewer/p-9e675bb3.entry.js +0 -4
  36. package/dist/viewer/p-aebcfde0.js +0 -4
@@ -14,7 +14,7 @@ const results = require('./results-6cab066c.js');
14
14
  const streamAttributes = require('./streamAttributes-07357da5.js');
15
15
  const entities = require('./entities-9eb7e608.js');
16
16
  const markup = require('./markup-d779dd54.js');
17
- const viewport = require('./viewport-a259d895.js');
17
+ const viewport = require('./viewport-aeb8a3f3.js');
18
18
  require('./browser.esm-739c5a8a.js');
19
19
  require('./bundle.esm-3581a1e0.js');
20
20
  require('./mapper-7ee069ef.js');
@@ -10,7 +10,7 @@ const bundle_esm = require('./bundle.esm-3581a1e0.js');
10
10
  const browser_esm = require('./browser.esm-739c5a8a.js');
11
11
  require('./streamAttributes-07357da5.js');
12
12
  require('./entities-9eb7e608.js');
13
- const viewport = require('./viewport-a259d895.js');
13
+ const viewport = require('./viewport-aeb8a3f3.js');
14
14
  require('./_commonjsHelpers-dcc4cf71.js');
15
15
 
16
16
  const viewerDomElementCss = ":host{position:absolute;pointer-events:none}:host(:not([interactions-off]))>*{pointer-events:auto}";
@@ -17,7 +17,7 @@ const model = require('./model-2dbabec1.js');
17
17
  const overlays = require('./overlays-bac05f94.js');
18
18
  const results = require('./results-6cab066c.js');
19
19
  require('./entities-9eb7e608.js');
20
- const viewport = require('./viewport-a259d895.js');
20
+ const viewport = require('./viewport-aeb8a3f3.js');
21
21
  const browser_esm = require('./browser.esm-739c5a8a.js');
22
22
  const utils = require('./utils-1bfe6fec.js');
23
23
  const index$1 = require('./index-b9d13137.js');
@@ -12,7 +12,7 @@ require('./mapper-7ee069ef.js');
12
12
  require('./grpc-web-client.umd-2af20c1b.js');
13
13
  require('./streamAttributes-07357da5.js');
14
14
  require('./entities-9eb7e608.js');
15
- const viewport = require('./viewport-a259d895.js');
15
+ const viewport = require('./viewport-aeb8a3f3.js');
16
16
  const model = require('./model-1fb38025.js');
17
17
  const utils = require('./utils-cfcdeea5.js');
18
18
  const index$1 = require('./index-b9d13137.js');
@@ -13,7 +13,7 @@ const browser_esm = require('./browser.esm-739c5a8a.js');
13
13
  const _commonjsHelpers = require('./_commonjsHelpers-dcc4cf71.js');
14
14
  require('./streamAttributes-07357da5.js');
15
15
  require('./entities-9eb7e608.js');
16
- const viewport = require('./viewport-a259d895.js');
16
+ const viewport = require('./viewport-aeb8a3f3.js');
17
17
 
18
18
  class TransformController {
19
19
  constructor(stream) {
@@ -104,9 +104,20 @@ function convertPointToCanvas(point, bounds) {
104
104
  }
105
105
  function convertCanvasPointToWorld(point, frame, viewport, position) {
106
106
  if (point != null && frame != null && viewport != null && position != null) {
107
- const ray = viewport.transformPointToRay(point, frame.image, frame.scene.camera);
108
- const positionPlane = bundle_esm.plane.fromNormalAndCoplanarPoint(frame.scene.camera.direction, position);
109
- return bundle_esm.ray.intersectPlane(ray, positionPlane);
107
+ if (frame.scene.camera.isOrthographic()) {
108
+ const ray = viewport.transformPointToOrthographicRay(point, frame.image, frame.scene.camera);
109
+ // Offset the point to past the bounding sphere of the model to
110
+ // adjust the position plane location.
111
+ const offsetPoint = bundle_esm.ray.at(bundle_esm.ray.create({
112
+ origin: position,
113
+ direction: frame.scene.camera.direction,
114
+ }), bundle_esm.vector3.magnitude(frame.scene.camera.viewVector) * 2);
115
+ return bundle_esm.ray.intersectPlane(ray, bundle_esm.plane.fromNormalAndCoplanarPoint(frame.scene.camera.direction, offsetPoint));
116
+ }
117
+ else {
118
+ const ray = viewport.transformPointToRay(point, frame.image, frame.scene.camera);
119
+ return bundle_esm.ray.intersectPlane(ray, bundle_esm.plane.fromNormalAndCoplanarPoint(frame.scene.camera.direction, position));
120
+ }
110
121
  }
111
122
  return undefined;
112
123
  }
@@ -12464,13 +12475,16 @@ class TriangleMesh extends Mesh {
12464
12475
  : browser_esm.color.toHexString(outlineColor), typeof fillColor === 'string' ? fillColor : browser_esm.color.toHexString(fillColor), shapeProps);
12465
12476
  }
12466
12477
  }
12467
- function computeMesh2dBounds(...meshes) {
12478
+ function computeMesh2dBounds(viewport, ...meshes) {
12468
12479
  let min = bundle_esm.point.create(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);
12469
12480
  let max = bundle_esm.point.create();
12470
12481
  meshes
12471
12482
  .filter((m) => m.points.valid)
12472
12483
  .map((m) => {
12473
- m.points.toArray().forEach((pt) => {
12484
+ m.points
12485
+ .toArray()
12486
+ .map((pt) => viewport.transformNdcPointToViewport(pt))
12487
+ .forEach((pt) => {
12474
12488
  min = bundle_esm.point.create(Math.min(pt.x, min.x), Math.min(pt.y, min.y));
12475
12489
  max = bundle_esm.point.create(Math.max(pt.x, max.x), Math.max(pt.y, max.y));
12476
12490
  });
@@ -12513,13 +12527,17 @@ function computeArrowNdcValues(widgetPosition, camera, direction, triangleSize)
12513
12527
  */
12514
12528
  function testTriangleMesh(mesh, frame, viewport, point) {
12515
12529
  var _a;
12516
- const ray = viewport.transformPointToRay(point, frame.image, frame.scene.camera);
12530
+ const ray = frame.scene.camera.isOrthographic()
12531
+ ? viewport.transformPointToOrthographicRay(point, frame.image, frame.scene.camera)
12532
+ : viewport.transformPointToRay(point, frame.image, frame.scene.camera);
12517
12533
  const edge1 = bundle_esm.vector3.subtract(mesh.points.worldRight, mesh.points.worldLeft);
12518
12534
  const edge2 = bundle_esm.vector3.subtract(mesh.points.worldTip, mesh.points.worldLeft);
12519
12535
  const epsilon = bundle_esm.boundingBox.epsilon((_a = bundle_esm.boundingBox.fromVectors([ray.direction, ray.origin, edge1, edge2])) !== null && _a !== void 0 ? _a : bundle_esm.boundingBox.create(edge1, edge2));
12520
12536
  const p = bundle_esm.vector3.cross(ray.direction, edge2);
12521
12537
  const det = bundle_esm.vector3.dot(edge1, p);
12522
- if (Math.abs(det) < epsilon) {
12538
+ // This check causes a `det` of NaN or 0 to return false
12539
+ // without needing to perform the subsequent calculations.
12540
+ if (!(Math.abs(det) >= epsilon)) {
12523
12541
  return false;
12524
12542
  }
12525
12543
  const t = bundle_esm.vector3.subtract(ray.origin, mesh.points.worldLeft);
@@ -12533,9 +12551,18 @@ function testTriangleMesh(mesh, frame, viewport, point) {
12533
12551
  return false;
12534
12552
  }
12535
12553
  const r = bundle_esm.vector3.dot(edge2, q) / det;
12536
- return !isNaN(r) && r > epsilon;
12537
- }
12538
-
12554
+ // Ignore the case where the computed hit position is negative
12555
+ // if in orthographic to correctly return hit results when close
12556
+ // to the camera.
12557
+ // TODO: revisit with https://vertexvis.atlassian.net/browse/PLAT-1549
12558
+ return !isNaN(r) && (r > 0 || frame.scene.camera.isOrthographic());
12559
+ }
12560
+
12561
+ // Scalar that is used in combination with the camera
12562
+ // components to determine the relative size of the meshes.
12563
+ // This attempts to keep the widget approximately the same
12564
+ // size as zooming occurs.
12565
+ const DEFAULT_MESH_SCALAR = 0.005;
12539
12566
  class TransformWidget {
12540
12567
  constructor(canvasElement, colors = {}) {
12541
12568
  this.canvasElement = canvasElement;
@@ -12563,7 +12590,7 @@ class TransformWidget {
12563
12590
  boundsContainsPoint(point) {
12564
12591
  return (this.bounds != null &&
12565
12592
  this.frame != null &&
12566
- bundle_esm.rectangle.containsPoints(this.bounds, this.viewport.transformScreenPointToNdc(point, this.frame.image)));
12593
+ bundle_esm.rectangle.containsPoints(this.bounds, point));
12567
12594
  }
12568
12595
  updateFrame(frame, updateMeshes = true) {
12569
12596
  this.frame = frame;
@@ -12578,6 +12605,9 @@ class TransformWidget {
12578
12605
  if (cursor != null && this.frame != null) {
12579
12606
  this.updateHovered();
12580
12607
  }
12608
+ else {
12609
+ this.clearHovered();
12610
+ }
12581
12611
  }
12582
12612
  updatePosition(position) {
12583
12613
  var _a;
@@ -12630,7 +12660,9 @@ class TransformWidget {
12630
12660
  const previousHovered = this.hoveredMesh;
12631
12661
  const currentFrame = this.frame;
12632
12662
  if (currentFrame != null) {
12633
- this.hoveredMesh = this.triangleMeshes.find((m) => this.cursor != null
12663
+ this.hoveredMesh = this.triangleMeshes
12664
+ .filter((m) => m.points.valid)
12665
+ .find((m) => this.cursor != null
12634
12666
  ? testTriangleMesh(m, currentFrame, this.viewport, this.cursor)
12635
12667
  : false);
12636
12668
  if (this.hoveredMesh !== previousHovered) {
@@ -12640,6 +12672,14 @@ class TransformWidget {
12640
12672
  }
12641
12673
  }
12642
12674
  }
12675
+ clearHovered() {
12676
+ const previousHovered = this.hoveredMesh;
12677
+ this.hoveredMesh = undefined;
12678
+ if (this.hoveredMesh !== previousHovered) {
12679
+ this.hoveredChanged.emit(this.hoveredMesh);
12680
+ previousHovered.updateFillColor(previousHovered.initialFillColor);
12681
+ }
12682
+ }
12643
12683
  sortMeshes(frame, ...meshes) {
12644
12684
  const compare = (m1, m2) => m1.points.shortestDistanceFrom(frame.scene.camera.position) -
12645
12685
  m2.points.shortestDistanceFrom(frame.scene.camera.position);
@@ -12659,7 +12699,7 @@ class TransformWidget {
12659
12699
  else {
12660
12700
  this.updateMeshes(position, frame);
12661
12701
  }
12662
- this.bounds = computeMesh2dBounds(...this.triangleMeshes);
12702
+ this.bounds = computeMesh2dBounds(this.viewport, ...this.triangleMeshes);
12663
12703
  }
12664
12704
  createMeshes(position, frame) {
12665
12705
  this.reglCommand = regl({
@@ -12694,7 +12734,9 @@ class TransformWidget {
12694
12734
  }
12695
12735
  }
12696
12736
  computeTriangleSize(position, frame) {
12697
- return (bundle_esm.vector3.magnitude(bundle_esm.vector3.subtract(position, frame.scene.camera.position)) * 0.005);
12737
+ return ((frame.scene.camera.isOrthographic()
12738
+ ? frame.scene.camera.fovHeight
12739
+ : bundle_esm.vector3.magnitude(bundle_esm.vector3.subtract(position, frame.scene.camera.position))) * DEFAULT_MESH_SCALAR);
12698
12740
  }
12699
12741
  }
12700
12742
 
@@ -12748,8 +12790,10 @@ let ViewerTransformWidget = class {
12748
12790
  var _a, _b;
12749
12791
  if (this.dragging != null && this.lastWorldPosition != null) {
12750
12792
  const currentWorld = convertCanvasPointToWorld(convertPointToCanvas(bundle_esm.point.create(event.clientX, event.clientY), this.getCanvasBounds()), (_a = this.viewer) === null || _a === void 0 ? void 0 : _a.frame, (_b = this.viewer) === null || _b === void 0 ? void 0 : _b.viewport, this.currentPosition);
12751
- this.transform(this.lastWorldPosition, currentWorld !== null && currentWorld !== void 0 ? currentWorld : this.lastWorldPosition);
12752
- this.lastWorldPosition = currentWorld;
12793
+ if (currentWorld != null) {
12794
+ this.transform(this.lastWorldPosition, currentWorld);
12795
+ this.lastWorldPosition = currentWorld;
12796
+ }
12753
12797
  }
12754
12798
  };
12755
12799
  this.handleEndTransform = async (event) => {
@@ -15,7 +15,7 @@ const cursors = require('./cursors-6b087455.js');
15
15
  const dom = require('./dom-b82f5a23.js');
16
16
  const scene = require('./scene-7f29039e.js');
17
17
  const entities = require('./entities-9eb7e608.js');
18
- const viewport = require('./viewport-a259d895.js');
18
+ const viewport = require('./viewport-aeb8a3f3.js');
19
19
  require('./_commonjsHelpers-dcc4cf71.js');
20
20
 
21
21
  /**
@@ -37,6 +37,16 @@ class Viewport {
37
37
  static fromDimensions(dimensions) {
38
38
  return new Viewport(dimensions.width, dimensions.height);
39
39
  }
40
+ /**
41
+ * Transforms a normalized device coordinate to a 2D point within the
42
+ * viewport.
43
+ *
44
+ * @param ndc A 2D point in NDC.
45
+ * @returns A 2D point in the coordinate space of the viewport.
46
+ */
47
+ transformNdcPointToViewport(ndc) {
48
+ return bundle_esm.point.create(ndc.x * this.center.x + this.center.x, -ndc.y * this.center.y + this.center.y);
49
+ }
40
50
  /**
41
51
  * Transforms a normalized device coordinate to a 2D point within the
42
52
  * viewport.
@@ -45,7 +55,7 @@ class Viewport {
45
55
  * @returns A 2D point in the coordinate space of the viewport.
46
56
  */
47
57
  transformVectorToViewport(ndc) {
48
- return bundle_esm.point.create(ndc.x * this.center.x + this.center.x, -ndc.y * this.center.y + this.center.y);
58
+ return this.transformNdcPointToViewport(ndc);
49
59
  }
50
60
  /**
51
61
  * Transforms a world point to 2D point in viewport space.
@@ -133,9 +143,9 @@ class Viewport {
133
143
  */
134
144
  transformPointToOrthographicRay(pt, image, camera) {
135
145
  const ndc = this.transformScreenPointToNdc(pt, image);
136
- const world = bundle_esm.vector3.transformNdcToWorldSpace(bundle_esm.vector3.create(ndc.x, ndc.y, 0.5), camera.worldMatrix, camera.projectionMatrixInverse);
146
+ const origin = bundle_esm.vector3.transformNdcToWorldSpace(bundle_esm.vector3.create(ndc.x, ndc.y, 0), camera.worldMatrix, camera.projectionMatrixInverse);
137
147
  return bundle_esm.ray.create({
138
- origin: world,
148
+ origin,
139
149
  direction: bundle_esm.vector3.normalize(camera.viewVector),
140
150
  });
141
151
  }
@@ -6,9 +6,20 @@ export function convertPointToCanvas(point, bounds) {
6
6
  }
7
7
  export function convertCanvasPointToWorld(point, frame, viewport, position) {
8
8
  if (point != null && frame != null && viewport != null && position != null) {
9
- const ray = viewport.transformPointToRay(point, frame.image, frame.scene.camera);
10
- const positionPlane = Plane.fromNormalAndCoplanarPoint(frame.scene.camera.direction, position);
11
- return Ray.intersectPlane(ray, positionPlane);
9
+ if (frame.scene.camera.isOrthographic()) {
10
+ const ray = viewport.transformPointToOrthographicRay(point, frame.image, frame.scene.camera);
11
+ // Offset the point to past the bounding sphere of the model to
12
+ // adjust the position plane location.
13
+ const offsetPoint = Ray.at(Ray.create({
14
+ origin: position,
15
+ direction: frame.scene.camera.direction,
16
+ }), Vector3.magnitude(frame.scene.camera.viewVector) * 2);
17
+ return Ray.intersectPlane(ray, Plane.fromNormalAndCoplanarPoint(frame.scene.camera.direction, offsetPoint));
18
+ }
19
+ else {
20
+ const ray = viewport.transformPointToRay(point, frame.image, frame.scene.camera);
21
+ return Ray.intersectPlane(ray, Plane.fromNormalAndCoplanarPoint(frame.scene.camera.direction, position));
22
+ }
12
23
  }
13
24
  return undefined;
14
25
  }
@@ -24,4 +35,4 @@ export function computeUpdatedPosition(current, previous, next, identifier) {
24
35
  return current;
25
36
  }
26
37
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdlci10cmFuc2Zvcm0td2lkZ2V0L3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSWpFLE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsS0FBa0IsRUFDbEIsTUFBZ0I7RUFFaEIsT0FBTyxNQUFNLElBQUksSUFBSTtJQUNuQixDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQzNELENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FDdkMsS0FBbUIsRUFDbkIsS0FBYSxFQUNiLFFBQW1CLEVBQ25CLFFBQTBCO0VBRTFCLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLFFBQVEsSUFBSSxJQUFJLElBQUksUUFBUSxJQUFJLElBQUksRUFBRTtJQUMxRSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsbUJBQW1CLENBQ3RDLEtBQUssRUFDTCxLQUFLLENBQUMsS0FBSyxFQUNYLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUNuQixDQUFDO0lBQ0YsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLDBCQUEwQixDQUNwRCxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQzVCLFFBQVEsQ0FDVCxDQUFDO0lBRUYsT0FBTyxHQUFHLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztHQUMvQztFQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLE9BQXdCLEVBQ3hCLFFBQXlCLEVBQ3pCLElBQXFCLEVBQ3JCLFVBQWtCO0VBRWxCLFFBQVEsVUFBVSxFQUFFO0lBQ2xCLEtBQUssYUFBYTtNQUNoQix1Q0FDSyxPQUFPLEtBQ1YsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxJQUNqRDtJQUNKLEtBQUssYUFBYTtNQUNoQix1Q0FDSyxPQUFPLEtBQ1YsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxJQUNqRDtJQUNKLEtBQUssYUFBYTtNQUNoQix1Q0FDSyxPQUFPLEtBQ1YsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxJQUNqRDtJQUNKO01BQ0UsT0FBTyxPQUFPLENBQUM7R0FDbEI7QUFDSCxDQUFDIn0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdlci10cmFuc2Zvcm0td2lkZ2V0L3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSWpFLE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsS0FBa0IsRUFDbEIsTUFBZ0I7RUFFaEIsT0FBTyxNQUFNLElBQUksSUFBSTtJQUNuQixDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQzNELENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FDdkMsS0FBbUIsRUFDbkIsS0FBYSxFQUNiLFFBQW1CLEVBQ25CLFFBQTBCO0VBRTFCLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLFFBQVEsSUFBSSxJQUFJLElBQUksUUFBUSxJQUFJLElBQUksRUFBRTtJQUMxRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFFO01BQ3ZDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQywrQkFBK0IsQ0FDbEQsS0FBSyxFQUNMLEtBQUssQ0FBQyxLQUFLLEVBQ1gsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ25CLENBQUM7TUFDRiwrREFBK0Q7TUFDL0Qsc0NBQXNDO01BQ3RDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQ3hCLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDVCxNQUFNLEVBQUUsUUFBUTtRQUNoQixTQUFTLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztPQUN4QyxDQUFDLEVBQ0YsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQ3JELENBQUM7TUFFRixPQUFPLEdBQUcsQ0FBQyxjQUFjLENBQ3ZCLEdBQUcsRUFDSCxLQUFLLENBQUMsMEJBQTBCLENBQzlCLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFDNUIsV0FBVyxDQUNaLENBQ0YsQ0FBQztLQUNIO1NBQU07TUFDTCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsbUJBQW1CLENBQ3RDLEtBQUssRUFDTCxLQUFLLENBQUMsS0FBSyxFQUNYLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUNuQixDQUFDO01BRUYsT0FBTyxHQUFHLENBQUMsY0FBYyxDQUN2QixHQUFHLEVBQ0gsS0FBSyxDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FDekUsQ0FBQztLQUNIO0dBQ0Y7RUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxPQUF3QixFQUN4QixRQUF5QixFQUN6QixJQUFxQixFQUNyQixVQUFrQjtFQUVsQixRQUFRLFVBQVUsRUFBRTtJQUNsQixLQUFLLGFBQWE7TUFDaEIsdUNBQ0ssT0FBTyxLQUNWLENBQUMsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsSUFDakQ7SUFDSixLQUFLLGFBQWE7TUFDaEIsdUNBQ0ssT0FBTyxLQUNWLENBQUMsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsSUFDakQ7SUFDSixLQUFLLGFBQWE7TUFDaEIsdUNBQ0ssT0FBTyxLQUNWLENBQUMsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsSUFDakQ7SUFDSjtNQUNFLE9BQU8sT0FBTyxDQUFDO0dBQ2xCO0FBQ0gsQ0FBQyJ9
@@ -51,8 +51,10 @@ export class ViewerTransformWidget {
51
51
  var _a, _b;
52
52
  if (this.dragging != null && this.lastWorldPosition != null) {
53
53
  const currentWorld = convertCanvasPointToWorld(convertPointToCanvas(Point.create(event.clientX, event.clientY), this.getCanvasBounds()), (_a = this.viewer) === null || _a === void 0 ? void 0 : _a.frame, (_b = this.viewer) === null || _b === void 0 ? void 0 : _b.viewport, this.currentPosition);
54
- this.transform(this.lastWorldPosition, currentWorld !== null && currentWorld !== void 0 ? currentWorld : this.lastWorldPosition);
55
- this.lastWorldPosition = currentWorld;
54
+ if (currentWorld != null) {
55
+ this.transform(this.lastWorldPosition, currentWorld);
56
+ this.lastWorldPosition = currentWorld;
57
+ }
56
58
  }
57
59
  };
58
60
  this.handleEndTransform = async (event) => {
@@ -344,4 +346,4 @@ export class ViewerTransformWidget {
344
346
  "methodName": "handlePositionChanged"
345
347
  }]; }
346
348
  }
347
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLXRyYW5zZm9ybS13aWRnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3ZXItdHJhbnNmb3JtLXdpZGdldC92aWV3ZXItdHJhbnNmb3JtLXdpZGdldC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsS0FBSyxFQUVMLENBQUMsRUFDRCxJQUFJLEVBQ0osSUFBSSxFQUNKLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sVUFBVSxNQUFNLFlBQVksQ0FBQztBQUVwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFdEUsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIsb0JBQW9CLEdBQ3JCLE1BQU0sUUFBUSxDQUFDO0FBQ2hCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFPM0MsTUFBTSxPQUFPLHFCQUFxQjtFQUxsQztJQThDVSxnQkFBVyxHQUF5QixTQUFTLENBQUM7SUFDOUMsZ0JBQVcsR0FBeUIsU0FBUyxDQUFDO0lBQzlDLGdCQUFXLEdBQXlCLFNBQVMsQ0FBQztJQUM5QyxpQkFBWSxHQUF5QixTQUFTLENBQUM7SUFDL0Msa0JBQWEsR0FBeUIsU0FBUyxDQUFDO0lBb0hoRCw2QkFBd0IsR0FBRyxDQUFDLElBQXNCLEVBQVEsRUFBRTtNQUNsRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN0QixDQUFDLENBQUM7SUFFTSwyQkFBc0IsR0FBRyxHQUFTLEVBQUU7TUFDMUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQyxDQUFDO0lBRU0saUJBQVksR0FBRyxHQUFTLEVBQUU7TUFDaEMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtRQUMxQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO09BQ3pDO0lBQ0gsQ0FBQyxDQUFDO0lBRU0sc0JBQWlCLEdBQUcsQ0FBQyxLQUFtQixFQUFRLEVBQUU7TUFDeEQsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRTtRQUN6QixNQUFNLFdBQVcsR0FBRyxvQkFBb0IsQ0FDdEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFDMUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUN2QixDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFekMsSUFBSSxXQUFXLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsRUFBRTtVQUNsRSxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ2xDO2FBQU07VUFDTCxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1VBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO1NBQzFCO09BQ0Y7SUFDSCxDQUFDLENBQUM7SUFFTSxvQkFBZSxHQUFHLEtBQUssRUFBRSxLQUFtQixFQUFpQixFQUFFOztNQUNyRSxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcseUJBQXlCLENBQ2hELG9CQUFvQixDQUNsQixLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUMxQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQ3ZCLEVBQ0QsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxLQUFLLEVBQ2xCLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsUUFBUSxFQUNyQixJQUFJLENBQUMsZUFBZSxDQUNyQixDQUFDO1FBRUYsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxjQUFjLEVBQUUsQ0FBQztRQUVsQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7T0FDL0Q7SUFDSCxDQUFDLENBQUM7SUFFTSxlQUFVLEdBQUcsS0FBSyxFQUFFLEtBQW1CLEVBQWlCLEVBQUU7O01BQ2hFLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksRUFBRTtRQUMzRCxNQUFNLFlBQVksR0FBRyx5QkFBeUIsQ0FDNUMsb0JBQW9CLENBQ2xCLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQzFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FDdkIsRUFDRCxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLEtBQUssRUFDbEIsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxRQUFRLEVBQ3JCLElBQUksQ0FBQyxlQUFlLENBQ3JCLENBQUM7UUFFRixJQUFJLENBQUMsU0FBUyxDQUNaLElBQUksQ0FBQyxpQkFBaUIsRUFDdEIsWUFBWSxhQUFaLFlBQVksY0FBWixZQUFZLEdBQUksSUFBSSxDQUFDLGlCQUFpQixDQUN2QyxDQUFDO1FBRUYsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFlBQVksQ0FBQztPQUN2QztJQUNILENBQUMsQ0FBQztJQUVNLHVCQUFrQixHQUFHLEtBQUssRUFBRSxLQUFtQixFQUFpQixFQUFFOztNQUN4RSxNQUFNLFdBQVcsR0FBRyxvQkFBb0IsQ0FDdEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFDMUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUN2QixDQUFDO01BQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7TUFFekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7TUFDMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztNQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7TUFFckMsTUFBTSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztNQUNqQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztNQUM1QyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ2xCLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYTtRQUMxQixNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWE7UUFDMUIsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhO1FBQzFCLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYTtPQUM1QixDQUFDLENBQUM7TUFFSCxNQUFNLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztNQUMzRCxNQUFNLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO01BRWpFLElBQUk7UUFDRixNQUFNLENBQUEsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxZQUFZLEVBQUUsQ0FBQSxDQUFDO09BQ3ZDO01BQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxFQUFFLENBQUMsQ0FBQyxDQUFDO09BQ3pEO01BRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztNQUUvRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFDckMsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXO1FBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVztRQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVc7UUFDeEIsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZO09BQzNCLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVNLDBCQUFxQixHQUFHLEdBQVMsRUFBRTtNQUN6QyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7TUFFcEMsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRXpDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUM7T0FDbEQ7SUFDSCxDQUFDLENBQUM7SUFzQk0seUJBQW9CLEdBQUcsQ0FDN0IsU0FBNEIsRUFDWCxFQUFFOztNQUNuQixPQUFPLENBQUMsS0FBSyxDQUNYLG9EQUFvRCxJQUFJLENBQUMsU0FBUyxDQUNoRSxJQUFJLENBQUMsUUFBUSxDQUNkLHVCQUF1QixDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsS0FBSyxLQUFJLElBQUksR0FBRyxDQUN0RCxDQUFDO01BRUYsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxTQUFTLEVBQUU7UUFDM0MsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXO1FBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVztRQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVc7UUFDeEIsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZO09BQzNCLENBQUMsQ0FBQztNQUVILElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7UUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztPQUMzQztNQUNELElBQUksQ0FBQSxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLEtBQUssS0FBSSxJQUFJLEVBQUU7UUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7T0FDbEQ7TUFFRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FDekQsSUFBSSxDQUFDLHdCQUF3QixDQUM5QixDQUFDO01BRUYsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUMsQ0FBQztJQUVNLHVCQUFrQixHQUFHLENBQUMsYUFBZ0MsRUFBUSxFQUFFO01BQ3RFLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDWCxJQUFJLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTFELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO01BQzVELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRU0sb0JBQWUsR0FBRyxHQUF3QixFQUFFO01BQ2xELElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUU7UUFDN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO09BQzFCO1dBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtRQUNqQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztPQUMxQjtJQUNILENBQUMsQ0FBQztJQUVNLHVCQUFrQixHQUFHLEdBQW9CLEVBQUU7TUFDakQsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtRQUNqRCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7T0FDbEQ7V0FBTSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFO1FBQzlCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztPQUNwQjtXQUFNO1FBQ0wsTUFBTSxJQUFJLEtBQUssQ0FDYix5RkFBeUYsQ0FDMUYsQ0FBQztPQUNIO0lBQ0gsQ0FBQyxDQUFDO0dBQ0g7RUFqVFcsZ0JBQWdCO0lBQ3hCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFL0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUVsRSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxFQUFFO01BQzFCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO01BRWxELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDM0M7SUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUVqRCxPQUFPLENBQUMsR0FBRyxFQUFFO01BQ1gsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztNQUV4RCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVU7U0FDMUIsZ0JBQWdCLENBQUMsOENBQThDLENBQUM7U0FDaEUsSUFBSSxFQUFFLENBQUM7TUFDVixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVU7U0FDMUIsZ0JBQWdCLENBQUMsOENBQThDLENBQUM7U0FDaEUsSUFBSSxFQUFFLENBQUM7TUFDVixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVU7U0FDMUIsZ0JBQWdCLENBQUMsOENBQThDLENBQUM7U0FDaEUsSUFBSSxFQUFFLENBQUM7TUFDVixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVU7U0FDM0IsZ0JBQWdCLENBQUMsK0NBQStDLENBQUM7U0FDakUsSUFBSSxFQUFFLENBQUM7TUFDVixJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVU7U0FDNUIsZ0JBQWdCLENBQUMsZ0RBQWdELENBQUM7U0FDbEUsSUFBSSxFQUFFLENBQUM7SUFDWixDQUFDLENBQUMsQ0FBQztFQUNMLENBQUM7RUFFUyxvQkFBb0I7O0lBQzVCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFbEUsTUFBQSxJQUFJLENBQUMsb0JBQW9CLDBDQUFFLFVBQVUsRUFBRSxDQUFDO0lBRXhDLE1BQUEsSUFBSSxDQUFDLHVCQUF1QiwwQ0FBRSxPQUFPLEVBQUUsQ0FBQztJQUN4QyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLE9BQU8sRUFBRSxDQUFDO0VBQ3pCLENBQUM7RUFFRDs7S0FFRztFQUVPLG1CQUFtQixDQUMzQixTQUFtQyxFQUNuQyxTQUFtQzs7SUFFbkMsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLG1CQUFtQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUMxRSxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUUsbUJBQW1CLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RFLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDdkUsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUVuRSxJQUFJLENBQUEsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLE1BQU0sS0FBSSxJQUFJLEVBQUU7TUFDN0IsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxPQUFPLEVBQUUsQ0FBQztNQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksbUJBQW1CLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzdEO0VBQ0gsQ0FBQztFQUVEOztLQUVHO0VBRU8scUJBQXFCLENBQzdCLFdBQTZCLEVBQzdCLFdBQTZCOztJQUU3QixJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQztJQUVuQyxPQUFPLENBQUMsS0FBSyxDQUNYLHNDQUFzQyxJQUFJLENBQUMsU0FBUyxDQUNsRCxXQUFXLENBQ1osYUFBYSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQzdDLENBQUM7SUFDRixNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFbEQsSUFBSSxXQUFXLElBQUksSUFBSSxFQUFFO01BQ3ZCLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsY0FBYyxFQUFFLENBQUM7S0FDbkM7SUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztFQUN6QyxDQUFDO0VBRU0sTUFBTTs7SUFDWCxPQUFPLENBQ0wsRUFBQyxJQUFJO01BQ0gsY0FDRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtVQUNWLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLENBQUMsRUFDRCxLQUFLLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRTtVQUMxQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJO1NBQzlCLENBQUMsRUFDRixLQUFLLEVBQUUsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxRQUFRLENBQUMsS0FBSyxFQUNsQyxNQUFNLEVBQUUsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxRQUFRLENBQUMsTUFBTSxFQUNwQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGVBQWUsR0FDbkMsQ0FDRyxDQUNSLENBQUM7RUFDSixDQUFDO0VBNEhPLFNBQVMsQ0FBQyxRQUF5QixFQUFFLElBQXFCOztJQUNoRSxJQUNFLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSTtNQUNyQixJQUFJLENBQUMsZUFBZSxJQUFJLElBQUk7TUFDNUIsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQ3JCO01BQ0EsSUFBSSxDQUFDLGVBQWUsR0FBRyxzQkFBc0IsQ0FDM0MsSUFBSSxDQUFDLGVBQWUsRUFDcEIsUUFBUSxFQUNSLElBQUksRUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FDekIsQ0FBQztNQUVGLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7TUFDL0QsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxpQkFBaUIsQ0FDaEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDdEQsQ0FBQztLQUNIO0VBQ0gsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E2REYifQ==
349
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLXRyYW5zZm9ybS13aWRnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3ZXItdHJhbnNmb3JtLXdpZGdldC92aWV3ZXItdHJhbnNmb3JtLXdpZGdldC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsS0FBSyxFQUVMLENBQUMsRUFDRCxJQUFJLEVBQ0osSUFBSSxFQUNKLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sVUFBVSxNQUFNLFlBQVksQ0FBQztBQUVwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFdEUsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIsb0JBQW9CLEdBQ3JCLE1BQU0sUUFBUSxDQUFDO0FBQ2hCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFPM0MsTUFBTSxPQUFPLHFCQUFxQjtFQUxsQztJQThDVSxnQkFBVyxHQUF5QixTQUFTLENBQUM7SUFDOUMsZ0JBQVcsR0FBeUIsU0FBUyxDQUFDO0lBQzlDLGdCQUFXLEdBQXlCLFNBQVMsQ0FBQztJQUM5QyxpQkFBWSxHQUF5QixTQUFTLENBQUM7SUFDL0Msa0JBQWEsR0FBeUIsU0FBUyxDQUFDO0lBb0hoRCw2QkFBd0IsR0FBRyxDQUFDLElBQXNCLEVBQVEsRUFBRTtNQUNsRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN0QixDQUFDLENBQUM7SUFFTSwyQkFBc0IsR0FBRyxHQUFTLEVBQUU7TUFDMUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQyxDQUFDO0lB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
@@ -7,6 +7,11 @@ import { xAxisArrowPositions, yAxisArrowPositions, zAxisArrowPositions, } from '
7
7
  import { testTriangleMesh } from '../../lib/transforms/hits';
8
8
  import { AxisMesh, computeMesh2dBounds, TriangleMesh, } from '../../lib/transforms/mesh';
9
9
  import { Viewport } from '../../lib/types';
10
+ // Scalar that is used in combination with the camera
11
+ // components to determine the relative size of the meshes.
12
+ // This attempts to keep the widget approximately the same
13
+ // size as zooming occurs.
14
+ export const DEFAULT_MESH_SCALAR = 0.005;
10
15
  export class TransformWidget {
11
16
  constructor(canvasElement, colors = {}) {
12
17
  this.canvasElement = canvasElement;
@@ -34,7 +39,7 @@ export class TransformWidget {
34
39
  boundsContainsPoint(point) {
35
40
  return (this.bounds != null &&
36
41
  this.frame != null &&
37
- Rectangle.containsPoints(this.bounds, this.viewport.transformScreenPointToNdc(point, this.frame.image)));
42
+ Rectangle.containsPoints(this.bounds, point));
38
43
  }
39
44
  updateFrame(frame, updateMeshes = true) {
40
45
  this.frame = frame;
@@ -49,6 +54,9 @@ export class TransformWidget {
49
54
  if (cursor != null && this.frame != null) {
50
55
  this.updateHovered();
51
56
  }
57
+ else {
58
+ this.clearHovered();
59
+ }
52
60
  }
53
61
  updatePosition(position) {
54
62
  var _a;
@@ -101,7 +109,9 @@ export class TransformWidget {
101
109
  const previousHovered = this.hoveredMesh;
102
110
  const currentFrame = this.frame;
103
111
  if (currentFrame != null) {
104
- this.hoveredMesh = this.triangleMeshes.find((m) => this.cursor != null
112
+ this.hoveredMesh = this.triangleMeshes
113
+ .filter((m) => m.points.valid)
114
+ .find((m) => this.cursor != null
105
115
  ? testTriangleMesh(m, currentFrame, this.viewport, this.cursor)
106
116
  : false);
107
117
  if (this.hoveredMesh !== previousHovered) {
@@ -111,6 +121,14 @@ export class TransformWidget {
111
121
  }
112
122
  }
113
123
  }
124
+ clearHovered() {
125
+ const previousHovered = this.hoveredMesh;
126
+ this.hoveredMesh = undefined;
127
+ if (this.hoveredMesh !== previousHovered) {
128
+ this.hoveredChanged.emit(this.hoveredMesh);
129
+ previousHovered.updateFillColor(previousHovered.initialFillColor);
130
+ }
131
+ }
114
132
  sortMeshes(frame, ...meshes) {
115
133
  const compare = (m1, m2) => m1.points.shortestDistanceFrom(frame.scene.camera.position) -
116
134
  m2.points.shortestDistanceFrom(frame.scene.camera.position);
@@ -130,7 +148,7 @@ export class TransformWidget {
130
148
  else {
131
149
  this.updateMeshes(position, frame);
132
150
  }
133
- this.bounds = computeMesh2dBounds(...this.triangleMeshes);
151
+ this.bounds = computeMesh2dBounds(this.viewport, ...this.triangleMeshes);
134
152
  }
135
153
  createMeshes(position, frame) {
136
154
  this.reglCommand = regl({
@@ -165,7 +183,9 @@ export class TransformWidget {
165
183
  }
166
184
  }
167
185
  computeTriangleSize(position, frame) {
168
- return (Vector3.magnitude(Vector3.subtract(position, frame.scene.camera.position)) * 0.005);
186
+ return ((frame.scene.camera.isOrthographic()
187
+ ? frame.scene.camera.fovHeight
188
+ : Vector3.magnitude(Vector3.subtract(position, frame.scene.camera.position))) * DEFAULT_MESH_SCALAR);
169
189
  }
170
190
  }
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld2VyLXRyYW5zZm9ybS13aWRnZXQvd2lkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBUyxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFxQixlQUFlLEVBQVksTUFBTSxrQkFBa0IsQ0FBQztBQUNoRixPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxZQUFZLE1BQU0sWUFBWSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixtQkFBbUIsR0FDcEIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsUUFBUSxFQUNSLG1CQUFtQixFQUVuQixZQUFZLEdBQ2IsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQVMsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFVbEQsTUFBTSxPQUFPLGVBQWU7RUFnQzFCLFlBQ1UsYUFBZ0MsRUFDeEMsU0FBcUIsRUFBRTtJQURmLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtJQXBCbEMsZUFBVSxHQUFlLEVBQUUsQ0FBQztJQUM1QixtQkFBYyxHQUFtQixFQUFFLENBQUM7SUFDcEMsbUJBQWMsR0FBVyxFQUFFLENBQUM7SUFTNUIsbUJBQWMsR0FBRyxJQUFJLGVBQWUsRUFBb0IsQ0FBQztJQVkvRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXhFLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0s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
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld2VyLXRyYW5zZm9ybS13aWRnZXQvd2lkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBUyxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFxQixlQUFlLEVBQVksTUFBTSxrQkFBa0IsQ0FBQztBQUNoRixPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxZQUFZLE1BQU0sWUFBWSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixtQkFBbUIsR0FDcEIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsUUFBUSxFQUNSLG1CQUFtQixFQUVuQixZQUFZLEdBQ2IsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQVMsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFVbEQscURBQXFEO0FBQ3JELDJEQUEyRDtBQUMzRCwwREFBMEQ7QUFDMUQsMEJBQTBCO0FBQzFCLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQztBQUV6QyxNQUFNLE9BQU8sZUFBZTtFQWdDMUIsWUFDVSxhQUFnQyxFQUN4QyxTQUFxQixFQUFFO0lBRGYsa0JBQWEsR0FBYixhQUFhLENBQW1CO0lBcEJsQyxlQUFVLEdBQWUsRUFBRSxDQUFDO0lBQzVCLG1CQUFjLEdBQW1CLEVBQUUsQ0FBQztJQUNwQyxtQkFBYyxHQUFXLEVBQUUsQ0FBQztJQVM1QixtQkFBYyxHQUFHLElBQUksZUFBZSxFQUFvQixDQUFDO0lBWS9ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxR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
@@ -4,13 +4,17 @@ import { BoundingBox, Vector3 } from '@vertexvis/geometry';
4
4
  */
5
5
  export function testTriangleMesh(mesh, frame, viewport, point) {
6
6
  var _a;
7
- const ray = viewport.transformPointToRay(point, frame.image, frame.scene.camera);
7
+ const ray = frame.scene.camera.isOrthographic()
8
+ ? viewport.transformPointToOrthographicRay(point, frame.image, frame.scene.camera)
9
+ : viewport.transformPointToRay(point, frame.image, frame.scene.camera);
8
10
  const edge1 = Vector3.subtract(mesh.points.worldRight, mesh.points.worldLeft);
9
11
  const edge2 = Vector3.subtract(mesh.points.worldTip, mesh.points.worldLeft);
10
12
  const epsilon = BoundingBox.epsilon((_a = BoundingBox.fromVectors([ray.direction, ray.origin, edge1, edge2])) !== null && _a !== void 0 ? _a : BoundingBox.create(edge1, edge2));
11
13
  const p = Vector3.cross(ray.direction, edge2);
12
14
  const det = Vector3.dot(edge1, p);
13
- if (Math.abs(det) < epsilon) {
15
+ // This check causes a `det` of NaN or 0 to return false
16
+ // without needing to perform the subsequent calculations.
17
+ if (!(Math.abs(det) >= epsilon)) {
14
18
  return false;
15
19
  }
16
20
  const t = Vector3.subtract(ray.origin, mesh.points.worldLeft);
@@ -24,6 +28,10 @@ export function testTriangleMesh(mesh, frame, viewport, point) {
24
28
  return false;
25
29
  }
26
30
  const r = Vector3.dot(edge2, q) / det;
27
- return !isNaN(r) && r > epsilon;
31
+ // Ignore the case where the computed hit position is negative
32
+ // if in orthographic to correctly return hit results when close
33
+ // to the camera.
34
+ // TODO: revisit with https://vertexvis.atlassian.net/browse/PLAT-1549
35
+ return !isNaN(r) && (r > 0 || frame.scene.camera.isOrthographic());
28
36
  }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNmb3Jtcy9oaXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQVMsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFLbEU7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLElBQWtCLEVBQ2xCLEtBQVksRUFDWixRQUFrQixFQUNsQixLQUFrQjs7RUFFbEIsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixDQUN0QyxLQUFLLEVBQ0wsS0FBSyxDQUFDLEtBQUssRUFDWCxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDbkIsQ0FBQztFQUVGLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztFQUM5RSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7RUFFNUUsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FDakMsTUFBQSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxtQ0FDaEUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQ25DLENBQUM7RUFFRixNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7RUFDOUMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7RUFFbEMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sRUFBRTtJQUMzQixPQUFPLEtBQUssQ0FBQztHQUNkO0VBRUQsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7RUFDOUQsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0VBRWxDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO0lBQ2xCLE9BQU8sS0FBSyxDQUFDO0dBQ2Q7RUFFRCxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztFQUNsQyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0VBRTlDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtJQUN0QixPQUFPLEtBQUssQ0FBQztHQUNkO0VBRUQsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0VBRXRDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQztBQUNsQyxDQUFDIn0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNmb3Jtcy9oaXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQVMsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFLbEU7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLElBQWtCLEVBQ2xCLEtBQVksRUFDWixRQUFrQixFQUNsQixLQUFrQjs7RUFFbEIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFO0lBQzdDLENBQUMsQ0FBQyxRQUFRLENBQUMsK0JBQStCLENBQ3RDLEtBQUssRUFDTCxLQUFLLENBQUMsS0FBSyxFQUNYLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUNuQjtJQUNILENBQUMsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztFQUV6RSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7RUFDOUUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0VBRTVFLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQ2pDLE1BQUEsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsbUNBQ2hFLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUNuQyxDQUFDO0VBRUYsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0VBQzlDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0VBRWxDLHdEQUF3RDtFQUN4RCwwREFBMEQ7RUFDMUQsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsRUFBRTtJQUMvQixPQUFPLEtBQUssQ0FBQztHQUNkO0VBRUQsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7RUFDOUQsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0VBRWxDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO0lBQ2xCLE9BQU8sS0FBSyxDQUFDO0dBQ2Q7RUFFRCxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztFQUNsQyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0VBRTlDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtJQUN0QixPQUFPLEtBQUssQ0FBQztHQUNkO0VBRUQsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0VBRXRDLDhEQUE4RDtFQUM5RCxnRUFBZ0U7RUFDaEUsaUJBQWlCO0VBQ2pCLHNFQUFzRTtFQUN0RSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0FBQ3JFLENBQUMifQ==
@@ -84,17 +84,20 @@ export class TriangleMesh extends Mesh {
84
84
  : Color.toHexString(outlineColor), typeof fillColor === 'string' ? fillColor : Color.toHexString(fillColor), shapeProps);
85
85
  }
86
86
  }
87
- export function computeMesh2dBounds(...meshes) {
87
+ export function computeMesh2dBounds(viewport, ...meshes) {
88
88
  let min = Point.create(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);
89
89
  let max = Point.create();
90
90
  meshes
91
91
  .filter((m) => m.points.valid)
92
92
  .map((m) => {
93
- m.points.toArray().forEach((pt) => {
93
+ m.points
94
+ .toArray()
95
+ .map((pt) => viewport.transformNdcPointToViewport(pt))
96
+ .forEach((pt) => {
94
97
  min = Point.create(Math.min(pt.x, min.x), Math.min(pt.y, min.y));
95
98
  max = Point.create(Math.max(pt.x, max.x), Math.max(pt.y, max.y));
96
99
  });
97
100
  });
98
101
  return Rectangle.fromPoints(min, max);
99
102
  }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNmb3Jtcy9tZXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUl6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFXM0MsTUFBTSxPQUFnQixJQUFJO0VBT3hCLFlBQ1ksV0FBd0IsRUFDM0IsVUFBa0IsRUFDbEIsTUFBUyxFQUNULFlBQW9CLEVBQ3BCLFNBQWlCLEVBQ2pCLGFBQWtDLEVBQUU7SUFMakMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDM0IsZUFBVSxHQUFWLFVBQVUsQ0FBUTtJQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFHO0lBQ1QsaUJBQVksR0FBWixZQUFZLENBQVE7SUFDcEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUNqQixlQUFVLEdBQVYsVUFBVSxDQUEwQjtJQUUzQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7SUFFdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlELGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FDdEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ3BDLENBQUM7SUFFRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO0lBRWxDLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLGtCQUN0QyxLQUFLLEVBQUUsYUFBYSxD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
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNmb3Jtcy9tZXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUt6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFXM0MsTUFBTSxPQUFnQixJQUFJO0VBT3hCLFlBQ1ksV0FBd0IsRUFDM0IsVUFBa0IsRUFDbEIsTUFBUyxFQUNULFlBQW9CLEVBQ3BCLFNBQWlCLEVBQ2pCLGFBQWtDLEVBQUU7SUFMakMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDM0IsZUFBVSxHQUFWLFVBQVUsQ0FBUTtJQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFHO0lBQ1QsaUJBQVksR0FBWixZQUFZLENBQVE7SUFDcEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUNqQixlQUFVLEdBQVYsVUFBVSxDQUEwQjtJQUUzQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7SUFFdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlELGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FDdEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ3BDLENBQUM7SUFFRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO0lBRWxDLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLGtCQUN0QyxLQUFLLEVBQUUsYUFBYSxD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