@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 3.32 kB
JavaScript
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Evented.js";import{isSome as o}from"../../../core/maybe.js";import{property as i}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import{subclass as n}from"../../../core/accessorSupport/decorators/subclass.js";import s from"../../../webscene/SunLighting.js";var a;let r=a=class extends(t.EventedMixin(s)){constructor(e){super(e),this.cameraTrackingEnabled=!0,this.ambientOcclusionEnabled=!1,this.waterReflectionEnabled=!1,this.positionTimezoneInfo={hours:0,minutes:0,seconds:0,autoUpdated:!0};const t=(new Date).getFullYear(),o=new Date("March 15, "+t+" 12:00:00 UTC");this._set("defaultDate",o),this._set("date",o)}get defaultDate(){return new Date(this._get("defaultDate").getTime())}static fromWebsceneLighting(e){return new a(e.cloneConstructProperties())}set defaultDate(e){const t=this._get("date")===this._get("defaultDate");e=new Date(e.getTime()),this._set("defaultDate",e),t&&this._set("date",e)}set date(e){null!=e&&(this.positionTimezoneInfo.autoUpdated=!1,this._set("date",new Date(e.getTime())))}autoUpdate(e,t){const i=a.calculateTimezoneOffset(this.positionTimezoneInfo);this.positionTimezoneInfo.hours=t.hours,this.positionTimezoneInfo.minutes=t.minutes,this.positionTimezoneInfo.seconds=t.seconds;let n=null;o(e)&&(this.positionTimezoneInfo.autoUpdated=!0,isNaN(e.getTime())?(n=this.defaultDate.getTime(),this._set("date",this.defaultDate)):(n=this.date&&this.date.getTime(),this._set("date",new Date(e.getTime()))));const s=a.calculateTimezoneOffset(this.positionTimezoneInfo);if(i!==s&&(c.target=this,c.timezoneOffset=s,this.emit("timezone-will-change",c)),o(e))return!!isNaN(e.getTime())||n!==e.getTime()}clone(){const e=this._get("date")===this._get("defaultDate"),t=new a({...this.cloneConstructProperties(),defaultDate:this.defaultDate,cameraTrackingEnabled:this.cameraTrackingEnabled,ambientOcclusionEnabled:this.ambientOcclusionEnabled,waterReflectionEnabled:this.waterReflectionEnabled});return e&&t._set("date",t._get("defaultDate")),t.positionTimezoneInfo.autoUpdated=this.positionTimezoneInfo.autoUpdated,t.positionTimezoneInfo.hours=this.positionTimezoneInfo.hours,t.positionTimezoneInfo.minutes=this.positionTimezoneInfo.minutes,t.positionTimezoneInfo.seconds=this.positionTimezoneInfo.seconds,t}cloneWithWebsceneLighting(e){const t=this.clone();return null!=e.date&&(t.date=e.date),t.directShadowsEnabled=e.directShadowsEnabled,t.displayUTCOffset=e.displayUTCOffset,t}cloneNonPersistentConstructProperties(){return{ambientOcclusionEnabled:this.ambientOcclusionEnabled,waterReflectionEnabled:this.waterReflectionEnabled,cameraTrackingEnabled:this.cameraTrackingEnabled}}};e([i({type:Boolean})],r.prototype,"cameraTrackingEnabled",void 0),e([i({type:Boolean})],r.prototype,"ambientOcclusionEnabled",void 0),e([i({type:Boolean})],r.prototype,"waterReflectionEnabled",void 0),e([i({type:Date})],r.prototype,"defaultDate",null),e([i({type:Date})],r.prototype,"date",null),r=a=e([n("esri.views.3d.environment.SunLighting")],r),function(e){function t({hours:e,minutes:t,seconds:o}){return Math.round(e+t/60+o/3600)}e.calculateTimezoneOffset=t}(r||(r={}));const c={target:null,timezoneOffset:0},l=r;export{l as default};