UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 2.49 kB
import{_ as t}from"../../../chunks/tslib.es6.js";import e from"../../../core/Accessor.js";import i from"../../../core/Logger.js";import{clamp as o,deg2rad as r}from"../../../core/mathUtils.js";import{property as s}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import{earth as n}from"../../../geometry/support/Ellipsoid.js";import{ViewingMode as l}from"../../ViewingMode.js";import{makePiecewiseLinearFunction as m}from"../support/mathUtils.js";let c=class extends e{constructor(t){super(t),this.collision=new y,this.distance=1/0,this.minimumPoiDistance=4,this.tilt=null}get altitude(){return this.mode===l.Local?null:this._get("altitude")||null}set altitude(t){this.mode!==l.Local?this._set("altitude",t):i.getLogger(this.declaredClass).warn("Altitude constraint is ignored in local scenes")}clampAltitude(t){return this.altitude?o(t,this.altitude.min,this.altitude.max):t}clampTilt(t,e){if(!this.tilt)return e;const i=this.tilt(t);return o(e,i.min,i.max)}clampDistance(t){return Math.min(t,this.distance)}createDefaultTilt(){return this.mode===l.Local?this._createDefaultTiltLocal():this._createDefaultTiltGlobal()}createConstantMaxTilt(t){return(e,i=h)=>(i.min=d.min,i.max=t,i)}_createDefaultTiltLocal(){const t=this.collision.enabled?m([[4e3,d.max],[1e4,r(88)],[6e6,r(88)]]):()=>d.max;return(e,i=h)=>(i.min=d.min,i.max=t(e),i)}_createDefaultTiltGlobal(){const t=this.collision.enabled?m([[4e3,d.max],[5e4,r(88)],[6e6,r(88)],[2e7,d.min]]):m([[3e5,d.max],[3e6,r(88)],[6e6,r(88)],[2e7,d.min]]);return(e,i=h)=>(i.min=d.min,i.max=t(e),i)}};function p(t){return{min:-2e5,max:4*t.radius}}t([s()],c.prototype,"altitude",null),t([s({readOnly:!0})],c.prototype,"collision",void 0),t([s()],c.prototype,"distance",void 0),t([s({readOnly:!0})],c.prototype,"minimumPoiDistance",void 0),t([s()],c.prototype,"tilt",void 0),t([s({constructOnly:!0})],c.prototype,"mode",void 0),c=t([a("esri.views.3d.state.Constraints")],c);const u=p(n),d={min:r(.5),max:r(179.5)},h={min:0,max:0};let y=class extends e{constructor(){super(...arguments),this.enabled=!0,this.elevationMargin=5}};t([s({type:Boolean})],y.prototype,"enabled",void 0),t([s({type:Number})],y.prototype,"elevationMargin",void 0),y=t([a("esri.views.3d.state.Constraints.CollisionConstraint")],y);export{c as Constraints,d as TiltDefault,u as earthAltitudeConstraint};