@vertexvis/viewer 0.21.0-testing.0 → 0.21.0-testing.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +36 -38
- package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js.map +1 -1
- package/dist/cjs/viewer.cjs.js +1 -1
- package/dist/collection/components/viewer-transform-widget/util.js +4 -4
- package/dist/collection/components/viewer-transform-widget/util.js.map +1 -1
- package/dist/collection/components/viewer-transform-widget/viewer-transform-widget-components.js +15 -13
- package/dist/collection/components/viewer-transform-widget/viewer-transform-widget-components.js.map +1 -1
- package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.css +4 -8
- package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.js +34 -20
- package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.js.map +1 -1
- package/dist/components/vertex-viewer-transform-widget.js +37 -38
- package/dist/components/vertex-viewer-transform-widget.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/loader.mjs +1 -1
- package/dist/esm/vertex-viewer-transform-widget.entry.js +36 -38
- package/dist/esm/vertex-viewer-transform-widget.entry.js.map +1 -1
- package/dist/esm/viewer.js +1 -1
- package/dist/types/components/viewer-transform-widget/util.d.ts +4 -3
- package/dist/types/components/viewer-transform-widget/viewer-transform-widget.d.ts +7 -3
- package/dist/types/components.d.ts +8 -0
- package/dist/viewer/p-24b66b64.entry.js +5 -0
- package/dist/viewer/p-24b66b64.entry.js.map +1 -0
- package/dist/viewer/viewer.esm.js +1 -1
- package/dist/viewer/viewer.esm.js.map +1 -1
- package/package.json +7 -7
- package/dist/viewer/p-ff7e05fe.entry.js +0 -5
- package/dist/viewer/p-ff7e05fe.entry.js.map +0 -1
package/dist/cjs/viewer.cjs.js
CHANGED
|
@@ -74,7 +74,7 @@ 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],\"viewer\":[16],\"tool\":[1025],\"mode\":[1025],\"primaryColor\":[1025,\"primary-color\"],\"accentColor\":[1025,\"accent-color\"],\"pins\":[32],\"selectedPinId\":[32],\"elementBounds\":[32],\"projectionViewMatrix\":[32]}]]],[\"vertex-scene-tree.cjs\",[[1,\"vertex-scene-tree\",{\"overScanCount\":[2,\"over-scan-count\"],\"viewerSelector\":[1,\"viewer-selector\"],\"viewer\":[1040],\"rowData\":[16],\"config\":[1],\"configEnv\":[1,\"config-env\"],\"controller\":[1040],\"metadataSearchExactMatch\":[1028,\"metadata-search-exact-match\"],\"metadataSearchKeys\":[1040],\"metadataKeys\":[16],\"rows\":[32],\"totalRows\":[32],\"showLoader\":[32],\"showEmptyResults\":[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\"],[0,\"cellLoaded\",\"handleCellLoaded\"]]]]],[\"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-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\"],\"startLineAnchorStyle\":[1025,\"start-line-anchor-style\"],\"endLineAnchorStyle\":[1025,\"end-line-anchor-style\"],\"toSelectMarkupId\":[32],\"pointerDownPosition\":[32],\"addMarkup\":[64],\"removeMarkup\":[64],\"getMarkupElements\":[64],\"getMarkupElement\":[64]},[[0,\"markupEnd\",\"handleMarkupEnd\"],[0,\"interactionEnd\",\"handleMarkupUpdated\"],[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],\"startLineAnchorStyle\":[1025,\"start-line-anchor-style\"],\"endLineAnchorStyle\":[1025,\"end-line-anchor-style\"],\"stateMap\":[32],\"reset\":[64]}]]],[\"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-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-viewer-measurement-precise.cjs\",[[1,\"vertex-viewer-measurement-precise\",{\"measurementModel\":[16],\"measurementOverlays\":[16],\"measurementController\":[1040],\"measurableEntityTypes\":[16],\"viewer\":[16],\"configEnv\":[1,\"config-env\"],\"config\":[1]}]]],[\"vertex-viewer-box-query-tool.cjs\",[[1,\"vertex-viewer-box-query-tool\",{\"viewer\":[16],\"controller\":[1040],\"model\":[1040],\"operationType\":[1,\"operation-type\"],\"mode\":[1],\"details\":[32]}]]],[\"vertex-viewer-walk-mode-tool.cjs\",[[1,\"vertex-viewer-walk-mode-tool\",{\"viewer\":[16],\"controller\":[1040],\"model\":[1040],\"teleportMode\":[1,\"teleport-mode\"],\"enabled\":[4]}]]],[\"vertex-scene-tree-table-cell.cjs\",[[1,\"vertex-scene-tree-table-cell\",{\"node\":[16],\"tree\":[16],\"value\":[1],\"placeholder\":[1],\"hovered\":[1028],\"isScrolling\":[4,\"is-scrolling\"],\"expandToggle\":[4,\"expand-toggle\"],\"visibilityToggle\":[4,\"visibility-toggle\"],\"selectionHandler\":[16],\"visibilityHandler\":[16],\"expansionHandler\":[16],\"hoverController\":[16]}]]],[\"vertex-scene-tree-table-column.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\"],\"phantom\":[16],\"noDefaultLights\":[4,\"no-default-lights\"],\"enableTemporalRefinement\":[4,\"enable-temporal-refinement\"],\"experimentalRenderingOptions\":[1,\"experimental-rendering-options\"],\"featureLines\":[16],\"selectionHighlighting\":[16],\"featureHighlighting\":[16],\"featureMaps\":[1,\"feature-maps\"],\"resizeDebounce\":[2,\"resize-debounce\"],\"frame\":[1040],\"stream\":[1040],\"stencilBuffer\":[1040],\"viewport\":[1040],\"dimensions\":[32],\"hostDimensions\":[32],\"errorMessage\":[32],\"cursor\":[32],\"stateMap\":[32],\"dispatchFrameDrawn\":[64],\"registerInteractionHandler\":[64],\"registerTapKeyInteraction\":[64],\"getInteractionTarget_DEPRECATED\":[64],\"addCursor\":[64],\"getInteractionHandlers\":[64],\"getKeyInteractions\":[64],\"getBaseInteractionHandler\":[64],\"getJwt\":[64],\"load\":[64],\"unload\":[64],\"scene\":[64],\"isSceneReady\":[64]},[[0,\"tap\",\"handleTapEvent\"]]]]],[\"vertex-viewer-hit-result-indicator.cjs\",[[1,\"vertex-viewer-hit-result-indicator\",{\"viewer\":[16],\"position\":[1040],\"normal\":[1040]}]]],[\"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],\"rotation\":[1040],\"controller\":[1040],\"xRotationDisabled\":[1028,\"x-rotation-disabled\"],\"yRotationDisabled\":[1028,\"y-rotation-disabled\"],\"zRotationDisabled\":[1028,\"z-rotation-disabled\"],\"xTranslationDisabled\":[1028,\"x-translation-disabled\"],\"yTranslationDisabled\":[1028,\"y-translation-disabled\"],\"zTranslationDisabled\":[1028,\"z-translation-disabled\"],\"distanceUnit\":[1,\"distance-unit\"],\"angleUnit\":[1,\"angle-unit\"],\"decimalPlaces\":[2,\"decimal-places\"],\"hovered\":[1040],\"inputPosition\":[32],\"inputValue\":[32]}]]],[\"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]}]]],[\"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-teleport-tool.cjs\",[[1,\"vertex-viewer-teleport-tool\",{\"viewer\":[16],\"mode\":[1025],\"animationsDisabled\":[4,\"animations-disabled\"],\"animationMs\":[2,\"animation-ms\"],\"controller\":[1040],\"model\":[1040]}]]],[\"vertex-viewer-spinner.cjs\",[[1,\"vertex-viewer-spinner\",{\"size\":[1]}]]],[\"vertex-scene-tree-search_3.cjs\",[[1,\"vertex-scene-tree-search\",{\"debounce\":[2],\"disabled\":[4],\"placeholder\":[1],\"controller\":[16],\"value\":[1025],\"focused\":[32],\"isSearching\":[32],\"setFocus\":[64],\"clear\":[64]}],[1,\"vertex-scene-tree-table-layout\",{\"tree\":[16],\"controller\":[16],\"rows\":[16],\"totalRows\":[2,\"total-rows\"],\"rowHeight\":[1026,\"row-height\"],\"overScanCount\":[2,\"over-scan-count\"],\"rowData\":[16],\"layoutOffset\":[1026,\"layout-offset\"],\"scrollOffset\":[1026,\"scroll-offset\"],\"layoutHeight\":[1026,\"layout-height\"],\"layoutWidth\":[1026,\"layout-width\"],\"viewportStartIndex\":[1026,\"viewport-start-index\"],\"viewportEndIndex\":[1026,\"viewport-end-index\"],\"columnGridLayout\":[32],\"columnGridFixedLayout\":[32],\"isComputingCellHeight\":[32],\"lastDividerPointerPosition\":[32],\"resizingColumnIndex\":[32],\"isScrolling\":[32],\"scrollTimer\":[32],\"stateMap\":[32],\"scrollToPosition\":[64]}],[1,\"vertex-scene-tree-toolbar\"]]],[\"vertex-viewer-layer.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],\"pin\":[16]}]]],[\"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\"]}]]],[\"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\"],\"startLineAnchorStyle\":[1025,\"start-line-anchor-style\"],\"endLineAnchorStyle\":[1025,\"end-line-anchor-style\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-circle\",{\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-freeform\",{\"points\":[1040],\"pointsJson\":[1,\"points\"],\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"screenPoints\":[32],\"dispose\":[64]}]]]]"), options);
|
|
77
|
+
return index.bootstrapLazy(JSON.parse("[[\"vertex-viewer-pin-tool.cjs\",[[1,\"vertex-viewer-pin-tool\",{\"pinController\":[1040],\"pinModel\":[16],\"viewer\":[16],\"tool\":[1025],\"mode\":[1025],\"primaryColor\":[1025,\"primary-color\"],\"accentColor\":[1025,\"accent-color\"],\"pins\":[32],\"selectedPinId\":[32],\"elementBounds\":[32],\"projectionViewMatrix\":[32]}]]],[\"vertex-scene-tree.cjs\",[[1,\"vertex-scene-tree\",{\"overScanCount\":[2,\"over-scan-count\"],\"viewerSelector\":[1,\"viewer-selector\"],\"viewer\":[1040],\"rowData\":[16],\"config\":[1],\"configEnv\":[1,\"config-env\"],\"controller\":[1040],\"metadataSearchExactMatch\":[1028,\"metadata-search-exact-match\"],\"metadataSearchKeys\":[1040],\"metadataKeys\":[16],\"rows\":[32],\"totalRows\":[32],\"showLoader\":[32],\"showEmptyResults\":[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\"],[0,\"cellLoaded\",\"handleCellLoaded\"]]]]],[\"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-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\"],\"startLineAnchorStyle\":[1025,\"start-line-anchor-style\"],\"endLineAnchorStyle\":[1025,\"end-line-anchor-style\"],\"toSelectMarkupId\":[32],\"pointerDownPosition\":[32],\"addMarkup\":[64],\"removeMarkup\":[64],\"getMarkupElements\":[64],\"getMarkupElement\":[64]},[[0,\"markupEnd\",\"handleMarkupEnd\"],[0,\"interactionEnd\",\"handleMarkupUpdated\"],[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],\"startLineAnchorStyle\":[1025,\"start-line-anchor-style\"],\"endLineAnchorStyle\":[1025,\"end-line-anchor-style\"],\"stateMap\":[32],\"reset\":[64]}]]],[\"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-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-viewer-measurement-precise.cjs\",[[1,\"vertex-viewer-measurement-precise\",{\"measurementModel\":[16],\"measurementOverlays\":[16],\"measurementController\":[1040],\"measurableEntityTypes\":[16],\"viewer\":[16],\"configEnv\":[1,\"config-env\"],\"config\":[1]}]]],[\"vertex-viewer-box-query-tool.cjs\",[[1,\"vertex-viewer-box-query-tool\",{\"viewer\":[16],\"controller\":[1040],\"model\":[1040],\"operationType\":[1,\"operation-type\"],\"mode\":[1],\"details\":[32]}]]],[\"vertex-viewer-walk-mode-tool.cjs\",[[1,\"vertex-viewer-walk-mode-tool\",{\"viewer\":[16],\"controller\":[1040],\"model\":[1040],\"teleportMode\":[1,\"teleport-mode\"],\"enabled\":[4]}]]],[\"vertex-scene-tree-table-cell.cjs\",[[1,\"vertex-scene-tree-table-cell\",{\"node\":[16],\"tree\":[16],\"value\":[1],\"placeholder\":[1],\"hovered\":[1028],\"isScrolling\":[4,\"is-scrolling\"],\"expandToggle\":[4,\"expand-toggle\"],\"visibilityToggle\":[4,\"visibility-toggle\"],\"selectionHandler\":[16],\"visibilityHandler\":[16],\"expansionHandler\":[16],\"hoverController\":[16]}]]],[\"vertex-scene-tree-table-column.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\"],\"phantom\":[16],\"noDefaultLights\":[4,\"no-default-lights\"],\"enableTemporalRefinement\":[4,\"enable-temporal-refinement\"],\"experimentalRenderingOptions\":[1,\"experimental-rendering-options\"],\"featureLines\":[16],\"selectionHighlighting\":[16],\"featureHighlighting\":[16],\"featureMaps\":[1,\"feature-maps\"],\"resizeDebounce\":[2,\"resize-debounce\"],\"frame\":[1040],\"stream\":[1040],\"stencilBuffer\":[1040],\"viewport\":[1040],\"dimensions\":[32],\"hostDimensions\":[32],\"errorMessage\":[32],\"cursor\":[32],\"stateMap\":[32],\"dispatchFrameDrawn\":[64],\"registerInteractionHandler\":[64],\"registerTapKeyInteraction\":[64],\"getInteractionTarget_DEPRECATED\":[64],\"addCursor\":[64],\"getInteractionHandlers\":[64],\"getKeyInteractions\":[64],\"getBaseInteractionHandler\":[64],\"getJwt\":[64],\"load\":[64],\"unload\":[64],\"scene\":[64],\"isSceneReady\":[64]},[[0,\"tap\",\"handleTapEvent\"]]]]],[\"vertex-viewer-hit-result-indicator.cjs\",[[1,\"vertex-viewer-hit-result-indicator\",{\"viewer\":[16],\"position\":[1040],\"normal\":[1040]}]]],[\"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],\"rotation\":[1040],\"controller\":[1040],\"xRotationDisabled\":[1028,\"x-rotation-disabled\"],\"yRotationDisabled\":[1028,\"y-rotation-disabled\"],\"zRotationDisabled\":[1028,\"z-rotation-disabled\"],\"xTranslationDisabled\":[1028,\"x-translation-disabled\"],\"yTranslationDisabled\":[1028,\"y-translation-disabled\"],\"zTranslationDisabled\":[1028,\"z-translation-disabled\"],\"showInputs\":[4,\"show-inputs\"],\"distanceUnit\":[1,\"distance-unit\"],\"angleUnit\":[1,\"angle-unit\"],\"decimalPlaces\":[2,\"decimal-places\"],\"hovered\":[1040],\"inputPosition\":[32],\"inputValue\":[32]}]]],[\"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]}]]],[\"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-teleport-tool.cjs\",[[1,\"vertex-viewer-teleport-tool\",{\"viewer\":[16],\"mode\":[1025],\"animationsDisabled\":[4,\"animations-disabled\"],\"animationMs\":[2,\"animation-ms\"],\"controller\":[1040],\"model\":[1040]}]]],[\"vertex-viewer-spinner.cjs\",[[1,\"vertex-viewer-spinner\",{\"size\":[1]}]]],[\"vertex-scene-tree-search_3.cjs\",[[1,\"vertex-scene-tree-search\",{\"debounce\":[2],\"disabled\":[4],\"placeholder\":[1],\"controller\":[16],\"value\":[1025],\"focused\":[32],\"isSearching\":[32],\"setFocus\":[64],\"clear\":[64]}],[1,\"vertex-scene-tree-table-layout\",{\"tree\":[16],\"controller\":[16],\"rows\":[16],\"totalRows\":[2,\"total-rows\"],\"rowHeight\":[1026,\"row-height\"],\"overScanCount\":[2,\"over-scan-count\"],\"rowData\":[16],\"layoutOffset\":[1026,\"layout-offset\"],\"scrollOffset\":[1026,\"scroll-offset\"],\"layoutHeight\":[1026,\"layout-height\"],\"layoutWidth\":[1026,\"layout-width\"],\"viewportStartIndex\":[1026,\"viewport-start-index\"],\"viewportEndIndex\":[1026,\"viewport-end-index\"],\"columnGridLayout\":[32],\"columnGridFixedLayout\":[32],\"isComputingCellHeight\":[32],\"lastDividerPointerPosition\":[32],\"resizingColumnIndex\":[32],\"isScrolling\":[32],\"scrollTimer\":[32],\"stateMap\":[32],\"scrollToPosition\":[64]}],[1,\"vertex-scene-tree-toolbar\"]]],[\"vertex-viewer-layer.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],\"pin\":[16]}]]],[\"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\"]}]]],[\"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\"],\"startLineAnchorStyle\":[1025,\"start-line-anchor-style\"],\"endLineAnchorStyle\":[1025,\"end-line-anchor-style\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-circle\",{\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-freeform\",{\"points\":[1040],\"pointsJson\":[1,\"points\"],\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"screenPoints\":[32],\"dispose\":[64]}]]]]"), options);
|
|
78
78
|
});
|
|
79
79
|
|
|
80
80
|
//# sourceMappingURL=viewer.cjs.js.map
|
|
@@ -130,13 +130,13 @@ export function computeInputPosition(viewport, bounds, shapePoints) {
|
|
|
130
130
|
: closest, topLeft);
|
|
131
131
|
switch (closestPoint) {
|
|
132
132
|
case topLeft:
|
|
133
|
-
return { point: closestPoint,
|
|
133
|
+
return { point: closestPoint, placement: 'top-left' };
|
|
134
134
|
case topRight:
|
|
135
|
-
return { point: closestPoint,
|
|
135
|
+
return { point: closestPoint, placement: 'top-right' };
|
|
136
136
|
case bottomLeft:
|
|
137
|
-
return { point: closestPoint,
|
|
137
|
+
return { point: closestPoint, placement: 'bottom-left' };
|
|
138
138
|
default:
|
|
139
|
-
return { point: closestPoint,
|
|
139
|
+
return { point: closestPoint, placement: 'bottom-right' };
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
142
|
//# sourceMappingURL=util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../../src/components/viewer-transform-widget/util.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Euler,\n Matrix4,\n Plane,\n Point,\n Quaternion,\n Ray,\n Rectangle,\n Vector3,\n} from '@vertexvis/geometry';\n\nimport {\n AngleUnits,\n AngleUnitType,\n DistanceUnits,\n DistanceUnitType,\n Frame,\n Viewport,\n} from '../../lib/types';\n\nexport interface PointAndPosition {\n point: Point.Point;\n position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';\n}\n\nexport function convertPointToCanvas(\n point: Point.Point,\n bounds?: DOMRect\n): Point.Point | undefined {\n return bounds != null\n ? Point.create(point.x - bounds.left, point.y - bounds.top)\n : undefined;\n}\n\nexport function convertCanvasPointToWorld(\n point?: Point.Point,\n frame?: Frame,\n viewport?: Viewport,\n transform?: Matrix4.Matrix4\n): Vector3.Vector3 | undefined {\n const position =\n transform != null ? Vector3.fromMatrixPosition(transform) : undefined;\n\n if (point != null && frame != null && viewport != null && position != null) {\n if (frame.scene.camera.isOrthographic()) {\n const ray = viewport.transformPointToOrthographicRay(\n point,\n frame.image,\n frame.scene.camera\n );\n // Offset the point to past the bounding sphere of the model to\n // adjust the position plane location.\n const offsetPoint = Ray.at(\n Ray.create({\n origin: position,\n direction: frame.scene.camera.direction,\n }),\n Vector3.magnitude(frame.scene.camera.viewVector) * 2\n );\n\n return Ray.intersectPlane(\n ray,\n Plane.fromNormalAndCoplanarPoint(\n frame.scene.camera.direction,\n offsetPoint\n )\n );\n } else {\n const ray = viewport.transformPointToRay(\n point,\n frame.image,\n frame.scene.camera\n );\n\n return Ray.intersectPlane(\n ray,\n Plane.fromNormalAndCoplanarPoint(frame.scene.camera.direction, position)\n );\n }\n }\n return undefined;\n}\n\nexport function computeInputTransform(\n identifier: string,\n value: number,\n lastValue: number,\n distanceUnit: DistanceUnitType = 'millimeters',\n angleUnit: AngleUnitType = 'degrees'\n): Matrix4.Matrix4 {\n const units = new DistanceUnits(distanceUnit);\n const angles = new AngleUnits(angleUnit);\n\n const rotation = (): number => angles.convertFrom(value - lastValue);\n const position = (): number =>\n units.convertRealValueToWorld(value - lastValue);\n\n switch (identifier) {\n case 'x-translate':\n return Matrix4.makeTranslation(Vector3.create(position(), 0, 0));\n case 'y-translate':\n return Matrix4.makeTranslation(Vector3.create(0, position(), 0));\n case 'z-translate':\n return Matrix4.makeTranslation(Vector3.create(0, 0, position()));\n case 'x-rotate':\n return Matrix4.makeRotation(\n Quaternion.fromAxisAngle(Vector3.left(), rotation())\n );\n case 'y-rotate':\n return Matrix4.makeRotation(\n Quaternion.fromAxisAngle(Vector3.down(), rotation())\n );\n case 'z-rotate':\n return Matrix4.makeRotation(\n Quaternion.fromAxisAngle(Vector3.forward(), rotation())\n );\n }\n return Matrix4.makeIdentity();\n}\n\nexport function computeInputDisplayValue(\n identifier: string,\n current: Matrix4.Matrix4,\n start: Matrix4.Matrix4,\n distanceUnit: DistanceUnitType = 'millimeters',\n angleUnit: AngleUnitType = 'degrees'\n): number {\n const units = new DistanceUnits(distanceUnit);\n const angles = new AngleUnits(angleUnit);\n\n const rotation = (): Matrix4.Matrix4 =>\n Matrix4.makeRotation(Quaternion.fromMatrixRotation(current));\n const transformDiff = (): Matrix4.Matrix4 =>\n Matrix4.multiply(current, Matrix4.invert(start));\n const relativeTranslationDiff = (): Vector3.Vector3 =>\n Vector3.transformMatrix(\n Vector3.fromMatrixPosition(transformDiff()),\n Matrix4.invert(rotation())\n );\n const relativeRotationDiff = (): Euler.Euler =>\n Euler.create(\n Vector3.transformMatrix(\n Euler.fromRotationMatrix(Matrix4.invert(transformDiff())),\n Matrix4.invert(rotation())\n )\n );\n\n switch (identifier) {\n case 'x-translate':\n return units.convertWorldValueToReal(relativeTranslationDiff().x);\n case 'y-translate':\n return units.convertWorldValueToReal(relativeTranslationDiff().y);\n case 'z-translate':\n return units.convertWorldValueToReal(relativeTranslationDiff().z);\n case 'x-rotate':\n return angles.convertTo(relativeRotationDiff().x);\n case 'y-rotate':\n return angles.convertTo(relativeRotationDiff().y);\n case 'z-rotate':\n return angles.convertTo(relativeRotationDiff().z);\n }\n return 0;\n}\n\nexport function computeUpdatedTransform(\n current: Matrix4.Matrix4,\n previous: Vector3.Vector3,\n next: Vector3.Vector3,\n viewVector: Vector3.Vector3,\n angle: number,\n identifier: string\n): Matrix4.Matrix4 {\n const delta = Vector3.subtract(next, previous);\n\n switch (identifier) {\n case 'x-translate': {\n return Matrix4.multiply(\n current,\n computeTranslation(current, Vector3.right(), delta)\n );\n }\n case 'y-translate':\n return Matrix4.multiply(\n current,\n computeTranslation(current, Vector3.up(), delta)\n );\n case 'z-translate':\n return Matrix4.multiply(\n current,\n computeTranslation(current, Vector3.back(), delta)\n );\n case 'x-rotate':\n return Matrix4.multiply(\n computeRotation(\n current,\n Matrix4.makeRotation(\n Quaternion.fromAxisAngle(\n computeRotationAxis(current, viewVector, Vector3.right()),\n angle\n )\n )\n ),\n current\n );\n case 'y-rotate':\n return Matrix4.multiply(\n computeRotation(\n current,\n Matrix4.makeRotation(\n Quaternion.fromAxisAngle(\n computeRotationAxis(current, viewVector, Vector3.up()),\n angle\n )\n )\n ),\n current\n );\n case 'z-rotate':\n return Matrix4.multiply(\n computeRotation(\n current,\n Matrix4.makeRotation(\n Quaternion.fromAxisAngle(\n computeRotationAxis(current, viewVector, Vector3.forward()),\n angle\n )\n )\n ),\n current\n );\n default:\n return current;\n }\n}\n\nexport function computeRotationAxis(\n current: Matrix4.Matrix4,\n viewVector: Vector3.Vector3,\n axis: Vector3.Vector3\n): Vector3.Vector3 {\n const rotation = Matrix4.makeRotation(Quaternion.fromMatrixRotation(current));\n const rotatedAxis = Vector3.transformMatrix(axis, rotation);\n const rotatedNegatedAxis = Vector3.transformMatrix(\n Vector3.negate(axis),\n rotation\n );\n\n return Vector3.dot(viewVector, rotatedAxis) >\n Vector3.dot(viewVector, rotatedNegatedAxis)\n ? rotatedAxis\n : rotatedNegatedAxis;\n}\n\nexport function computeTranslation(\n current: Matrix4.Matrix4,\n axis: Vector3.Vector3,\n delta: Vector3.Vector3\n): Matrix4.Matrix4 {\n const rotation = Matrix4.makeRotation(Quaternion.fromMatrixRotation(current));\n const rotatedAxis = Vector3.transformMatrix(axis, rotation);\n const rotatedDelta = Vector3.multiply(rotatedAxis, delta);\n\n return Matrix4.makeTranslation(\n Vector3.scale(rotatedDelta.x + rotatedDelta.y + rotatedDelta.z, axis)\n );\n}\n\n/**\n * Computes a rotation Matrix4 by applying the rotation at the given position,\n * then translating it back to convert it to a world delta.\n * @param rotation\n * @param current\n * @returns\n */\nexport function computeRotation(\n current: Matrix4.Matrix4,\n delta: Matrix4.Matrix4\n): Matrix4.Matrix4 {\n return Matrix4.multiply(\n Matrix4.multiply(\n Matrix4.makeTranslation(Vector3.fromMatrixPosition(current)),\n delta\n ),\n Matrix4.makeTranslation(Vector3.negate(Vector3.fromMatrixPosition(current)))\n );\n}\n\nexport function computeInputPosition(\n viewport: Viewport,\n bounds: Rectangle.Rectangle,\n shapePoints: Point.Point[]\n): PointAndPosition {\n const paddedBounds = Rectangle.pad(bounds, 5);\n const canvasPoints = shapePoints.map((sp) =>\n viewport.transformNdcPointToViewport(sp)\n );\n\n const topLeft = Rectangle.topLeft(paddedBounds);\n const topRight = Point.add(topLeft, Point.create(paddedBounds.width, 0));\n const bottomRight = Rectangle.bottomRight(paddedBounds);\n const bottomLeft = Point.subtract(\n bottomRight,\n Point.create(paddedBounds.width, 0)\n );\n\n const center = Point.scale(\n canvasPoints.reduce((sum, pt) => Point.add(sum, pt), Point.create()),\n 1 / canvasPoints.length,\n 1 / canvasPoints.length\n );\n\n const closestPoint = [topRight, bottomLeft, bottomRight].reduce(\n (closest, pt) =>\n Point.distance(center, pt) < Point.distance(center, closest)\n ? pt\n : closest,\n topLeft\n );\n\n switch (closestPoint) {\n case topLeft:\n return { point: closestPoint, position: 'top-left' };\n case topRight:\n return { point: closestPoint, position: 'top-right' };\n case bottomLeft:\n return { point: closestPoint, position: 'bottom-left' };\n default:\n return { point: closestPoint, position: 'bottom-right' };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../../src/components/viewer-transform-widget/util.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,OAAO,EACP,KAAK,EACL,KAAK,EACL,UAAU,EACV,GAAG,EACH,SAAS,EACT,OAAO,GACR,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,UAAU,EAEV,aAAa,GAId,MAAM,iBAAiB,CAAC;AAQzB,MAAM,UAAU,oBAAoB,CAClC,KAAkB,EAClB,MAAgB;EAEhB,OAAO,MAAM,IAAI,IAAI;IACnB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;IAC3D,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAAmB,EACnB,KAAa,EACb,QAAmB,EACnB,SAA2B;EAE3B,MAAM,QAAQ,GACZ,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;EAExE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;IAC1E,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE;MACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,+BAA+B,CAClD,KAAK,EACL,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,KAAK,CAAC,MAAM,CACnB,CAAC;MACF,+DAA+D;MAC/D,sCAAsC;MACtC,MAAM,WAAW,GAAG,GAAG,CAAC,EAAE,CACxB,GAAG,CAAC,MAAM,CAAC;QACT,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS;OACxC,CAAC,EACF,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CACrD,CAAC;MAEF,OAAO,GAAG,CAAC,cAAc,CACvB,GAAG,EACH,KAAK,CAAC,0BAA0B,CAC9B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAC5B,WAAW,CACZ,CACF,CAAC;KACH;SAAM;MACL,MAAM,GAAG,GAAG,QAAQ,CAAC,mBAAmB,CACtC,KAAK,EACL,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,KAAK,CAAC,MAAM,CACnB,CAAC;MAEF,OAAO,GAAG,CAAC,cAAc,CACvB,GAAG,EACH,KAAK,CAAC,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CACzE,CAAC;KACH;GACF;EACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,UAAkB,EAClB,KAAa,EACb,SAAiB,EACjB,eAAiC,aAAa,EAC9C,YAA2B,SAAS;EAEpC,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;EAC9C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;EAEzC,MAAM,QAAQ,GAAG,GAAW,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;EACrE,MAAM,QAAQ,GAAG,GAAW,EAAE,CAC5B,KAAK,CAAC,uBAAuB,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;EAEnD,QAAQ,UAAU,EAAE;IAClB,KAAK,aAAa;MAChB,OAAO,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,KAAK,aAAa;MAChB,OAAO,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,KAAK,aAAa;MAChB,OAAO,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACnE,KAAK,UAAU;MACb,OAAO,OAAO,CAAC,YAAY,CACzB,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CACrD,CAAC;IACJ,KAAK,UAAU;MACb,OAAO,OAAO,CAAC,YAAY,CACzB,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CACrD,CAAC;IACJ,KAAK,UAAU;MACb,OAAO,OAAO,CAAC,YAAY,CACzB,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,CACxD,CAAC;GACL;EACD,OAAO,OAAO,CAAC,YAAY,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,UAAkB,EAClB,OAAwB,EACxB,KAAsB,EACtB,eAAiC,aAAa,EAC9C,YAA2B,SAAS;EAEpC,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;EAC9C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;EAEzC,MAAM,QAAQ,GAAG,GAAoB,EAAE,CACrC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;EAC/D,MAAM,aAAa,GAAG,GAAoB,EAAE,CAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;EACnD,MAAM,uBAAuB,GAAG,GAAoB,EAAE,CACpD,OAAO,CAAC,eAAe,CACrB,OAAO,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,EAC3C,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAC3B,CAAC;EACJ,MAAM,oBAAoB,GAAG,GAAgB,EAAE,CAC7C,KAAK,CAAC,MAAM,CACV,OAAO,CAAC,eAAe,CACrB,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,EACzD,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAC3B,CACF,CAAC;EAEJ,QAAQ,UAAU,EAAE;IAClB,KAAK,aAAa;MAChB,OAAO,KAAK,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,KAAK,aAAa;MAChB,OAAO,KAAK,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,KAAK,aAAa;MAChB,OAAO,KAAK,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,KAAK,UAAU;MACb,OAAO,MAAM,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC;IACpD,KAAK,UAAU;MACb,OAAO,MAAM,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC;IACpD,KAAK,UAAU;MACb,OAAO,MAAM,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC;GACrD;EACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,OAAwB,EACxB,QAAyB,EACzB,IAAqB,EACrB,UAA2B,EAC3B,KAAa,EACb,UAAkB;EAElB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;EAE/C,QAAQ,UAAU,EAAE;IAClB,KAAK,aAAa,CAAC,CAAC;MAClB,OAAO,OAAO,CAAC,QAAQ,CACrB,OAAO,EACP,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CACpD,CAAC;KACH;IACD,KAAK,aAAa;MAChB,OAAO,OAAO,CAAC,QAAQ,CACrB,OAAO,EACP,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CACjD,CAAC;IACJ,KAAK,aAAa;MAChB,OAAO,OAAO,CAAC,QAAQ,CACrB,OAAO,EACP,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CACnD,CAAC;IACJ,KAAK,UAAU;MACb,OAAO,OAAO,CAAC,QAAQ,CACrB,eAAe,CACb,OAAO,EACP,OAAO,CAAC,YAAY,CAClB,UAAU,CAAC,aAAa,CACtB,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,EACzD,KAAK,CACN,CACF,CACF,EACD,OAAO,CACR,CAAC;IACJ,KAAK,UAAU;MACb,OAAO,OAAO,CAAC,QAAQ,CACrB,eAAe,CACb,OAAO,EACP,OAAO,CAAC,YAAY,CAClB,UAAU,CAAC,aAAa,CACtB,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EACtD,KAAK,CACN,CACF,CACF,EACD,OAAO,CACR,CAAC;IACJ,KAAK,UAAU;MACb,OAAO,OAAO,CAAC,QAAQ,CACrB,eAAe,CACb,OAAO,EACP,OAAO,CAAC,YAAY,CAClB,UAAU,CAAC,aAAa,CACtB,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,EAC3D,KAAK,CACN,CACF,CACF,EACD,OAAO,CACR,CAAC;IACJ;MACE,OAAO,OAAO,CAAC;GAClB;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAwB,EACxB,UAA2B,EAC3B,IAAqB;EAErB,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;EAC9E,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;EAC5D,MAAM,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAChD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EACpB,QAAQ,CACT,CAAC;EAEF,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC;IAC3C,CAAC,CAAC,WAAW;IACb,CAAC,CAAC,kBAAkB,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAwB,EACxB,IAAqB,EACrB,KAAsB;EAEtB,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;EAC9E,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;EAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;EAE1D,OAAO,OAAO,CAAC,eAAe,CAC5B,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CACtE,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAwB,EACxB,KAAsB;EAEtB,OAAO,OAAO,CAAC,QAAQ,CACrB,OAAO,CAAC,QAAQ,CACd,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAC5D,KAAK,CACN,EACD,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAC7E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,QAAkB,EAClB,MAA2B,EAC3B,WAA0B;EAE1B,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;EAC9C,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAC1C,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC,CACzC,CAAC;EAEF,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;EAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;EACzE,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;EACxD,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAC/B,WAAW,EACX,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CACpC,CAAC;EAEF,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CACxB,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EACpE,CAAC,GAAG,YAAY,CAAC,MAAM,EACvB,CAAC,GAAG,YAAY,CAAC,MAAM,CACxB,CAAC;EAEF,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,MAAM,CAC7D,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CACd,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D,CAAC,CAAC,EAAE;IACJ,CAAC,CAAC,OAAO,EACb,OAAO,CACR,CAAC;EAEF,QAAQ,YAAY,EAAE;IACpB,KAAK,OAAO;MACV,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IACxD,KAAK,QAAQ;MACX,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;IACzD,KAAK,UAAU;MACb,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3D;MACE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;GAC7D;AACH,CAAC","sourcesContent":["import {\n Euler,\n Matrix4,\n Plane,\n Point,\n Quaternion,\n Ray,\n Rectangle,\n Vector3,\n} from '@vertexvis/geometry';\n\nimport {\n AngleUnits,\n AngleUnitType,\n DistanceUnits,\n DistanceUnitType,\n Frame,\n Viewport,\n} from '../../lib/types';\nimport { TransformWidgetInputPlacement } from './viewer-transform-widget-components';\n\nexport interface PointAndPlacement {\n point: Point.Point;\n placement: TransformWidgetInputPlacement;\n}\n\nexport function convertPointToCanvas(\n point: Point.Point,\n bounds?: DOMRect\n): Point.Point | undefined {\n return bounds != null\n ? Point.create(point.x - bounds.left, point.y - bounds.top)\n : undefined;\n}\n\nexport function convertCanvasPointToWorld(\n point?: Point.Point,\n frame?: Frame,\n viewport?: Viewport,\n transform?: Matrix4.Matrix4\n): Vector3.Vector3 | undefined {\n const position =\n transform != null ? Vector3.fromMatrixPosition(transform) : undefined;\n\n if (point != null && frame != null && viewport != null && position != null) {\n if (frame.scene.camera.isOrthographic()) {\n const ray = viewport.transformPointToOrthographicRay(\n point,\n frame.image,\n frame.scene.camera\n );\n // Offset the point to past the bounding sphere of the model to\n // adjust the position plane location.\n const offsetPoint = Ray.at(\n Ray.create({\n origin: position,\n direction: frame.scene.camera.direction,\n }),\n Vector3.magnitude(frame.scene.camera.viewVector) * 2\n );\n\n return Ray.intersectPlane(\n ray,\n Plane.fromNormalAndCoplanarPoint(\n frame.scene.camera.direction,\n offsetPoint\n )\n );\n } else {\n const ray = viewport.transformPointToRay(\n point,\n frame.image,\n frame.scene.camera\n );\n\n return Ray.intersectPlane(\n ray,\n Plane.fromNormalAndCoplanarPoint(frame.scene.camera.direction, position)\n );\n }\n }\n return undefined;\n}\n\nexport function computeInputTransform(\n identifier: string,\n value: number,\n lastValue: number,\n distanceUnit: DistanceUnitType = 'millimeters',\n angleUnit: AngleUnitType = 'degrees'\n): Matrix4.Matrix4 {\n const units = new DistanceUnits(distanceUnit);\n const angles = new AngleUnits(angleUnit);\n\n const rotation = (): number => angles.convertFrom(value - lastValue);\n const position = (): number =>\n units.convertRealValueToWorld(value - lastValue);\n\n switch (identifier) {\n case 'x-translate':\n return Matrix4.makeTranslation(Vector3.create(position(), 0, 0));\n case 'y-translate':\n return Matrix4.makeTranslation(Vector3.create(0, position(), 0));\n case 'z-translate':\n return Matrix4.makeTranslation(Vector3.create(0, 0, position()));\n case 'x-rotate':\n return Matrix4.makeRotation(\n Quaternion.fromAxisAngle(Vector3.left(), rotation())\n );\n case 'y-rotate':\n return Matrix4.makeRotation(\n Quaternion.fromAxisAngle(Vector3.down(), rotation())\n );\n case 'z-rotate':\n return Matrix4.makeRotation(\n Quaternion.fromAxisAngle(Vector3.forward(), rotation())\n );\n }\n return Matrix4.makeIdentity();\n}\n\nexport function computeInputDisplayValue(\n identifier: string,\n current: Matrix4.Matrix4,\n start: Matrix4.Matrix4,\n distanceUnit: DistanceUnitType = 'millimeters',\n angleUnit: AngleUnitType = 'degrees'\n): number {\n const units = new DistanceUnits(distanceUnit);\n const angles = new AngleUnits(angleUnit);\n\n const rotation = (): Matrix4.Matrix4 =>\n Matrix4.makeRotation(Quaternion.fromMatrixRotation(current));\n const transformDiff = (): Matrix4.Matrix4 =>\n Matrix4.multiply(current, Matrix4.invert(start));\n const relativeTranslationDiff = (): Vector3.Vector3 =>\n Vector3.transformMatrix(\n Vector3.fromMatrixPosition(transformDiff()),\n Matrix4.invert(rotation())\n );\n const relativeRotationDiff = (): Euler.Euler =>\n Euler.create(\n Vector3.transformMatrix(\n Euler.fromRotationMatrix(Matrix4.invert(transformDiff())),\n Matrix4.invert(rotation())\n )\n );\n\n switch (identifier) {\n case 'x-translate':\n return units.convertWorldValueToReal(relativeTranslationDiff().x);\n case 'y-translate':\n return units.convertWorldValueToReal(relativeTranslationDiff().y);\n case 'z-translate':\n return units.convertWorldValueToReal(relativeTranslationDiff().z);\n case 'x-rotate':\n return angles.convertTo(relativeRotationDiff().x);\n case 'y-rotate':\n return angles.convertTo(relativeRotationDiff().y);\n case 'z-rotate':\n return angles.convertTo(relativeRotationDiff().z);\n }\n return 0;\n}\n\nexport function computeUpdatedTransform(\n current: Matrix4.Matrix4,\n previous: Vector3.Vector3,\n next: Vector3.Vector3,\n viewVector: Vector3.Vector3,\n angle: number,\n identifier: string\n): Matrix4.Matrix4 {\n const delta = Vector3.subtract(next, previous);\n\n switch (identifier) {\n case 'x-translate': {\n return Matrix4.multiply(\n current,\n computeTranslation(current, Vector3.right(), delta)\n );\n }\n case 'y-translate':\n return Matrix4.multiply(\n current,\n computeTranslation(current, Vector3.up(), delta)\n );\n case 'z-translate':\n return Matrix4.multiply(\n current,\n computeTranslation(current, Vector3.back(), delta)\n );\n case 'x-rotate':\n return Matrix4.multiply(\n computeRotation(\n current,\n Matrix4.makeRotation(\n Quaternion.fromAxisAngle(\n computeRotationAxis(current, viewVector, Vector3.right()),\n angle\n )\n )\n ),\n current\n );\n case 'y-rotate':\n return Matrix4.multiply(\n computeRotation(\n current,\n Matrix4.makeRotation(\n Quaternion.fromAxisAngle(\n computeRotationAxis(current, viewVector, Vector3.up()),\n angle\n )\n )\n ),\n current\n );\n case 'z-rotate':\n return Matrix4.multiply(\n computeRotation(\n current,\n Matrix4.makeRotation(\n Quaternion.fromAxisAngle(\n computeRotationAxis(current, viewVector, Vector3.forward()),\n angle\n )\n )\n ),\n current\n );\n default:\n return current;\n }\n}\n\nexport function computeRotationAxis(\n current: Matrix4.Matrix4,\n viewVector: Vector3.Vector3,\n axis: Vector3.Vector3\n): Vector3.Vector3 {\n const rotation = Matrix4.makeRotation(Quaternion.fromMatrixRotation(current));\n const rotatedAxis = Vector3.transformMatrix(axis, rotation);\n const rotatedNegatedAxis = Vector3.transformMatrix(\n Vector3.negate(axis),\n rotation\n );\n\n return Vector3.dot(viewVector, rotatedAxis) >\n Vector3.dot(viewVector, rotatedNegatedAxis)\n ? rotatedAxis\n : rotatedNegatedAxis;\n}\n\nexport function computeTranslation(\n current: Matrix4.Matrix4,\n axis: Vector3.Vector3,\n delta: Vector3.Vector3\n): Matrix4.Matrix4 {\n const rotation = Matrix4.makeRotation(Quaternion.fromMatrixRotation(current));\n const rotatedAxis = Vector3.transformMatrix(axis, rotation);\n const rotatedDelta = Vector3.multiply(rotatedAxis, delta);\n\n return Matrix4.makeTranslation(\n Vector3.scale(rotatedDelta.x + rotatedDelta.y + rotatedDelta.z, axis)\n );\n}\n\n/**\n * Computes a rotation Matrix4 by applying the rotation at the given position,\n * then translating it back to convert it to a world delta.\n * @param rotation\n * @param current\n * @returns\n */\nexport function computeRotation(\n current: Matrix4.Matrix4,\n delta: Matrix4.Matrix4\n): Matrix4.Matrix4 {\n return Matrix4.multiply(\n Matrix4.multiply(\n Matrix4.makeTranslation(Vector3.fromMatrixPosition(current)),\n delta\n ),\n Matrix4.makeTranslation(Vector3.negate(Vector3.fromMatrixPosition(current)))\n );\n}\n\nexport function computeInputPosition(\n viewport: Viewport,\n bounds: Rectangle.Rectangle,\n shapePoints: Point.Point[]\n): PointAndPlacement {\n const paddedBounds = Rectangle.pad(bounds, 5);\n const canvasPoints = shapePoints.map((sp) =>\n viewport.transformNdcPointToViewport(sp)\n );\n\n const topLeft = Rectangle.topLeft(paddedBounds);\n const topRight = Point.add(topLeft, Point.create(paddedBounds.width, 0));\n const bottomRight = Rectangle.bottomRight(paddedBounds);\n const bottomLeft = Point.subtract(\n bottomRight,\n Point.create(paddedBounds.width, 0)\n );\n\n const center = Point.scale(\n canvasPoints.reduce((sum, pt) => Point.add(sum, pt), Point.create()),\n 1 / canvasPoints.length,\n 1 / canvasPoints.length\n );\n\n const closestPoint = [topRight, bottomLeft, bottomRight].reduce(\n (closest, pt) =>\n Point.distance(center, pt) < Point.distance(center, closest)\n ? pt\n : closest,\n topLeft\n );\n\n switch (closestPoint) {\n case topLeft:\n return { point: closestPoint, placement: 'top-left' };\n case topRight:\n return { point: closestPoint, placement: 'top-right' };\n case bottomLeft:\n return { point: closestPoint, placement: 'bottom-left' };\n default:\n return { point: closestPoint, placement: 'bottom-right' };\n }\n}\n"]}
|
package/dist/collection/components/viewer-transform-widget/viewer-transform-widget-components.js
CHANGED
|
@@ -6,12 +6,12 @@ import { h } from '@stencil/core';
|
|
|
6
6
|
import { Dimensions } from '@vertexvis/geometry';
|
|
7
7
|
import { AngleUnits, DistanceUnits, } from '../../lib/types';
|
|
8
8
|
export const TransformWidgetInput = ({ ref, bounds, viewport, point, placement, distance, angle, decimalPlaces, distanceUnit, angleUnit, onChange, onIncrement, onDecrement, }) => {
|
|
9
|
+
var _a;
|
|
9
10
|
const angles = new AngleUnits(angleUnit);
|
|
10
11
|
const units = new DistanceUnits(distanceUnit);
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const inputPlacement = computeInputPlacement(viewport, bounds !== null && bounds !== void 0 ? bounds : Dimensions.create(100, 30), point, placement);
|
|
12
|
+
const definedValue = (_a = distance !== null && distance !== void 0 ? distance : angle) !== null && _a !== void 0 ? _a : 0;
|
|
13
|
+
const displayValue = `${parseFloat(definedValue.toFixed(decimalPlaces))} ${distance != null ? units.unit.abbreviatedName : angles.unit.abbreviatedName}`;
|
|
14
|
+
const inputPlacement = constrainInputToViewport(viewport, bounds !== null && bounds !== void 0 ? bounds : Dimensions.create(0, 0), point, placement);
|
|
15
15
|
const handleChange = (event) => {
|
|
16
16
|
if (event.target != null) {
|
|
17
17
|
const parsed = parseFloat(event.target.value);
|
|
@@ -34,32 +34,34 @@ export const TransformWidgetInput = ({ ref, bounds, viewport, point, placement,
|
|
|
34
34
|
function constrainTo(dimension, length) {
|
|
35
35
|
return Math.min(dimension, Math.max(0, length));
|
|
36
36
|
}
|
|
37
|
-
function
|
|
37
|
+
function constrainInputToViewport(viewport, inputDimensions, point, placement, padding = 5) {
|
|
38
38
|
const { width, height } = viewport.dimensions;
|
|
39
|
+
const paddedWidth = inputDimensions.width + padding;
|
|
40
|
+
const paddedHeight = inputDimensions.height + padding;
|
|
39
41
|
function toCssLength(length) {
|
|
40
42
|
return `${length}px`;
|
|
41
43
|
}
|
|
42
44
|
switch (placement) {
|
|
43
45
|
case 'top-left':
|
|
44
46
|
return {
|
|
45
|
-
right: toCssLength(constrainTo(width -
|
|
46
|
-
bottom: toCssLength(constrainTo(height -
|
|
47
|
+
right: toCssLength(constrainTo(width - paddedWidth, width - point.x)),
|
|
48
|
+
bottom: toCssLength(constrainTo(height - paddedHeight, height - point.y)),
|
|
47
49
|
};
|
|
48
50
|
case 'top-right':
|
|
49
51
|
return {
|
|
50
|
-
left: toCssLength(constrainTo(width -
|
|
51
|
-
bottom: toCssLength(constrainTo(height -
|
|
52
|
+
left: toCssLength(constrainTo(width - paddedWidth, point.x)),
|
|
53
|
+
bottom: toCssLength(constrainTo(height - paddedHeight, height - point.y)),
|
|
52
54
|
};
|
|
53
55
|
case 'bottom-left':
|
|
54
56
|
return {
|
|
55
|
-
right: toCssLength(constrainTo(width -
|
|
56
|
-
top: toCssLength(constrainTo(height -
|
|
57
|
+
right: toCssLength(constrainTo(width - paddedWidth, width - point.x)),
|
|
58
|
+
top: toCssLength(constrainTo(height - paddedHeight, point.y)),
|
|
57
59
|
};
|
|
58
60
|
case 'bottom-right':
|
|
59
61
|
default:
|
|
60
62
|
return {
|
|
61
|
-
left: toCssLength(constrainTo(width -
|
|
62
|
-
top: toCssLength(constrainTo(height -
|
|
63
|
+
left: toCssLength(constrainTo(width - paddedWidth, point.x)),
|
|
64
|
+
top: toCssLength(constrainTo(height - paddedHeight, point.y)),
|
|
63
65
|
};
|
|
64
66
|
}
|
|
65
67
|
}
|
package/dist/collection/components/viewer-transform-widget/viewer-transform-widget-components.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewer-transform-widget-components.js","sourceRoot":"","sources":["../../../../../src/components/viewer-transform-widget/viewer-transform-widget-components.tsx"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,EAAuB,CAAC,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,UAAU,EAAS,MAAM,qBAAqB,CAAC;AAExD,OAAO,EACL,UAAU,EAEV,aAAa,GAGd,MAAM,iBAAiB,CAAC;AA2BzB,MAAM,CAAC,MAAM,oBAAoB,GAE7B,CAAC,EACH,GAAG,EACH,MAAM,EACN,QAAQ,EACR,KAAK,EACL,SAAS,EACT,QAAQ,EACR,KAAK,EACL,aAAa,EACb,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,WAAW,EACX,WAAW,GACZ,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"viewer-transform-widget-components.js","sourceRoot":"","sources":["../../../../../src/components/viewer-transform-widget/viewer-transform-widget-components.tsx"],"names":[],"mappings":"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","sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { FunctionalComponent, h } from '@stencil/core';\nimport { Dimensions, Point } from '@vertexvis/geometry';\n\nimport {\n AngleUnits,\n AngleUnitType,\n DistanceUnits,\n DistanceUnitType,\n Viewport,\n} from '../../lib/types';\n\nexport type TransformWidgetInputPlacement =\n | 'top-left'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-right';\n\nexport interface TransformWidgetInputProps {\n ref: (el?: HTMLInputElement) => void;\n bounds?: DOMRect;\n\n viewport: Viewport;\n point: Point.Point;\n placement: TransformWidgetInputPlacement;\n\n distance?: number;\n angle?: number;\n decimalPlaces: number;\n distanceUnit: DistanceUnitType;\n angleUnit: AngleUnitType;\n\n onChange?: (value: number) => void | Promise<void>;\n onIncrement?: VoidFunction;\n onDecrement?: VoidFunction;\n}\n\nexport const TransformWidgetInput: FunctionalComponent<\n TransformWidgetInputProps\n> = ({\n ref,\n bounds,\n viewport,\n point,\n placement,\n distance,\n angle,\n decimalPlaces,\n distanceUnit,\n angleUnit,\n onChange,\n onIncrement,\n onDecrement,\n}) => {\n const angles = new AngleUnits(angleUnit);\n const units = new DistanceUnits(distanceUnit);\n const definedValue = distance ?? angle ?? 0;\n const displayValue = `${parseFloat(definedValue.toFixed(decimalPlaces))} ${\n distance != null ? units.unit.abbreviatedName : angles.unit.abbreviatedName\n }`;\n const inputPlacement = constrainInputToViewport(\n viewport,\n bounds ?? Dimensions.create(0, 0),\n point,\n placement\n );\n\n const handleChange = (event: Event): void => {\n if (event.target != null) {\n const parsed = parseFloat((event.target as HTMLInputElement).value);\n\n if (!isNaN(parsed)) {\n onChange?.(parseFloat((event.target as HTMLInputElement).value));\n }\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent): void => {\n if (event.key === 'ArrowUp') {\n onIncrement?.();\n } else if (event.key === 'ArrowDown') {\n onDecrement?.();\n }\n };\n\n return (\n <div\n class=\"widget-input wrapper\"\n style={{ ...inputPlacement }}\n onKeyDown={handleKeyDown}\n >\n <input\n ref={ref}\n class=\"widget-input\"\n type=\"text\"\n value={displayValue}\n onChange={handleChange}\n ></input>\n </div>\n );\n};\n\nfunction constrainTo(dimension: number, length: number): number {\n return Math.min(dimension, Math.max(0, length));\n}\n\ninterface InputPlacement {\n left?: string;\n right?: string;\n top?: string;\n bottom?: string;\n}\n\nfunction constrainInputToViewport(\n viewport: Viewport,\n inputDimensions: Dimensions.Dimensions,\n point: Point.Point,\n placement: TransformWidgetInputPlacement,\n padding = 5\n): InputPlacement {\n const { width, height } = viewport.dimensions;\n const paddedWidth = inputDimensions.width + padding;\n const paddedHeight = inputDimensions.height + padding;\n\n function toCssLength(length: number): string {\n return `${length}px`;\n }\n\n switch (placement) {\n case 'top-left':\n return {\n right: toCssLength(constrainTo(width - paddedWidth, width - point.x)),\n bottom: toCssLength(\n constrainTo(height - paddedHeight, height - point.y)\n ),\n };\n case 'top-right':\n return {\n left: toCssLength(constrainTo(width - paddedWidth, point.x)),\n bottom: toCssLength(\n constrainTo(height - paddedHeight, height - point.y)\n ),\n };\n case 'bottom-left':\n return {\n right: toCssLength(constrainTo(width - paddedWidth, width - point.x)),\n top: toCssLength(constrainTo(height - paddedHeight, point.y)),\n };\n case 'bottom-right':\n default:\n return {\n left: toCssLength(constrainTo(width - paddedWidth, point.x)),\n top: toCssLength(constrainTo(height - paddedHeight, point.y)),\n };\n }\n}\n"]}
|
|
@@ -49,7 +49,6 @@
|
|
|
49
49
|
|
|
50
50
|
.widget-input.wrapper {
|
|
51
51
|
position: absolute;
|
|
52
|
-
box-sizing: border-box;
|
|
53
52
|
pointer-events: auto;
|
|
54
53
|
display: flex;
|
|
55
54
|
border: 1px solid #cccccc;
|
|
@@ -57,16 +56,13 @@
|
|
|
57
56
|
}
|
|
58
57
|
|
|
59
58
|
input.widget-input {
|
|
59
|
+
box-sizing: border-box;
|
|
60
60
|
text-align: center;
|
|
61
61
|
border: none;
|
|
62
62
|
width: 100%;
|
|
63
|
+
outline: none;
|
|
63
64
|
}
|
|
64
65
|
|
|
65
|
-
.widget-input
|
|
66
|
-
|
|
67
|
-
display: flex;
|
|
68
|
-
align-items: center;
|
|
69
|
-
padding: 0;
|
|
70
|
-
background-color: white;
|
|
71
|
-
border: none;
|
|
66
|
+
input.widget-input:focus {
|
|
67
|
+
outline: none;
|
|
72
68
|
}
|
|
@@ -35,6 +35,11 @@ export class ViewerTransformWidget {
|
|
|
35
35
|
* Determines whether or not the z-translation is disabled on the widget
|
|
36
36
|
*/
|
|
37
37
|
this.zTranslationDisabled = false;
|
|
38
|
+
/**
|
|
39
|
+
* Whether to show inputs beside the widget handles when they are interacted with.
|
|
40
|
+
* Defaults to `true`.
|
|
41
|
+
*/
|
|
42
|
+
this.showInputs = true;
|
|
38
43
|
/**
|
|
39
44
|
* The unit to show for translation inputs. Defaults to `millimeters`.
|
|
40
45
|
*
|
|
@@ -77,12 +82,10 @@ export class ViewerTransformWidget {
|
|
|
77
82
|
}
|
|
78
83
|
};
|
|
79
84
|
this.handleInputResize = () => {
|
|
80
|
-
console.log(this.inputRef);
|
|
81
85
|
if (this.inputRef != null) {
|
|
82
86
|
const inputElement = this.inputRef;
|
|
83
87
|
readDOM(() => {
|
|
84
88
|
this.inputBounds = inputElement.getBoundingClientRect();
|
|
85
|
-
console.log(this.inputBounds);
|
|
86
89
|
});
|
|
87
90
|
}
|
|
88
91
|
};
|
|
@@ -224,7 +227,6 @@ export class ViewerTransformWidget {
|
|
|
224
227
|
this.handleInputIncrement = () => {
|
|
225
228
|
if (this.inputValue != null && this.lastInputValue != null) {
|
|
226
229
|
this.inputValue = this.lastInputValue + 1;
|
|
227
|
-
console.log(this.inputValue);
|
|
228
230
|
this.handleInputChange(this.inputValue);
|
|
229
231
|
}
|
|
230
232
|
};
|
|
@@ -312,14 +314,17 @@ export class ViewerTransformWidget {
|
|
|
312
314
|
};
|
|
313
315
|
this.updateInputPosition = () => {
|
|
314
316
|
var _a, _b;
|
|
315
|
-
const widget = this.getTransformWidget();
|
|
316
|
-
const widgetBounds = widget.getFullBounds();
|
|
317
317
|
const dragging = (_a = this.dragging) !== null && _a !== void 0 ? _a : this.lastDragged;
|
|
318
|
-
if (
|
|
318
|
+
if (this.showInputs &&
|
|
319
|
+
((_b = this.viewer) === null || _b === void 0 ? void 0 : _b.frame) != null &&
|
|
319
320
|
this.position != null &&
|
|
320
|
-
dragging != null
|
|
321
|
-
|
|
322
|
-
|
|
321
|
+
dragging != null) {
|
|
322
|
+
const widget = this.getTransformWidget();
|
|
323
|
+
const widgetBounds = widget.getFullBounds();
|
|
324
|
+
this.inputPosition =
|
|
325
|
+
widgetBounds != null
|
|
326
|
+
? computeInputPosition(this.viewer.viewport, widgetBounds, dragging.points.toArray())
|
|
327
|
+
: undefined;
|
|
323
328
|
}
|
|
324
329
|
};
|
|
325
330
|
this.getDisplayedAngle = () => {
|
|
@@ -391,7 +396,6 @@ export class ViewerTransformWidget {
|
|
|
391
396
|
});
|
|
392
397
|
this.handleViewerChanged(this.viewer, undefined);
|
|
393
398
|
this.handleStyleChange();
|
|
394
|
-
this.handleInputResize();
|
|
395
399
|
}
|
|
396
400
|
disconnectedCallback() {
|
|
397
401
|
var _a, _b, _c, _d, _e;
|
|
@@ -474,9 +478,7 @@ export class ViewerTransformWidget {
|
|
|
474
478
|
}, class: classNames('widget', {
|
|
475
479
|
hovered: this.hovered != null,
|
|
476
480
|
}), width: (_a = this.viewer) === null || _a === void 0 ? void 0 : _a.viewport.width, height: (_b = this.viewer) === null || _b === void 0 ? void 0 : _b.viewport.height, onPointerDown: this.handleBeginDrag }),
|
|
477
|
-
this.inputPosition &&
|
|
478
|
-
this.inputValue != null &&
|
|
479
|
-
((_c = this.viewer) === null || _c === void 0 ? void 0 : _c.viewport) && (h(TransformWidgetInput, { ref: (el) => {
|
|
481
|
+
this.showInputs && this.inputPosition && ((_c = this.viewer) === null || _c === void 0 ? void 0 : _c.viewport) && (h(TransformWidgetInput, { ref: (el) => {
|
|
480
482
|
var _a, _b;
|
|
481
483
|
if (el != null) {
|
|
482
484
|
(_a = this.inputResizeObserver) === null || _a === void 0 ? void 0 : _a.observe(el);
|
|
@@ -485,7 +487,7 @@ export class ViewerTransformWidget {
|
|
|
485
487
|
(_b = this.inputResizeObserver) === null || _b === void 0 ? void 0 : _b.unobserve(this.inputRef);
|
|
486
488
|
}
|
|
487
489
|
this.inputRef = el;
|
|
488
|
-
}, bounds: this.inputBounds, viewport: this.viewer.viewport, point: this.inputPosition.point, placement: this.inputPosition.
|
|
490
|
+
}, bounds: this.inputBounds, viewport: this.viewer.viewport, point: this.inputPosition.point, placement: this.inputPosition.placement, angle: this.getDisplayedAngle(), distance: this.getDisplayedDistance(), decimalPlaces: this.decimalPlaces, distanceUnit: this.distanceUnit, angleUnit: this.angleUnit, onChange: this.handleInputChange, onIncrement: this.handleInputIncrement, onDecrement: this.handleInputDecrement }))));
|
|
489
491
|
}
|
|
490
492
|
transform(previous, next, angle) {
|
|
491
493
|
var _a, _b;
|
|
@@ -515,12 +517,6 @@ export class ViewerTransformWidget {
|
|
|
515
517
|
console.warn('Cannot set disabled values - no widget defined');
|
|
516
518
|
}
|
|
517
519
|
}
|
|
518
|
-
get currentRotation() {
|
|
519
|
-
if (this.currentTransform != null) {
|
|
520
|
-
return Matrix4.makeRotation(Quaternion.fromMatrixRotation(this.currentTransform));
|
|
521
|
-
}
|
|
522
|
-
return Matrix4.makeIdentity();
|
|
523
|
-
}
|
|
524
520
|
static get is() { return "vertex-viewer-transform-widget"; }
|
|
525
521
|
static get encapsulation() { return "shadow"; }
|
|
526
522
|
static get originalStyleUrls() { return {
|
|
@@ -717,6 +713,24 @@ export class ViewerTransformWidget {
|
|
|
717
713
|
"reflect": false,
|
|
718
714
|
"defaultValue": "false"
|
|
719
715
|
},
|
|
716
|
+
"showInputs": {
|
|
717
|
+
"type": "boolean",
|
|
718
|
+
"mutable": false,
|
|
719
|
+
"complexType": {
|
|
720
|
+
"original": "boolean",
|
|
721
|
+
"resolved": "boolean",
|
|
722
|
+
"references": {}
|
|
723
|
+
},
|
|
724
|
+
"required": false,
|
|
725
|
+
"optional": false,
|
|
726
|
+
"docs": {
|
|
727
|
+
"tags": [],
|
|
728
|
+
"text": "Whether to show inputs beside the widget handles when they are interacted with.\nDefaults to `true`."
|
|
729
|
+
},
|
|
730
|
+
"attribute": "show-inputs",
|
|
731
|
+
"reflect": false,
|
|
732
|
+
"defaultValue": "true"
|
|
733
|
+
},
|
|
720
734
|
"distanceUnit": {
|
|
721
735
|
"type": "string",
|
|
722
736
|
"mutable": false,
|