@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 2.85 kB
JavaScript
import{_ as i}from"../../../../chunks/tslib.es6.js";import e from"../../../../core/Accessor.js";import s from"../../../../core/Handles.js";import{isNone as t,isSome as r,destroyMaybe as o}from"../../../../core/maybe.js";import{watch as l,syncAndInitial as a}from"../../../../core/reactiveUtils.js";import{property as n}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/accessorSupport/ensureType.js";import"../../../../core/arrayUtils.js";import{subclass as m}from"../../../../core/accessorSupport/decorators/subclass.js";import{E as p,m as u}from"../../../../chunks/mat4.js";import{s as h,l as c}from"../../../../chunks/vec3.js";import{Z as d}from"../../../../chunks/vec4f64.js";import{sv3d as v,sm4d as _}from"../../../../geometry/support/vectorStacks.js";import{PLANE_OUTLINE_COLOR as w,PLANE_PREVIEW_OUTLINE_WIDTH as V,PLANE_OUTLINE_WIDTH as E,PLANE_BACKGROUND_COLOR as f,GRID_COLOR as g}from"./sliceToolConfig.js";import{createGridVisualElement as y,createOutlineVisualElement as j,calculateBoundedPlaneTranslateRotate as b}from"./sliceToolUtils.js";import{createStipplePatternSimple as S}from"../../webgl-engine/materials/lineStippleUtils.js";let k=class extends e{constructor(i){super(i),this._handles=new s,this._gridVisualElement=null,this._outlineVisualElement=null,this.showGrid=!1,this.preview=!0}initialize(){const i=this.analysisViewData;if(t(i))throw new Error("expected internal object to be valid");this._gridVisualElement=y(this.view),this._outlineVisualElement=j(this.view),this._handles.add([l((()=>({visible:r(i.plane)&&this.analysisViewData.visible,active:this.analysisViewData.active,preview:this.preview,showGrid:this.showGrid})),(i=>this._updateMaterials(i)),a),l((()=>i.plane),(i=>this._updatePlane(i)),a)],"internal")}destroy(){this._handles.destroy(),this._gridVisualElement=o(this._gridVisualElement),this._outlineVisualElement=o(this._outlineVisualElement),this.set("view",null)}_updatePlane(i){if(t(i))return;this._gridVisualElement.attached=!0,this._outlineVisualElement.attached=!0;const e=h(v.get(),c(i.basis1),c(i.basis2),1),s=p(_.get(),e),r=b(i,_.get()),o=u(s,r,s);this._outlineVisualElement.transform=o,this._gridVisualElement.transform=o}_updateMaterials({visible:i,active:e,preview:s,showGrid:t}){this._outlineVisualElement.color=w,this._outlineVisualElement.width=s?V:E,this._outlineVisualElement.stipplePattern=e?null:S(5),this._gridVisualElement.backgroundColor=f,this._gridVisualElement.gridColor=t?g:d,this._gridVisualElement.visible=i,this._outlineVisualElement.visible=i}};i([n()],k.prototype,"view",void 0),i([n()],k.prototype,"analysis",void 0),i([n()],k.prototype,"analysisViewData",void 0),i([n()],k.prototype,"showGrid",void 0),i([n()],k.prototype,"preview",void 0),k=i([m("esri.views.3d.analysis.Slice.SliceVisualization")],k);export{k as SliceVisualization};