// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built define("../../chunks/tslib.es6 ../../Color ../../core/accessorSupport/decorators/property ../../core/has ../../core/Logger ../../core/RandomLCG ../../core/accessorSupport/decorators/subclass ./MeshMaterial ./MeshTexture ./MeshTextureTransform".split(" "),function(c,l,d,b,p,q,m,n,f,g){var h;b=h=class extends n{constructor(a){super(a);this.emissiveTexture=this.emissiveColor=null;this.emissiveTextureTransform=void 0;this.occlusionTexture=null;this.occlusionTextureTransform=void 0;this.roughness=this.metallic= 1;this.metallicRoughnessTexture=null;this.metallicRoughnessTextureTransform=void 0}clone(){return this.cloneWithDeduplication(null,new Map)}cloneWithDeduplication(a,e){const k=null!=a?a.get(this):null;if(k)return k;e=new h(this.clonePropertiesWithDeduplication(e));null!=a&&a.set(this,e);return e}getMemoryUsage(){let a=super.getMemoryUsage();a+=null!=this.emissiveColor?16:0;null!=this.emissiveTexture&&(a+=this.emissiveTexture.memoryUsage);a+=null!=this.emissiveTextureTransform?20:0;null!=this.occlusionTexture&& (a+=this.occlusionTexture.memoryUsage);a+=null!=this.occlusionTextureTransform?20:0;null!=this.metallicRoughnessTexture&&(a+=this.metallicRoughnessTexture.memoryUsage);return a+=null!=this.metallicRoughnessTextureTransform?20:0}clonePropertiesWithDeduplication(a){return{...super.clonePropertiesWithDeduplication(a),emissiveColor:this.emissiveColor?.clone(),emissiveTexture:this.emissiveTexture?.cloneWithDeduplication(a),emissiveTextureTransform:this.emissiveTextureTransform?.clone(),occlusionTexture:this.occlusionTexture?.cloneWithDeduplication(a), occlusionTextureTransform:this.occlusionTextureTransform?.clone(),metallic:this.metallic,roughness:this.roughness,metallicRoughnessTexture:this.metallicRoughnessTexture?.cloneWithDeduplication(a),metallicRoughnessTextureTransform:this.metallicRoughnessTextureTransform?.clone()}}};c.__decorate([d.property({type:l,json:{write:!0}})],b.prototype,"emissiveColor",void 0);c.__decorate([d.property({type:f,json:{write:!0}})],b.prototype,"emissiveTexture",void 0);c.__decorate([d.property({type:g,json:{write:!0}})], b.prototype,"emissiveTextureTransform",void 0);c.__decorate([d.property({type:f,json:{write:!0}})],b.prototype,"occlusionTexture",void 0);c.__decorate([d.property({type:g,json:{write:!0}})],b.prototype,"occlusionTextureTransform",void 0);c.__decorate([d.property({type:Number,nonNullable:!0,json:{write:!0},range:{min:0,max:1}})],b.prototype,"metallic",void 0);c.__decorate([d.property({type:Number,nonNullable:!0,json:{write:!0},range:{min:0,max:1}})],b.prototype,"roughness",void 0);c.__decorate([d.property({type:f, json:{write:!0}})],b.prototype,"metallicRoughnessTexture",void 0);c.__decorate([d.property({type:g,json:{write:!0}})],b.prototype,"metallicRoughnessTextureTransform",void 0);return b=h=c.__decorate([m.subclass("esri.geometry.support.MeshMaterialMetallicRoughness")],b)});