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

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 (50) hide show
  1. package/dist/cjs/index.cjs.js +1 -1
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/vertex-scene-tree.cjs.entry.js +3 -10
  4. package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js +1 -1
  5. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +1 -1
  6. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +1 -1
  7. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +71 -19
  8. package/dist/cjs/vertex-viewer.cjs.entry.js +1 -1
  9. package/dist/cjs/viewer.cjs.js +1 -1
  10. package/dist/cjs/{viewport-a259d895.js → viewport-aeb8a3f3.js} +13 -3
  11. package/dist/collection/components/scene-tree/scene-tree.js +4 -29
  12. package/dist/collection/components/viewer-transform-widget/util.js +15 -4
  13. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.js +45 -5
  14. package/dist/collection/components/viewer-transform-widget/widget.js +25 -5
  15. package/dist/collection/lib/transforms/controller.js +4 -1
  16. package/dist/collection/lib/transforms/hits.js +12 -4
  17. package/dist/collection/lib/transforms/mesh.js +6 -3
  18. package/dist/collection/lib/types/viewport.js +14 -4
  19. package/dist/custom-elements/index.js +87 -32
  20. package/dist/esm/index.js +1 -1
  21. package/dist/esm/index.mjs +1 -1
  22. package/dist/esm/loader.js +1 -1
  23. package/dist/esm/loader.mjs +1 -1
  24. package/dist/esm/vertex-scene-tree.entry.js +3 -10
  25. package/dist/esm/vertex-viewer-dom-element_2.entry.js +1 -1
  26. package/dist/esm/vertex-viewer-measurement-distance.entry.js +1 -1
  27. package/dist/esm/vertex-viewer-pin-group.entry.js +1 -1
  28. package/dist/esm/vertex-viewer-transform-widget.entry.js +72 -20
  29. package/dist/esm/vertex-viewer.entry.js +1 -1
  30. package/dist/esm/viewer.js +1 -1
  31. package/dist/esm/{viewport-7421cd5c.js → viewport-7e612d0d.js} +13 -3
  32. package/dist/types/components/scene-tree/scene-tree.d.ts +0 -5
  33. package/dist/types/components/viewer-transform-widget/viewer-transform-widget.d.ts +9 -1
  34. package/dist/types/components/viewer-transform-widget/widget.d.ts +2 -0
  35. package/dist/types/components.d.ts +8 -8
  36. package/dist/types/lib/transforms/controller.d.ts +1 -0
  37. package/dist/types/lib/transforms/mesh.d.ts +2 -1
  38. package/dist/types/lib/types/viewport.d.ts +8 -0
  39. package/dist/viewer/index.esm.js +1 -1
  40. package/dist/viewer/{p-5d833a6d.entry.js → p-831fe8e4.entry.js} +1 -1
  41. package/dist/viewer/{p-ca24eaee.entry.js → p-86712a86.entry.js} +1 -1
  42. package/dist/viewer/{p-b2a5d2ee.entry.js → p-8897b397.entry.js} +1 -1
  43. package/dist/viewer/p-8cf1d174.js +4 -0
  44. package/dist/viewer/p-8fdf9440.entry.js +4 -0
  45. package/dist/viewer/{p-d2d6cf52.entry.js → p-b09a7169.entry.js} +1 -1
  46. package/dist/viewer/{p-10655c8a.entry.js → p-cfc93df0.entry.js} +1 -1
  47. package/dist/viewer/viewer.esm.js +1 -1
  48. package/package.json +7 -7
  49. package/dist/viewer/p-9e675bb3.entry.js +0 -4
  50. 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');
@@ -20,7 +20,7 @@ const defineCustomElements = (win, options) => {
20
20
  if (typeof window === 'undefined') return Promise.resolve();
21
21
  return patchEsm().then(() => {
22
22
  appGlobals.globalScripts();
23
- return index.bootstrapLazy(JSON.parse("[[\"vertex-viewer-pin-tool.cjs\",[[1,\"vertex-viewer-pin-tool\",{\"pinController\":[1040],\"pinModel\":[16],\"pins\":[1040],\"viewer\":[16],\"tool\":[1025],\"mode\":[1025],\"selectedPinId\":[32],\"elementBounds\":[32],\"projectionViewMatrix\":[32]}]]],[\"vertex-viewer-default-toolbar.cjs\",[[1,\"vertex-viewer-default-toolbar\",{\"viewer\":[16],\"placement\":[1],\"direction\":[1],\"animationsDisabled\":[4,\"animations-disabled\"],\"animationMs\":[2,\"animation-ms\"]}]]],[\"vertex-scene-tree.cjs\",[[1,\"vertex-scene-tree\",{\"overScanCount\":[2,\"over-scan-count\"],\"viewerSelector\":[1,\"viewer-selector\"],\"viewer\":[1040],\"rowData\":[16],\"config\":[16],\"configEnv\":[1,\"config-env\"],\"controller\":[1040],\"filterOnMetadata\":[1028,\"filter-on-metadata\"],\"metadataSearchExactMatch\":[1028,\"metadata-search-exact-match\"],\"metadataSearchKeys\":[1040],\"metadataKeys\":[16],\"rows\":[32],\"totalRows\":[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-measurement-tool.cjs\",[[1,\"vertex-viewer-measurement-tool\",{\"distanceTemplateId\":[1,\"distance-template-id\"],\"tool\":[1],\"units\":[1],\"fractionalDigits\":[2,\"fractional-digits\"],\"disabled\":[4],\"viewer\":[16],\"isMeasuring\":[1540,\"is-measuring\"],\"snapDistance\":[2,\"snap-distance\"],\"stateMap\":[32]}]]],[\"vertex-viewer-markup.cjs\",[[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.cjs\",[[1,\"vertex-viewer-markup-tool\",{\"arrowTemplateId\":[1,\"arrow-template-id\"],\"circleTemplateId\":[1,\"circle-template-id\"],\"freeformTemplateId\":[1,\"freeform-template-id\"],\"tool\":[1],\"disabled\":[4],\"viewer\":[16],\"stateMap\":[32],\"reset\":[64]}]]],[\"vertex-viewer-measurements.cjs\",[[1,\"vertex-viewer-measurements\",{\"distanceTemplateId\":[1,\"distance-template-id\"],\"tool\":[1],\"units\":[1],\"fractionalDigits\":[2,\"fractional-digits\"],\"disabled\":[4],\"viewer\":[16],\"selectedMeasurementId\":[1025,\"selected-measurement-id\"],\"snapDistance\":[2,\"snap-distance\"],\"showAxisReferenceLines\":[4,\"show-axis-reference-lines\"],\"measurementModel\":[16],\"addMeasurement\":[64],\"removeMeasurement\":[64],\"getMeasurementElement\":[64],\"getMeasurementElements\":[64]},[[0,\"measureEnd\",\"handleMeasureEnd\"],[1,\"pointerdown\",\"handleMeasurementPointerDown\"]]]]],[\"vertex-viewer-view-cube.cjs\",[[1,\"vertex-viewer-view-cube\",{\"xPositiveLabel\":[1,\"x-positive-label\"],\"xNegativeLabel\":[1,\"x-negative-label\"],\"yPositiveLabel\":[1,\"y-positive-label\"],\"yNegativeLabel\":[1,\"y-negative-label\"],\"zPositiveLabel\":[1,\"z-positive-label\"],\"zNegativeLabel\":[1,\"z-negative-label\"],\"standardViewsOff\":[4,\"standard-views-off\"],\"animationDuration\":[2,\"animation-duration\"],\"triadOff\":[4,\"triad-off\"],\"worldOrientation\":[1040],\"camera\":[1040],\"viewer\":[16],\"boxLength\":[32],\"triadPosition\":[32]}]]],[\"vertex-viewer-measurement-precise.cjs\",[[1,\"vertex-viewer-measurement-precise\",{\"measurementModel\":[16],\"measurementOverlays\":[16],\"measurementController\":[1040],\"measurableEntityTypes\":[16],\"viewer\":[16],\"configEnv\":[1,\"config-env\"],\"config\":[16],\"overlays\":[32]}]]],[\"vertex-scene-tree-table-cell.cjs\",[[1,\"vertex-scene-tree-table-cell\",{\"node\":[16],\"tree\":[16],\"value\":[1],\"placeholder\":[1],\"hoveredNodeId\":[1,\"hovered-node-id\"],\"isScrolling\":[4,\"is-scrolling\"],\"expandToggle\":[4,\"expand-toggle\"],\"visibilityToggle\":[4,\"visibility-toggle\"],\"interactionsDisabled\":[4,\"interactions-disabled\"],\"recurseParentSelectionDisabled\":[4,\"recurse-parent-selection-disabled\"]}]]],[\"vertex-scene-tree-table-column.cjs\",[[1,\"vertex-scene-tree-table-column\",{\"initialWidth\":[2,\"initial-width\"],\"minWidth\":[2,\"min-width\"],\"maxWidth\":[2,\"max-width\"]}]]],[\"vertex-scene-tree-table-header.cjs\",[[1,\"vertex-scene-tree-table-header\"]]],[\"vertex-scene-tree-table-resize-divider.cjs\",[[1,\"vertex-scene-tree-table-resize-divider\",{\"dragging\":[32]}]]],[\"vertex-scene-tree-toolbar-group.cjs\",[[1,\"vertex-scene-tree-toolbar-group\"]]],[\"vertex-viewer.cjs\",[[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\"],\"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\":[64],\"addCursor\":[64],\"getInteractionHandlers\":[64],\"getBaseInteractionHandler\":[64],\"getJwt\":[64],\"load\":[64],\"unload\":[64],\"scene\":[64],\"isSceneReady\":[64]},[[0,\"tap\",\"handleTapEvent\"]]]]],[\"vertex-viewer-measurement-details.cjs\",[[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.cjs\",[[1,\"vertex-viewer-transform-widget\",{\"viewer\":[16],\"position\":[1040],\"controller\":[1040],\"hovered\":[1040]}]]],[\"vertex-viewer-icon.cjs\",[[1,\"vertex-viewer-icon\",{\"name\":[1],\"size\":[1]}]]],[\"vertex-viewer-pin-group.cjs\",[[0,\"vertex-viewer-pin-group\",{\"pin\":[16],\"matrix\":[1040],\"projectionViewMatrix\":[16],\"elementBounds\":[1040],\"pinModel\":[16],\"pinController\":[16],\"selected\":[4],\"invalidateStateCounter\":[32],\"leafNodesRendered\":[32]}]]],[\"vertex-viewer-dom-group.cjs\",[[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-measurement-distance.cjs\",[[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-scene-tree-search_3.cjs\",[[1,\"vertex-scene-tree-search\",{\"debounce\":[2],\"disabled\":[4],\"placeholder\":[1],\"value\":[1025],\"focused\":[32],\"setFocus\":[64]}],[1,\"vertex-scene-tree-table-layout\",{\"tree\":[16],\"controller\":[16],\"rows\":[16],\"totalRows\":[2,\"total-rows\"],\"rowHeight\":[1026,\"row-height\"],\"overScanCount\":[2,\"over-scan-count\"],\"rowData\":[16],\"layoutOffset\":[1026,\"layout-offset\"],\"scrollOffset\":[1026,\"scroll-offset\"],\"layoutHeight\":[1026,\"layout-height\"],\"layoutWidth\":[1026,\"layout-width\"],\"viewportStartIndex\":[1026,\"viewport-start-index\"],\"viewportEndIndex\":[1026,\"viewport-end-index\"],\"columnGridLayout\":[32],\"columnGridFixedLayout\":[32],\"hoveredNodeId\":[32],\"isComputingCellHeight\":[32],\"lastDividerPointerPosition\":[32],\"resizingColumnIndex\":[32],\"isScrolling\":[32],\"scrollTimer\":[32],\"stateMap\":[32],\"scrollToPosition\":[64]}],[1,\"vertex-scene-tree-toolbar\"]]],[\"vertex-viewer-layer.cjs\",[[1,\"vertex-viewer-layer\",{\"stretchOff\":[516,\"stretch-off\"]}]]],[\"vertex-viewer-button_3.cjs\",[[1,\"vertex-viewer-toolbar\",{\"placement\":[1],\"direction\":[1]}],[1,\"vertex-viewer-button\"],[1,\"vertex-viewer-toolbar-group\",{\"direction\":[1]}]]],[\"vertex-viewer-pin-label_2.cjs\",[[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]}]]],[\"vertex-viewer-dom-element_2.cjs\",[[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.cjs\",[[1,\"vertex-viewer-markup-arrow\",{\"start\":[1040],\"startJson\":[1,\"start\"],\"end\":[1040],\"endJson\":[1,\"end\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"editAnchor\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-circle\",{\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"startPosition\":[32],\"editAnchor\":[32],\"resizeBounds\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-freeform\",{\"points\":[1040],\"pointsJson\":[1,\"points\"],\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"resizeStartPosition\":[32],\"editAnchor\":[32],\"resizeBounds\":[32],\"resizePoints\":[32],\"screenPoints\":[32],\"dispose\":[64]}]]],[\"vertex-viewer-measurement-line_2.cjs\",[[1,\"vertex-viewer-measurement-overlays\",{\"measurementOverlays\":[16],\"camera\":[1040],\"viewer\":[16],\"overlays\":[32]}],[1,\"vertex-viewer-measurement-line\",{\"start\":[16],\"end\":[16],\"capLength\":[2,\"cap-length\"],\"pointerEvents\":[1,\"pointer-events\"]}]]]]"), options);
23
+ return index.bootstrapLazy(JSON.parse("[[\"vertex-viewer-pin-tool.cjs\",[[1,\"vertex-viewer-pin-tool\",{\"pinController\":[1040],\"pinModel\":[16],\"pins\":[1040],\"viewer\":[16],\"tool\":[1025],\"mode\":[1025],\"selectedPinId\":[32],\"elementBounds\":[32],\"projectionViewMatrix\":[32]}]]],[\"vertex-viewer-default-toolbar.cjs\",[[1,\"vertex-viewer-default-toolbar\",{\"viewer\":[16],\"placement\":[1],\"direction\":[1],\"animationsDisabled\":[4,\"animations-disabled\"],\"animationMs\":[2,\"animation-ms\"]}]]],[\"vertex-scene-tree.cjs\",[[1,\"vertex-scene-tree\",{\"overScanCount\":[2,\"over-scan-count\"],\"viewerSelector\":[1,\"viewer-selector\"],\"viewer\":[1040],\"rowData\":[16],\"config\":[16],\"configEnv\":[1,\"config-env\"],\"controller\":[1040],\"metadataSearchExactMatch\":[1028,\"metadata-search-exact-match\"],\"metadataSearchKeys\":[1040],\"metadataKeys\":[16],\"rows\":[32],\"totalRows\":[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-measurement-tool.cjs\",[[1,\"vertex-viewer-measurement-tool\",{\"distanceTemplateId\":[1,\"distance-template-id\"],\"tool\":[1],\"units\":[1],\"fractionalDigits\":[2,\"fractional-digits\"],\"disabled\":[4],\"viewer\":[16],\"isMeasuring\":[1540,\"is-measuring\"],\"snapDistance\":[2,\"snap-distance\"],\"stateMap\":[32]}]]],[\"vertex-viewer-markup.cjs\",[[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.cjs\",[[1,\"vertex-viewer-markup-tool\",{\"arrowTemplateId\":[1,\"arrow-template-id\"],\"circleTemplateId\":[1,\"circle-template-id\"],\"freeformTemplateId\":[1,\"freeform-template-id\"],\"tool\":[1],\"disabled\":[4],\"viewer\":[16],\"stateMap\":[32],\"reset\":[64]}]]],[\"vertex-viewer-measurements.cjs\",[[1,\"vertex-viewer-measurements\",{\"distanceTemplateId\":[1,\"distance-template-id\"],\"tool\":[1],\"units\":[1],\"fractionalDigits\":[2,\"fractional-digits\"],\"disabled\":[4],\"viewer\":[16],\"selectedMeasurementId\":[1025,\"selected-measurement-id\"],\"snapDistance\":[2,\"snap-distance\"],\"showAxisReferenceLines\":[4,\"show-axis-reference-lines\"],\"measurementModel\":[16],\"addMeasurement\":[64],\"removeMeasurement\":[64],\"getMeasurementElement\":[64],\"getMeasurementElements\":[64]},[[0,\"measureEnd\",\"handleMeasureEnd\"],[1,\"pointerdown\",\"handleMeasurementPointerDown\"]]]]],[\"vertex-viewer-view-cube.cjs\",[[1,\"vertex-viewer-view-cube\",{\"xPositiveLabel\":[1,\"x-positive-label\"],\"xNegativeLabel\":[1,\"x-negative-label\"],\"yPositiveLabel\":[1,\"y-positive-label\"],\"yNegativeLabel\":[1,\"y-negative-label\"],\"zPositiveLabel\":[1,\"z-positive-label\"],\"zNegativeLabel\":[1,\"z-negative-label\"],\"standardViewsOff\":[4,\"standard-views-off\"],\"animationDuration\":[2,\"animation-duration\"],\"triadOff\":[4,\"triad-off\"],\"worldOrientation\":[1040],\"camera\":[1040],\"viewer\":[16],\"boxLength\":[32],\"triadPosition\":[32]}]]],[\"vertex-viewer-measurement-precise.cjs\",[[1,\"vertex-viewer-measurement-precise\",{\"measurementModel\":[16],\"measurementOverlays\":[16],\"measurementController\":[1040],\"measurableEntityTypes\":[16],\"viewer\":[16],\"configEnv\":[1,\"config-env\"],\"config\":[16],\"overlays\":[32]}]]],[\"vertex-scene-tree-table-cell.cjs\",[[1,\"vertex-scene-tree-table-cell\",{\"node\":[16],\"tree\":[16],\"value\":[1],\"placeholder\":[1],\"hoveredNodeId\":[1,\"hovered-node-id\"],\"isScrolling\":[4,\"is-scrolling\"],\"expandToggle\":[4,\"expand-toggle\"],\"visibilityToggle\":[4,\"visibility-toggle\"],\"interactionsDisabled\":[4,\"interactions-disabled\"],\"recurseParentSelectionDisabled\":[4,\"recurse-parent-selection-disabled\"]}]]],[\"vertex-scene-tree-table-column.cjs\",[[1,\"vertex-scene-tree-table-column\",{\"initialWidth\":[2,\"initial-width\"],\"minWidth\":[2,\"min-width\"],\"maxWidth\":[2,\"max-width\"]}]]],[\"vertex-scene-tree-table-header.cjs\",[[1,\"vertex-scene-tree-table-header\"]]],[\"vertex-scene-tree-table-resize-divider.cjs\",[[1,\"vertex-scene-tree-table-resize-divider\",{\"dragging\":[32]}]]],[\"vertex-scene-tree-toolbar-group.cjs\",[[1,\"vertex-scene-tree-toolbar-group\"]]],[\"vertex-viewer.cjs\",[[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\"],\"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\":[64],\"addCursor\":[64],\"getInteractionHandlers\":[64],\"getBaseInteractionHandler\":[64],\"getJwt\":[64],\"load\":[64],\"unload\":[64],\"scene\":[64],\"isSceneReady\":[64]},[[0,\"tap\",\"handleTapEvent\"]]]]],[\"vertex-viewer-measurement-details.cjs\",[[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.cjs\",[[1,\"vertex-viewer-transform-widget\",{\"viewer\":[16],\"position\":[1040],\"controller\":[1040],\"hovered\":[1040]}]]],[\"vertex-viewer-icon.cjs\",[[1,\"vertex-viewer-icon\",{\"name\":[1],\"size\":[1]}]]],[\"vertex-viewer-pin-group.cjs\",[[0,\"vertex-viewer-pin-group\",{\"pin\":[16],\"matrix\":[1040],\"projectionViewMatrix\":[16],\"elementBounds\":[1040],\"pinModel\":[16],\"pinController\":[16],\"selected\":[4],\"invalidateStateCounter\":[32],\"leafNodesRendered\":[32]}]]],[\"vertex-viewer-dom-group.cjs\",[[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-measurement-distance.cjs\",[[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-scene-tree-search_3.cjs\",[[1,\"vertex-scene-tree-search\",{\"debounce\":[2],\"disabled\":[4],\"placeholder\":[1],\"value\":[1025],\"focused\":[32],\"setFocus\":[64]}],[1,\"vertex-scene-tree-table-layout\",{\"tree\":[16],\"controller\":[16],\"rows\":[16],\"totalRows\":[2,\"total-rows\"],\"rowHeight\":[1026,\"row-height\"],\"overScanCount\":[2,\"over-scan-count\"],\"rowData\":[16],\"layoutOffset\":[1026,\"layout-offset\"],\"scrollOffset\":[1026,\"scroll-offset\"],\"layoutHeight\":[1026,\"layout-height\"],\"layoutWidth\":[1026,\"layout-width\"],\"viewportStartIndex\":[1026,\"viewport-start-index\"],\"viewportEndIndex\":[1026,\"viewport-end-index\"],\"columnGridLayout\":[32],\"columnGridFixedLayout\":[32],\"hoveredNodeId\":[32],\"isComputingCellHeight\":[32],\"lastDividerPointerPosition\":[32],\"resizingColumnIndex\":[32],\"isScrolling\":[32],\"scrollTimer\":[32],\"stateMap\":[32],\"scrollToPosition\":[64]}],[1,\"vertex-scene-tree-toolbar\"]]],[\"vertex-viewer-layer.cjs\",[[1,\"vertex-viewer-layer\",{\"stretchOff\":[516,\"stretch-off\"]}]]],[\"vertex-viewer-button_3.cjs\",[[1,\"vertex-viewer-toolbar\",{\"placement\":[1],\"direction\":[1]}],[1,\"vertex-viewer-button\"],[1,\"vertex-viewer-toolbar-group\",{\"direction\":[1]}]]],[\"vertex-viewer-pin-label_2.cjs\",[[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]}]]],[\"vertex-viewer-dom-element_2.cjs\",[[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.cjs\",[[1,\"vertex-viewer-markup-arrow\",{\"start\":[1040],\"startJson\":[1,\"start\"],\"end\":[1040],\"endJson\":[1,\"end\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"editAnchor\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-circle\",{\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"startPosition\":[32],\"editAnchor\":[32],\"resizeBounds\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-freeform\",{\"points\":[1040],\"pointsJson\":[1,\"points\"],\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"resizeStartPosition\":[32],\"editAnchor\":[32],\"resizeBounds\":[32],\"resizePoints\":[32],\"screenPoints\":[32],\"dispose\":[64]}]]],[\"vertex-viewer-measurement-line_2.cjs\",[[1,\"vertex-viewer-measurement-overlays\",{\"measurementOverlays\":[16],\"camera\":[1040],\"viewer\":[16],\"overlays\":[32]}],[1,\"vertex-viewer-measurement-line\",{\"start\":[16],\"end\":[16],\"capLength\":[2,\"cap-length\"],\"pointerEvents\":[1,\"pointer-events\"]}]]]]"), options);
24
24
  });
25
25
  };
26
26
 
@@ -7288,11 +7288,6 @@ let SceneTree = class {
7288
7288
  * Use the `config` property for manually setting hosts.
7289
7289
  */
7290
7290
  this.configEnv = 'platprod';
7291
- /**
7292
- * Temporary flag to indicate whether metadata should be used when filtering
7293
- * as opposed to just the name of the item.
7294
- */
7295
- this.filterOnMetadata = false;
7296
7291
  /**
7297
7292
  * Indicates whether the metadata search should use an exact match.
7298
7293
  */
@@ -7780,11 +7775,9 @@ let SceneTree = class {
7780
7775
  await op({ viewer: this.viewer, id: node.id.hex, node });
7781
7776
  }
7782
7777
  handleSearch(event) {
7783
- const columnsToSearch = this.filterOnMetadata
7784
- ? this.metadataSearchKeys.length > 0
7785
- ? this.metadataSearchKeys
7786
- : this.metadataKeys
7787
- : undefined;
7778
+ const columnsToSearch = this.metadataSearchKeys.length > 0
7779
+ ? this.metadataSearchKeys
7780
+ : this.metadataKeys;
7788
7781
  this.filterItems(event.detail, {
7789
7782
  columns: columnsToSearch,
7790
7783
  exactMatch: this.metadataSearchExactMatch,
@@ -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) {
@@ -46,6 +46,9 @@ class TransformController {
46
46
  },
47
47
  });
48
48
  }
49
+ getCurrentDelta() {
50
+ return this.currentDelta;
51
+ }
49
52
  async endTransform() {
50
53
  if (this.isTransforming) {
51
54
  console.debug(`Ending transform interaction [delta=${this.currentDelta}]`);
@@ -104,9 +107,20 @@ function convertPointToCanvas(point, bounds) {
104
107
  }
105
108
  function convertCanvasPointToWorld(point, frame, viewport, position) {
106
109
  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);
110
+ if (frame.scene.camera.isOrthographic()) {
111
+ const ray = viewport.transformPointToOrthographicRay(point, frame.image, frame.scene.camera);
112
+ // Offset the point to past the bounding sphere of the model to
113
+ // adjust the position plane location.
114
+ const offsetPoint = bundle_esm.ray.at(bundle_esm.ray.create({
115
+ origin: position,
116
+ direction: frame.scene.camera.direction,
117
+ }), bundle_esm.vector3.magnitude(frame.scene.camera.viewVector) * 2);
118
+ return bundle_esm.ray.intersectPlane(ray, bundle_esm.plane.fromNormalAndCoplanarPoint(frame.scene.camera.direction, offsetPoint));
119
+ }
120
+ else {
121
+ const ray = viewport.transformPointToRay(point, frame.image, frame.scene.camera);
122
+ return bundle_esm.ray.intersectPlane(ray, bundle_esm.plane.fromNormalAndCoplanarPoint(frame.scene.camera.direction, position));
123
+ }
110
124
  }
111
125
  return undefined;
112
126
  }
@@ -12464,13 +12478,16 @@ class TriangleMesh extends Mesh {
12464
12478
  : browser_esm.color.toHexString(outlineColor), typeof fillColor === 'string' ? fillColor : browser_esm.color.toHexString(fillColor), shapeProps);
12465
12479
  }
12466
12480
  }
12467
- function computeMesh2dBounds(...meshes) {
12481
+ function computeMesh2dBounds(viewport, ...meshes) {
12468
12482
  let min = bundle_esm.point.create(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);
12469
12483
  let max = bundle_esm.point.create();
12470
12484
  meshes
12471
12485
  .filter((m) => m.points.valid)
12472
12486
  .map((m) => {
12473
- m.points.toArray().forEach((pt) => {
12487
+ m.points
12488
+ .toArray()
12489
+ .map((pt) => viewport.transformNdcPointToViewport(pt))
12490
+ .forEach((pt) => {
12474
12491
  min = bundle_esm.point.create(Math.min(pt.x, min.x), Math.min(pt.y, min.y));
12475
12492
  max = bundle_esm.point.create(Math.max(pt.x, max.x), Math.max(pt.y, max.y));
12476
12493
  });
@@ -12513,13 +12530,17 @@ function computeArrowNdcValues(widgetPosition, camera, direction, triangleSize)
12513
12530
  */
12514
12531
  function testTriangleMesh(mesh, frame, viewport, point) {
12515
12532
  var _a;
12516
- const ray = viewport.transformPointToRay(point, frame.image, frame.scene.camera);
12533
+ const ray = frame.scene.camera.isOrthographic()
12534
+ ? viewport.transformPointToOrthographicRay(point, frame.image, frame.scene.camera)
12535
+ : viewport.transformPointToRay(point, frame.image, frame.scene.camera);
12517
12536
  const edge1 = bundle_esm.vector3.subtract(mesh.points.worldRight, mesh.points.worldLeft);
12518
12537
  const edge2 = bundle_esm.vector3.subtract(mesh.points.worldTip, mesh.points.worldLeft);
12519
12538
  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
12539
  const p = bundle_esm.vector3.cross(ray.direction, edge2);
12521
12540
  const det = bundle_esm.vector3.dot(edge1, p);
12522
- if (Math.abs(det) < epsilon) {
12541
+ // This check causes a `det` of NaN or 0 to return false
12542
+ // without needing to perform the subsequent calculations.
12543
+ if (!(Math.abs(det) >= epsilon)) {
12523
12544
  return false;
12524
12545
  }
12525
12546
  const t = bundle_esm.vector3.subtract(ray.origin, mesh.points.worldLeft);
@@ -12533,9 +12554,18 @@ function testTriangleMesh(mesh, frame, viewport, point) {
12533
12554
  return false;
12534
12555
  }
12535
12556
  const r = bundle_esm.vector3.dot(edge2, q) / det;
12536
- return !isNaN(r) && r > epsilon;
12537
- }
12538
-
12557
+ // Ignore the case where the computed hit position is negative
12558
+ // if in orthographic to correctly return hit results when close
12559
+ // to the camera.
12560
+ // TODO: revisit with https://vertexvis.atlassian.net/browse/PLAT-1549
12561
+ return !isNaN(r) && (r > 0 || frame.scene.camera.isOrthographic());
12562
+ }
12563
+
12564
+ // Scalar that is used in combination with the camera
12565
+ // components to determine the relative size of the meshes.
12566
+ // This attempts to keep the widget approximately the same
12567
+ // size as zooming occurs.
12568
+ const DEFAULT_MESH_SCALAR = 0.005;
12539
12569
  class TransformWidget {
12540
12570
  constructor(canvasElement, colors = {}) {
12541
12571
  this.canvasElement = canvasElement;
@@ -12563,7 +12593,7 @@ class TransformWidget {
12563
12593
  boundsContainsPoint(point) {
12564
12594
  return (this.bounds != null &&
12565
12595
  this.frame != null &&
12566
- bundle_esm.rectangle.containsPoints(this.bounds, this.viewport.transformScreenPointToNdc(point, this.frame.image)));
12596
+ bundle_esm.rectangle.containsPoints(this.bounds, point));
12567
12597
  }
12568
12598
  updateFrame(frame, updateMeshes = true) {
12569
12599
  this.frame = frame;
@@ -12578,6 +12608,9 @@ class TransformWidget {
12578
12608
  if (cursor != null && this.frame != null) {
12579
12609
  this.updateHovered();
12580
12610
  }
12611
+ else {
12612
+ this.clearHovered();
12613
+ }
12581
12614
  }
12582
12615
  updatePosition(position) {
12583
12616
  var _a;
@@ -12630,7 +12663,9 @@ class TransformWidget {
12630
12663
  const previousHovered = this.hoveredMesh;
12631
12664
  const currentFrame = this.frame;
12632
12665
  if (currentFrame != null) {
12633
- this.hoveredMesh = this.triangleMeshes.find((m) => this.cursor != null
12666
+ this.hoveredMesh = this.triangleMeshes
12667
+ .filter((m) => m.points.valid)
12668
+ .find((m) => this.cursor != null
12634
12669
  ? testTriangleMesh(m, currentFrame, this.viewport, this.cursor)
12635
12670
  : false);
12636
12671
  if (this.hoveredMesh !== previousHovered) {
@@ -12640,6 +12675,14 @@ class TransformWidget {
12640
12675
  }
12641
12676
  }
12642
12677
  }
12678
+ clearHovered() {
12679
+ const previousHovered = this.hoveredMesh;
12680
+ this.hoveredMesh = undefined;
12681
+ if (this.hoveredMesh !== previousHovered) {
12682
+ this.hoveredChanged.emit(this.hoveredMesh);
12683
+ previousHovered.updateFillColor(previousHovered.initialFillColor);
12684
+ }
12685
+ }
12643
12686
  sortMeshes(frame, ...meshes) {
12644
12687
  const compare = (m1, m2) => m1.points.shortestDistanceFrom(frame.scene.camera.position) -
12645
12688
  m2.points.shortestDistanceFrom(frame.scene.camera.position);
@@ -12659,7 +12702,7 @@ class TransformWidget {
12659
12702
  else {
12660
12703
  this.updateMeshes(position, frame);
12661
12704
  }
12662
- this.bounds = computeMesh2dBounds(...this.triangleMeshes);
12705
+ this.bounds = computeMesh2dBounds(this.viewport, ...this.triangleMeshes);
12663
12706
  }
12664
12707
  createMeshes(position, frame) {
12665
12708
  this.reglCommand = regl({
@@ -12694,7 +12737,9 @@ class TransformWidget {
12694
12737
  }
12695
12738
  }
12696
12739
  computeTriangleSize(position, frame) {
12697
- return (bundle_esm.vector3.magnitude(bundle_esm.vector3.subtract(position, frame.scene.camera.position)) * 0.005);
12740
+ return ((frame.scene.camera.isOrthographic()
12741
+ ? frame.scene.camera.fovHeight
12742
+ : bundle_esm.vector3.magnitude(bundle_esm.vector3.subtract(position, frame.scene.camera.position))) * DEFAULT_MESH_SCALAR);
12698
12743
  }
12699
12744
  }
12700
12745
 
@@ -12704,6 +12749,8 @@ let ViewerTransformWidget = class {
12704
12749
  constructor(hostRef) {
12705
12750
  index.registerInstance(this, hostRef);
12706
12751
  this.positionChanged = index.createEvent(this, "positionChanged", 7);
12752
+ this.interactionEnded = index.createEvent(this, "interactionEnded", 7);
12753
+ this.interactionStarted = index.createEvent(this, "interactionStarted", 7);
12707
12754
  this.xArrowColor = '#ea3324';
12708
12755
  this.yArrowColor = '#4faf32';
12709
12756
  this.zArrowColor = '#0000ff';
@@ -12739,6 +12786,7 @@ let ViewerTransformWidget = class {
12739
12786
  this.dragging = this.hovered;
12740
12787
  this.lastWorldPosition = 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);
12741
12788
  (_c = this.controller) === null || _c === void 0 ? void 0 : _c.beginTransform();
12789
+ this.interactionStarted.emit();
12742
12790
  window.removeEventListener('pointermove', this.handlePointerMove);
12743
12791
  window.addEventListener('pointermove', this.handleDrag);
12744
12792
  window.addEventListener('pointerup', this.handleEndTransform);
@@ -12748,12 +12796,14 @@ let ViewerTransformWidget = class {
12748
12796
  var _a, _b;
12749
12797
  if (this.dragging != null && this.lastWorldPosition != null) {
12750
12798
  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;
12799
+ if (currentWorld != null) {
12800
+ this.transform(this.lastWorldPosition, currentWorld);
12801
+ this.lastWorldPosition = currentWorld;
12802
+ }
12753
12803
  }
12754
12804
  };
12755
12805
  this.handleEndTransform = async (event) => {
12756
- var _a;
12806
+ var _a, _b;
12757
12807
  const canvasPoint = convertPointToCanvas(bundle_esm.point.create(event.clientX, event.clientY), this.getCanvasBounds());
12758
12808
  const widget = this.getTransformWidget();
12759
12809
  this.dragging = undefined;
@@ -12770,7 +12820,9 @@ let ViewerTransformWidget = class {
12770
12820
  window.removeEventListener('pointermove', this.handleDrag);
12771
12821
  window.removeEventListener('pointerup', this.handleEndTransform);
12772
12822
  try {
12773
- await ((_a = this.controller) === null || _a === void 0 ? void 0 : _a.endTransform());
12823
+ const delta = (_a = this.controller) === null || _a === void 0 ? void 0 : _a.getCurrentDelta();
12824
+ await ((_b = this.controller) === null || _b === void 0 ? void 0 : _b.endTransform());
12825
+ this.interactionEnded.emit(delta);
12774
12826
  }
12775
12827
  catch (e) {
12776
12828
  console.error('Failed to end transform interaction', e);
@@ -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
  /**
@@ -74,5 +74,5 @@ const patchDynamicImport = (base, orgScriptElm) => {
74
74
 
75
75
  patchBrowser().then(options => {
76
76
  appGlobals.globalScripts();
77
- return index.bootstrapLazy(JSON.parse("[[\"vertex-viewer-pin-tool.cjs\",[[1,\"vertex-viewer-pin-tool\",{\"pinController\":[1040],\"pinModel\":[16],\"pins\":[1040],\"viewer\":[16],\"tool\":[1025],\"mode\":[1025],\"selectedPinId\":[32],\"elementBounds\":[32],\"projectionViewMatrix\":[32]}]]],[\"vertex-viewer-default-toolbar.cjs\",[[1,\"vertex-viewer-default-toolbar\",{\"viewer\":[16],\"placement\":[1],\"direction\":[1],\"animationsDisabled\":[4,\"animations-disabled\"],\"animationMs\":[2,\"animation-ms\"]}]]],[\"vertex-scene-tree.cjs\",[[1,\"vertex-scene-tree\",{\"overScanCount\":[2,\"over-scan-count\"],\"viewerSelector\":[1,\"viewer-selector\"],\"viewer\":[1040],\"rowData\":[16],\"config\":[16],\"configEnv\":[1,\"config-env\"],\"controller\":[1040],\"filterOnMetadata\":[1028,\"filter-on-metadata\"],\"metadataSearchExactMatch\":[1028,\"metadata-search-exact-match\"],\"metadataSearchKeys\":[1040],\"metadataKeys\":[16],\"rows\":[32],\"totalRows\":[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-measurement-tool.cjs\",[[1,\"vertex-viewer-measurement-tool\",{\"distanceTemplateId\":[1,\"distance-template-id\"],\"tool\":[1],\"units\":[1],\"fractionalDigits\":[2,\"fractional-digits\"],\"disabled\":[4],\"viewer\":[16],\"isMeasuring\":[1540,\"is-measuring\"],\"snapDistance\":[2,\"snap-distance\"],\"stateMap\":[32]}]]],[\"vertex-viewer-markup.cjs\",[[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.cjs\",[[1,\"vertex-viewer-markup-tool\",{\"arrowTemplateId\":[1,\"arrow-template-id\"],\"circleTemplateId\":[1,\"circle-template-id\"],\"freeformTemplateId\":[1,\"freeform-template-id\"],\"tool\":[1],\"disabled\":[4],\"viewer\":[16],\"stateMap\":[32],\"reset\":[64]}]]],[\"vertex-viewer-measurements.cjs\",[[1,\"vertex-viewer-measurements\",{\"distanceTemplateId\":[1,\"distance-template-id\"],\"tool\":[1],\"units\":[1],\"fractionalDigits\":[2,\"fractional-digits\"],\"disabled\":[4],\"viewer\":[16],\"selectedMeasurementId\":[1025,\"selected-measurement-id\"],\"snapDistance\":[2,\"snap-distance\"],\"showAxisReferenceLines\":[4,\"show-axis-reference-lines\"],\"measurementModel\":[16],\"addMeasurement\":[64],\"removeMeasurement\":[64],\"getMeasurementElement\":[64],\"getMeasurementElements\":[64]},[[0,\"measureEnd\",\"handleMeasureEnd\"],[1,\"pointerdown\",\"handleMeasurementPointerDown\"]]]]],[\"vertex-viewer-view-cube.cjs\",[[1,\"vertex-viewer-view-cube\",{\"xPositiveLabel\":[1,\"x-positive-label\"],\"xNegativeLabel\":[1,\"x-negative-label\"],\"yPositiveLabel\":[1,\"y-positive-label\"],\"yNegativeLabel\":[1,\"y-negative-label\"],\"zPositiveLabel\":[1,\"z-positive-label\"],\"zNegativeLabel\":[1,\"z-negative-label\"],\"standardViewsOff\":[4,\"standard-views-off\"],\"animationDuration\":[2,\"animation-duration\"],\"triadOff\":[4,\"triad-off\"],\"worldOrientation\":[1040],\"camera\":[1040],\"viewer\":[16],\"boxLength\":[32],\"triadPosition\":[32]}]]],[\"vertex-viewer-measurement-precise.cjs\",[[1,\"vertex-viewer-measurement-precise\",{\"measurementModel\":[16],\"measurementOverlays\":[16],\"measurementController\":[1040],\"measurableEntityTypes\":[16],\"viewer\":[16],\"configEnv\":[1,\"config-env\"],\"config\":[16],\"overlays\":[32]}]]],[\"vertex-scene-tree-table-cell.cjs\",[[1,\"vertex-scene-tree-table-cell\",{\"node\":[16],\"tree\":[16],\"value\":[1],\"placeholder\":[1],\"hoveredNodeId\":[1,\"hovered-node-id\"],\"isScrolling\":[4,\"is-scrolling\"],\"expandToggle\":[4,\"expand-toggle\"],\"visibilityToggle\":[4,\"visibility-toggle\"],\"interactionsDisabled\":[4,\"interactions-disabled\"],\"recurseParentSelectionDisabled\":[4,\"recurse-parent-selection-disabled\"]}]]],[\"vertex-scene-tree-table-column.cjs\",[[1,\"vertex-scene-tree-table-column\",{\"initialWidth\":[2,\"initial-width\"],\"minWidth\":[2,\"min-width\"],\"maxWidth\":[2,\"max-width\"]}]]],[\"vertex-scene-tree-table-header.cjs\",[[1,\"vertex-scene-tree-table-header\"]]],[\"vertex-scene-tree-table-resize-divider.cjs\",[[1,\"vertex-scene-tree-table-resize-divider\",{\"dragging\":[32]}]]],[\"vertex-scene-tree-toolbar-group.cjs\",[[1,\"vertex-scene-tree-toolbar-group\"]]],[\"vertex-viewer.cjs\",[[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\"],\"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\":[64],\"addCursor\":[64],\"getInteractionHandlers\":[64],\"getBaseInteractionHandler\":[64],\"getJwt\":[64],\"load\":[64],\"unload\":[64],\"scene\":[64],\"isSceneReady\":[64]},[[0,\"tap\",\"handleTapEvent\"]]]]],[\"vertex-viewer-measurement-details.cjs\",[[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.cjs\",[[1,\"vertex-viewer-transform-widget\",{\"viewer\":[16],\"position\":[1040],\"controller\":[1040],\"hovered\":[1040]}]]],[\"vertex-viewer-icon.cjs\",[[1,\"vertex-viewer-icon\",{\"name\":[1],\"size\":[1]}]]],[\"vertex-viewer-pin-group.cjs\",[[0,\"vertex-viewer-pin-group\",{\"pin\":[16],\"matrix\":[1040],\"projectionViewMatrix\":[16],\"elementBounds\":[1040],\"pinModel\":[16],\"pinController\":[16],\"selected\":[4],\"invalidateStateCounter\":[32],\"leafNodesRendered\":[32]}]]],[\"vertex-viewer-dom-group.cjs\",[[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-measurement-distance.cjs\",[[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-scene-tree-search_3.cjs\",[[1,\"vertex-scene-tree-search\",{\"debounce\":[2],\"disabled\":[4],\"placeholder\":[1],\"value\":[1025],\"focused\":[32],\"setFocus\":[64]}],[1,\"vertex-scene-tree-table-layout\",{\"tree\":[16],\"controller\":[16],\"rows\":[16],\"totalRows\":[2,\"total-rows\"],\"rowHeight\":[1026,\"row-height\"],\"overScanCount\":[2,\"over-scan-count\"],\"rowData\":[16],\"layoutOffset\":[1026,\"layout-offset\"],\"scrollOffset\":[1026,\"scroll-offset\"],\"layoutHeight\":[1026,\"layout-height\"],\"layoutWidth\":[1026,\"layout-width\"],\"viewportStartIndex\":[1026,\"viewport-start-index\"],\"viewportEndIndex\":[1026,\"viewport-end-index\"],\"columnGridLayout\":[32],\"columnGridFixedLayout\":[32],\"hoveredNodeId\":[32],\"isComputingCellHeight\":[32],\"lastDividerPointerPosition\":[32],\"resizingColumnIndex\":[32],\"isScrolling\":[32],\"scrollTimer\":[32],\"stateMap\":[32],\"scrollToPosition\":[64]}],[1,\"vertex-scene-tree-toolbar\"]]],[\"vertex-viewer-layer.cjs\",[[1,\"vertex-viewer-layer\",{\"stretchOff\":[516,\"stretch-off\"]}]]],[\"vertex-viewer-button_3.cjs\",[[1,\"vertex-viewer-toolbar\",{\"placement\":[1],\"direction\":[1]}],[1,\"vertex-viewer-button\"],[1,\"vertex-viewer-toolbar-group\",{\"direction\":[1]}]]],[\"vertex-viewer-pin-label_2.cjs\",[[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]}]]],[\"vertex-viewer-dom-element_2.cjs\",[[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.cjs\",[[1,\"vertex-viewer-markup-arrow\",{\"start\":[1040],\"startJson\":[1,\"start\"],\"end\":[1040],\"endJson\":[1,\"end\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"editAnchor\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-circle\",{\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"startPosition\":[32],\"editAnchor\":[32],\"resizeBounds\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-freeform\",{\"points\":[1040],\"pointsJson\":[1,\"points\"],\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"resizeStartPosition\":[32],\"editAnchor\":[32],\"resizeBounds\":[32],\"resizePoints\":[32],\"screenPoints\":[32],\"dispose\":[64]}]]],[\"vertex-viewer-measurement-line_2.cjs\",[[1,\"vertex-viewer-measurement-overlays\",{\"measurementOverlays\":[16],\"camera\":[1040],\"viewer\":[16],\"overlays\":[32]}],[1,\"vertex-viewer-measurement-line\",{\"start\":[16],\"end\":[16],\"capLength\":[2,\"cap-length\"],\"pointerEvents\":[1,\"pointer-events\"]}]]]]"), options);
77
+ return index.bootstrapLazy(JSON.parse("[[\"vertex-viewer-pin-tool.cjs\",[[1,\"vertex-viewer-pin-tool\",{\"pinController\":[1040],\"pinModel\":[16],\"pins\":[1040],\"viewer\":[16],\"tool\":[1025],\"mode\":[1025],\"selectedPinId\":[32],\"elementBounds\":[32],\"projectionViewMatrix\":[32]}]]],[\"vertex-viewer-default-toolbar.cjs\",[[1,\"vertex-viewer-default-toolbar\",{\"viewer\":[16],\"placement\":[1],\"direction\":[1],\"animationsDisabled\":[4,\"animations-disabled\"],\"animationMs\":[2,\"animation-ms\"]}]]],[\"vertex-scene-tree.cjs\",[[1,\"vertex-scene-tree\",{\"overScanCount\":[2,\"over-scan-count\"],\"viewerSelector\":[1,\"viewer-selector\"],\"viewer\":[1040],\"rowData\":[16],\"config\":[16],\"configEnv\":[1,\"config-env\"],\"controller\":[1040],\"metadataSearchExactMatch\":[1028,\"metadata-search-exact-match\"],\"metadataSearchKeys\":[1040],\"metadataKeys\":[16],\"rows\":[32],\"totalRows\":[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-measurement-tool.cjs\",[[1,\"vertex-viewer-measurement-tool\",{\"distanceTemplateId\":[1,\"distance-template-id\"],\"tool\":[1],\"units\":[1],\"fractionalDigits\":[2,\"fractional-digits\"],\"disabled\":[4],\"viewer\":[16],\"isMeasuring\":[1540,\"is-measuring\"],\"snapDistance\":[2,\"snap-distance\"],\"stateMap\":[32]}]]],[\"vertex-viewer-markup.cjs\",[[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.cjs\",[[1,\"vertex-viewer-markup-tool\",{\"arrowTemplateId\":[1,\"arrow-template-id\"],\"circleTemplateId\":[1,\"circle-template-id\"],\"freeformTemplateId\":[1,\"freeform-template-id\"],\"tool\":[1],\"disabled\":[4],\"viewer\":[16],\"stateMap\":[32],\"reset\":[64]}]]],[\"vertex-viewer-measurements.cjs\",[[1,\"vertex-viewer-measurements\",{\"distanceTemplateId\":[1,\"distance-template-id\"],\"tool\":[1],\"units\":[1],\"fractionalDigits\":[2,\"fractional-digits\"],\"disabled\":[4],\"viewer\":[16],\"selectedMeasurementId\":[1025,\"selected-measurement-id\"],\"snapDistance\":[2,\"snap-distance\"],\"showAxisReferenceLines\":[4,\"show-axis-reference-lines\"],\"measurementModel\":[16],\"addMeasurement\":[64],\"removeMeasurement\":[64],\"getMeasurementElement\":[64],\"getMeasurementElements\":[64]},[[0,\"measureEnd\",\"handleMeasureEnd\"],[1,\"pointerdown\",\"handleMeasurementPointerDown\"]]]]],[\"vertex-viewer-view-cube.cjs\",[[1,\"vertex-viewer-view-cube\",{\"xPositiveLabel\":[1,\"x-positive-label\"],\"xNegativeLabel\":[1,\"x-negative-label\"],\"yPositiveLabel\":[1,\"y-positive-label\"],\"yNegativeLabel\":[1,\"y-negative-label\"],\"zPositiveLabel\":[1,\"z-positive-label\"],\"zNegativeLabel\":[1,\"z-negative-label\"],\"standardViewsOff\":[4,\"standard-views-off\"],\"animationDuration\":[2,\"animation-duration\"],\"triadOff\":[4,\"triad-off\"],\"worldOrientation\":[1040],\"camera\":[1040],\"viewer\":[16],\"boxLength\":[32],\"triadPosition\":[32]}]]],[\"vertex-viewer-measurement-precise.cjs\",[[1,\"vertex-viewer-measurement-precise\",{\"measurementModel\":[16],\"measurementOverlays\":[16],\"measurementController\":[1040],\"measurableEntityTypes\":[16],\"viewer\":[16],\"configEnv\":[1,\"config-env\"],\"config\":[16],\"overlays\":[32]}]]],[\"vertex-scene-tree-table-cell.cjs\",[[1,\"vertex-scene-tree-table-cell\",{\"node\":[16],\"tree\":[16],\"value\":[1],\"placeholder\":[1],\"hoveredNodeId\":[1,\"hovered-node-id\"],\"isScrolling\":[4,\"is-scrolling\"],\"expandToggle\":[4,\"expand-toggle\"],\"visibilityToggle\":[4,\"visibility-toggle\"],\"interactionsDisabled\":[4,\"interactions-disabled\"],\"recurseParentSelectionDisabled\":[4,\"recurse-parent-selection-disabled\"]}]]],[\"vertex-scene-tree-table-column.cjs\",[[1,\"vertex-scene-tree-table-column\",{\"initialWidth\":[2,\"initial-width\"],\"minWidth\":[2,\"min-width\"],\"maxWidth\":[2,\"max-width\"]}]]],[\"vertex-scene-tree-table-header.cjs\",[[1,\"vertex-scene-tree-table-header\"]]],[\"vertex-scene-tree-table-resize-divider.cjs\",[[1,\"vertex-scene-tree-table-resize-divider\",{\"dragging\":[32]}]]],[\"vertex-scene-tree-toolbar-group.cjs\",[[1,\"vertex-scene-tree-toolbar-group\"]]],[\"vertex-viewer.cjs\",[[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\"],\"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\":[64],\"addCursor\":[64],\"getInteractionHandlers\":[64],\"getBaseInteractionHandler\":[64],\"getJwt\":[64],\"load\":[64],\"unload\":[64],\"scene\":[64],\"isSceneReady\":[64]},[[0,\"tap\",\"handleTapEvent\"]]]]],[\"vertex-viewer-measurement-details.cjs\",[[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.cjs\",[[1,\"vertex-viewer-transform-widget\",{\"viewer\":[16],\"position\":[1040],\"controller\":[1040],\"hovered\":[1040]}]]],[\"vertex-viewer-icon.cjs\",[[1,\"vertex-viewer-icon\",{\"name\":[1],\"size\":[1]}]]],[\"vertex-viewer-pin-group.cjs\",[[0,\"vertex-viewer-pin-group\",{\"pin\":[16],\"matrix\":[1040],\"projectionViewMatrix\":[16],\"elementBounds\":[1040],\"pinModel\":[16],\"pinController\":[16],\"selected\":[4],\"invalidateStateCounter\":[32],\"leafNodesRendered\":[32]}]]],[\"vertex-viewer-dom-group.cjs\",[[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-measurement-distance.cjs\",[[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-scene-tree-search_3.cjs\",[[1,\"vertex-scene-tree-search\",{\"debounce\":[2],\"disabled\":[4],\"placeholder\":[1],\"value\":[1025],\"focused\":[32],\"setFocus\":[64]}],[1,\"vertex-scene-tree-table-layout\",{\"tree\":[16],\"controller\":[16],\"rows\":[16],\"totalRows\":[2,\"total-rows\"],\"rowHeight\":[1026,\"row-height\"],\"overScanCount\":[2,\"over-scan-count\"],\"rowData\":[16],\"layoutOffset\":[1026,\"layout-offset\"],\"scrollOffset\":[1026,\"scroll-offset\"],\"layoutHeight\":[1026,\"layout-height\"],\"layoutWidth\":[1026,\"layout-width\"],\"viewportStartIndex\":[1026,\"viewport-start-index\"],\"viewportEndIndex\":[1026,\"viewport-end-index\"],\"columnGridLayout\":[32],\"columnGridFixedLayout\":[32],\"hoveredNodeId\":[32],\"isComputingCellHeight\":[32],\"lastDividerPointerPosition\":[32],\"resizingColumnIndex\":[32],\"isScrolling\":[32],\"scrollTimer\":[32],\"stateMap\":[32],\"scrollToPosition\":[64]}],[1,\"vertex-scene-tree-toolbar\"]]],[\"vertex-viewer-layer.cjs\",[[1,\"vertex-viewer-layer\",{\"stretchOff\":[516,\"stretch-off\"]}]]],[\"vertex-viewer-button_3.cjs\",[[1,\"vertex-viewer-toolbar\",{\"placement\":[1],\"direction\":[1]}],[1,\"vertex-viewer-button\"],[1,\"vertex-viewer-toolbar-group\",{\"direction\":[1]}]]],[\"vertex-viewer-pin-label_2.cjs\",[[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]}]]],[\"vertex-viewer-dom-element_2.cjs\",[[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.cjs\",[[1,\"vertex-viewer-markup-arrow\",{\"start\":[1040],\"startJson\":[1,\"start\"],\"end\":[1040],\"endJson\":[1,\"end\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"editAnchor\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-circle\",{\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"startPosition\":[32],\"editAnchor\":[32],\"resizeBounds\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-freeform\",{\"points\":[1040],\"pointsJson\":[1,\"points\"],\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"resizeStartPosition\":[32],\"editAnchor\":[32],\"resizeBounds\":[32],\"resizePoints\":[32],\"screenPoints\":[32],\"dispose\":[64]}]]],[\"vertex-viewer-measurement-line_2.cjs\",[[1,\"vertex-viewer-measurement-overlays\",{\"measurementOverlays\":[16],\"camera\":[1040],\"viewer\":[16],\"overlays\":[32]}],[1,\"vertex-viewer-measurement-line\",{\"start\":[16],\"end\":[16],\"capLength\":[2,\"cap-length\"],\"pointerEvents\":[1,\"pointer-events\"]}]]]]"), options);
78
78
  });
@@ -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
  }