UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 3.06 kB
import{_ as t}from"../../../chunks/tslib.es6.js";import i from"../../../core/Accessor.js";import s from"../../../core/Collection.js";import o from"../../../core/Evented.js";import{destroyMaybe as r,isSome as e,applySome as n}from"../../../core/maybe.js";import{property as a}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{c as p}from"../../../chunks/vec3f64.js";import{AnalysisView3D as y}from"./AnalysisView3D.js";import{LineOfSightConfiguration as u}from"./LineOfSight/LineOfSightConfiguration.js";import{LineOfSightController as h}from"./LineOfSight/LineOfSightController.js";import{LineOfSightTool as c}from"./LineOfSight/LineOfSightTool.js";import{LineOfSightVisualization as m}from"./LineOfSight/LineOfSightVisualization.js";import{connectAnalysisViewToTool as d,removeAnalysisViewTool as g}from"../../analysis/analysisViewUtils.js";let f=class extends(y(o.EventedMixin(i))){constructor(t){super(t),this.type="line-of-sight-view-3d",this.analysis=null,this.tool=null,this.computations=new s,this.elevationAlignedObserver=null,this.configuration=new u,this.observerEngineLocation=p(),this.cursorTarget=null,this.editable=!0}initialize(){const t=this.view,i=this.analysis;this._analysisController=new h({analysis:i,analysisViewData:this,view:t}),this._analysisVisualization=new m({analysis:i,analysisViewData:this,view:t}),this.addHandles([this._analysisController.on("result-changed",(t=>{t.target!==this.cursorTarget&&this.emit("result-changed",t)})),d(this,c)])}destroy(){g(this),this._analysisController=r(this._analysisController),this._analysisVisualization=r(this._analysisVisualization)}get results(){return this.computations.map((t=>t.result))}get priority(){return this._analysisController.priority}set priority(t){this._analysisController.priority=t}get updating(){return e(this._analysisController)&&this._analysisController.updating||e(this._analysisVisualization)&&this._analysisVisualization.updating}getResultForTarget(t){const i=this.computations.find((i=>i.target===t));return n(i,(t=>t.result))}get testInfo(){return{visualization:this._analysisVisualization,controller:this._analysisController}}};t([a({readOnly:!0})],f.prototype,"type",void 0),t([a({constructOnly:!0,nonNullable:!0})],f.prototype,"analysis",void 0),t([a()],f.prototype,"tool",void 0),t([a({readOnly:!0})],f.prototype,"results",null),t([a()],f.prototype,"priority",null),t([a()],f.prototype,"computations",void 0),t([a()],f.prototype,"elevationAlignedObserver",void 0),t([a()],f.prototype,"configuration",void 0),t([a()],f.prototype,"observerEngineLocation",void 0),t([a()],f.prototype,"cursorTarget",void 0),t([a()],f.prototype,"updating",null),t([a()],f.prototype,"editable",void 0),t([a()],f.prototype,"_analysisController",void 0),t([a()],f.prototype,"_analysisVisualization",void 0),f=t([l("esri.views.3d.analysis.LineOfSightAnalysisView3D")],f);const v=f;export{v as default};