/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
*/
define(["exports","../../../../../chunks/_rollupPluginBabelHelpers","../shaderModules/interfaces"],(function(t,e,r){"use strict";let i=function(t){function r(){var e;return(e=t.apply(this,arguments)||this)._dirty=!0,e}e._inheritsLoose(r,t);var i=r.prototype;return i._setDirty=function(){this._dirty=!0},i._setClean=function(){if(this._dirty=!1,null!=this._parameterBlocks)for(const t of this._parameterBlocks)this[t]._setClean()},i._checkParameterBlocksDirty=function(){if(null==this._parameterBlocks)return!1;for(const t of this._parameterBlocks)if(this[t].dirty)return!0;return!1},e._createClass(r,[{key:"dirty",get:function(){return this._dirty||this._checkParameterBlocksDirty()}}]),r}(r.NoParameters),s=function(){function t(){this._dirty=!0}var r=t.prototype;return r._setDirty=function(){this._dirty=!0},r._setClean=function(){this._dirty=!1},e._createClass(t,[{key:"dirty",get:function(){return this._dirty}}]),t}();function n(t={}){return(e,r)=>{var i;const s=null!=(i=e._parameterCount)?i:0;if(e._parameterCount=s+1,t.vectorOps){const i=t.vectorOps;Object.defineProperty(e,r,{get(){return this[s]},set(t){const e=this[s];if(null==e)this[s]=t;else{if(i.equals(e,t))return;i.copy(e,t)}this._setDirty()}})}else Object.defineProperty(e,r,{get(){return this[s]},set(e){this[s]!==e&&(t.dispose&&this[s]&&this[s].dispose(),this[s]=e,this._setDirty())}})}}function o(){return(t,e)=>{var r;const i=null!=(r=t._parameterCount)?r:0;t._parameterCount=i+1,t._parameterBlocks=t._parameterBlocks||[],t._parameterBlocks.push(i),Object.defineProperty(t,e,{get(){return this[i]},set(t){this[i]!==t&&(this[i]=t,this._setDirty())}})}}t.MaterialBase=i,t.MaterialParameterBlock=s,t.parameter=n,t.parameterBlock=o,Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
