You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
19 KiB
39 lines
19 KiB
// All material copyright Esri, All Rights Reserved, unless otherwise specified. |
|
// See https://js.arcgis.com/4.30/esri/copyright.txt for details. |
|
//>>built |
|
define("exports ../../../chunks/tslib.es6 ../../../Color ../../../core/has ../../../core/maybe ../../../core/MemCachePool ../../../core/ObjectPool ../../../core/reactiveUtils ../../../core/accessorSupport/decorators/property ../../../core/Logger ../../../core/RandomLCG ../../../core/accessorSupport/decorators/subclass ../../../core/libs/gl-matrix-2/factories/mat4f64 ../../../chunks/vec32 ../../../core/libs/gl-matrix-2/factories/vec3f64 ../../../core/libs/gl-matrix-2/factories/vec4f64 ../../../geometry/support/aaBoundingBox ../../../geometry/support/buffer/BufferView ../../ViewingMode ./interfaces ./LayerClass ./OverlayContent ./OverlayRenderer ./PatchRenderData ./RenderOrder ./TerrainAttributesCache ./terrainUtils ./TileRenderer ./TileUpdate ./tileUtils ../webgl-engine/collections/Component/ComponentIntersectionData ../webgl-engine/core/shaderLibrary/ShaderOutput ../../../chunks/Terrain.glsl ../webgl-engine/core/shaderLibrary/terrain/TileBlendInput ../webgl-engine/effects/RenderPlugin ../webgl-engine/lib/Attribute ../webgl-engine/lib/basicInterfaces ../webgl-engine/lib/glUtil3D ../webgl-engine/lib/Intersector ../webgl-engine/lib/IntersectorInterfaces ../webgl-engine/lib/Material ../webgl-engine/lib/RayIntersections ../webgl-engine/lib/RenderSlot ../webgl-engine/lib/screenSizePerspectiveUtils ../webgl-engine/lib/VertexAttribute ../webgl-engine/lib/verticalOffsetUtils ../webgl-engine/materials/DrawParameters ../webgl-engine/shaders/TerrainTechnique ../webgl-engine/shaders/TerrainTechniqueConfiguration ../../webgl/enums".split(" "), |
|
function(e,q,ka,la,V,ma,na,W,t,La,Ma,oa,pa,I,x,qa,X,ra,sa,M,ta,D,Y,ua,Z,va,wa,xa,J,N,aa,f,ya,K,O,za,P,Aa,Ba,L,ba,Q,y,Ca,Da,ca,da,Ea,Fa,R){const S=X.create();e.TransparencyMode=void 0;(function(a){a[a.Opaque=0]="Opaque";a[a.Semitransparent=1]="Semitransparent";a[a.TransparentWithDraped=2]="TransparentWithDraped";a[a.Empty=3]="Empty"})(e.TransparencyMode||(e.TransparencyMode={}));e.TerrainRenderer=class extends O.SyncPrepareRenderPlugin{get _isGlobal(){return this._stage.viewingMode===sa.ViewingMode.Global}get _techniques(){return this._context.techniques}get _rctx(){return this._context.renderContext.rctx}constructor(a, |
|
b,d,c,k){super({});this._overlayRenderer=a;this._stage=b;this._allTiles=d;this._ellipsoidRadius=c;this.type=L.IntersectorType.TERRAIN;this.isGround=!0;this._tileSize=256;this._techniqueConfiguration=new Fa.TerrainTechniqueConfiguration;this._passParameters=new ya.TerrainPassParameters;this._drawParameters=new da.DrawParameters;this._renderDataPool=new na(ua.PatchRenderData);this._visiblePatchesByOrigin=new Map;this._allPatchesByOrigin=new Map;this._patchSortingDirty=this._patchesByOriginDirty=!0; |
|
this._tileIterator=new N.IteratorPreorder;this._transparencyState=e.TransparencyMode.Opaque;this._inViewshed=this._castShadows=!1;this._tileRenderer=this._emptyTex=null;this._stencilEnabledLayerExtents=[];this._numOriginsRendered=this._numTilesCulled=this._numTilesRendered=0;this.renderOccludedFlags=ba.RenderOccludedFlag.Occlude;this.produces=new Map([[y.RenderSlot.OPAQUE_TERRAIN,()=>this._produces()],[y.RenderSlot.TRANSPARENT_TERRAIN,()=>this._produces()],[y.RenderSlot.OCCLUDED_TERRAIN,()=>this._produces()]]); |
|
this._tileTextureCache=new ma.MemCachePool((n,g)=>k.newCache(n,g),"TileTexture");this.tileGeometryCache=new va.TerrainAttributesCache(k)}normalizeCtorArgs(){return{}}initialize(){this._stage.addRenderPlugin(this);this.addHandles(W.watch(()=>this._overlayRenderer.rendersOccludedDraped,a=>{this.renderOccludedFlags=a?Y.overlayRenderOccludedFlag:ba.RenderOccludedFlag.Occlude;this.setNeedsRender()},W.sync))}destroy(){this._stage.removeRenderPlugin(this);this._tileTextureCache.destroy();this.tileGeometryCache.destroy()}_produces(){return this.visible&& |
|
!!this._rootTiles&&!this.renderingDisabled}consumes(){return this._overlayRenderer.hasWater?O.ConsumesDepth:O.ConsumesNone}set renderingDisabled(a){this._set("renderingDisabled",!!a);this.setDirty()}set visible(a){this._set("visible",!!a);this.setDirty()}updateHeading(a){this._tileRenderer?.updateHeading(a)}set transparency(a){this._transparencyState!==a&&(this._techniqueConfiguration.invisible=a===e.TransparencyMode.TransparentWithDraped||a===e.TransparencyMode.Empty,this._techniqueConfiguration.opaque= |
|
a===e.TransparencyMode.Opaque,this._transparencyState=a,this.setNeedsRender())}get transparency(){return this._transparencyState}get renderPatchBorders(){return!!this._techniqueConfiguration.tileBorders}set renderPatchBorders(a){this._techniqueConfiguration.tileBorders!==a&&(this._techniqueConfiguration.tileBorders=a,this.setNeedsRender(),this.notifyChange("renderPatchBorders"))}get visualizeNormals(){return!!this._techniqueConfiguration.visualizeNormals}set visualizeNormals(a){this._techniqueConfiguration.visualizeNormals!== |
|
a&&(this._techniqueConfiguration.visualizeNormals=a,this.setNeedsRender(),this.notifyChange("visualizeNormals"))}get cullBackFaces(){return this._techniqueConfiguration.backfaceCullingEnabled}set cullBackFaces(a){this._techniqueConfiguration.backfaceCullingEnabled!==a&&(this._techniqueConfiguration.backfaceCullingEnabled=a,this.notifyChange("cullBackFaces"),this.setNeedsRender())}set renderOrder(a){this._set("renderOrder",a);this._setSortingDirty()}get layerUid(){return ca.terrainId}get slicePlaneEnabled(){return this._techniqueConfiguration.hasSlicePlane}set slicePlaneEnabled(a){this._techniqueConfiguration.hasSlicePlane!== |
|
a&&(this._techniqueConfiguration.hasSlicePlane=a,this.setNeedsRender())}set textureFadingEnabled(a){this._techniqueConfiguration.textureFadingEnabled!==a&&(this._techniqueConfiguration.textureFadingEnabled=a,this.setNeedsRender())}set pbrMode(a){this._techniqueConfiguration.pbrMode!==a&&(this._techniqueConfiguration.pbrMode=a,this.setNeedsRender())}setDebugScreenSizePerspective(a){this._techniqueConfiguration.screenSizePerspective!==a&&(this._techniqueConfiguration.screenSizePerspective=a,this.setNeedsRender())}setRootTiles(a){this._rootTiles= |
|
a;this.setDirty()}setStencilEnabledLayerExtents(a){this._stencilEnabledLayerExtents=a;this._setSortingDirty()}setTileSize(a){this._tileSize=a;null!=this._tileRenderer&&(this._tileRenderer.tileSize=a);this.setDirty()}_prepareTileForLoading(a){a.renderData||(a.renderData=this._renderDataPool.acquire(),a.renderData.init(a,this._getLocalOriginOfTile(a)))}loadTile(a){this._prepareTileForLoading(a);this.updateTileGeometryState(a);this.updateTileTexture(a,J.TileUpdate.TEXTURE_FADING)}updateTileTexture(a, |
|
b){null!=this._tileRenderer&&(this._tileRenderer.updateTileTexture(a,b===J.TileUpdate.TEXTURE_FADING?M.TextureUpdate.FADING:M.TextureUpdate.UNFADED),this.setNeedsRender(),a.resetPendingUpdate(b))}updateTileGeometryState(a){for(const b of a.layerInfo[ta.LayerClass.ELEVATION])b.pendingUpdates&=~J.TileUpdate.GEOMETRY;a.resetPendingUpdate(J.TileUpdate.GEOMETRY);(a=a.renderData.updateGeometryState())&&this.setDirty();return a}updateGeometryIfNeeded(a){a.isLoaded&&a.renderData.updateGeometryIfNeeded(this._rctx)}unloadTile(a){const b= |
|
a.renderData;b&&(b.releaseGeometry(),this._renderDataPool.release(b),b.clear(),a.renderData=null,a.setMemoryDirty(),this.setDirty())}_getLocalOriginOfTile(a){const b=Math.max(0,7*Math.floor((a.level-3)/7));if(this._isGlobal&&0===b)return x.ZEROS;for(;a.parent&&a.level>b;)a=a.parent;return a.centerAtSeaLevel}getStats(){return{numTilesRendered:this._numTilesRendered,numTilesCulled:this._numTilesCulled,numOriginsRendered:this._numOriginsRendered}}set wireframe(a){this._get("wireframe")!==a&&(this._set("wireframe", |
|
a),this.setNeedsRender())}setDirty(a=P.RenderRequestType.UPDATE){this._patchesByOriginDirty=!0;this._context.requestRender(a)}_setSortingDirty(a=P.RenderRequestType.UPDATE){this._patchSortingDirty=!0;this._context.requestRender(a)}setNeedsRender(a=P.RenderRequestType.UPDATE){this._context.requestRender(a)}initializeRenderContext(a){this._context=a;this._tileRenderer=new xa.TileRenderer(this._rctx,this._tileSize,this._techniques,this._tileTextureCache);this.updateTileBackground();this._emptyTex=Aa.createEmptyTexture(this._rctx)}uninitializeRenderContext(){this._emptyTex= |
|
V.disposeMaybe(this._emptyTex);this._tileRenderer=V.disposeMaybe(this._tileRenderer)}intersect(a,b,d,c){if(!(!this._rootTiles||a.options.selectOpaqueTerrainOnly&&a.options.selectionMode&&this.transparency!==e.TransparencyMode.Opaque)){var k=Ga,n=Ha;I.subtract(k,c,d);I.set(n,1/k[0],1/k[1],1/k[2]);var g=a.results.min,h=a.results.max,u=a.results.ground,v=a.options.store===L.StoreResults.MIN,E=!!a.results.ground.target,r=ca.getVerticalOffsetTerrain(a.verticalOffset),C=a.tolerance,F,T=v&&null!=g.dist? |
|
g.dist:Infinity,z=a.options,ea=z.normalRequired||!z.backfacesTerrain,fa=new Q.MeshIntersectionOptions(!1,ea),Ka=A=>{var B=A.renderData;if(B?.vao){var l=B.geometry;X.set(S,l.boundingBox);var p=B.localOrigin;null!=r&&(r.localOrigin=p,r.applyToAabb(S));G[0]=d[0]-p[0];G[1]=d[1]-p[1];G[2]=d[2]-p[2];if(Q.intersectAabbInvDirBefore(S,G,n,C,T)){var H=(m,ha,w)=>{m.set(this.type,A,ha,w,pa.IDENTITY);T=v&&null!=g.dist?g.dist:Infinity};B=(m,ha,w)=>{(!ea||null!=w)&&0<=m&&(z.backfacesTerrain||0>I.dot(w,k))&&(z.invisibleTerrain|| |
|
!z.selectionMode||null==b||b(d,c,m))&&((null==u.dist||m<u.dist)&&H(u,m,w),z.isFiltered||(z.store===L.StoreResults.ALL&&(null==F?(F=Ba.newIntersectorResult(a.ray),H(F,m,w),a.results.all.push(F)):m<F.dist&&H(F,m,w)),(null==g.dist||m<g.dist)&&H(g,m,w),z.store!==L.StoreResults.MIN&&(null==h.dist||m>h.dist)&&H(h,m,w)))};var U=Ia;I.subtract(U,c,p);var {indices:ia,indexCount:Ja}=l;l=l.vertexAttributes;p=l.getField(Da.VertexAttribute.POSITION,ra.BufferViewVec3f);l=new za.Vertices(p.typedBuffer,3,l.stride/ |
|
4);p=Ja/3;if(!r&&p>aa.componentMinimalSizeForIntersectionData){const m=A.renderData;null==m.intersectionData&&(m.intersectionData=new aa.ComponentIntersectionData(ia,0,p,l));m.intersectionData.intersectRay(G,U,fa,B)}else Q.intersectTriangles(G,U,0,p,ia,l,r,fa,B)}}},ja=this._rootTiles;null!=ja&&(()=>{const A=this._tileIterator;A.reset(ja);const B=a.options.invisibleTerrain;for(let l=A.next();l;l=A.next())!(l.visible||B&&l.intersectsClippingArea)||null==r&&!l.intersectsRay(d,k,C,T)||E&&this._useStencilForTile(l)? |
|
A.skipSubtree():Ka(l)})()}}processScaleRangeQueries(a,b){if(!b.done)for(this._updatePatchGroups();a.updating&&!b.done;){a.prepare();for(const d of this._visiblePatchesByOrigin.values())for(const c of d)null!=c.renderData?.textureReference&&a.queriesForTile(c);a.process();b.madeProgress()}}prepareTechnique(a){var b=la("enable-feature:terrain-shadows")&&a.bindParameters.shadowMap.enabled;b!==this._castShadows&&(this._castShadows=b,this._patchesByOriginDirty=!0);b=a.bindParameters.viewshedEnabled;this._inViewshed!== |
|
b&&(this._inViewshed=b,this._patchesByOriginDirty=!0);if(a.bindParameters.slot===y.RenderSlot.OCCLUDED_TERRAIN){if(0===(a.renderOccludedMask&Y.overlayRenderOccludedFlag))return null}else if(a.bindParameters.slot!==(this.transparency===e.TransparencyMode.Opaque?y.RenderSlot.OPAQUE_TERRAIN:y.RenderSlot.TRANSPARENT_TERRAIN))return null;if(this.transparency===e.TransparencyMode.Empty)return null;switch(a.output){case f.ShaderOutput.Color:return this._techniqueConfiguration.hasScreenSpaceReflections=null!= |
|
a.bindParameters.ssr.lastFrameColor,this._techniqueConfiguration.hasCloudsReflections=null!=a.bindParameters.cloudsFade.data,this._techniqueConfiguration.receiveShadows=a.bindParameters.shadowMap.ready,this._techniqueConfiguration.receiveAmbientOcclusion=null!=a.bindParameters.ssao,this._techniqueConfiguration.overlayMode=this._overlayRenderer.mode,this._updateTechnique(f.ShaderOutput.Color,a.bindParameters.slot===y.RenderSlot.OCCLUDED_TERRAIN);case f.ShaderOutput.Shadow:case f.ShaderOutput.ShadowExcludeHighlight:if(this._castShadows)return this._techniqueConfiguration.receiveShadows= |
|
this._techniqueConfiguration.receiveAmbientOcclusion=!1,this._updateTechnique(f.ShaderOutput.Shadow,!1);break;case f.ShaderOutput.ViewshedShadow:if(this._inViewshed)return this._techniqueConfiguration.receiveShadows=this._techniqueConfiguration.receiveAmbientOcclusion=!1,this._updateTechnique(f.ShaderOutput.ViewshedShadow,!1);break;case f.ShaderOutput.Depth:return this._techniqueConfiguration.receiveShadows=this._techniqueConfiguration.receiveAmbientOcclusion=!1,this._updateTechnique(f.ShaderOutput.Depth, |
|
!1);case f.ShaderOutput.Normal:return this._techniqueConfiguration.receiveShadows=this._techniqueConfiguration.receiveAmbientOcclusion=!1,this._updateTechnique(f.ShaderOutput.Normal,!1);case f.ShaderOutput.ObjectAndLayerIdColor:return this._updateTechnique(f.ShaderOutput.ObjectAndLayerIdColor,!1);case f.ShaderOutput.Highlight:if(this._overlayRenderer.hasHighlights)return this._techniqueConfiguration.receiveShadows=this._techniqueConfiguration.receiveAmbientOcclusion=!1,this._updateTechnique(f.ShaderOutput.Highlight, |
|
!1)}return null}renderNode(a,b){this._updatePatchGroups();b.useStencil=!1;switch(a.output){case f.ShaderOutput.Color:this._renderMaterialPass(a,b,a.bindParameters.slot===y.RenderSlot.OCCLUDED_TERRAIN?D.OverlayContent.Occluded:D.OverlayContent.Color);break;case f.ShaderOutput.Depth:case f.ShaderOutput.Normal:this._renderAuxiliaryPass(a,b,D.OverlayContent.Color,this._visiblePatchesByOrigin);break;case f.ShaderOutput.Highlight:this._renderAuxiliaryPass(a,b,D.OverlayContent.Highlight,this._visiblePatchesByOrigin); |
|
break;case f.ShaderOutput.Shadow:case f.ShaderOutput.ShadowExcludeHighlight:case f.ShaderOutput.ViewshedShadow:this._renderAuxiliaryPass(a,b,null,this._allPatchesByOrigin);break;case f.ShaderOutput.ObjectAndLayerIdColor:this._renderAuxiliaryPass(a,b,D.OverlayContent.ObjectAndLayerIdColor,this._visiblePatchesByOrigin)}}updateTileBackground(a){if(null!=this._tileRenderer){var b=this._tileRenderer;if(null!=a){a=ka.toUnitRGBA(a);var d=x.fromValues(a[0]||0,a[1]||0,a[2]||0)}b.setBackground(d);this._allTiles.forAll(c=> |
|
b.updateTileTexture(c,M.TextureUpdate.FADING));this._techniqueConfiguration.tileBlendInput=b.backgroundIsGrid?K.TileBlendInput.GridComposite:null!=b.backgroundColor?K.TileBlendInput.ColorComposite:K.TileBlendInput.LayerOnly;this.setNeedsRender()}}_updatePatchGroups(){this._patchesByOriginDirty&&(this._rebuildPatchGroups(),this._patchesByOriginDirty=!1,this._patchSortingDirty=!0);if(this._patchSortingDirty&&this.renderOrder!==Z.RenderOrder.NONE){const a=Array.from(this._visiblePatchesByOrigin.values()), |
|
b=this._stencilEnabledLayerExtents;for(const d of a)N.sortTiles(this.renderOrder,d,b);a.sort((d,c)=>N.compareTiles(d[0],c[0],this.renderOrder));this._visiblePatchesByOrigin=new Map(a.map(d=>[d[0].renderData.localOrigin,d]));this._patchSortingDirty=!1}}_rebuildPatchGroups(){const a=this._rootTiles;if(null!=a){a[0]?.surface.checkAllTilesWaterproofness();this._visiblePatchesByOrigin.clear();this._allPatchesByOrigin.clear();for(const b of a)this._rebuildPatchGroupsForRootTile(b)}}_rebuildPatchGroupsForRootTile(a){const b= |
|
this._tileIterator;for(b.resetOne(a);!b.done;){a=b.next();var d=a.renderData;if(d){d=d.localOrigin;if(this._castShadows||this._inViewshed){var c=this._allPatchesByOrigin.get(d);c||(c=[],this._allPatchesByOrigin.set(d,c));c.push(a)}a.visible?(c=this._visiblePatchesByOrigin.get(d),c||(c=[],this._visiblePatchesByOrigin.set(d,c)),c.push(a),b.skipSubtree()):(this._numTilesCulled++,b.skipSubtree())}else this._numTilesCulled++}}_useStencilForTile(a){for(const b of this._stencilEnabledLayerExtents)if(a.intersectsExtent(b))return!0; |
|
return!1}_renderAuxiliaryPass(a,b,d,c){const k=a.rctx;this._passParameters.overlayContent=d;k.bindTechnique(b,a.bindParameters,this._passParameters);const n=0<this._stencilEnabledLayerExtents.length;c.forEach(g=>{this._drawParameters.origin=g[0].renderData.localOrigin;b.program.bindDraw(this._drawParameters,a.bindParameters,this._passParameters);for(let h=0;h<g.length;h++)this._renderPatch(a,b,g[h],R.PrimitiveType.TRIANGLES,n,d)});a.rctx.bindVAO(null)}_renderMaterialPass(a,b,d){var {rctx:c}=a;this._passParameters.overlayContent= |
|
d;c.bindTechnique(b,a.bindParameters,this._passParameters);this._numOriginsRendered=this._numTilesCulled=this._numTilesRendered=0;var k=a.bindParameters.camera;c=b.program;this._techniqueConfiguration.screenSizePerspective&&this.pointsOfInterest&&Ca.getSettings(this._stage.viewingMode,this._ellipsoidRadius).update({distance:this.pointsOfInterest.centerOnSurfaceFrequent.distance,fovY:k.fovY});k=0<this._stencilEnabledLayerExtents.length;const n=d===D.OverlayContent.Occluded;n&&(c.bindTexture("tex", |
|
this._emptyTex),c.setUniform3fv("textureOpacities",x.ZEROS),c.setUniform4fv("texOffsetAndScale",qa.ZEROS));var g=null!=this._tileRenderer?.backgroundColor?this._tileRenderer.backgroundColor:x.ZEROS;this._techniqueConfiguration.tileBlendInput===K.TileBlendInput.ColorComposite&&c.setUniform3fv("backgroundColor",g);g=this.wireframe?R.PrimitiveType.LINES:R.PrimitiveType.TRIANGLES;this._techniqueConfiguration.textureFadingEnabled&&c.bindTexture("texNext",this._emptyTex);var h=this._visiblePatchesByOrigin; |
|
for(const u of h.values()){b.program.bindDraw(new da.DrawParameters(u[0].renderData.localOrigin),a.bindParameters,this._passParameters);this._numOriginsRendered++;for(const v of u){h=v.renderData;const E=h.textureReference;if(null!=E){if(!n){c.setUniform4fv("texOffsetAndScale",E.offsetAndScale);c.bindTexture("tex",E.texture.texture);const r=h.textureFadeFactor,C=1>r?h.nextTextureReference:null;this._techniqueConfiguration.textureFadingEnabled&&null!=C&&1>r?(c.setUniform1f("fadeFactor",r),c.setUniform4fv("nextTexOffsetAndScale", |
|
C.offsetAndScale),c.setUniform3fv("nextTexOpacities",C.opacities),c.bindTexture("texNext",C.texture.texture)):c.setUniform1f("fadeFactor",1);h.textureIsFading&&this.setNeedsRender();c.setUniform3fv("textureOpacities",E.opacities)}this._renderPatch(a,b,v,g,k,d);v.renderOrder=this._numTilesRendered;this._numTilesRendered++}}}a.rctx.bindVAO(null)}_renderPatch(a,b,d,c,k,n){const g=d.renderData,h=g.vao,u=h?.indexBuffer;if(h&&null!=u){var v=b.program;null==n||this._overlayRenderer.isEmpty||this._bindOverlayPatchData(v, |
|
g.overlay);k&&(b.useStencil=this._useStencilForTile(d),a.rctx.setPipelineState(b.getPipeline()));b=g.geometry.indexCount;a.rctx.bindVAO(h);v.assertCompatibleVertexAttributeLocations(h);a.rctx.drawElements(c,b,u.indexType,0)}else wa.enableTerrainInternalChecks&&console.error("Rendered tile with no indices: ",d.lij," : ",g)}_bindOverlayPatchData(a,b){a.setUniform4fv("overlayTexOffset",b.offsets);a.setUniform4fv("overlayTexScale",b.scales)}_updateTechnique(a,b){this._techniqueConfiguration.output=a; |
|
this._techniqueConfiguration.renderOccluded=b;return this._shaderTechnique=this._techniques.releaseAndAcquire(Ea.TerrainTechnique,this._techniqueConfiguration,this._shaderTechnique)}get test(){}};q.__decorate([t.property({readOnly:!0})],e.TerrainRenderer.prototype,"_isGlobal",null);q.__decorate([t.property()],e.TerrainRenderer.prototype,"renderOccludedFlags",void 0);q.__decorate([t.property({value:!1})],e.TerrainRenderer.prototype,"renderingDisabled",null);q.__decorate([t.property({value:!0})],e.TerrainRenderer.prototype, |
|
"visible",null);q.__decorate([t.property()],e.TerrainRenderer.prototype,"renderPatchBorders",null);q.__decorate([t.property()],e.TerrainRenderer.prototype,"visualizeNormals",null);q.__decorate([t.property()],e.TerrainRenderer.prototype,"cullBackFaces",null);q.__decorate([t.property({value:Z.RenderOrder.FRONT_TO_BACK})],e.TerrainRenderer.prototype,"renderOrder",null);q.__decorate([t.property()],e.TerrainRenderer.prototype,"wireframe",null);e.TerrainRenderer=q.__decorate([oa.subclass("esri.views.3d.terrain.TerrainRenderer")], |
|
e.TerrainRenderer);const Ga=x.create(),Ha=x.create(),G=x.create(),Ia=x.create();Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}); |