@vertexvis/viewer 0.15.2-canary.0 → 0.15.2-testing.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/cjs/{config-aec561b9.js → config-4a86ae0b.js} +2 -1
  2. package/dist/cjs/{entities-7b2e8c03.js → entities-496b61cd.js} +2 -2
  3. package/dist/cjs/index.cjs.js +4 -4
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/{mapper-0f2294a6.js → mapper-216603b0.js} +1 -1
  6. package/dist/cjs/{scene-56438693.js → scene-cb169b09.js} +25 -1
  7. package/dist/cjs/{streamAttributes-c64aee75.js → streamAttributes-7725f5c4.js} +976 -4
  8. package/dist/cjs/vertex-scene-tree.cjs.entry.js +17 -3
  9. package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js +1 -1
  10. package/dist/cjs/vertex-viewer-drag-select.cjs.entry.js +177 -0
  11. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +1 -1
  12. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +2 -2
  13. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +2 -2
  14. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +4 -4
  15. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +2 -2
  16. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +1 -1
  17. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +1 -1
  18. package/dist/cjs/vertex-viewer.cjs.entry.js +3 -3
  19. package/dist/cjs/viewer.cjs.js +1 -1
  20. package/dist/collection/collection-manifest.json +1 -0
  21. package/dist/collection/components/scene-tree/lib/grpc.js +11 -1
  22. package/dist/collection/components/scene-tree/scene-tree.js +7 -2
  23. package/dist/collection/components/viewer-drag-select/controller.js +18 -0
  24. package/dist/collection/components/viewer-drag-select/interaction-handler.js +41 -0
  25. package/dist/collection/components/viewer-drag-select/model.js +49 -0
  26. package/dist/collection/components/viewer-drag-select/viewer-drag-select.css +36 -0
  27. package/dist/collection/components/viewer-drag-select/viewer-drag-select.js +115 -0
  28. package/dist/collection/lib/scenes/mapper.js +11 -1
  29. package/dist/collection/lib/scenes/queries.js +15 -1
  30. package/dist/collection/lib/types/flags.js +2 -1
  31. package/dist/custom-elements/index.d.ts +6 -0
  32. package/dist/custom-elements/index.js +1184 -6
  33. package/dist/esm/{config-d574c78c.js → config-6cdeb6ca.js} +2 -1
  34. package/dist/esm/{entities-a5bfef48.js → entities-6f3c5437.js} +2 -2
  35. package/dist/esm/index.js +4 -4
  36. package/dist/esm/index.mjs +4 -4
  37. package/dist/esm/loader.js +1 -1
  38. package/dist/esm/loader.mjs +1 -1
  39. package/dist/esm/{mapper-5894c2a4.js → mapper-941ff03c.js} +1 -1
  40. package/dist/esm/{scene-5b919078.js → scene-6f98b0dd.js} +25 -1
  41. package/dist/esm/{streamAttributes-7e8565be.js → streamAttributes-24bd7b3a.js} +976 -4
  42. package/dist/esm/vertex-scene-tree.entry.js +17 -3
  43. package/dist/esm/vertex-viewer-dom-element_2.entry.js +1 -1
  44. package/dist/esm/vertex-viewer-drag-select.entry.js +173 -0
  45. package/dist/esm/vertex-viewer-measurement-details.entry.js +1 -1
  46. package/dist/esm/vertex-viewer-measurement-distance.entry.js +2 -2
  47. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +2 -2
  48. package/dist/esm/vertex-viewer-measurement-precise.entry.js +4 -4
  49. package/dist/esm/vertex-viewer-pin-group.entry.js +2 -2
  50. package/dist/esm/vertex-viewer-transform-widget.entry.js +1 -1
  51. package/dist/esm/vertex-viewer-view-cube.entry.js +1 -1
  52. package/dist/esm/vertex-viewer.entry.js +3 -3
  53. package/dist/esm/viewer.js +1 -1
  54. package/dist/types/components/scene-tree/lib/grpc.d.ts +2 -0
  55. package/dist/types/components/viewer-drag-select/controller.d.ts +9 -0
  56. package/dist/types/components/viewer-drag-select/interaction-handler.d.ts +15 -0
  57. package/dist/types/components/viewer-drag-select/model.d.ts +25 -0
  58. package/dist/types/components/viewer-drag-select/viewer-drag-select.d.ts +27 -0
  59. package/dist/types/components.d.ts +24 -0
  60. package/dist/types/lib/scenes/queries.d.ts +12 -2
  61. package/dist/types/lib/types/flags.d.ts +7 -1
  62. package/dist/viewer/index.esm.js +1 -1
  63. package/dist/viewer/{p-e63c1703.entry.js → p-1bba9ade.entry.js} +1 -1
  64. package/dist/viewer/{p-3f6f2457.entry.js → p-24cda14a.entry.js} +1 -1
  65. package/dist/viewer/{p-b7e170ac.entry.js → p-2b58afc3.entry.js} +1 -1
  66. package/dist/viewer/{p-1fc24ec6.js → p-52ab9ec0.js} +1 -1
  67. package/dist/viewer/p-597cc9b5.js +4 -0
  68. package/dist/viewer/{p-61e50e11.entry.js → p-608925c5.entry.js} +1 -1
  69. package/dist/viewer/p-68e192b9.js +4 -0
  70. package/dist/viewer/{p-d34ad2b2.entry.js → p-69a3fce8.entry.js} +1 -1
  71. package/dist/viewer/{p-d78f54a6.entry.js → p-74c772bb.entry.js} +1 -1
  72. package/dist/viewer/{p-40a9dd7d.js → p-9e1384c9.js} +1 -1
  73. package/dist/viewer/{p-d64c1e14.entry.js → p-a107b65e.entry.js} +2 -2
  74. package/dist/viewer/{p-b278cf0b.entry.js → p-a5f18e7b.entry.js} +1 -1
  75. package/dist/viewer/p-ae31d912.entry.js +4 -0
  76. package/dist/viewer/{p-920c9a88.entry.js → p-bfacbaa8.entry.js} +1 -1
  77. package/dist/viewer/{p-f3ea0c2b.entry.js → p-c72da0fb.entry.js} +1 -1
  78. package/dist/viewer/{p-1e0dd2e9.js → p-cea5d8bd.js} +1 -1
  79. package/dist/viewer/viewer.esm.js +1 -1
  80. package/package.json +8 -8
  81. package/dist/viewer/p-31b87b90.js +0 -4
  82. package/dist/viewer/p-5317e8cd.js +0 -4
@@ -1,4 +1,4 @@
1
1
  /**!
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{h as i,F as t,r as n}from"./p-d6fce4c1.js";import{p as e,m as o,v as s}from"./p-70e5e8a8.js";import"./p-3ca4a7c1.js";import"./p-1fc24ec6.js";import"./p-92fe4417.js";import"./p-31b87b90.js";import"./p-df8fbe56.js";import{V as r}from"./p-29986489.js";import{g as a,i as l,b as p,P as h,a as d,c as v}from"./p-27dbc865.js";import{c}from"./p-07aeee89.js";import"./p-65af7a89.js";import"./p-dfe5a97d.js";const u=({pin:n,selected:e})=>{const{primaryColor:o}=a(n);return i(t,null,p(n)&&i("div",{id:"pin-anchor",class:c("pin-anchor",{selected:e}),style:{background:o}}),l(n)&&i("vertex-viewer-icon",{name:"pin-fill",size:"lg",class:c("pin",{"pin-selected":e}),style:{color:o}}))};function w(i,t,n){const o=[{x:i.x+n.width/2,y:i.y},{x:i.x+n.width/2,y:i.y+n.height},{x:i.x,y:i.y+n.height/2},{x:i.x+n.width,y:i.y+n.height/2}],s=o.map((i=>e.distance(i,t)));return o[s.indexOf(Math.min(...s))]}const b=class{constructor(i){n(this,i),this.matrix=o.makeIdentity(),this.projectionViewMatrix=o.makeIdentity(),this.pinModel=new h,this.selected=!1,this.invalidateStateCounter=0,this.invalidateState=()=>{this.invalidateStateCounter=this.invalidateStateCounter+1}}componentDidLoad(){this.setLabelObserver(),null==this.pinController&&(this.pinController=new d(this.pinModel))}disconnectedCallback(){var i,t;null===(i=this.labelEl)||void 0===i||i.removeEventListener("labelChanged",this.invalidateState),null===(t=this.resizeObserver)||void 0===t||t.disconnect()}render(){var n;if(null==this.pin)throw new Error("Unable to draw pin");const{pinPoint:e,labelPoint:o}=this.computePinPoints(this.pin);return i(t,null,i("vertex-viewer-dom-element",{"data-testid":`drawn-pin-${this.pin.id}`,position:this.pin.worldPosition,onPointerDown:i=>{2!==i.buttons&&i.stopPropagation(),this.selectPin(),this.handleAnchorPointerDown()}},i(u,{pin:this.pin,selected:this.selected})),p(this.pin)&&i(t,null,i("vertex-viewer-pin-label-line",{id:`pin-label-line-${null===(n=this.pin)||void 0===n?void 0:n.id}`,pinPoint:e,pin:this.pin,labelPoint:o,onPointerDown:()=>this.selectPin()}),i("vertex-viewer-pin-label",{pin:this.pin,ref:i=>this.labelEl=i,elementBounds:this.elementBounds,pinController:this.pinController,onPointerDown:()=>this.selectPin()})))}setLabelObserver(){null!=this.labelEl&&(this.labelEl.addEventListener("labelChanged",this.invalidateState),this.resizeObserver=new ResizeObserver((()=>this.invalidateState())),this.resizeObserver.observe(this.labelEl))}computePinPoints(i){return null!=this.elementBounds&&null!=this.pin?p(this.pin)&&null!=this.pin.label.point?this.computeTextPinPoints(this.pin,this.elementBounds):this.computeDefaultPinPoints(this.pin,this.elementBounds):{pinPoint:i.worldPosition}}computeDefaultPinPoints(i,t){return{pinPoint:this.getFromWorldPosition(i.worldPosition,this.projectionViewMatrix,t)}}computeTextPinPoints(i,t){var n,e,o,s;const{pinPoint:r}=this.computeDefaultPinPoints(i,t);return{pinPoint:r,labelPoint:w(v(i.label.point,t),r,{width:(null===(e=null===(n=this.labelEl)||void 0===n?void 0:n.firstElementChild)||void 0===e?void 0:e.clientWidth)||0,height:(null===(s=null===(o=this.labelEl)||void 0===o?void 0:o.firstElementChild)||void 0===s?void 0:s.clientHeight)||0})}}handleAnchorPointerDown(){var i,t;null!=this.elementBounds&&"edit"===(null===(i=this.pinController)||void 0===i?void 0:i.getToolMode())&&null!=this.pin&&(null===(t=this.pinController)||void 0===t||t.setDraggable({id:this.pin.id}))}selectPin(){var i,t;null===(i=this.pinController)||void 0===i||i.setSelectedPinId(null===(t=this.pin)||void 0===t?void 0:t.id)}getFromWorldPosition(i,t,n){const e=s.transformMatrix(i,t);return r.fromDimensions(n).transformVectorToViewport(e)}};b.style=":host{--viewer-annotations-pin-primary-color:var(--blue-700);--viewer-annotations-pin-accent-color:var(--blue-200);--viewer-annotations-pin-dot-color:var(--viewer-annotations-pin-primary-color);--viewer-annotations-pin-color:var(--viewer-annotations-pin-primary-color);--viewer-annotations-pin-font-size:0.75rem;--viewer-annotations-pin-selected-stroke:var(--white);--viewer-annotations-pin-selected-border:2px solid var(--white);--viewer-annotations-pin-label-border:2px solid var(--black);--viewer-annotations-pin-selected-stroke:var(--white);font-size:var(--viewer-annotations-pin-font-size);position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none}.pin-anchor{position:absolute;border-radius:50%;transform:translate(-50%, -50%);display:block;width:9px;height:9px;box-sizing:border-box;border:var(--viewer-annotations-pin-label-border);background:var(--viewer-annotations-pin-dot-color);pointer-events:auto;cursor:pointer}.selected{width:13px;height:13px;border:var(--viewer-annotations-pin-selected-border)}.pin{color:var(--viewer-annotations-pin-color);cursor:pointer}.pin-selected{stroke-width:1;stroke:var(--viewer-annotations-pin-selected-stroke)}";export{b as vertex_viewer_pin_group}
4
+ import{h as i,F as t,r as n}from"./p-d6fce4c1.js";import{p as e,m as o,v as s}from"./p-70e5e8a8.js";import"./p-3ca4a7c1.js";import"./p-52ab9ec0.js";import"./p-92fe4417.js";import"./p-68e192b9.js";import"./p-df8fbe56.js";import{V as r}from"./p-29986489.js";import{g as a,i as l,b as p,P as h,a as d,c as v}from"./p-27dbc865.js";import{c}from"./p-07aeee89.js";import"./p-65af7a89.js";import"./p-dfe5a97d.js";const u=({pin:n,selected:e})=>{const{primaryColor:o}=a(n);return i(t,null,p(n)&&i("div",{id:"pin-anchor",class:c("pin-anchor",{selected:e}),style:{background:o}}),l(n)&&i("vertex-viewer-icon",{name:"pin-fill",size:"lg",class:c("pin",{"pin-selected":e}),style:{color:o}}))};function w(i,t,n){const o=[{x:i.x+n.width/2,y:i.y},{x:i.x+n.width/2,y:i.y+n.height},{x:i.x,y:i.y+n.height/2},{x:i.x+n.width,y:i.y+n.height/2}],s=o.map((i=>e.distance(i,t)));return o[s.indexOf(Math.min(...s))]}const b=class{constructor(i){n(this,i),this.matrix=o.makeIdentity(),this.projectionViewMatrix=o.makeIdentity(),this.pinModel=new h,this.selected=!1,this.invalidateStateCounter=0,this.invalidateState=()=>{this.invalidateStateCounter=this.invalidateStateCounter+1}}componentDidLoad(){this.setLabelObserver(),null==this.pinController&&(this.pinController=new d(this.pinModel))}disconnectedCallback(){var i,t;null===(i=this.labelEl)||void 0===i||i.removeEventListener("labelChanged",this.invalidateState),null===(t=this.resizeObserver)||void 0===t||t.disconnect()}render(){var n;if(null==this.pin)throw new Error("Unable to draw pin");const{pinPoint:e,labelPoint:o}=this.computePinPoints(this.pin);return i(t,null,i("vertex-viewer-dom-element",{"data-testid":`drawn-pin-${this.pin.id}`,position:this.pin.worldPosition,onPointerDown:i=>{2!==i.buttons&&i.stopPropagation(),this.selectPin(),this.handleAnchorPointerDown()}},i(u,{pin:this.pin,selected:this.selected})),p(this.pin)&&i(t,null,i("vertex-viewer-pin-label-line",{id:`pin-label-line-${null===(n=this.pin)||void 0===n?void 0:n.id}`,pinPoint:e,pin:this.pin,labelPoint:o,onPointerDown:()=>this.selectPin()}),i("vertex-viewer-pin-label",{pin:this.pin,ref:i=>this.labelEl=i,elementBounds:this.elementBounds,pinController:this.pinController,onPointerDown:()=>this.selectPin()})))}setLabelObserver(){null!=this.labelEl&&(this.labelEl.addEventListener("labelChanged",this.invalidateState),this.resizeObserver=new ResizeObserver((()=>this.invalidateState())),this.resizeObserver.observe(this.labelEl))}computePinPoints(i){return null!=this.elementBounds&&null!=this.pin?p(this.pin)&&null!=this.pin.label.point?this.computeTextPinPoints(this.pin,this.elementBounds):this.computeDefaultPinPoints(this.pin,this.elementBounds):{pinPoint:i.worldPosition}}computeDefaultPinPoints(i,t){return{pinPoint:this.getFromWorldPosition(i.worldPosition,this.projectionViewMatrix,t)}}computeTextPinPoints(i,t){var n,e,o,s;const{pinPoint:r}=this.computeDefaultPinPoints(i,t);return{pinPoint:r,labelPoint:w(v(i.label.point,t),r,{width:(null===(e=null===(n=this.labelEl)||void 0===n?void 0:n.firstElementChild)||void 0===e?void 0:e.clientWidth)||0,height:(null===(s=null===(o=this.labelEl)||void 0===o?void 0:o.firstElementChild)||void 0===s?void 0:s.clientHeight)||0})}}handleAnchorPointerDown(){var i,t;null!=this.elementBounds&&"edit"===(null===(i=this.pinController)||void 0===i?void 0:i.getToolMode())&&null!=this.pin&&(null===(t=this.pinController)||void 0===t||t.setDraggable({id:this.pin.id}))}selectPin(){var i,t;null===(i=this.pinController)||void 0===i||i.setSelectedPinId(null===(t=this.pin)||void 0===t?void 0:t.id)}getFromWorldPosition(i,t,n){const e=s.transformMatrix(i,t);return r.fromDimensions(n).transformVectorToViewport(e)}};b.style=":host{--viewer-annotations-pin-primary-color:var(--blue-700);--viewer-annotations-pin-accent-color:var(--blue-200);--viewer-annotations-pin-dot-color:var(--viewer-annotations-pin-primary-color);--viewer-annotations-pin-color:var(--viewer-annotations-pin-primary-color);--viewer-annotations-pin-font-size:0.75rem;--viewer-annotations-pin-selected-stroke:var(--white);--viewer-annotations-pin-selected-border:2px solid var(--white);--viewer-annotations-pin-label-border:2px solid var(--black);--viewer-annotations-pin-selected-stroke:var(--white);font-size:var(--viewer-annotations-pin-font-size);position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none}.pin-anchor{position:absolute;border-radius:50%;transform:translate(-50%, -50%);display:block;width:9px;height:9px;box-sizing:border-box;border:var(--viewer-annotations-pin-label-border);background:var(--viewer-annotations-pin-dot-color);pointer-events:auto;cursor:pointer}.selected{width:13px;height:13px;border:var(--viewer-annotations-pin-selected-border)}.pin{color:var(--viewer-annotations-pin-color);cursor:pointer}.pin-selected{stroke-width:1;stroke:var(--viewer-annotations-pin-selected-stroke)}";export{b as vertex_viewer_pin_group}
@@ -1,4 +1,4 @@
1
1
  /**!
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{r as e,h as i,F as t,H as s}from"./p-d6fce4c1.js";import{p as r,h as a}from"./p-70e5e8a8.js";import"./p-1fc24ec6.js";import"./p-92fe4417.js";import"./p-31b87b90.js";import{M as n}from"./p-7f6251da.js";import{t as l}from"./p-1abfe4bf.js";import"./p-dfe5a97d.js";import"./p-65af7a89.js";import"./p-df8fbe56.js";const o=class{constructor(i){e(this,i),this.start=r.create(),this.end=r.create(),this.capLength=0,this.pointerEvents="none"}render(){const e=a.fromPoints(this.start,this.end),t=m(this.start,this.end,e,this.capLength),s=m(this.start,this.end,e,this.capLength+1);return i("svg",null,i("g",{class:"line-stroke","pointer-events":this.pointerEvents},i("line",{class:"line",x1:this.start.x,y1:this.start.y,x2:this.end.x,y2:this.end.y}),i("line",{class:"start-cap",x1:s.startEndCap.start.x,y1:s.startEndCap.start.y,x2:s.startEndCap.end.x,y2:s.startEndCap.end.y}),i("line",{class:"end-cap",x1:s.endEndCap.start.x,y1:s.endEndCap.start.y,x2:s.endEndCap.end.x,y2:s.endEndCap.end.y})),i("g",{class:"line-fill","pointer-events":this.pointerEvents},i("line",{class:"line",x1:this.start.x,y1:this.start.y,x2:this.end.x,y2:this.end.y}),i("line",{class:"start-cap",x1:t.startEndCap.start.x,y1:t.startEndCap.start.y,x2:t.startEndCap.end.x,y2:t.startEndCap.end.y}),i("line",{class:"end-cap",x1:t.endEndCap.start.x,y1:t.endEndCap.start.y,x2:t.endEndCap.end.x,y2:t.endEndCap.end.y})))}};function m(e,i,t,s){return{startEndCap:v(e,t,s),endEndCap:v(i,t,s)}}function v(e,i,t){const s=i+Math.PI/2;return{start:r.add(e,r.polar(t/2,s)),end:r.add(e,r.polar(t/2,s+Math.PI))}}o.style=":host{display:block;--viewer-measurement-line-stroke:var(--white);--viewer-measurement-line-stroke-opacity:0.75;--viewer-measurement-line-stroke-width:1.25px;--viewer-measurement-line-fill:var(--neutral-900);--viewer-measurement-line-fill-width:2px;--viewer-measurement-line-start-cap-visibility:initial;--viewer-measurement-line-end-cap-visibility:initial}svg{width:100%;height:100%}.line-stroke{stroke-width:calc(\n var(--viewer-measurement-line-fill-width) +\n var(--viewer-measurement-line-stroke-width)\n );stroke:var(--viewer-measurement-line-stroke);opacity:var(--viewer-measurement-line-stroke-opacity)}.line-fill{stroke-width:var(--viewer-measurement-line-fill-width);stroke:var(--viewer-measurement-line-fill)}.start-cap{visibility:var(--viewer-measurement-line-start-cap-visibility)}.end-cap{visibility:var(--viewer-measurement-line-end-cap-visibility)}";const h=({overlay:e,viewport:t,camera:s})=>i("line"===e.type?c:u,{overlay:e,viewport:t,camera:s}),c=({overlay:e,camera:t,viewport:s})=>{const{start:r,end:a}=l(e,{camera:t,viewport:s});return i("vertex-viewer-measurement-line",{class:"measurement-line",start:r,end:a})},u=({overlay:{x:e,y:s,z:r},camera:a,viewport:n})=>{const o={camera:a,viewport:n},{start:m,end:v}=l(e,o),{start:h,end:c}=l(s,o),{start:u,end:d}=l(r,o);return i(t,null,i("vertex-viewer-measurement-line",{class:"measurement-line distance-vector-x",start:m,end:v}),i("vertex-viewer-measurement-line",{class:"measurement-line distance-vector-y",start:h,end:c}),i("vertex-viewer-measurement-line",{class:"measurement-line distance-vector-z",start:u,end:d}))},d=class{constructor(i){e(this,i),this.measurementOverlays=new n,this.overlays=[],this.updateCamera=()=>{var e,i;this.camera=null===(i=null===(e=this.viewer)||void 0===e?void 0:e.frame)||void 0===i?void 0:i.scene.camera}}handleMeasurementOverlaysChanged(){this.removeModelListeners(),this.addModelListeners(),this.updateOverlays()}handleViewerChanged(e,i){this.removeViewerListeners(i),this.addViewerListeners(),this.updateCamera()}componentWillLoad(){this.addModelListeners(),this.addViewerListeners(),this.updateOverlays(),this.updateCamera()}addModelListeners(){this.onOverlaysChangedListener=this.measurementOverlays.onOverlaysChanged((()=>this.updateOverlays()))}removeModelListeners(){var e;null===(e=this.onOverlaysChangedListener)||void 0===e||e.dispose(),this.onOverlaysChangedListener=void 0}addViewerListeners(){var e;null===(e=this.viewer)||void 0===e||e.addEventListener("frameReceived",this.updateCamera)}removeViewerListeners(e){null==e||e.removeEventListener("frameReceived",this.updateCamera)}updateOverlays(){this.overlays=this.measurementOverlays.getOverlays()}render(){return i(s,null,this.overlays.map((e=>{if(null!=this.camera&&null!=this.viewer)return i(h,{overlay:e,viewport:this.viewer.viewport,camera:this.camera})})))}static get watchers(){return{measurementOverlays:["handleMeasurementOverlaysChanged"],viewer:["handleViewerChanged"]}}};d.style=":host{display:block;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none;--viewer-measurement-overlays-x-axis-color:var(--x-axis-color);--viewer-measurement-overlays-y-axis-color:var(--y-axis-color);--viewer-measurement-overlays-z-axis-color:var(--z-axis-color)}.measurement-line{position:absolute;width:100%;height:100%}.measurement-line.distance-vector-x{--viewer-measurement-line-fill:var(\n --viewer-measurement-overlays-x-axis-color\n )}.measurement-line.distance-vector-y{--viewer-measurement-line-fill:var(\n --viewer-measurement-overlays-y-axis-color\n )}.measurement-line.distance-vector-z{--viewer-measurement-line-fill:var(\n --viewer-measurement-overlays-z-axis-color\n )}";export{o as vertex_viewer_measurement_line,d as vertex_viewer_measurement_overlays}
4
+ import{r as e,h as i,F as t,H as s}from"./p-d6fce4c1.js";import{p as r,h as a}from"./p-70e5e8a8.js";import"./p-52ab9ec0.js";import"./p-92fe4417.js";import"./p-68e192b9.js";import{M as n}from"./p-7f6251da.js";import{t as l}from"./p-1abfe4bf.js";import"./p-dfe5a97d.js";import"./p-65af7a89.js";import"./p-df8fbe56.js";const o=class{constructor(i){e(this,i),this.start=r.create(),this.end=r.create(),this.capLength=0,this.pointerEvents="none"}render(){const e=a.fromPoints(this.start,this.end),t=m(this.start,this.end,e,this.capLength),s=m(this.start,this.end,e,this.capLength+1);return i("svg",null,i("g",{class:"line-stroke","pointer-events":this.pointerEvents},i("line",{class:"line",x1:this.start.x,y1:this.start.y,x2:this.end.x,y2:this.end.y}),i("line",{class:"start-cap",x1:s.startEndCap.start.x,y1:s.startEndCap.start.y,x2:s.startEndCap.end.x,y2:s.startEndCap.end.y}),i("line",{class:"end-cap",x1:s.endEndCap.start.x,y1:s.endEndCap.start.y,x2:s.endEndCap.end.x,y2:s.endEndCap.end.y})),i("g",{class:"line-fill","pointer-events":this.pointerEvents},i("line",{class:"line",x1:this.start.x,y1:this.start.y,x2:this.end.x,y2:this.end.y}),i("line",{class:"start-cap",x1:t.startEndCap.start.x,y1:t.startEndCap.start.y,x2:t.startEndCap.end.x,y2:t.startEndCap.end.y}),i("line",{class:"end-cap",x1:t.endEndCap.start.x,y1:t.endEndCap.start.y,x2:t.endEndCap.end.x,y2:t.endEndCap.end.y})))}};function m(e,i,t,s){return{startEndCap:v(e,t,s),endEndCap:v(i,t,s)}}function v(e,i,t){const s=i+Math.PI/2;return{start:r.add(e,r.polar(t/2,s)),end:r.add(e,r.polar(t/2,s+Math.PI))}}o.style=":host{display:block;--viewer-measurement-line-stroke:var(--white);--viewer-measurement-line-stroke-opacity:0.75;--viewer-measurement-line-stroke-width:1.25px;--viewer-measurement-line-fill:var(--neutral-900);--viewer-measurement-line-fill-width:2px;--viewer-measurement-line-start-cap-visibility:initial;--viewer-measurement-line-end-cap-visibility:initial}svg{width:100%;height:100%}.line-stroke{stroke-width:calc(\n var(--viewer-measurement-line-fill-width) +\n var(--viewer-measurement-line-stroke-width)\n );stroke:var(--viewer-measurement-line-stroke);opacity:var(--viewer-measurement-line-stroke-opacity)}.line-fill{stroke-width:var(--viewer-measurement-line-fill-width);stroke:var(--viewer-measurement-line-fill)}.start-cap{visibility:var(--viewer-measurement-line-start-cap-visibility)}.end-cap{visibility:var(--viewer-measurement-line-end-cap-visibility)}";const h=({overlay:e,viewport:t,camera:s})=>i("line"===e.type?c:u,{overlay:e,viewport:t,camera:s}),c=({overlay:e,camera:t,viewport:s})=>{const{start:r,end:a}=l(e,{camera:t,viewport:s});return i("vertex-viewer-measurement-line",{class:"measurement-line",start:r,end:a})},u=({overlay:{x:e,y:s,z:r},camera:a,viewport:n})=>{const o={camera:a,viewport:n},{start:m,end:v}=l(e,o),{start:h,end:c}=l(s,o),{start:u,end:d}=l(r,o);return i(t,null,i("vertex-viewer-measurement-line",{class:"measurement-line distance-vector-x",start:m,end:v}),i("vertex-viewer-measurement-line",{class:"measurement-line distance-vector-y",start:h,end:c}),i("vertex-viewer-measurement-line",{class:"measurement-line distance-vector-z",start:u,end:d}))},d=class{constructor(i){e(this,i),this.measurementOverlays=new n,this.overlays=[],this.updateCamera=()=>{var e,i;this.camera=null===(i=null===(e=this.viewer)||void 0===e?void 0:e.frame)||void 0===i?void 0:i.scene.camera}}handleMeasurementOverlaysChanged(){this.removeModelListeners(),this.addModelListeners(),this.updateOverlays()}handleViewerChanged(e,i){this.removeViewerListeners(i),this.addViewerListeners(),this.updateCamera()}componentWillLoad(){this.addModelListeners(),this.addViewerListeners(),this.updateOverlays(),this.updateCamera()}addModelListeners(){this.onOverlaysChangedListener=this.measurementOverlays.onOverlaysChanged((()=>this.updateOverlays()))}removeModelListeners(){var e;null===(e=this.onOverlaysChangedListener)||void 0===e||e.dispose(),this.onOverlaysChangedListener=void 0}addViewerListeners(){var e;null===(e=this.viewer)||void 0===e||e.addEventListener("frameReceived",this.updateCamera)}removeViewerListeners(e){null==e||e.removeEventListener("frameReceived",this.updateCamera)}updateOverlays(){this.overlays=this.measurementOverlays.getOverlays()}render(){return i(s,null,this.overlays.map((e=>{if(null!=this.camera&&null!=this.viewer)return i(h,{overlay:e,viewport:this.viewer.viewport,camera:this.camera})})))}static get watchers(){return{measurementOverlays:["handleMeasurementOverlaysChanged"],viewer:["handleViewerChanged"]}}};d.style=":host{display:block;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none;--viewer-measurement-overlays-x-axis-color:var(--x-axis-color);--viewer-measurement-overlays-y-axis-color:var(--y-axis-color);--viewer-measurement-overlays-z-axis-color:var(--z-axis-color)}.measurement-line{position:absolute;width:100%;height:100%}.measurement-line.distance-vector-x{--viewer-measurement-line-fill:var(\n --viewer-measurement-overlays-x-axis-color\n )}.measurement-line.distance-vector-y{--viewer-measurement-line-fill:var(\n --viewer-measurement-overlays-y-axis-color\n )}.measurement-line.distance-vector-z{--viewer-measurement-line-fill:var(\n --viewer-measurement-overlays-z-axis-color\n )}";export{o as vertex_viewer_measurement_line,d as vertex_viewer_measurement_overlays}