var __extends=this&&this.__extends||(function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var i in n)n.hasOwnProperty(i)&&(e[i]=n[i])};return function(n,i){function t(){this.constructor=n}e(n,i),n.prototype=null===i?Object.create(i):(t.prototype=i.prototype,new t)}})(),BABYLON;!(function(e){var n=(function(e){function n(){var n=e.call(this)||this;return n.CLIPPLANE=!1,n.POINTSIZE=!1,n.FOG=!1,n.NORMAL=!1,n.NUM_BONE_INFLUENCERS=0,n.BonesPerMesh=0,n.INSTANCES=!1,n.rebuild(),n}return __extends(n,e),n})(e.MaterialDefines),i=(function(i){function t(e,n){return i.call(this,e,n)||this}return __extends(t,i),t.prototype.needAlphaBlending=function(){return!0},t.prototype.needAlphaTesting=function(){return!1},t.prototype.getAlphaTestTexture=function(){return null},Object.defineProperty(t.prototype,"activeLight",{get:function(){return this._activeLight},set:function(e){this._activeLight=e},enumerable:!0,configurable:!0}),t.prototype.isReadyForSubMesh=function(i,t,r){if(this.isFrozen&&this._wasPreviouslyReady&&t.effect)return!0;t._materialDefines||(t._materialDefines=new n);var a=t._materialDefines,o=this.getScene();if(!this.checkReadyOnEveryCall&&t.effect&&this._renderId===o.getRenderId())return!0;var l=o.getEngine();if(this._activeLight)for(var s=0,c=i._lightSources;s0&&u.addCPUSkinningFallback(0,i);var h=[e.VertexBuffer.PositionKind];a.NORMAL&&h.push(e.VertexBuffer.NormalKind),e.MaterialHelper.PrepareAttributesForBones(h,i,a,u),e.MaterialHelper.PrepareAttributesForInstances(h,a);var p=a.toString(),v=["world","view","viewProjection","vEyePosition","vLightsType","vFogInfos","vFogColor","pointSize","alpha","mBones","vClipPlane"],g=new Array,m=new Array;e.MaterialHelper.PrepareUniformsAndSamplersList({uniformsNames:v,uniformBuffersNames:m,samplers:g,defines:a,maxSimultaneousLights:1}),t.setEffect(o.getEngine().createEffect("shadowOnly",{attributes:h,uniformsNames:v,uniformBuffersNames:m,samplers:g,defines:p,fallbacks:u,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:1}},l),a)}return!(!t.effect||!t.effect.isReady())&&(this._renderId=o.getRenderId(),this._wasPreviouslyReady=!0,!0)},t.prototype.bindForSubMesh=function(n,i,t){var r=this.getScene(),a=t._materialDefines;if(a){var o=t.effect;o&&(this._activeEffect=o,this.bindOnlyWorldMatrix(n),this._activeEffect.setMatrix("viewProjection",r.getTransformMatrix()),e.MaterialHelper.BindBonesParameters(i,this._activeEffect),this._mustRebind(r,o)&&(e.MaterialHelper.BindClipPlane(this._activeEffect,r),this.pointsCloud&&this._activeEffect.setFloat("pointSize",this.pointSize),this._activeEffect.setFloat("alpha",this.alpha),e.MaterialHelper.BindEyePosition(o,r)),r.lightsEnabled&&e.MaterialHelper.BindLights(r,i,this._activeEffect,a,1),r.fogEnabled&&i.applyFog&&r.fogMode!==e.Scene.FOGMODE_NONE&&this._activeEffect.setMatrix("view",r.getViewMatrix()),e.MaterialHelper.BindFogParameters(r,i,this._activeEffect),this._afterBind(i,this._activeEffect))}},t.prototype.clone=function(n){var i=this;return e.SerializationHelper.Clone((function(){return new t(n,i.getScene())}),this)},t.prototype.serialize=function(){var n=e.SerializationHelper.Serialize(this);return n.customType="BABYLON.ShadowOnlyMaterial",n},t.prototype.getClassName=function(){return"ShadowOnlyMaterial"},t.Parse=function(n,i,r){return e.SerializationHelper.Parse((function(){return new t(n.name,i)}),n,i,r)},t})(e.PushMaterial);e.ShadowOnlyMaterial=i})(BABYLON||(BABYLON={})),BABYLON.Effect.ShadersStore.shadowOnlyVertexShader="precision highp float;\n\nattribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\n#include\n\n#include\nuniform mat4 view;\nuniform mat4 viewProjection;\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\n#include\n#include\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\nvoid main(void) {\n#include\n#include\ngl_Position=viewProjection*finalWorld*vec4(position,1.0);\nvec4 worldPos=finalWorld*vec4(position,1.0);\nvPositionW=vec3(worldPos);\n#ifdef NORMAL\nvNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\n#endif\n\n#include\n\n#include\n#include[0..maxSimultaneousLights]\n\n#ifdef POINTSIZE\ngl_PointSize=pointSize;\n#endif\n}\n",BABYLON.Effect.ShadersStore.shadowOnlyPixelShader="precision highp float;\n\nuniform vec3 vEyePosition;\nuniform float alpha;\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n\n#include\n\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include\n#include\n#include\n\n#include\nvoid main(void) {\n#include\nvec3 viewDirectionW=normalize(vEyePosition-vPositionW);\n\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=vec3(1.0,1.0,1.0);\n#endif\n\nvec3 diffuseBase=vec3(0.,0.,0.);\nlightingInfo info;\nfloat shadow=1.;\nfloat glossiness=0.;\n#include[0..1]\n\nvec4 color=vec4(0.,0.,0.,(1.0-clamp(shadow,0.,1.))*alpha);\n#include\ngl_FragColor=color;\n}";