UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 3.18 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. */ import{_ as i}from"../../../../chunks/tslib.es6.js";import e from"../../../../core/Accessor.js";import{destroyHandle as t}from"../../../../core/handleUtils.js";import{watch as s,syncAndInitial as o}from"../../../../core/reactiveUtils.js";import{property as r}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as l}from"../../../../core/accessorSupport/decorators/subclass.js";import{fromScaling as a,multiply as n}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{i as m,l as p}from"../../../../chunks/vec32.js";import{ZEROS as u}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{sv3d as c,sm4d as h}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 j}from"../../webgl-engine/materials/lineStippleUtils.js";let b=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:o,view:r}=this,{effectiveTheme:l}=r;return{visible:e,active:t,preview:s,showGrid:o,gridColor:d(l),outlineColor:v(l)}}),(i=>this._updateMaterials(i)),o),s((()=>i.plane),(i=>this._updatePlane(i)),o),t(this._gridVisualElement),t(this._outlineVisualElement),s((()=>"web-scene"!==this.analysis?.origin?.type),(i=>{this._gridVisualElement.isDecoration=i,this._outlineVisualElement.isDecoration=i}),o)])}destroy(){this.set("view",null)}_updatePlane(i){if(null==i)return;this._gridVisualElement.attached=!0,this._outlineVisualElement.attached=!0;const e=m(c.get(),p(i.basis1),p(i.basis2),1),t=a(h.get(),e),s=E(i,h.get()),o=n(t,s,t);this._outlineVisualElement.transform=o,this._gridVisualElement.transform=o}_updateMaterials({visible:i,active:e,preview:t,showGrid:s,gridColor:o,outlineColor:r}){this._outlineVisualElement.color=r,this._outlineVisualElement.width=t?w:V,this._outlineVisualElement.stipplePattern=e?null:j(5),this._gridVisualElement.backgroundColor=g,this._gridVisualElement.gridColor=s?o:u,this._gridVisualElement.visible=i,this._outlineVisualElement.visible=i}};i([r()],b.prototype,"view",void 0),i([r()],b.prototype,"analysis",void 0),i([r()],b.prototype,"analysisViewData",void 0),i([r()],b.prototype,"showGrid",void 0),i([r()],b.prototype,"preview",void 0),b=i([l("esri.views.3d.analysis.Slice.SliceVisualization")],b);export{b as SliceVisualization};