@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.87 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{_ as e}from"../../../chunks/tslib.es6.js";import{disposeMaybe as i}from"../../../core/maybe.js";import{watch as s,initial as t}from"../../../core/reactiveUtils.js";import"../../../core/Logger.js";import"../../../core/has.js";import"../../../core/RandomLCG.js";import"../../../core/Error.js";import{subclass as r}from"../../../core/accessorSupport/decorators/subclass.js";import{getReferenceEllipsoid as o}from"../../../geometry/ellipsoidUtils.js";import{InternalRenderCategory as n}from"../webgl.js";import{CloudsCompositionTechnique as a}from"./CloudsCompositionTechnique.js";import{OpaqueEnvironment as m}from"../webgl-engine/effects/OpaqueEnvironment.js";import{RenderRequestType as c}from"../webgl-engine/lib/basicInterfaces.js";import{createQuadVAO as l}from"../webgl-engine/lib/glUtil3D.js";import{PrimitiveType as p}from"../../webgl/enums.js";let d=class extends m{constructor(e){super(e),this._planetRadius=o(e.view.spatialReference).radius}initialize(){this.techniques.precompile(a),this.addHandles([s((()=>null!=this.view.environment.weather&&this.view.environment.atmosphereEnabled),(e=>e?this._enable():this._disable()),t)])}destroy(){this._vao=i(this._vao)}render(e){const i=e.find((({name:e})=>e===n.OPAQUE_ENVIRONMENT)),s=this.bindParameters.clouds;if(!s.data)return i;const t=this.techniques.get(a);if(!t.compiled)return this.requestRender(c.UPDATE),i;const r=this.renderingContext;this._vao??=l(r);const o=r.bindTechnique(t,this.bindParameters);return r.bindVAO(this._vao),o.assertCompatibleVertexAttributeLocations(this._vao),r.drawArrays(p.TRIANGLE_STRIP,0,4),s.isFading&&this.requestRender(c.UPDATE),i}};d=e([r("esri.views.3d.environment.CloudsComposition")],d);export{d as CloudsComposition};