UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

3 lines (2 loc) 2.91 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */ import{__decorate as i}from"tslib";import e from"../../../../core/Accessor.js";import{destroyHandle as t}from"../../../../core/handleUtils.js";import{watch as s,syncAndInitial as l}from"../../../../core/reactiveUtils.js";import{property as o,subclass as r}from"../../../../core/accessorSupport/decorators.js";import{fromScaling as a,multiply as n}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{set as m,length as u}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as p}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{sv3d as h,sm4d as c}from"../../../../geometry/support/vectorStacks.js";import{getGridColor as d,getOutlineColor as v,planeColor as g}from"./settings.js";import{planePreviewOutlineWidth as w,planeOutlineWidth as V}from"./sliceToolConfig.js";import{createGridVisualElement as _,createOutlineVisualElement as f,calculateBoundedPlaneTranslateRotate as E}from"./sliceToolUtils.js";import{createStipplePatternSimple as b}from"../../webgl-engine/materials/lineStippleUtils.js";let y=class extends e{constructor(i){super(i),this._gridVisualElement=null,this._outlineVisualElement=null,this.showGrid=!1,this.preview=!0}initialize(){const i=this.analysisViewData;if(null==i)throw new Error("expected internal object to be valid");this._gridVisualElement=_(this.view),this._outlineVisualElement=f(this.view),this.addHandles([s(()=>{const e=null!=i.plane&&this.analysisViewData.visible,{active:t}=this.analysisViewData,{preview:s,showGrid:l,view:o}=this,{effectiveTheme:r}=o;return{visible:e,active:t,preview:s,showGrid:l,gridColor:d(r),outlineColor:v(r)}},i=>this._updateMaterials(i),l),s(()=>i.plane,i=>this._updatePlane(i),l),t(this._gridVisualElement),t(this._outlineVisualElement),s(()=>"web-scene"!==this.analysis?.origin?.type,i=>{this._gridVisualElement.isDecoration=i,this._outlineVisualElement.isDecoration=i},l)])}destroy(){this.set("view",null)}_updatePlane(i){if(null==i)return;this._gridVisualElement.attached=!0,this._outlineVisualElement.attached=!0;const e=m(h.get(),u(i.basis1),u(i.basis2),1),t=a(c.get(),e),s=E(i,c.get()),l=n(t,s,t);this._outlineVisualElement.transform=l,this._gridVisualElement.transform=l}_updateMaterials({visible:i,active:e,preview:t,showGrid:s,gridColor:l,outlineColor:o}){this._outlineVisualElement.color=o,this._outlineVisualElement.width=t?w:V,this._outlineVisualElement.stipplePattern=e?null:b(5),this._gridVisualElement.backgroundColor=g,this._gridVisualElement.gridColor=s?l:p,this._gridVisualElement.visible=i,this._outlineVisualElement.visible=i}};i([o()],y.prototype,"view",void 0),i([o()],y.prototype,"analysis",void 0),i([o()],y.prototype,"analysisViewData",void 0),i([o()],y.prototype,"showGrid",void 0),i([o()],y.prototype,"preview",void 0),y=i([r("esri.views.3d.analysis.Slice.SliceVisualization")],y);export{y as SliceVisualization};