/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
*/
define(["../../chunks/_rollupPluginBabelHelpers","../../chunks/tslib.es6","../../Color","../../core/JSONSupport","../../core/maybe","../../core/accessorSupport/decorators/property","../../core/arrayUtils","../../core/has","../../core/accessorSupport/ensureType","../../core/accessorSupport/decorators/subclass","./MeshTexture"],(function(e,o,t,r,l,i,n,u,p,s,c){"use strict";var a;let d=a=function(o){function t(e){var t;return(t=o.call(this,e)||this).color=null,t.colorTexture=null,t.normalTexture=null,t.alphaMode="auto",t.alphaCutoff=.5,t.doubleSided=!0,t}e._inheritsLoose(t,o);var r=t.prototype;return r.clone=function(){return this.cloneWithDeduplication(null,new Map)},r.cloneWithDeduplication=function(e,o){const t=l.isSome(e)?e.get(this):null;if(t)return t;const r=new a(this.clonePropertiesWithDeduplication(o));return l.isSome(e)&&e.set(this,r),r},r.clonePropertiesWithDeduplication=function(e){return{color:l.isSome(this.color)?this.color.clone():null,colorTexture:l.isSome(this.colorTexture)?this.colorTexture.cloneWithDeduplication(e):null,normalTexture:l.isSome(this.normalTexture)?this.normalTexture.cloneWithDeduplication(e):null,alphaMode:this.alphaMode,alphaCutoff:this.alphaCutoff,doubleSided:this.doubleSided}},t}(r.JSONSupport);o.__decorate([i.property({type:t,json:{write:!0}})],d.prototype,"color",void 0),o.__decorate([i.property({type:c,json:{write:!0}})],d.prototype,"colorTexture",void 0),o.__decorate([i.property({type:c,json:{write:!0}})],d.prototype,"normalTexture",void 0),o.__decorate([i.property({nonNullable:!0,json:{write:!0}})],d.prototype,"alphaMode",void 0),o.__decorate([i.property({nonNullable:!0,json:{write:!0}})],d.prototype,"alphaCutoff",void 0),o.__decorate([i.property({nonNullable:!0,json:{write:!0}})],d.prototype,"doubleSided",void 0),d=a=o.__decorate([s.subclass("esri.geometry.support.MeshMaterial")],d);return d}));
