UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 2.64 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ 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 s}from"../../../core/mathUtils.js";import{property as r}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/RandomLCG.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 f,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).warn("Altitude constraint is ignored in local scenes")}get mode(){return this.state.viewingMode}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,s(88)],[6e6,s(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,s(88)],[6e6,s(88)],[2e7,d.min]]):m([[3e5,d.max],[3e6,s(88)],[6e6,s(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([r()],c.prototype,"altitude",null),t([r({readOnly:!0})],c.prototype,"collision",void 0),t([r()],c.prototype,"distance",void 0),t([r({readOnly:!0})],c.prototype,"minimumPoiDistance",void 0),t([r()],c.prototype,"tilt",void 0),t([r({constructOnly:!0})],c.prototype,"state",void 0),c=t([a("esri.views.3d.state.Constraints")],c);const u=p(n),d={min:s(.5),max:s(179.5)},h={min:0,max:0};let f=class extends e{constructor(){super(...arguments),this.enabled=!0,this.elevationMargin=5}};t([r({type:Boolean})],f.prototype,"enabled",void 0),t([r({type:Number})],f.prototype,"elevationMargin",void 0),f=t([a("esri.views.3d.state.Constraints.CollisionConstraint")],f);export{c as Constraints,d as TiltRange,u as earthAltitudeConstraint};