@vertexvis/viewer 0.16.0 → 0.16.1-canary.1
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/README.template.md +19 -0
- package/dist/cjs/controller-383147c5.js +111 -0
- package/dist/cjs/controller-917f9ebf.js +7508 -0
- package/dist/cjs/dom-d162f898.js +14 -0
- package/dist/cjs/{entities-053d1e65.js → entities-98b08d8a.js} +5 -5
- package/dist/cjs/index.cjs.js +10 -3
- package/dist/cjs/{mapper-767b5f6d.js → mapper-d3855fc8.js} +583 -583
- package/dist/cjs/{dom-92728e58.js → row-3a1861d4.js} +0 -9
- package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +5 -4
- package/dist/cjs/vertex-scene-tree.cjs.entry.js +19 -7510
- package/dist/cjs/vertex-viewer-box-query-tool.cjs.entry.js +9 -110
- package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +2 -2
- package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +2 -2
- package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +4 -4
- package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +6 -3
- package/dist/collection/collection-manifest.json +4 -4
- package/dist/collection/components/scene-tree/lib/index.js +3 -0
- package/dist/collection/components/scene-tree/scene-tree.js +30 -17
- package/dist/collection/components/scene-tree/types.js +2 -0
- package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.js +1 -1
- package/dist/collection/components/viewer-box-query-tool/types.js +2 -0
- package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.js +5 -3
- package/dist/collection/components/viewer-default-toolbar/viewer-default-toolbar.js +2 -2
- package/dist/collection/components/viewer-toolbar/types.js +2 -0
- package/dist/collection/components/viewer-toolbar/viewer-toolbar.js +5 -3
- package/dist/collection/components/viewer-toolbar-group/types.js +2 -0
- package/dist/collection/components/viewer-toolbar-group/viewer-toolbar-group.js +3 -2
- package/dist/collection/index.js +8 -1
- package/dist/collection/lib/pins/index.js +2 -0
- package/dist/collection/lib/volume-intersection/index.js +2 -0
- package/dist/custom-elements/index.js +71942 -71942
- package/dist/esm/{bundle.esm-b51ea7fc.js → bundle.esm-c0b261c8.js} +1 -1
- package/dist/esm/{config-def96227.js → config-5a3235d2.js} +1 -1
- package/dist/esm/controller-37e0b32a.js +109 -0
- package/dist/esm/controller-8e9e0b43.js +7503 -0
- package/dist/esm/dom-2111ed19.js +11 -0
- package/dist/esm/{entities-3ff1a7ee.js → entities-f0128903.js} +3 -3
- package/dist/esm/index.js +9 -6
- package/dist/esm/index.mjs +9 -6
- package/dist/esm/{mapper-b2f3424f.js → mapper-36404f5d.js} +2 -2
- package/dist/esm/{dom-e19ee80b.js → row-5ebb8f09.js} +1 -8
- package/dist/esm/{scene-ed248e56.js → scene-d23dff71.js} +2 -2
- package/dist/esm/{streamAttributes-90bcdb58.js → streamAttributes-7bd73748.js} +1 -1
- package/dist/esm/vertex-scene-tree-search_3.entry.js +2 -1
- package/dist/esm/vertex-scene-tree.entry.js +13 -7504
- package/dist/esm/vertex-viewer-box-query-tool.entry.js +3 -104
- package/dist/esm/vertex-viewer-dom-element_2.entry.js +2 -2
- package/dist/esm/vertex-viewer-measurement-details.entry.js +2 -2
- package/dist/esm/vertex-viewer-measurement-distance.entry.js +4 -4
- package/dist/esm/vertex-viewer-measurement-line_2.entry.js +4 -4
- package/dist/esm/vertex-viewer-measurement-precise.entry.js +6 -6
- package/dist/esm/vertex-viewer-pin-group.entry.js +8 -5
- package/dist/esm/vertex-viewer-transform-widget.entry.js +2 -2
- package/dist/esm/vertex-viewer-view-cube.entry.js +2 -2
- package/dist/esm/vertex-viewer.entry.js +4 -4
- package/dist/esm/{grpc-web-client.umd-5409853c.js → wrappers_pb-e7a5f842.js} +5 -5
- package/dist/types/components/scene-tree/lib/controller.d.ts +1 -1
- package/dist/types/components/scene-tree/lib/index.d.ts +2 -0
- package/dist/types/components/scene-tree/lib/row.d.ts +1 -1
- package/dist/types/components/scene-tree/scene-tree.d.ts +1 -31
- package/dist/types/components/scene-tree/types.d.ts +32 -0
- package/dist/types/components/scene-tree-table-layout/scene-tree-table-layout.d.ts +1 -1
- package/dist/types/components/viewer-box-query-tool/types.d.ts +2 -0
- package/dist/types/components/viewer-box-query-tool/viewer-box-query-tool.d.ts +1 -2
- package/dist/types/components/viewer-default-toolbar/viewer-default-toolbar.d.ts +2 -2
- package/dist/types/components/viewer-toolbar/types.d.ts +5 -0
- package/dist/types/components/viewer-toolbar/viewer-toolbar.d.ts +1 -5
- package/dist/types/components/viewer-toolbar-group/types.d.ts +1 -0
- package/dist/types/components/viewer-toolbar-group/viewer-toolbar-group.d.ts +1 -1
- package/dist/types/components.d.ts +6 -10
- package/dist/types/index.d.ts +7 -0
- package/dist/types/lib/pins/index.d.ts +2 -0
- package/dist/types/lib/volume-intersection/index.d.ts +1 -0
- package/dist/types/lib/volume-intersection/model.d.ts +1 -1
- package/dist/viewer/index.esm.js +1 -1
- package/dist/viewer/{p-9f805c70.js → p-2c07b773.js} +1 -1
- package/dist/viewer/p-39535bb0.entry.js +4 -0
- package/dist/viewer/p-3a6fa239.js +4 -0
- package/dist/viewer/{p-e24dbb45.entry.js → p-42acbbaf.entry.js} +1 -1
- package/dist/viewer/p-43f7a708.entry.js +4 -0
- package/dist/viewer/{p-bd314501.js → p-5632192b.js} +1 -1
- package/dist/viewer/{p-01012fee.entry.js → p-58b30f31.entry.js} +1 -1
- package/dist/viewer/{p-f6b6b3d5.entry.js → p-6a4d8fb9.entry.js} +1 -1
- package/dist/viewer/p-6f47fcb9.js +4 -0
- package/dist/viewer/p-76c414a4.js +4 -0
- package/dist/viewer/{p-b283a36b.js → p-787c2987.js} +1 -1
- package/dist/viewer/{p-46f40a43.js → p-817743a4.js} +1 -1
- package/dist/viewer/{p-13e6c657.entry.js → p-886fb3a9.entry.js} +2 -2
- package/dist/viewer/{p-b629cebb.entry.js → p-92a65d2c.entry.js} +1 -1
- package/dist/viewer/p-9cc361f6.entry.js +4 -0
- package/dist/viewer/{p-934cbb97.js → p-a7c29e95.js} +1 -1
- package/dist/viewer/{p-47c4b430.entry.js → p-b4321377.entry.js} +1 -1
- package/dist/viewer/p-bfae3945.js +4 -0
- package/dist/viewer/{p-86759ae2.entry.js → p-d8c578a9.entry.js} +1 -1
- package/dist/viewer/{p-ea183d6e.entry.js → p-db8948a9.entry.js} +1 -1
- package/dist/viewer/{p-a12791aa.js → p-dde5650a.js} +1 -1
- package/dist/viewer/{p-bf688622.entry.js → p-ecd99a3e.entry.js} +1 -1
- package/dist/viewer/p-f5aaf680.js +4 -0
- package/dist/viewer/viewer.esm.js +1 -1
- package/package.json +7 -7
- package/readme.md +19 -0
- package/dist/collection/components/scene-tree/interfaces.js +0 -2
- package/dist/types/components/scene-tree/interfaces.d.ts +0 -1
- package/dist/viewer/p-3296fdf1.entry.js +0 -4
- package/dist/viewer/p-569ed94a.entry.js +0 -4
- package/dist/viewer/p-7ef7d9ce.entry.js +0 -4
- package/dist/viewer/p-92fe4417.js +0 -4
- package/dist/viewer/p-c8c4343b.js +0 -4
- package/dist/cjs/{grpc-web-client.umd-2af20c1b.js → wrappers_pb-04573f90.js} +4 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**!
|
|
2
2
|
* Copyright (c) 2023 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{h as t,r as i,c as e,H as s,g as n}from"./p-d6fce4c1.js";import{v as r,c as a,p as o,l as h}from"./p-d216a866.js";import{m as l}from"./p-1812c82d.js";import{a as d,g as c}from"./p-42760392.js";import"./p-9f805c70.js";import"./p-92fe4417.js";import{i as u,D as m}from"./p-46f40a43.js";import{M as v}from"./p-acfc5c50.js";import{M as p}from"./p-283aeac4.js";import{m as w}from"./p-a2e9e8a5.js";import"./p-df8fbe56.js";import{V as f}from"./p-0a017be7.js";import{E as b,m as g}from"./p-fc7d8c03.js";import{g as y}from"./p-b5ca30cd.js";import{c as P}from"./p-07aeee89.js";import"./p-dfe5a97d.js";import"./p-934cbb97.js";class E{constructor(t,i,e,s){this.stencil=t,this.depthBuffer=i,this.viewport=e,this.camera=s}hitTest(t){const i=this.viewport.transformPointToFrame(t,this.depthBuffer);if(null!=this.stencil){const e=this.viewport.transformPointToFrame(t,this.stencil);return this.stencil.hitTest(e)||this.depthBuffer.hitTest(i)}return this.depthBuffer.hitTest(i)}snapToNearestPixel(t,i){if(null!=this.stencil){const e=this.viewport.transformPointToFrame(t,this.stencil),s=this.stencil.snapToNearestPixel(e,i);return this.viewport.transformPointToViewport(s,this.stencil)}return t}transformPointToWorld(t,{ignoreHitTest:i=!1}={}){const e=this.pickDepthBuffer(t);return null!=e?null==this.camera||this.camera.isPerspective()?this.viewport.transformPointToWorldSpace(t,e):this.viewport.transformPointToOrthographicWorldSpace(t,e):i?null==this.camera||this.camera.isPerspective()?this.viewport.transformPointToWorldSpace(t,this.depthBuffer):this.viewport.transformPointToOrthographicWorldSpace(t,this.depthBuffer):void 0}pickDepthBuffer(t){if(null!=this.stencil){const i=this.viewport.transformPointToFrame(t,this.stencil);if(this.stencil.hitTest(i))return this.stencil.depthBuffer}const i=this.viewport.transformPointToFrame(t,this.depthBuffer);return this.depthBuffer.hitTest(i)?this.depthBuffer:void 0}}class C{constructor(t){this.model=t}newMeasurement(t,i){const e=i.hitTester().transformPointToWorld(t);return null!=e?new x(t,e,this.model):void 0}editMeasurement(t){const i=this.model.getMeasurement();if(null==i)throw new Error("Cannot edit measurement. Measurement is empty.");return"start"===t?new I(i,this.model):new A(i,this.model)}clearIndicator(){this.model.setIndicator(void 0)}moveIndicator(t,i){const e=i.hitTester().transformPointToWorld(t);return this.model.setIndicator(e),null!=e}}class M{constructor(){this.measurementChanged=new b,this.indicatorChanged=new b}static empty(){return new M}getMeasurement(){return this.measurement}setMeasurement(t){this.measurement!==t&&(this.measurement=t,this.measurementChanged.emit(t))}setMeasurementFromValues(t,i,e){if(null!=t&&null!=i){const s=e?k(t,i):S(t,i);this.setMeasurement(s)}else this.setMeasurement(void 0)}onMeasurementChanged(t){return this.measurementChanged.on(t)}getIndicator(){return this.indicator}setIndicator(t){this.indicator!==t&&(this.indicator=t,this.indicatorChanged.emit(t))}onIndicatorChanged(t){return this.indicatorChanged.on(t)}}class x{constructor(t,i,e){this.pt=t,this.world=i,this.model=e,this.hitWorldValid=!0,this.preventUpdate=!1}fetchStartIfMissing(t){null==this.pendingStart&&(this.pendingStart=this.fetchStart(t))}async fetchStart(t){const i=await t.raycaster(),e=await D(i,this.pt);if(null==e){const i=t.hitTester().transformPointToWorld(this.pt);this.hitWorld=i,this.hitWorldValid=!1}else this.hitWorld=e,this.hitWorldValid=!0}update(t,i){var e;if(!this.preventUpdate){this.fetchStartIfMissing(i);const s=i.hitTester().transformPointToWorld(t,{ignoreHitTest:!0}),n=i.hitTester().hitTest(t),r=null!==(e=this.hitWorld)&&void 0!==e?e:this.world;if(null==s)throw new Error("Cannot update new measurement interaction. End point is empty.");this.hitWorldValid&&n?(this.model.setIndicator(s),this.setMeasurement(k(r,s))):(this.model.setIndicator(s),this.setMeasurement(S(r,s)))}}async finish(t,i){var e;this.preventUpdate=!0,this.fetchStartIfMissing(i),await this.pendingStart,this.model.setIndicator(void 0);const s=await i.raycaster(),n=await D(s,t),r=null!==(e=this.hitWorld)&&void 0!==e?e:this.world;if(this.preventUpdate=!1,null==n){const e=i.hitTester().transformPointToWorld(t,{ignoreHitTest:!0});if(null==e)throw new Error("Cannot complete new measurement interaction. End point is empty.");return this.setMeasurement(S(r,e))}return this.setMeasurement(this.hitWorldValid?k(r,n):S(r,n))}setMeasurement(t){return this.model.setMeasurement(t),t}}class j{constructor(t,i){this.measurement=t,this.model=i}update(t,i){const e=i.hitTester().transformPointToWorld(t,{ignoreHitTest:!0}),s=i.hitTester().hitTest(t);if(null==e)throw new Error("Cannot update new measurement interaction. End point is empty.");s?(this.model.setIndicator(e),this.setMeasurement(this.getValidMeasurement(e))):(this.model.setIndicator(e),this.setMeasurement(this.getInvalidMeasurement(e)))}async finish(t,i){const e=await i.raycaster(),s=await D(e,t);if(this.model.setIndicator(void 0),null==s){const e=i.hitTester().transformPointToWorld(t,{ignoreHitTest:!0});if(null==e)throw new Error("Cannot complete edit measurement interaction. End point is empty.");return this.setMeasurement(this.getInvalidMeasurement(e))}return this.setMeasurement(this.getValidMeasurement(s))}setMeasurement(t){return this.model.setMeasurement(t),t}}class I extends j{constructor(t,i){super(t,i)}getInvalidMeasurement(t){return S(t,this.measurement.end)}getValidMeasurement(t){return k(t,this.measurement.end)}}class A extends j{constructor(t,i){super(t,i)}getInvalidMeasurement(t){return S(this.measurement.start,t)}getValidMeasurement(t){return k(this.measurement.start,t)}}async function D(t,i){var e;const s=await t.hitItems(i),[n]=null!==(e=null==s?void 0:s.hits)&&void 0!==e?e:[];if(null!=(null==n?void 0:n.hitPoint)){const t=u(n.hitPoint);if(g.isInvalid(t))throw new Error(`Invalid hit response [${t.errors.join(",")}]`);return t}}function k(t,i){return{start:t,end:i,distance:r.distance(t,i),valid:!0}}function S(t,i){return{start:t,end:i,valid:!1}}const L=({startPt:i,endPt:e,centerPt:s,indicatorPt:n,distance:r,anchorLabelOffset:h,lineCapLength:l,linePointerEvents:c,hideStartAnchor:u,hideEndAnchor:m,onStartAnchorPointerDown:v,onEndAnchorPointerDown:p})=>{const w=null!=i&&null!=e?a.fromPoints(i,e):void 0,f=null!=w&&null!=i&&null!=h?o.add(i,o.polar(-h,w)):void 0,b=null!=w&&null!=e&&null!=h?o.add(e,o.polar(h,w)):void 0;return t("div",null,null!=i&&null!=e&&t("vertex-viewer-measurement-line",{class:P("line",{"hide-start-line-cap":u,"hide-end-line-cap":m}),start:i,end:e,capLength:l,pointerEvents:c}),!u&&null!=i&&t("div",{id:"start-anchor",class:"anchor anchor-start",style:{transform:d(i)},onPointerDown:v},t("slot",{name:"start-anchor"},t("div",{class:"anchor-placeholder"}))),!u&&f&&t("div",{class:"anchor-label anchor-label-start",style:{transform:d(f)}},t("slot",{name:"start-label"})),!m&&null!=e&&t("div",{id:"end-anchor",class:"anchor anchor-end",style:{transform:d(e)},onPointerDown:p},t("slot",{name:"end-anchor"},t("div",{class:"anchor-placeholder"}))),!m&&b&&t("div",{class:"anchor-label anchor-label-end",style:{transform:d(b)}},t("slot",{name:"end-label"})),null!=s&&t("div",{id:"label",class:"distance-label",style:{transform:d(s)}},r),null!=n&&t("div",{class:"indicator",style:{transform:d(n)}},t("slot",{name:"indicator"},t("div",{class:"indicator-placeholder"}))))},T=class{constructor(t){i(this,t),this.editBegin=e(this,"editBegin",7),this.editEnd=e(this,"editEnd",7),this.showAxisReferenceLines=!1,this.snapDistance=16,this.units="millimeters",this.fractionalDigits=2,this.anchorLabelOffset=20,this.lineCapLength=10,this.mode="",this.interactingAnchor="none",this.invalid=!1,this.measurementModel=new v,this.viewport=new f(0,0),this.interactionCount=0,this.invalidateStateCounter=0,this.stateMap={},this.measurementUnits=new m(this.units),this.model=M.empty(),this.controller=new C(this.model),this.overlays=new p,this.isUserInteractingWithModel=!1,this.handleFrameDrawn=()=>{this.invalidateState()},this.clearIndicator=()=>{this.controller.clearIndicator()},this.updateStartAnchor=async t=>{if(this.getStencilBuffer(),0===this.interactionCount){const i=c(t,this.elementBounds),e=this.snapPoint(i,t);this.updateIndicator(e)}},this.newMeasurement=t=>{if(0===this.interactionCount&&0===t.button){const i=t=>{const i=()=>{window.removeEventListener("pointerup",e),window.removeEventListener("pointermove",s)},e=async()=>{i(),t()},s=t=>{t.buttons>0&&i()};window.addEventListener("pointermove",s),window.addEventListener("pointerup",e)},e=t=>{let i=o.create(0,0);const e=e=>{o.distance(i,c(e))>=3&&t()},s=()=>(window.removeEventListener("pointermove",e),void window.removeEventListener("pointerup",s)),n=t=>{i=c(t),window.addEventListener("pointermove",e),window.addEventListener("pointerup",s)};return window.addEventListener("pointerdown",n),{dispose:()=>window.removeEventListener("pointerdown",n)}},s=()=>{const t=e((()=>{var t;this.isUserInteractingWithModel=!0,null===(t=this.stateMap.hoverCursor)||void 0===t||t.dispose()})),i=()=>{window.removeEventListener("pointermove",s),window.removeEventListener("pointerup",n),t.dispose()},s=this.createInteractionMoveHandler(),n=async t=>{var e;if(0===t.button)if(this.isUserInteractingWithModel)this.isUserInteractingWithModel=!1;else{const s=this.getHitProvider();if(null!=s){const n=c(t,this.elementBounds),r=this.snapPoint(n,t);await(null===(e=this.interaction)||void 0===e?void 0:e.finish(r,s)),i(),this.updateMeasurementPropsFromModel(),this.endEditing()}}};this.beginEditing("replace","end"),this.newInteractionHandler={dispose:i},window.addEventListener("pointermove",s),window.addEventListener("pointerup",n)},n=this.getHitProvider();if(null!=n){const e=c(t,this.elementBounds),r=this.snapPoint(e,t);this.interaction=this.controller.newMeasurement(r,n),null!=this.interaction&&i(s)}}}}async computeElementMetrics(){var t,i,e;const s=null===(t=this.hostEl.shadowRoot)||void 0===t?void 0:t.getElementById("start-anchor"),n=null===(i=this.hostEl.shadowRoot)||void 0===i?void 0:i.getElementById("end-anchor"),r=null===(e=this.hostEl.shadowRoot)||void 0===e?void 0:e.getElementById("label");return null!=s&&null!=n&&null!=r?{startAnchor:s.getBoundingClientRect(),endAnchor:n.getBoundingClientRect(),label:r.getBoundingClientRect()}:void 0}disconnectedCallback(){var t,i;null===(t=this.stateMap.hoverCursor)||void 0===t||t.dispose(),null===(i=this.newInteractionHandler)||void 0===i||i.dispose()}componentWillLoad(){this.updatePropsFromJson(),this.model.setMeasurementFromValues(this.start,this.end,!this.invalid),this.getStencilBuffer(),this.updateViewport(),this.handleViewerChanged(this.viewer),this.handleModeChanged(),this.computePropsAndState(),this.model.onIndicatorChanged((t=>{this.indicatorPt=t}))}componentDidLoad(){new ResizeObserver((()=>this.updateViewport())).observe(this.hostEl)}componentWillUpdate(){this.computePropsAndState()}render(){return t(s,null,this.showAxisReferenceLines&&t("vertex-viewer-measurement-overlays",{measurementOverlays:this.overlays,viewer:this.viewer}),this.renderMeasurement())}renderMeasurement(){const i=this.computeElementPositions(),{startPt:e,endPt:s,labelPt:n,indicatorPt:r,hideStart:a,hideEnd:o}=i,h=this.formatDistance(this.distance);return t(L,"edit"===this.mode||"replace"===this.mode?{startPt:e,endPt:s,centerPt:n,indicatorPt:r,distance:h,anchorLabelOffset:this.anchorLabelOffset,lineCapLength:this.lineCapLength,hideStartAnchor:a,hideEndAnchor:o,onStartAnchorPointerDown:this.handleEditAnchor("start"),onEndAnchorPointerDown:this.handleEditAnchor("end")}:{startPt:e,endPt:s,centerPt:n,indicatorPt:this.indicatorPt,distance:h,hideStartAnchor:a,hideEndAnchor:o,anchorLabelOffset:this.anchorLabelOffset,lineCapLength:this.lineCapLength,linePointerEvents:"painted"})}handleViewerChanged(t,i){null!=i&&(i.removeEventListener("frameDrawn",this.handleFrameDrawn),this.removeInteractionListeners(i)),null!=t&&(t.addEventListener("frameDrawn",this.handleFrameDrawn),this.addInteractionListeners(t))}handleUnitsChanged(){this.measurementUnits=new m(this.units)}handleCameraChanged(){this.updateCamera()}handleModeChanged(){this.warnIfDepthBuffersDisabled(),null!=this.viewer&&(this.removeInteractionListeners(this.viewer),this.addInteractionListeners(this.viewer))}handleStartChanged(){this.updateInteractionModel()}handleEndChanged(){this.updateInteractionModel()}handleInvalidChanged(){this.updateInteractionModel()}computePropsAndState(){this.updateCamera(),this.updateDepthBuffer(),this.updateMeasurementPropsFromModel(),this.updateOverlays()}updateOverlays(){var t;null===(t=this.overlay)||void 0===t||t.dispose(),this.showAxisReferenceLines&&0===this.interactionCount&&!this.invalid&&null!=this.start&&null!=this.end&&(this.overlay=this.overlays.addDistanceVector(this.start,this.end))}async setCursor(t){var i,e;null===(i=this.stateMap.hoverCursor)||void 0===i||i.dispose(),this.isUserInteractingWithModel||(this.stateMap.hoverCursor=await(null===(e=this.viewer)||void 0===e?void 0:e.addCursor(t)))}computeElementPositions(){return"replace"===this.mode?this.computeReplaceElementPositions():this.computeEditOrViewElementPositions()}computeEditOrViewElementPositions(){const t=this.model.getMeasurement();return null!=this.internalCamera&&null!=t?this.computeLineElementPositions(h.create(t)):{}}computeReplaceElementPositions(){if(null!=this.internalCamera){const t=this.model.getMeasurement(),i=null!=t?this.computeLineElementPositions(h.create(t)):{},e=null!=this.indicatorPt?{indicatorPt:this.viewport.transformWorldToViewport(this.indicatorPt,this.internalCamera.projectionViewMatrix)}:{};return Object.assign(Object.assign({},i),e)}return{}}computeLineElementPositions(t){return null!=this.internalCamera?y(t,this.interactingAnchor,{viewport:this.viewport,camera:this.internalCamera}):{}}updateCamera(){var t,i;this.internalCamera=this.camera||(null===(i=null===(t=this.viewer)||void 0===t?void 0:t.frame)||void 0===i?void 0:i.scene.camera)}async updateDepthBuffer(){var t,i;this.stateMap.depthBuffer=await(null===(i=null===(t=this.viewer)||void 0===t?void 0:t.frame)||void 0===i?void 0:i.depthBuffer())}updateViewport(){const t=this.hostEl.getBoundingClientRect();this.viewport=new f(t.width,t.height),this.elementBounds=t}updatePropsFromJson(){var t,i;this.start=H(null!==(t=this.startJson)&&void 0!==t?t:this.start),this.end=H(null!==(i=this.endJson)&&void 0!==i?i:this.end)}updateInteractionModel(){this.model.setMeasurementFromValues(this.start,this.end,!this.invalid)}invalidateState(){this.invalidateStateCounter=this.invalidateStateCounter+1}async addInteractionListeners(t){const i=await t.getInteractionTarget_DEPRECATED();"replace"===this.mode&&(i.addEventListener("pointermove",this.updateStartAnchor),i.addEventListener("pointerdown",this.newMeasurement),i.addEventListener("pointerleave",this.clearIndicator))}async removeInteractionListeners(t){const i=await t.getInteractionTarget_DEPRECATED();i.removeEventListener("pointermove",this.updateStartAnchor),i.removeEventListener("pointerdown",this.newMeasurement),i.removeEventListener("pointerleave",this.clearIndicator)}handleEditAnchor(t){if("edit"===this.mode||"replace"===this.mode){const i=this.createInteractionMoveHandler(),e=async t=>{var s;const n=this.getHitProvider();if(null!=n){window.removeEventListener("pointermove",i),window.removeEventListener("pointerup",e);const r=c(t,this.elementBounds),a=this.snapPoint(r,t);await(null===(s=this.interaction)||void 0===s?void 0:s.finish(a,n)),this.updateMeasurementPropsFromModel(),this.endEditing()}};return s=>{this.getStencilBuffer(),0===s.button&&(this.beginEditing("edit",t),this.interaction=this.controller.editMeasurement(t),window.addEventListener("pointermove",i),window.addEventListener("pointerup",e))}}}createInteractionMoveHandler(){return t=>{var i;const e=this.getHitProvider();if(null!=this.elementBounds&&null!=e){t.preventDefault(),this.getStencilBuffer();const s=c(t,this.elementBounds),n=this.snapPoint(s,t);null===(i=this.interaction)||void 0===i||i.update(n,e),this.updateMeasurementPropsFromModel()}}}async getStencilBuffer(){var t;const i=await(null===(t=this.viewer)||void 0===t?void 0:t.stencilBuffer.latestAfterInteraction());this.stateMap.stencil=i}snapPoint(t,i){const e=this.getHitProvider();if(null!=e&&!i.shiftKey){const i=Math.max(0,this.snapDistance);return e.hitTester().snapToNearestPixel(t,i)}return t}formatDistance(t){const i=null!=t?this.measurementUnits.convertWorldValueToReal(t):void 0;if(null!=this.labelFormatter)return this.labelFormatter(i);{const t=this.measurementUnits.unit.abbreviatedName;return null==i?"---":`~${i.toFixed(this.fractionalDigits)} ${t}`}}beginEditing(t,i){0===this.interactionCount&&(this.interactingAnchor=i,this.editBegin.emit({type:t,anchor:i})),this.interactionCount=this.interactionCount+1}endEditing(){if(1===this.interactionCount){const t=this.model.getMeasurement();this.interactingAnchor="none",this.updateMeasurementModel(),null!=t&&this.editEnd.emit(t)}this.interactionCount=this.interactionCount-1}updateMeasurementModel(){this.measurementModel.clearOutcome(),this.invalid||null==this.start||null==this.end||this.measurementModel.setOutcome({isApproximate:!0,results:[w(this.start,this.end)]})}getHitProvider(){if(null!=this.hitProvider)return this.hitProvider;{const t=this.getHitTester(),i=this.viewer;if(null!=i&&null!=t)return{hitTester:()=>t,raycaster:async()=>(await i.scene()).raycaster()}}}getHitTester(){const{stencil:t,depthBuffer:i}=this.stateMap;if(null!=i)return new E(t,i,this.viewport,this.internalCamera)}updateMeasurementPropsFromModel(){const t=this.model.getMeasurement();this.start=null==t?void 0:t.start,this.end=null==t?void 0:t.end,this.distance=null==t?void 0:t.distance,this.invalid=null!=t&&!t.valid}updateIndicator(t){var i;const e=this.getHitProvider();null!=e&&this.controller.moveIndicator(t,e)?this.setCursor(l):null===(i=this.stateMap.hoverCursor)||void 0===i||i.dispose()}warnIfDepthBuffersDisabled(){null!=this.viewer&&null==this.viewer.depthBuffers&&console.warn("Measurement editing is disabled. <vertex-viewer> must have its `depth-buffers` attribute set.")}get hostEl(){return n(this)}static get watchers(){return{viewer:["handleViewerChanged"],units:["handleUnitsChanged"],camera:["handleCameraChanged"],mode:["handleModeChanged"],start:["handleStartChanged"],end:["handleEndChanged"],invalid:["handleInvalidChanged"]}}};function H(t){return"string"==typeof t?r.fromJson(t):t}T.style=":host{--viewer-measurement-distance-accent-color:var(--neutral-900);--viewer-measurement-distance-contrast-color:var(--white);--viewer-measurement-distance-invalid-accent-color:var(--red-600);--viewer-measurement-distance-invalid-contrast-color:var(--white);--viewer-measurement-distance-line-stroke-width:1.25px;--viewer-measurement-distance-line-fill-width:2px;--viewer-measurement-distance-distance-border:1px solid\n var(--viewer-measurement-distance-accent-color);--viewer-measurement-distance-distance-border-radius:0.25rem;--viewer-measurement-distance-distance-padding:0.375rem 0.5rem;color:var(--viewer-measurement-distance-accent-color);font-size:0.75rem;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none}:host([invalid]:not([invalid='false'])){--viewer-measurement-distance-accent-color:var(\n --viewer-measurement-distance-invalid-accent-color\n ) !important;--viewer-measurement-distance-contrast-color:var(\n --viewer-measurement-distance-invalid-contrast-color\n ) !important}.line{--viewer-measurement-line-stroke:var(\n --viewer-measurement-distance-contrast-color\n );--viewer-measurement-line-stroke-opacity:0.75;--viewer-measurement-line-stroke-width:var(\n --viewer-measurement-distance-line-stroke-width\n );--viewer-measurement-line-fill:var(\n --viewer-measurement-distance-accent-color\n );--viewer-measurement-line-fill-width:var(\n --viewer-measurement-distance-line-fill-width\n );position:absolute;width:100%;height:100%}.anchor{position:absolute;border-radius:50%;transform:translate(-50%, -50%);display:block;pointer-events:auto}:host([interacting-anchor='start']) .anchor-start,:host([interacting-anchor='start']) .anchor-label-start{visibility:hidden}.hide-start-line-cap,:host([interacting-anchor='start']) .line{--viewer-measurement-line-start-cap-visibility:hidden}:host([interacting-anchor='end']) .anchor-end,:host([interacting-anchor='end']) .anchor-label-end{visibility:hidden}.hide-end-line-cap,:host([interacting-anchor='end']) .line{--viewer-measurement-line-end-cap-visibility:hidden}.anchor-label{position:absolute;border-radius:50%;transform:translate(-50%, -50%);display:block;pointer-events:auto}:host(:not([mode=''])){cursor:inherit}:host(:not([mode=''])) .anchor{cursor:move}:host([mode='']) .anchor{visibility:hidden}.anchor-placeholder{background:var(--viewer-measurement-distance-contrast-color);width:12px;height:12px;border-radius:50%;box-sizing:border-box}:host(:not([mode=''])) .anchor-placeholder{border:2px solid var(--viewer-measurement-distance-accent-color);background:var(--viewer-measurement-distance-contrast-color)}:host([mode='']) .distance-label{color:var(--viewer-measurement-distance-contrast-color);background:var(--viewer-measurement-distance-accent-color)}.distance-label{position:absolute;background:var(--viewer-measurement-distance-contrast-color);border:var(--viewer-measurement-distance-distance-border);border-radius:var(--viewer-measurement-distance-distance-border-radius);padding:var(--viewer-measurement-distance-distance-padding);pointer-events:auto}.indicator{position:absolute}.indicator-placeholder{background:var(--viewer-measurement-distance-accent-color);border:1px solid var(--viewer-measurement-distance-contrast-color);width:6px;height:6px;border-radius:50%;box-sizing:border-box}";export{T as vertex_viewer_measurement_distance}
|
|
4
|
+
import{h as t,r as i,c as e,H as s,g as n}from"./p-d6fce4c1.js";import{v as r,c as a,p as o,l as h}from"./p-d216a866.js";import{m as l}from"./p-1812c82d.js";import{a as d,g as c}from"./p-42760392.js";import"./p-2c07b773.js";import"./p-3a6fa239.js";import{i as u,D as m}from"./p-817743a4.js";import{M as v}from"./p-acfc5c50.js";import{M as p}from"./p-283aeac4.js";import{m as w}from"./p-a2e9e8a5.js";import"./p-df8fbe56.js";import{V as f}from"./p-0a017be7.js";import{E as b,m as g}from"./p-fc7d8c03.js";import{g as y}from"./p-b5ca30cd.js";import{c as P}from"./p-07aeee89.js";import"./p-dfe5a97d.js";import"./p-a7c29e95.js";class E{constructor(t,i,e,s){this.stencil=t,this.depthBuffer=i,this.viewport=e,this.camera=s}hitTest(t){const i=this.viewport.transformPointToFrame(t,this.depthBuffer);if(null!=this.stencil){const e=this.viewport.transformPointToFrame(t,this.stencil);return this.stencil.hitTest(e)||this.depthBuffer.hitTest(i)}return this.depthBuffer.hitTest(i)}snapToNearestPixel(t,i){if(null!=this.stencil){const e=this.viewport.transformPointToFrame(t,this.stencil),s=this.stencil.snapToNearestPixel(e,i);return this.viewport.transformPointToViewport(s,this.stencil)}return t}transformPointToWorld(t,{ignoreHitTest:i=!1}={}){const e=this.pickDepthBuffer(t);return null!=e?null==this.camera||this.camera.isPerspective()?this.viewport.transformPointToWorldSpace(t,e):this.viewport.transformPointToOrthographicWorldSpace(t,e):i?null==this.camera||this.camera.isPerspective()?this.viewport.transformPointToWorldSpace(t,this.depthBuffer):this.viewport.transformPointToOrthographicWorldSpace(t,this.depthBuffer):void 0}pickDepthBuffer(t){if(null!=this.stencil){const i=this.viewport.transformPointToFrame(t,this.stencil);if(this.stencil.hitTest(i))return this.stencil.depthBuffer}const i=this.viewport.transformPointToFrame(t,this.depthBuffer);return this.depthBuffer.hitTest(i)?this.depthBuffer:void 0}}class C{constructor(t){this.model=t}newMeasurement(t,i){const e=i.hitTester().transformPointToWorld(t);return null!=e?new x(t,e,this.model):void 0}editMeasurement(t){const i=this.model.getMeasurement();if(null==i)throw new Error("Cannot edit measurement. Measurement is empty.");return"start"===t?new I(i,this.model):new A(i,this.model)}clearIndicator(){this.model.setIndicator(void 0)}moveIndicator(t,i){const e=i.hitTester().transformPointToWorld(t);return this.model.setIndicator(e),null!=e}}class M{constructor(){this.measurementChanged=new b,this.indicatorChanged=new b}static empty(){return new M}getMeasurement(){return this.measurement}setMeasurement(t){this.measurement!==t&&(this.measurement=t,this.measurementChanged.emit(t))}setMeasurementFromValues(t,i,e){if(null!=t&&null!=i){const s=e?k(t,i):S(t,i);this.setMeasurement(s)}else this.setMeasurement(void 0)}onMeasurementChanged(t){return this.measurementChanged.on(t)}getIndicator(){return this.indicator}setIndicator(t){this.indicator!==t&&(this.indicator=t,this.indicatorChanged.emit(t))}onIndicatorChanged(t){return this.indicatorChanged.on(t)}}class x{constructor(t,i,e){this.pt=t,this.world=i,this.model=e,this.hitWorldValid=!0,this.preventUpdate=!1}fetchStartIfMissing(t){null==this.pendingStart&&(this.pendingStart=this.fetchStart(t))}async fetchStart(t){const i=await t.raycaster(),e=await D(i,this.pt);if(null==e){const i=t.hitTester().transformPointToWorld(this.pt);this.hitWorld=i,this.hitWorldValid=!1}else this.hitWorld=e,this.hitWorldValid=!0}update(t,i){var e;if(!this.preventUpdate){this.fetchStartIfMissing(i);const s=i.hitTester().transformPointToWorld(t,{ignoreHitTest:!0}),n=i.hitTester().hitTest(t),r=null!==(e=this.hitWorld)&&void 0!==e?e:this.world;if(null==s)throw new Error("Cannot update new measurement interaction. End point is empty.");this.hitWorldValid&&n?(this.model.setIndicator(s),this.setMeasurement(k(r,s))):(this.model.setIndicator(s),this.setMeasurement(S(r,s)))}}async finish(t,i){var e;this.preventUpdate=!0,this.fetchStartIfMissing(i),await this.pendingStart,this.model.setIndicator(void 0);const s=await i.raycaster(),n=await D(s,t),r=null!==(e=this.hitWorld)&&void 0!==e?e:this.world;if(this.preventUpdate=!1,null==n){const e=i.hitTester().transformPointToWorld(t,{ignoreHitTest:!0});if(null==e)throw new Error("Cannot complete new measurement interaction. End point is empty.");return this.setMeasurement(S(r,e))}return this.setMeasurement(this.hitWorldValid?k(r,n):S(r,n))}setMeasurement(t){return this.model.setMeasurement(t),t}}class j{constructor(t,i){this.measurement=t,this.model=i}update(t,i){const e=i.hitTester().transformPointToWorld(t,{ignoreHitTest:!0}),s=i.hitTester().hitTest(t);if(null==e)throw new Error("Cannot update new measurement interaction. End point is empty.");s?(this.model.setIndicator(e),this.setMeasurement(this.getValidMeasurement(e))):(this.model.setIndicator(e),this.setMeasurement(this.getInvalidMeasurement(e)))}async finish(t,i){const e=await i.raycaster(),s=await D(e,t);if(this.model.setIndicator(void 0),null==s){const e=i.hitTester().transformPointToWorld(t,{ignoreHitTest:!0});if(null==e)throw new Error("Cannot complete edit measurement interaction. End point is empty.");return this.setMeasurement(this.getInvalidMeasurement(e))}return this.setMeasurement(this.getValidMeasurement(s))}setMeasurement(t){return this.model.setMeasurement(t),t}}class I extends j{constructor(t,i){super(t,i)}getInvalidMeasurement(t){return S(t,this.measurement.end)}getValidMeasurement(t){return k(t,this.measurement.end)}}class A extends j{constructor(t,i){super(t,i)}getInvalidMeasurement(t){return S(this.measurement.start,t)}getValidMeasurement(t){return k(this.measurement.start,t)}}async function D(t,i){var e;const s=await t.hitItems(i),[n]=null!==(e=null==s?void 0:s.hits)&&void 0!==e?e:[];if(null!=(null==n?void 0:n.hitPoint)){const t=u(n.hitPoint);if(g.isInvalid(t))throw new Error(`Invalid hit response [${t.errors.join(",")}]`);return t}}function k(t,i){return{start:t,end:i,distance:r.distance(t,i),valid:!0}}function S(t,i){return{start:t,end:i,valid:!1}}const L=({startPt:i,endPt:e,centerPt:s,indicatorPt:n,distance:r,anchorLabelOffset:h,lineCapLength:l,linePointerEvents:c,hideStartAnchor:u,hideEndAnchor:m,onStartAnchorPointerDown:v,onEndAnchorPointerDown:p})=>{const w=null!=i&&null!=e?a.fromPoints(i,e):void 0,f=null!=w&&null!=i&&null!=h?o.add(i,o.polar(-h,w)):void 0,b=null!=w&&null!=e&&null!=h?o.add(e,o.polar(h,w)):void 0;return t("div",null,null!=i&&null!=e&&t("vertex-viewer-measurement-line",{class:P("line",{"hide-start-line-cap":u,"hide-end-line-cap":m}),start:i,end:e,capLength:l,pointerEvents:c}),!u&&null!=i&&t("div",{id:"start-anchor",class:"anchor anchor-start",style:{transform:d(i)},onPointerDown:v},t("slot",{name:"start-anchor"},t("div",{class:"anchor-placeholder"}))),!u&&f&&t("div",{class:"anchor-label anchor-label-start",style:{transform:d(f)}},t("slot",{name:"start-label"})),!m&&null!=e&&t("div",{id:"end-anchor",class:"anchor anchor-end",style:{transform:d(e)},onPointerDown:p},t("slot",{name:"end-anchor"},t("div",{class:"anchor-placeholder"}))),!m&&b&&t("div",{class:"anchor-label anchor-label-end",style:{transform:d(b)}},t("slot",{name:"end-label"})),null!=s&&t("div",{id:"label",class:"distance-label",style:{transform:d(s)}},r),null!=n&&t("div",{class:"indicator",style:{transform:d(n)}},t("slot",{name:"indicator"},t("div",{class:"indicator-placeholder"}))))},T=class{constructor(t){i(this,t),this.editBegin=e(this,"editBegin",7),this.editEnd=e(this,"editEnd",7),this.showAxisReferenceLines=!1,this.snapDistance=16,this.units="millimeters",this.fractionalDigits=2,this.anchorLabelOffset=20,this.lineCapLength=10,this.mode="",this.interactingAnchor="none",this.invalid=!1,this.measurementModel=new v,this.viewport=new f(0,0),this.interactionCount=0,this.invalidateStateCounter=0,this.stateMap={},this.measurementUnits=new m(this.units),this.model=M.empty(),this.controller=new C(this.model),this.overlays=new p,this.isUserInteractingWithModel=!1,this.handleFrameDrawn=()=>{this.invalidateState()},this.clearIndicator=()=>{this.controller.clearIndicator()},this.updateStartAnchor=async t=>{if(this.getStencilBuffer(),0===this.interactionCount){const i=c(t,this.elementBounds),e=this.snapPoint(i,t);this.updateIndicator(e)}},this.newMeasurement=t=>{if(0===this.interactionCount&&0===t.button){const i=t=>{const i=()=>{window.removeEventListener("pointerup",e),window.removeEventListener("pointermove",s)},e=async()=>{i(),t()},s=t=>{t.buttons>0&&i()};window.addEventListener("pointermove",s),window.addEventListener("pointerup",e)},e=t=>{let i=o.create(0,0);const e=e=>{o.distance(i,c(e))>=3&&t()},s=()=>(window.removeEventListener("pointermove",e),void window.removeEventListener("pointerup",s)),n=t=>{i=c(t),window.addEventListener("pointermove",e),window.addEventListener("pointerup",s)};return window.addEventListener("pointerdown",n),{dispose:()=>window.removeEventListener("pointerdown",n)}},s=()=>{const t=e((()=>{var t;this.isUserInteractingWithModel=!0,null===(t=this.stateMap.hoverCursor)||void 0===t||t.dispose()})),i=()=>{window.removeEventListener("pointermove",s),window.removeEventListener("pointerup",n),t.dispose()},s=this.createInteractionMoveHandler(),n=async t=>{var e;if(0===t.button)if(this.isUserInteractingWithModel)this.isUserInteractingWithModel=!1;else{const s=this.getHitProvider();if(null!=s){const n=c(t,this.elementBounds),r=this.snapPoint(n,t);await(null===(e=this.interaction)||void 0===e?void 0:e.finish(r,s)),i(),this.updateMeasurementPropsFromModel(),this.endEditing()}}};this.beginEditing("replace","end"),this.newInteractionHandler={dispose:i},window.addEventListener("pointermove",s),window.addEventListener("pointerup",n)},n=this.getHitProvider();if(null!=n){const e=c(t,this.elementBounds),r=this.snapPoint(e,t);this.interaction=this.controller.newMeasurement(r,n),null!=this.interaction&&i(s)}}}}async computeElementMetrics(){var t,i,e;const s=null===(t=this.hostEl.shadowRoot)||void 0===t?void 0:t.getElementById("start-anchor"),n=null===(i=this.hostEl.shadowRoot)||void 0===i?void 0:i.getElementById("end-anchor"),r=null===(e=this.hostEl.shadowRoot)||void 0===e?void 0:e.getElementById("label");return null!=s&&null!=n&&null!=r?{startAnchor:s.getBoundingClientRect(),endAnchor:n.getBoundingClientRect(),label:r.getBoundingClientRect()}:void 0}disconnectedCallback(){var t,i;null===(t=this.stateMap.hoverCursor)||void 0===t||t.dispose(),null===(i=this.newInteractionHandler)||void 0===i||i.dispose()}componentWillLoad(){this.updatePropsFromJson(),this.model.setMeasurementFromValues(this.start,this.end,!this.invalid),this.getStencilBuffer(),this.updateViewport(),this.handleViewerChanged(this.viewer),this.handleModeChanged(),this.computePropsAndState(),this.model.onIndicatorChanged((t=>{this.indicatorPt=t}))}componentDidLoad(){new ResizeObserver((()=>this.updateViewport())).observe(this.hostEl)}componentWillUpdate(){this.computePropsAndState()}render(){return t(s,null,this.showAxisReferenceLines&&t("vertex-viewer-measurement-overlays",{measurementOverlays:this.overlays,viewer:this.viewer}),this.renderMeasurement())}renderMeasurement(){const i=this.computeElementPositions(),{startPt:e,endPt:s,labelPt:n,indicatorPt:r,hideStart:a,hideEnd:o}=i,h=this.formatDistance(this.distance);return t(L,"edit"===this.mode||"replace"===this.mode?{startPt:e,endPt:s,centerPt:n,indicatorPt:r,distance:h,anchorLabelOffset:this.anchorLabelOffset,lineCapLength:this.lineCapLength,hideStartAnchor:a,hideEndAnchor:o,onStartAnchorPointerDown:this.handleEditAnchor("start"),onEndAnchorPointerDown:this.handleEditAnchor("end")}:{startPt:e,endPt:s,centerPt:n,indicatorPt:this.indicatorPt,distance:h,hideStartAnchor:a,hideEndAnchor:o,anchorLabelOffset:this.anchorLabelOffset,lineCapLength:this.lineCapLength,linePointerEvents:"painted"})}handleViewerChanged(t,i){null!=i&&(i.removeEventListener("frameDrawn",this.handleFrameDrawn),this.removeInteractionListeners(i)),null!=t&&(t.addEventListener("frameDrawn",this.handleFrameDrawn),this.addInteractionListeners(t))}handleUnitsChanged(){this.measurementUnits=new m(this.units)}handleCameraChanged(){this.updateCamera()}handleModeChanged(){this.warnIfDepthBuffersDisabled(),null!=this.viewer&&(this.removeInteractionListeners(this.viewer),this.addInteractionListeners(this.viewer))}handleStartChanged(){this.updateInteractionModel()}handleEndChanged(){this.updateInteractionModel()}handleInvalidChanged(){this.updateInteractionModel()}computePropsAndState(){this.updateCamera(),this.updateDepthBuffer(),this.updateMeasurementPropsFromModel(),this.updateOverlays()}updateOverlays(){var t;null===(t=this.overlay)||void 0===t||t.dispose(),this.showAxisReferenceLines&&0===this.interactionCount&&!this.invalid&&null!=this.start&&null!=this.end&&(this.overlay=this.overlays.addDistanceVector(this.start,this.end))}async setCursor(t){var i,e;null===(i=this.stateMap.hoverCursor)||void 0===i||i.dispose(),this.isUserInteractingWithModel||(this.stateMap.hoverCursor=await(null===(e=this.viewer)||void 0===e?void 0:e.addCursor(t)))}computeElementPositions(){return"replace"===this.mode?this.computeReplaceElementPositions():this.computeEditOrViewElementPositions()}computeEditOrViewElementPositions(){const t=this.model.getMeasurement();return null!=this.internalCamera&&null!=t?this.computeLineElementPositions(h.create(t)):{}}computeReplaceElementPositions(){if(null!=this.internalCamera){const t=this.model.getMeasurement(),i=null!=t?this.computeLineElementPositions(h.create(t)):{},e=null!=this.indicatorPt?{indicatorPt:this.viewport.transformWorldToViewport(this.indicatorPt,this.internalCamera.projectionViewMatrix)}:{};return Object.assign(Object.assign({},i),e)}return{}}computeLineElementPositions(t){return null!=this.internalCamera?y(t,this.interactingAnchor,{viewport:this.viewport,camera:this.internalCamera}):{}}updateCamera(){var t,i;this.internalCamera=this.camera||(null===(i=null===(t=this.viewer)||void 0===t?void 0:t.frame)||void 0===i?void 0:i.scene.camera)}async updateDepthBuffer(){var t,i;this.stateMap.depthBuffer=await(null===(i=null===(t=this.viewer)||void 0===t?void 0:t.frame)||void 0===i?void 0:i.depthBuffer())}updateViewport(){const t=this.hostEl.getBoundingClientRect();this.viewport=new f(t.width,t.height),this.elementBounds=t}updatePropsFromJson(){var t,i;this.start=H(null!==(t=this.startJson)&&void 0!==t?t:this.start),this.end=H(null!==(i=this.endJson)&&void 0!==i?i:this.end)}updateInteractionModel(){this.model.setMeasurementFromValues(this.start,this.end,!this.invalid)}invalidateState(){this.invalidateStateCounter=this.invalidateStateCounter+1}async addInteractionListeners(t){const i=await t.getInteractionTarget_DEPRECATED();"replace"===this.mode&&(i.addEventListener("pointermove",this.updateStartAnchor),i.addEventListener("pointerdown",this.newMeasurement),i.addEventListener("pointerleave",this.clearIndicator))}async removeInteractionListeners(t){const i=await t.getInteractionTarget_DEPRECATED();i.removeEventListener("pointermove",this.updateStartAnchor),i.removeEventListener("pointerdown",this.newMeasurement),i.removeEventListener("pointerleave",this.clearIndicator)}handleEditAnchor(t){if("edit"===this.mode||"replace"===this.mode){const i=this.createInteractionMoveHandler(),e=async t=>{var s;const n=this.getHitProvider();if(null!=n){window.removeEventListener("pointermove",i),window.removeEventListener("pointerup",e);const r=c(t,this.elementBounds),a=this.snapPoint(r,t);await(null===(s=this.interaction)||void 0===s?void 0:s.finish(a,n)),this.updateMeasurementPropsFromModel(),this.endEditing()}};return s=>{this.getStencilBuffer(),0===s.button&&(this.beginEditing("edit",t),this.interaction=this.controller.editMeasurement(t),window.addEventListener("pointermove",i),window.addEventListener("pointerup",e))}}}createInteractionMoveHandler(){return t=>{var i;const e=this.getHitProvider();if(null!=this.elementBounds&&null!=e){t.preventDefault(),this.getStencilBuffer();const s=c(t,this.elementBounds),n=this.snapPoint(s,t);null===(i=this.interaction)||void 0===i||i.update(n,e),this.updateMeasurementPropsFromModel()}}}async getStencilBuffer(){var t;const i=await(null===(t=this.viewer)||void 0===t?void 0:t.stencilBuffer.latestAfterInteraction());this.stateMap.stencil=i}snapPoint(t,i){const e=this.getHitProvider();if(null!=e&&!i.shiftKey){const i=Math.max(0,this.snapDistance);return e.hitTester().snapToNearestPixel(t,i)}return t}formatDistance(t){const i=null!=t?this.measurementUnits.convertWorldValueToReal(t):void 0;if(null!=this.labelFormatter)return this.labelFormatter(i);{const t=this.measurementUnits.unit.abbreviatedName;return null==i?"---":`~${i.toFixed(this.fractionalDigits)} ${t}`}}beginEditing(t,i){0===this.interactionCount&&(this.interactingAnchor=i,this.editBegin.emit({type:t,anchor:i})),this.interactionCount=this.interactionCount+1}endEditing(){if(1===this.interactionCount){const t=this.model.getMeasurement();this.interactingAnchor="none",this.updateMeasurementModel(),null!=t&&this.editEnd.emit(t)}this.interactionCount=this.interactionCount-1}updateMeasurementModel(){this.measurementModel.clearOutcome(),this.invalid||null==this.start||null==this.end||this.measurementModel.setOutcome({isApproximate:!0,results:[w(this.start,this.end)]})}getHitProvider(){if(null!=this.hitProvider)return this.hitProvider;{const t=this.getHitTester(),i=this.viewer;if(null!=i&&null!=t)return{hitTester:()=>t,raycaster:async()=>(await i.scene()).raycaster()}}}getHitTester(){const{stencil:t,depthBuffer:i}=this.stateMap;if(null!=i)return new E(t,i,this.viewport,this.internalCamera)}updateMeasurementPropsFromModel(){const t=this.model.getMeasurement();this.start=null==t?void 0:t.start,this.end=null==t?void 0:t.end,this.distance=null==t?void 0:t.distance,this.invalid=null!=t&&!t.valid}updateIndicator(t){var i;const e=this.getHitProvider();null!=e&&this.controller.moveIndicator(t,e)?this.setCursor(l):null===(i=this.stateMap.hoverCursor)||void 0===i||i.dispose()}warnIfDepthBuffersDisabled(){null!=this.viewer&&null==this.viewer.depthBuffers&&console.warn("Measurement editing is disabled. <vertex-viewer> must have its `depth-buffers` attribute set.")}get hostEl(){return n(this)}static get watchers(){return{viewer:["handleViewerChanged"],units:["handleUnitsChanged"],camera:["handleCameraChanged"],mode:["handleModeChanged"],start:["handleStartChanged"],end:["handleEndChanged"],invalid:["handleInvalidChanged"]}}};function H(t){return"string"==typeof t?r.fromJson(t):t}T.style=":host{--viewer-measurement-distance-accent-color:var(--neutral-900);--viewer-measurement-distance-contrast-color:var(--white);--viewer-measurement-distance-invalid-accent-color:var(--red-600);--viewer-measurement-distance-invalid-contrast-color:var(--white);--viewer-measurement-distance-line-stroke-width:1.25px;--viewer-measurement-distance-line-fill-width:2px;--viewer-measurement-distance-distance-border:1px solid\n var(--viewer-measurement-distance-accent-color);--viewer-measurement-distance-distance-border-radius:0.25rem;--viewer-measurement-distance-distance-padding:0.375rem 0.5rem;color:var(--viewer-measurement-distance-accent-color);font-size:0.75rem;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none}:host([invalid]:not([invalid='false'])){--viewer-measurement-distance-accent-color:var(\n --viewer-measurement-distance-invalid-accent-color\n ) !important;--viewer-measurement-distance-contrast-color:var(\n --viewer-measurement-distance-invalid-contrast-color\n ) !important}.line{--viewer-measurement-line-stroke:var(\n --viewer-measurement-distance-contrast-color\n );--viewer-measurement-line-stroke-opacity:0.75;--viewer-measurement-line-stroke-width:var(\n --viewer-measurement-distance-line-stroke-width\n );--viewer-measurement-line-fill:var(\n --viewer-measurement-distance-accent-color\n );--viewer-measurement-line-fill-width:var(\n --viewer-measurement-distance-line-fill-width\n );position:absolute;width:100%;height:100%}.anchor{position:absolute;border-radius:50%;transform:translate(-50%, -50%);display:block;pointer-events:auto}:host([interacting-anchor='start']) .anchor-start,:host([interacting-anchor='start']) .anchor-label-start{visibility:hidden}.hide-start-line-cap,:host([interacting-anchor='start']) .line{--viewer-measurement-line-start-cap-visibility:hidden}:host([interacting-anchor='end']) .anchor-end,:host([interacting-anchor='end']) .anchor-label-end{visibility:hidden}.hide-end-line-cap,:host([interacting-anchor='end']) .line{--viewer-measurement-line-end-cap-visibility:hidden}.anchor-label{position:absolute;border-radius:50%;transform:translate(-50%, -50%);display:block;pointer-events:auto}:host(:not([mode=''])){cursor:inherit}:host(:not([mode=''])) .anchor{cursor:move}:host([mode='']) .anchor{visibility:hidden}.anchor-placeholder{background:var(--viewer-measurement-distance-contrast-color);width:12px;height:12px;border-radius:50%;box-sizing:border-box}:host(:not([mode=''])) .anchor-placeholder{border:2px solid var(--viewer-measurement-distance-accent-color);background:var(--viewer-measurement-distance-contrast-color)}:host([mode='']) .distance-label{color:var(--viewer-measurement-distance-contrast-color);background:var(--viewer-measurement-distance-accent-color)}.distance-label{position:absolute;background:var(--viewer-measurement-distance-contrast-color);border:var(--viewer-measurement-distance-distance-border);border-radius:var(--viewer-measurement-distance-distance-border-radius);padding:var(--viewer-measurement-distance-distance-padding);pointer-events:auto}.indicator{position:absolute}.indicator-placeholder{background:var(--viewer-measurement-distance-accent-color);border:1px solid var(--viewer-measurement-distance-contrast-color);width:6px;height:6px;border-radius:50%;box-sizing:border-box}";export{T as vertex_viewer_measurement_distance}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/**!
|
|
2
|
+
* Copyright (c) 2023 Vertex Software LLC. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
function n(r,t,a){if(Array.isArray(t))return t.map(((t,e)=>n(r+e,t,a)));{const n=t.toObject();return{index:r,node:n,metadata:(e=a,o=n.columnsList,e.reduce(((n,r,t)=>(n[r]=o[t],n)),{})),data:{}}}var e,o}function r(n){return null!=n&&n.hasOwnProperty("node")}export{n as f,r as i}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**!
|
|
2
2
|
* Copyright (c) 2023 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{r as t,h as e,H as i}from"./p-d6fce4c1.js";import{s}from"./p-
|
|
4
|
+
import{r as t,h as e,H as i}from"./p-d6fce4c1.js";import{s}from"./p-2c07b773.js";import{a as n}from"./p-3a6fa239.js";import{p as r}from"./p-dde5650a.js";import{a as o,M as a}from"./p-787c2987.js";import"./p-817743a4.js";import{M as h}from"./p-acfc5c50.js";import{M as l}from"./p-283aeac4.js";import{p as d}from"./p-d216a866.js";import{a as p}from"./p-1812c82d.js";import{g as u}from"./p-42760392.js";import{E as c}from"./p-a380f0c2.js";import{E as m}from"./p-df8fbe56.js";import"./p-dfe5a97d.js";import"./p-fc7d8c03.js";import"./p-a7c29e95.js";var v=n.grpc,f=function(){function t(){}return t.serviceName="vertexvis.protobuf.sceneview.v1.SceneViewAPI",t}();function w(t,e){this.serviceHost=t,this.options=e||{}}f.UpdateModelEntities={methodName:"UpdateModelEntities",service:f,requestStream:!1,responseStream:!1,requestType:s.UpdateModelEntitiesRequest,responseType:s.UpdateModelEntitiesResponse},f.Measure={methodName:"Measure",service:f,requestStream:!1,responseStream:!1,requestType:s.MeasureRequest,responseType:s.MeasureResponse},w.prototype.updateModelEntities=function(t,e,i){2===arguments.length&&(i=arguments[1]);var s=v.unary(f.UpdateModelEntities,{request:t,host:this.serviceHost,metadata:e,transport:this.options.transport,debug:this.options.debug,onEnd:function(t){if(i)if(t.status!==v.Code.OK){var e=new Error(t.statusMessage);e.code=t.status,e.metadata=t.trailers,i(e,null)}else i(null,t.message)}});return{cancel:function(){i=null,s.close()}}},w.prototype.measure=function(t,e,i){2===arguments.length&&(i=arguments[1]);var s=v.unary(f.Measure,{request:t,host:this.serviceHost,metadata:e,transport:this.options.transport,debug:this.options.debug,onEnd:function(t){if(i)if(t.status!==v.Code.OK){var e=new Error(t.statusMessage);e.code=t.status,e.metadata=t.trailers,i(e,null)}else i(null,t.message)}});return{cancel:function(){i=null,s.close()}}};var y=w;class j{constructor(t,e){this.rectObserver=new c,this.handlePointerMove=async t=>{await this.isMeasurableEntityUnderPointer(t)?(this.clearCursor(),this.addCursor(p)):this.clearCursor()},this.handlePointerDown=t=>{this.ifNoInteraction(t,(async()=>{await this.isMeasurableEntityUnderPointer(t)?this.measureEntityUnderPointer(t):this.controller.clearEntities()}))},this.controller=t,this.measurableEntityTypes=e}get elementRect(){return this.rectObserver.rect}initialize(t,e){this.element=t,this.api=e,this.rectObserver.observe(t),t.addEventListener("pointermove",this.handlePointerMove),t.addEventListener("pointerdown",this.handlePointerDown)}dispose(){var t,e,i;this.rectObserver.disconnect(),null===(t=this.measurementInteraction)||void 0===t||t.dispose(),this.clearCursor(),null===(e=this.element)||void 0===e||e.removeEventListener("pointermove",this.handlePointerMove),null===(i=this.element)||void 0===i||i.removeEventListener("pointerdown",this.handlePointerDown),this.element=void 0,this.api=void 0}addCursor(t){this.cursor=this.ifInitialized((({api:e})=>e.addCursor(t)))}clearCursor(){var t;null===(t=this.cursor)||void 0===t||t.dispose(),this.cursor=void 0}async isMeasurableEntityUnderPointer(t){var e;const i=u(t,this.elementRect),s=await(null===(e=this.api)||void 0===e?void 0:e.getEntityTypeAtPoint(i));return null!=s&&this.measurableEntityTypes.includes(s)}measureEntityUnderPointer(t){this.ifInitialized((async({api:e})=>{const i=u(t,this.elementRect),[s]=await e.hitItems(i);null!=s?this.controller.addEntity(o.fromHit(s)):this.controller.clearEntities()}))}ifInitialized(t){if(null!=this.element&&null!=this.api)return t({element:this.element,api:this.api});throw new Error("Measurement interaction handler not initialized.")}ifNoInteraction(t,e){const i=d.create(t.clientX,t.clientY);let s=!1;const n=t=>{const e=d.create(t.clientX,t.clientY),n=d.distance(i,e);s=n>2},r=()=>{window.removeEventListener("pointermove",n),window.removeEventListener("pointerup",r),s||e()};window.addEventListener("pointermove",n),window.addEventListener("pointerup",r)}}const C=class{constructor(e){t(this,e),this.measurementModel=new h,this.measurementOverlays=new l,this.measurableEntityTypes=[m.PRECISE_SURFACE,m.IMPRECISE_SURFACE],this.configEnv="platprod"}connectedCallback(){this.setupInteractionHandler()}componentWillLoad(){this.setupController(),this.setupInteractionHandler()}disconnectedCallback(){this.clearInteractionHandler()}handleMeasurableEntityTypesChanged(){this.setupInteractionHandler()}handleMeasurementControllerChanged(){this.setupInteractionHandler()}handleMeasurementModelChanged(){this.setupController()}handleViewerChanged(){this.setupInteractionHandler()}render(){return e(i,null,e("vertex-viewer-measurement-overlays",{viewer:this.viewer,measurementOverlays:this.measurementOverlays}))}setupController(){var t;const e=r(this.configEnv,this.config),i=new y(e.network.sceneViewHost);this.measurementController=new a(this.measurementModel,i,(()=>{var t;return null===(t=this.viewer)||void 0===t?void 0:t.token}),null===(t=this.viewer)||void 0===t?void 0:t.deviceId)}clearInteractionHandler(){var t;null===(t=this.registeredInteractionHandler)||void 0===t||t.then((t=>t.dispose())),this.registeredInteractionHandler=void 0}setupInteractionHandler(){var t;this.clearInteractionHandler(),null!=this.measurementController&&(this.registeredInteractionHandler=null===(t=this.viewer)||void 0===t?void 0:t.registerInteractionHandler(new j(this.measurementController,this.measurableEntityTypes)))}static get watchers(){return{measurableEntityTypes:["handleMeasurableEntityTypesChanged"],measurementController:["handleMeasurementControllerChanged"],measurementModel:["handleMeasurementModelChanged"],viewer:["handleViewerChanged"]}}};C.style=":host{display:block;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none}";export{C as vertex_viewer_measurement_precise}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**!
|
|
2
2
|
* Copyright (c) 2023 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{r as t,c as n,h as i,H as s,g as e}from"./p-d6fce4c1.js";import{v as o,q as h,m as a,u as r}from"./p-d216a866.js";import{o as l}from"./p-fc7d8c03.js";import"./p-
|
|
4
|
+
import{r as t,c as n,h as i,H as s,g as e}from"./p-d6fce4c1.js";import{v as o,q as h,m as a,u as r}from"./p-d216a866.js";import{o as l}from"./p-fc7d8c03.js";import"./p-817743a4.js";import"./p-df8fbe56.js";import{V as d}from"./p-0a017be7.js";import"./p-a7c29e95.js";import"./p-dfe5a97d.js";const c=class{constructor(i){t(this,i),this.propertyChange=n(this,"propertyChange",7),this.position=o.origin(),this.positionJson="",this.quaternion=h.create(),this.quaternionJson="",this.scale=o.create(1,1,1),this.scaleJson="",this.matrix=a.makeIdentity(),this.occlusionOff=!1,this.occluded=!1,this.billboardOff=!1,this.interactionsOff=!1}handlePositionChange(){this.syncMatrix()}handlePositionJsonChanged(){this.syncPosition()}handleRotationChanged(){this.syncQuaternionWithRotation()}handleRotationJsonChanged(){this.syncRotation()}handleQuaternionChange(){this.syncMatrix()}handleQuaternionJsonChanged(){this.syncQuaternion()}handleScaleChange(){this.syncMatrix()}handleScaleJsonChanged(){this.syncScale()}handleMatrixChanged(t,n){l.isEqual(t,n)||this.propertyChange.emit()}connectedCallback(){this.syncProperties()}componentShouldUpdate(t,n,i){return"occluded"===i}syncProperties(){this.syncPosition(),this.syncRotation(),this.syncQuaternion(),this.syncScale(),this.syncMatrix()}syncPosition(){this.position=this.positionJson.length>0?this.parseJson("positionJson",this.positionJson,o.fromJson):this.position}syncRotation(){this.rotation=null!=this.rotationJson&&this.rotationJson.length>0?this.parseJson("rotationJson",this.rotationJson,r.fromJson):this.rotation,this.syncQuaternionWithRotation()}syncQuaternionWithRotation(){this.quaternion=null!=this.rotation?h.fromEuler(this.rotation):this.quaternion}syncQuaternion(){this.quaternion=this.quaternionJson.length>0?this.parseJson("quaternionJson",this.quaternionJson,h.fromJson):this.quaternion}syncScale(){this.scale=this.scaleJson.length>0?this.parseJson("scaleJson",this.scaleJson,o.fromJson):this.scale}syncMatrix(){this.matrix=a.makeTRS(this.position,this.quaternion,this.scale)}parseJson(t,n,i){try{return i(n)}catch(n){throw console.warn(`Could not parse \`${t}\`. Invalid JSON.`),n}}render(){return i(s,null,i("slot",null))}static get watchers(){return{position:["handlePositionChange"],positionJson:["handlePositionJsonChanged"],rotation:["handleRotationChanged"],rotationJson:["handleRotationJsonChanged"],quaternion:["handleQuaternionChange"],quaternionJson:["handleQuaternionJsonChanged"],scale:["handleScaleChange"],scaleJson:["handleScaleJsonChanged"],matrix:["handleMatrixChanged"]}}};function u(t){return t instanceof HTMLElement&&"VERTEX-VIEWER-DOM-ELEMENT"===t.nodeName}function p(t){return t instanceof HTMLElement&&"VERTEX-VIEWER-DOM-GROUP"===t.nodeName||t instanceof HTMLElement&&null!=t.dataset.isDomGroupElement}c.style=":host{position:absolute;pointer-events:none;visibility:hidden}:host(.hydrated){visibility:hidden}:host(.ready){visibility:inherit}:host(:not([interactions-off]))>*{pointer-events:auto}";const m=(t,n)=>i("div",{class:"root-2d"},n);function f(t,n,i,s,e){const o=v(t,n,s).sort(((t,n)=>t.distanceToCamera-n.distanceToCamera));for(let t=0;t<o.length;t++){const{element:n,worldMatrix:h,worldPosition:a}=o[t],r=!n.occlusionOff&&(null==e?void 0:e.isOccluded(a,i));g(n,w(a,s.projectionViewMatrix,i)),C(n,t,o.length),f(n,h,i,s,e),n.occluded=null!=r&&r,n.classList.add("ready")}}function v(t,n,i){const s=[];for(let e=0;e<t.children.length;e++){const h=t.children[e];if(p(h)){const t=a.multiply(n,h.matrix);s.push(...v(h,t,i))}else if(u(h)){const t=a.multiply(n,h.matrix),e=o.fromMatrixPosition(t),r=o.distanceSquared(i.position,e);s.push({element:h,worldMatrix:t,worldPosition:e,distanceToCamera:r})}}return s}function g(t,n){t.style.transform=["translate(-50%, -50%)",`translate(${n.x}px, ${n.y}px)`].join(" ")}function C(t,n,i){t.style.zIndex=""+(i-n)}function w(t,n,i){const s=o.transformMatrix(t,n);return i.transformVectorToViewport(s)}const y=({camera:t,viewport:n},s)=>{const e=a.toObject(t.projectionMatrix),o=t.isOrthographic()?2*t.far/(2*t.fovHeight)*(n.height/2):e.m22*(n.height/2),h=[`translateZ(${o}px)`,(r=t.viewMatrix,`matrix3d(${[M(r[0]),M(-r[1]),M(r[2]),M(r[3]),M(r[4]),M(-r[5]),M(r[6]),M(r[7]),M(r[8]),M(-r[9]),M(r[10]),M(r[11]),M(r[12]),M(-r[13]),M(r[14]),M(r[15])].join(", ")})`),`translate(${n.width/2}px, ${n.height/2}px)`].join(" ");var r;return i("div",{class:"root-3d",style:{perspective:`${o}px`}},i("div",{class:"camera",style:{transform:h}},s))};function J(t,n,i,s,e){for(let o=0;o<t.children.length;o++){const h=t.children[o];u(h)?x(h,n,i,s,e):p(h)&&E(h,n,i,s,e)}}function x(t,n,i,s,e){const h=a.multiply(n,t.matrix),r=o.fromMatrixPosition(h),l=!t.occlusionOff&&(null==e?void 0:e.isOccluded(r,i));if(t.occluded=null!=l&&l,t.classList.add("ready"),t.billboardOff)t.style.transform=R(h);else{let n=s.viewMatrix;n=a.transpose(n),n=a.position(n,h),n=a.scale(n,t.scale),n[3]=0,n[7]=0,n[11]=0,n[15]=1,t.style.transform=R(n)}J(t,h,i,s,e)}function E(t,n,i,s,e){J(t,a.multiply(n,t.matrix),i,s,e)}function R(t){return["translate(-50%, -50%)",`matrix3d(${[M(t[0]),M(t[1]),M(t[2]),M(t[3]),M(-t[4]),M(-t[5]),M(-t[6]),M(-t[7]),M(t[8]),M(t[9]),M(t[10]),M(t[11]),M(t[12]),M(t[13]),M(t[14]),M(t[15])].join(", ")})`].join(" ")}function M(t){return Math.abs(t)<1e-10?0:t}const b=class{constructor(n){t(this,n),this.drawMode="3d",this.viewport=new d(0,0),this.invalidateFrameCounter=0,this.handleViewerFrameDrawn=async()=>{this.updatePropsFromViewer()}}componentWillLoad(){var t;new ResizeObserver((()=>this.handleResize())).observe(this.hostEl),new MutationObserver((()=>this.handleChildrenChange())).observe(this.hostEl,{childList:!0}),this.handleViewerChange(this.viewer,void 0),null!=(null===(t=this.viewer)||void 0===t?void 0:t.frame)&&this.handleViewerFrameDrawn()}render(){return null!=this.camera?i(s,null,"2d"===this.drawMode?i(m,null,i("slot",null)):i(y,{camera:this.camera,viewport:this.viewport},i("slot",null))):i(s,null)}componentWillRender(){this.updateElements()}handleViewerChange(t,n){null==n||n.removeEventListener("frameDrawn",this.handleViewerFrameDrawn),null==t||t.addEventListener("frameDrawn",this.handleViewerFrameDrawn)}handlePropertyChange(){this.invalidateFrame()}invalidateFrame(){this.invalidateFrameCounter=this.invalidateFrameCounter+1}async updateElements(){const{viewport:t,camera:n}=this,i=a.makeIdentity();null!=n&&("3d"===this.drawMode?J(this.hostEl,i,t,n,this.depthBuffer):f(this.hostEl,i,t,n,this.depthBuffer))}handleResize(){const t=this.hostEl.getBoundingClientRect();this.viewport=new d(t.width,t.height)}handleChildrenChange(){this.invalidateFrame()}async updatePropsFromViewer(){const{frame:t,depthBuffers:n}=this.viewer||{};this.depthBuffer="all"===n?await(null==t?void 0:t.depthBuffer()):void 0,this.camera=null==t?void 0:t.scene.camera}get hostEl(){return e(this)}static get watchers(){return{viewer:["handleViewerChange"]}}};b.style=":host{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none}.root-3d{width:100%;height:100%;pointer-events:inherit}.camera{transform-style:preserve-3d;pointer-events:inherit;width:100%;height:100%}";export{c as vertex_viewer_dom_element,b as vertex_viewer_dom_renderer}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**!
|
|
2
2
|
* Copyright (c) 2023 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{o as e}from"./p-fc7d8c03.js";import"./p-
|
|
4
|
+
import{o as e}from"./p-fc7d8c03.js";import"./p-817743a4.js";import"./p-df8fbe56.js";const t={network:{apiHost:"https://platform.platprod.vertexvis.io",renderingHost:"wss://stream.platprod.vertexvis.io",sceneTreeHost:"https://scene-trees.platprod.vertexvis.io",sceneViewHost:"https://scenes.platprod.vertexvis.io"},flags:{throttleFrameDelivery:!0,adaptiveRendering:!0,logWsMessages:!1,logFrameRate:!1,letterboxFrames:!1,grpcUseStreamingWebSocketTransport:!0},events:{doubleTapThreshold:500,longPressThreshold:500},animation:{durationMs:500},interactions:{finePointerThreshold:1,coarsePointerThreshold:3,interactionDelay:75},EXPERIMENTAL_frameDelivery:{},EXPERIMENTAL_adaptiveRendering:{},EXPERIMENTAL_qualityOfService:{}},s=Object.assign(Object.assign({},t),{network:{apiHost:"https://platform.platdev.vertexvis.io",renderingHost:"wss://stream.platdev.vertexvis.io",sceneTreeHost:"https://scene-trees.platdev.vertexvis.io",sceneViewHost:"https://scenes.platdev.vertexvis.io"}}),r=Object.assign(Object.assign({},t),{network:{apiHost:"https://platform.platstaging.vertexvis.io",renderingHost:"wss://stream.platstaging.vertexvis.io",sceneTreeHost:"https://scene-trees.platstaging.vertexvis.io",sceneViewHost:"https://scenes.platstaging.vertexvis.io"}});function o(e){switch(e){case"platdev":return s;case"platstaging":return r;default:return t}}function i(t="platprod",s){"string"==typeof s&&(s=JSON.parse(s));const r=o(t);return null==s?r:e.defaults(Object.assign({},s),r)}export{i as p}
|