1/** 2 * @preserve 3 * @author ThemePunch <[email protected]> 4 * @link http://www.themepunch.com/ 5 * @copyright 2022 ThemePunch 6 * @version 1.0.8 7 */ 8!function(){"use strict";window._R_is_Editor?RVS._R=void 0===RVS._R?{}:RVS._R:window._R_is_Editor=!1,jQuery.fn.revolution=jQuery.fn.revolution||{};var t,e,i,n,r,s,a,o,l=window._R_is_Editor?RVS._R:jQuery.fn.revolution;function u(t,e,i,n,r,s,a){var o=t/e;isNaN(o)||0===o||!isFinite(o)?(t=i,e=i):o>=1?e=(t=i)/o:t=(e=i)*o,a?(n.crossOrigin="Anonymous",n.addEventListener("load",(function(){c(t,e,n,r,s)})),n.src=a):c(t,e,n,r,s)}function c(t,e,i,n,r){var s=Math.max(t,e);s+=4,i.width=t,i.height=e,n.canvas.width=s,n.canvas.height=s,n.webkitImageSmoothingEnabled=!1,n.msImageSmoothingEnabled=!1,n.imageSmoothingEnabled=!1,n.scale(1,-1),n.drawImage(i,(s-t)/2+2,-(s-e)/2+2,t-4,-e-4),r(n.canvas)}function g(t,l){if(this.settings=t,l&&l.theCluster){this.count=t.amount*t.amount;var u=this.w=t.width,c=this.h=t.height;this.camera=new THREE.PerspectiveCamera(70,u/c,1,1e3),this.scene=new THREE.Scene,this.group=new THREE.Group,this.particleMaterial,this.posToUniform,this.vccToUniform,this.camera.position.z=20,e="\n\t\t\tuniform float u_speed;\n\t\t\tuniform float u_time;\n\t\t\tuniform float u_lifeTimeDelay;\n\n\t\t\tvoid main() {\n\t\t\t\tvec2 uv = gl_FragCoord.xy / resolution.xy;\n\t\t\t\tvec4 texturePos = texture2D(texturePosition, uv);\n\t\t\t\tvec4 textureVel = texture2D(textureVelocity, uv);\n\t\t\t\tvec4 textureInitPos = texture2D(textureInitPos, uv);\n\t\t\t\tvec4 textureInitVCC = texture2D(textureInitVCC, uv);\n\t\t\t\tvec3 pos = texturePos.xyz;\n\t\t\t\tvec3 vel = textureVel.xyz;\n\n\t\t\t\tfloat minCo = 0.0;\n\t\t\t\tfloat maxCo = 0.75;\n\n\t\t\t\t//-- Add ParticleMove Here --\n\n\t\t\t\tgl_FragColor = vec4(pos, 1.0);\n\t\t\t}\n\t\t",n="\n\t\t\tvoid main() {\n\t\t\t\tvec2 uv = gl_FragCoord.xy / resolution.xy;\n\t\t\t\tvec4 textureCV = texture2D(textureCustomValues, uv);\n\n\t\t\t\tgl_FragColor = textureCV;\n\t\t\t}\n\t\t",i="\n\t\t\tvoid main() {\n\t\t\t\tvec2 uv = gl_FragCoord.xy / resolution.xy;\n\t\t\t\tvec4 textureCV = texture2D(textureInitPos, uv);\n\n\t\t\t\tgl_FragColor = textureCV;\n\t\t\t}\n\t\t",r="\n\t\t\tvoid main() {\n\t\t\t\tvec2 uv = gl_FragCoord.xy / resolution.xy;\n\t\t\t\tvec4 textureCV = texture2D(textureInitVCC, uv);\n\n\t\t\t\tgl_FragColor = textureCV;\n\t\t\t}\n\t\t",s="\n\t\t\tuniform float u_speed;\n\t\t\tuniform float u_mass;\n\t\t\tuniform float u_mass2;\n\t\t\tuniform float u_mass3;\n\t\t\tuniform float u_gravPositions[9];\n\t\t\tuniform float u_time;\n\t\t\tuniform float u_lifeTimeDelay;\n\t\t\tuniform float u_noiseAmount;\n\t\t\tuniform vec2 u_mouseVector;\n\t\t\tuniform bool u_mouseOnLayer;\n\n\t\t\t//-- Add Noise Methods Here --\n\n\t\t\tvoid main() {\n\t\t\t\tvec2 uv = gl_FragCoord.xy / resolution.xy;\n\t\t\t\tvec4 texturePos = texture2D(texturePosition, uv);\n\t\t\t\tvec4 textureVel = texture2D(textureVelocity, uv);\n\t\t\t\tvec4 textureCV = texture2D(textureCustomValues, uv);\n\t\t\t\tvec4 textureInitVCC = texture2D(textureInitVCC, uv);\n\t\t\t\tvec3 vel = textureVel.xyz;\n\t\t\t\tvec3 pos = texturePos.xyz;\n\t\t\t\tfloat lifetime = textureVel.w;\n\n\t\t\t\tfloat gravCo = -0.004;\n\t\t\t\tfloat speedCo = 0.1;\n\n\t\t\t\tvec3 sumVector = vec3(0.0, 0.0, 0.0);\n\n\t\t\t\t//-- Add G1 Here --\n\t\t\t\t//-- Add G2 Here --\n\t\t\t\t//-- Add G3 Here --\n\t\t\t\t//-- Add G4 Here --\n\n\t\t\t\t//-- Add Modified Vel Here --\n\n\t\t\t\tvel += sumVector * u_speed * speedCo;\n\n\t\t\t\t//-- Add Noise Here --\n\n\t\t\t\t//-- Add Disolve Here --\n\n\t\t\t\tgl_FragColor = vec4(vel, lifetime);\n\t\t\t}\n\t\t",a="\n\t\t\t//interresting effect with limit on gl_Position.xyz\n\n\t\t\tvec3 limit(inout vec3 pos, vec3 shiftby, float dis){\n\t\t\t\tfloat length = length(pos - shiftby);\n\t\t\t\tif(length > dis){\n\t\t\t\t\treturn (normalize(pos) * dis) + shiftby;\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\treturn pos;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvec3 unLimit(inout vec3 pos, vec3 shiftby, float dis){\n\t\t\t\tfloat length = length(pos - shiftby);\n\t\t\t\tif(length < dis){\n\t\t\t\t\treturn (normalize(pos) * dis) + shiftby;\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\treturn pos;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tuniform sampler2D texturePosition;\n\t\t\tuniform sampler2D textureVelocity;\n\t\t\tuniform sampler2D textureCustomValues;\n\n\t\t\tuniform float u_pointSize;\n\t\t\tuniform vec3 u_limitCentrePosition;\n\t\t\tuniform float u_limitMovementValue;\n\t\t\tuniform bool u_limitMovement;\n\t\t\tuniform float u_time;\n\t\t\tuniform float u_lifeTimeDelay;\n\n\t\t\tvarying vec3 v_pos;\n\t\t\tvarying float v_lifetime;\n\t\t\tvarying vec2 v_uv;\n\n\t\t\tuniform bool u_mouseOnLayer;\n\t\t\tuniform vec2 u_mouseVector;\n\n\t\t\tvoid main() {\n\t\t\t\tvec4 pos = texture2D(texturePosition, uv);\n\t\t\t\tvec4 vel = texture2D(textureVelocity, uv);\n\t\t\t\tvec4 textureCV = texture2D(textureCustomValues, uv);\n\n\t\t\t\tv_uv = uv;\n\n\t\t\t\tvec4 worldPosition;\n\n\t\t\t\tvec4 endPos;\n\t\t\t\tvec3 posnew = vec3(0.0);\n\n\t\t\t\tif(u_mouseOnLayer == true){\n\t\t\t\t\tposnew = unLimit(pos.xyz, vec3(u_mouseVector, 0.0), 0.55);\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\tposnew = unLimit(pos.xyz, u_limitCentrePosition, 0.55);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\tif(u_limitMovement == true){\n\t\t\t\t\tendPos = vec4(limit(posnew, u_limitCentrePosition, u_limitMovementValue), 1.0);\n\t\t\t\t}else{\n\t\t\t\t\tendPos = vec4(posnew, 1.0);\n\t\t\t\t}\n\n\t\t\t\tworldPosition = modelMatrix * endPos;\n\t\t\t\t\n\t\t\t\tvec4 mvPosition = viewMatrix * worldPosition;\n\t\t\t\tgl_Position = projectionMatrix * mvPosition;\n\n\t\t\t\tv_pos = pos.xyz;\n\n\t\t\t\t//-- Add v_lifetime Here --\n\n\t\t\t\t//-- Add stayOnScreen Here --\n\n\t\t\t\tfloat sizeChangeOnGrav = length(pos.xyz) / 5.0;\n\t\t\t\tgl_PointSize = (u_pointSize) * textureCV.w * clamp(sizeChangeOnGrav, 0.75, 1.5);\n\t\t\t}\n\t\t",o="\n\t\t\tfloat resize(inout float x, float wholeLocal){\n\t\t\t\treturn abs(x / wholeLocal);\n\t\t\t}\n\n\t\t\tuniform sampler2D u_particleTexture;\n\t\t\tuniform float u_colorArray[30];\n\t\t\tuniform float u_time;\n\t\t\tuniform float u_colorImageMixValue;\n\n\t\t\tvarying vec3 v_pos;\n\t\t\tvarying float v_lifetime;\n\t\t\tvarying vec2 v_uv;\n\t\t\t\n\t\t\tvoid main() {\n\n\t\t\t\t//-- Add ColorCode Here --\n\n\t\t\t\tif(b.w > 0.1){\n\t\t\t\t\tgl_FragColor = mix(c, b, u_colorImageMixValue / 100.0);\n\t\t\t\t\tgl_FragColor.w = v_lifetime;\n\t\t\t\t}\n\n\t\t\t}\n\t\t",m(this),(t.showHelper||t.gravPointsVisible)&&(this.axesHelper=new THREE.AxesHelper(5),this.scene.add(this.axesHelper)),this.createScene(),this.bindedRender=this.render.bind(this)}else this.destroy()}function m(t){var e=Math.tan(t.camera.fov/2)*(t.camera.position.z+12)*2;return{x:t.camera.aspect*e,y:e}}function d(t){t.gravPositions[0]=t.g1X,t.gravPositions[1]=t.g1Y,t.gravPositions[2]=t.g1Z,t.gravPositions[3]=t.g2X,t.gravPositions[4]=t.g2Y,t.gravPositions[5]=t.g2Z,t.gravPositions[6]=t.g3X,t.gravPositions[7]=t.g3Y,t.gravPositions[8]=t.g3Z}function v(t,e){var i=e.theCluster;i.speed=parseFloat(i.speed),t.speed=i.speed/100,t.size=i.size/5,t.randSizeMin=i.randSizeMin,t.randSizeMax=i.randSizeMax,t.scale=i.groShr/100,t.angle=i.angle,t.tilt=i.tilt,t.horizontal=i.offsetX,t.vertical=i.offsetY,t.zoom=i.offsetZ,t.keepCentered=i.keepCentered,t.spawnForm=i.spawnForm,t.spawnAccVec=i.spawnAccVec,t.limitMovementValue=i.limitMovementValue,t.lifeTimeDelay=i.lifeTimeDelay,t.noiseAmount=i.noiseAmount,t.colorImageMixValue=i.colorImageMixValue}function p(t,e){var i=document.getElementById("wpsaddon_gravP"+t+"MoveSel");null!==i&void 0!==i&&(i.style.cssText=e?"opacity: 100%; pointer-events: auto;":"opacity: 50%; pointer-events: none;")}function h(t,e){var i=e.theCluster;t.mass=i.mass,t.mass2=i.mass2,t.mass3=i.mass3,t.g1X=i.g1X,t.g1Y=i.g1Y,t.g1Z=i.g1Z,t.g2X=i.g2X,t.g2Y=i.g2Y,t.g2Z=i.g2Z,t.g3X=i.g3X,t.g3Y=i.g3Y,t.g3Z=i.g3Z,t.aniX=i.aniX,t.aniY=i.aniY,t.aniZ=i.aniZ,t.gravPoint1Toggle&&(t.gravPointArray[0].material.color.set(16721765),t.gravPointArray[0].position.x=t.g1X,t.gravPointArray[0].position.y=t.g1Y,t.gravPointArray[0].position.z=t.g1Z),t.gravPoint2Toggle&&(t.gravPointArray[1].material.color.set(890098),t.gravPointArray[1].position.x=t.g2X,t.gravPointArray[1].position.y=t.g2Y,t.gravPointArray[1].position.z=t.g2Z),t.gravPoint3Toggle&&(t.gravPointArray[2].material.color.set(3274158),t.gravPointArray[2].position.x=t.g3X,t.gravPointArray[2].position.y=t.g3Y,t.gravPointArray[2].position.z=t.g3Z),function(t){t.limitCentrePosition.set(parseFloat(t.g1X)+parseFloat(t.g2X)+parseFloat(t.g3X),parseFloat(t.g1Y)+parseFloat(t.g2Y)+parseFloat(t.g3Y),parseFloat(t.g1Z)+parseFloat(t.g2Z)+parseFloat(t.g3Z)).multiplyScalar(1/3)}(t),d(t)}function f(t){return(t=tpGS.gsap.utils.splitColor(t)).length<=3&&(t[3]=1),t}function x(t,e){t.scene.rotation.z=e.angle*Math.PI/180,t.scene.rotation.x=e.tilt*Math.PI/180,t.camera.position.x=e.horizontal,t.camera.position.y=e.vertical,t.camera.position.z=e.zoom+22,e.keepCentered&&t.camera.lookAt(0,0,0)}function y(t){return _R_is_Editor?t:1==t}function _(t){return _R_is_Editor?RVS.LIB.RSCLUSTER[t.settings.lid]:l[t.settings.sid]._L[t.settings.lid]}function C(t){(t===1/0||isNaN(t))&&(t=0);var e=function(t){var e=t.toString().split(".")[1];return void 0===e?0:e.length}(t);return 0===e?parseFloat(t).toFixed(1):parseFloat(t).toFixed(e)}jQuery.extend(!0,l,{theClusterBuild:{getBasics:function(){return{speed:25,limitMovement:!1,limitMovementValue:15,noiseOn:!1,noiseAmount:50,angle:0,tilt:0,showHelper:!1,keepCentered:!0,offsetX:0,offsetY:0,offsetZ:0,dpr:1,gravPointsVisible:!1,g1X:-5,g1Y:0,g1Z:0,g2X:0,g2Y:0,g2Z:0,g3X:5,g3Y:0,g3Z:0,mass:30,mass2:30,mass3:30,gravPoint1Toggle:!1,gravPoint2Toggle:!0,gravPoint3Toggle:!1,spawnDiameter:50,amount:900,spawnForm:"random",spawnAccVec:"normalCW",sIX:10,sIY:7,sIZ:0,sVX:1,sVY:0,sVZ:0,mirroredOn:0,size:22,randomizeSize:!0,tc_mainColor:"{&type&:&radial&,&angle&:&0&,&colors&:[{&r&:255,&g&:248,&b&:0,&a&:1,&position&:0,&align&:&bottom&},{&r&:255,&g&:248,&b&:0,&a&:1,&position&:0,&align&:&top&},{&r&:255,&g&:19,&b&:97,&a&:1,&position&:33,&align&:&bottom&},{&r&:68,&g&:16,&b&:122,&a&:1,&position&:71,&align&:&bottom&},{&r&:35,&g&:21,&b&:87,&a&:1,&position&:100,&align&:&top&},{&r&:35,&g&:21,&b&:87,&a&:1,&position&:100,&align&:&bottom&}],&easing&:&none&,&strength&:100}
8",particle:"default",randomizeOpacity:!0,randSizeMin:50,randSizeMax:150,colorImageMixValue:0,animationSel:"off",aniX:0,aniY:0,aniZ:0,patternSel:"continuous",lifeTimeDelay:5,lifetimeAlphaChange:"fadeInOut",lifeTimeGradient:!1,gravP1MoveSel:"off",gravP2MoveSel:"off",gravP3MoveSel:"off",periodicSpawn:!0,periodicSpawnValue:1,gravFollowMouse:"off",gravFollowMouseValue:50,gravRotateMouseValue:30,gravRotateReturnValue:30,vfxSelector:"off",focus:50,maxBlur:10,minBlur:0,aperture:5,sfxBreathing:!0}}},theClusterInit:function(t,e){l.TWOMPI=l.TWOMPI||2*Math.PI,l.DEGTORAD=l.DEGTORAD||Math.PI/180,l.theClusterUrl=void 0===e.url?"":e.url,THREE.Cache.enabled=!0,l.theClusterUtils.observe(t)},theClusterUtils:{observe:function(t){l[t].c.on("layerinitialised",(function(e,i){void 0!==l[t]._L[i.layer]&&l[t]._L[i.layer].c[0].className.indexOf("tp-thecluster")>=0&&l.theClusterUtils.initLayer(t,i.layer)})),l[t].c.on("revolution.layeraction",(function(e,i){if(null!=l[t]._L[i.layerid]&&-1!==l[t]._L[i.layerid].c[0].className.indexOf("tp-thecluster"))if("enterstage"===i.eventtype)l[t]._L[i.layerid].clusterInited?null==l[t]._L[i.layerid].theCluster&&(l.theClusterUtils.initLayer(t,i.layerid),l.theClusterUtils.set
8Layer(l[t]._L[i.layerid])):(l[t]._L[i.layerid].clusterInited=!0,l.theClusterUtils.setLayer(l[t]._L[i.layerid])),l.theClusterUtils.fitCameraToObject(l[t]._L[i.layerid]),l[t]._L[i.layerid].theCluster.pauseTimer&&l[t]._L[i.layerid].theCluster.pauseTimer.kill&&l[t]._L[i.layerid].theCluster.pauseTimer.kill();else if("leavestage"===i.eventtype&&l[t]._L[i.layerid]&&l[t]._L[i.layerid].theCluster&&l[t]._L[i.layerid].theCluster.cluster){var n=l[t]._L[i.layerid].theCluster.cluster;l[t]._L[i.layerid].theCluster.pauseTimer=tpGS.gsap.delayedCall(l[t]._L[i.layerid].frames.frame_999.timeline.speed/1e3,(function(){n.paused=!0,n.frame=cancelAnimationFrame(n.frame),n.destroy(),l[t]._L[i.layerid].theCluster=void 0}))}})),l[t].c.on("leftviewport",(function(){for(var e in l[t]._L)if(l[t]._L.hasOwnProperty(e)&&l[t]._L[e]&&l[t]._L[e].theCluster&&l[t]._L[e].theCluster.cluster){var i=l[t]._L[e].theCluster.cluster;i.paused=!0,i.frame=cancelAnimationFrame(i.frame),i.destroy(),l[t]._L[e].theCluster=void 0}})).on("enterviewport",(function(){for(var e in l[t]._L)l[t]._L.hasOwnProperty(e)&&l[t]._L[e]&&l[t].pr_active_key==l[t]._L[e].slideIndex&&-1!==l[t]._L[e].c[0].className.indexOf("tp-thecluster")&&null==l[t]._L[e].theCluster&&(l.theClusterUtils.initLayer(t,e),l.theClusterUtils.set
8Layer(l[t]._L[e]))}))},initLayer:function(t,e){if(null==l[t]._L[e]||void 0===l[t]._L[e].theCluster){var i,n,r=l[t]._L[e];r.theCluster=l.theClusterUtils.getWebGLCanvas(),r.theCluster=jQuery.extend(!0,r.theCluster,l.theClusterBuild.getBasics());var s=r.theCluster;if(s.sid=t,s.lid=e,s.sliderId=t,void 0!==r.clusterdata)for(i in r.clusterdata="object"==typeof r.clusterdata?r.clusterdata:r.clusterdata.split(";"),r.clusterdata)if(r.clusterdata.hasOwnProperty(i))if((r.clusterdata[i]+"").indexOf("{")>=0)0==(r.clusterdata[i]+"").indexOf("pc:")&&(s.tc_mainColor=(r.clusterdata[i]+"").replace("pc:",""));else switch((n=r.clusterdata[i].split(":"))[0]){case"ms":s.speed=n[1];break;case"mm":s.mass=n[1];break;case"mm2":s.mass2=n[1];break;case"mm3":s.mass3=n[1];break;case"mi":s.size=n[1];break;case"mp":s.spawnDiameter=n[1];break;case"ma":s.amount=n[1];break;case"sa":s.angle=n[1];break;case"st":s.tilt=n[1];break;case"sh":s.showHelper=n[1];break;case"sx":s.offsetX=n[1];break;case"sy":s.offsetY=n[1];break;case"sz":s.offsetZ=n[1];break;case"sk":s.keepCentered=n[1];break;case"sd":s.dpr=n[1];break;case"sf":s.spawnForm=n[1];break;case"mc":s.spawnAccVec=n[1];break;case"g1X":s.g1X=n[1];break;case"g1Y":s.g1Y=n[1];break;case"g1Z":s.g1Z=n[1];break;case"g2X":s.g2X=n[1];break;case"g2Y":s.g2Y=n[1];break;case"g2Z":s.g2Z=n[1];break;case"g3X":s.g3X=n[1];break;case"g3Y":s.g3Y=n[1];break;case"g3Z":s.g3Z=n[1];break;case"gl":s.limitMovement=n[1];break;case"gv":s.limitMovementValue=n[1];break;case"sIX":s.sIX=n[1];break;case"sIY":s.sIY=n[1];break;case"sIZ":s.sIZ=n[1];break;case"sVX":s.sVX=n[1];break;case"sVY":s.sVY=n[1];break;case"sVZ":s.sVZ=n[1];break;case"pc":s.tc_mainColor=n[1];break;case"gp":s.gravPointsVisible=n[1];break;case"pr":s.randomizeSize=n[1];break;case"pp":s.particle=n[1];break;case"as":s.animationSel=n[1];break;case"aniX":s.aniX=n[1];break;case"aniY":s.aniY=n[1];break;case"aniZ":s.aniZ=n[1];break;case"sM":s.mirroredOn=n[1];break;case"mps":s.patternSel=n[1];break;case"ld":s.lifeTimeDelay=n[1];break;case"mn":s.noiseOn=n[1];break;case"mf":s.noiseAmount=n[1];break;case"ml":s.lifetimeAlphaChange=n[1];break;case"mg":s.lifeTimeGradient=n[1];break;case"mp1":s.gravP1MoveSel=n[1];break;case"mp2":s.gravP2MoveSel=n[1];break;case"mp3":s.gravP3MoveSel=n[1];break;case"po":s.randomizeOpacity=n[1];break;case"msp":s.periodicSpawn=n[1];break;case"msv":s.periodicSpawnValue=n[1];break;case"t1":s.gravPoint1Toggle=n[1];break;case"t2":s.gravPoint2Toggle=n[1];break;case"t3":s.gravPoint3Toggle=n[1];break;case"pin":s.randSizeMin=n[1];break;case"pax":s.randSizeMax=n[1];break;case"cim":s.colorImageMixValue=n[1];break;case"ifm":s.gravFollowMouse=n[1];break;case"ifv":s.gravFollowMouseValue=n[1];break;case"vfx":s.vfxSelector=n[1];break;case"vbr":s.sfxBreathing=n[1];break;case"vmi":s.minBlur=n[1];break;case"vma":s.maxBlur=n[1];break;case"ifr":s.gravRotateMouseValue=n[1];break;case"ifn":s.gravRotateReturnValue=n[1]}r.c.find("canvas").remove(),r.c[0].appendChild(s.canvas)}},initBackendLayer:function(t,e){var i,n,r,s;_R_is_Editor&&(void 0===RVS.LIB.RSCLUSTER&&(RVS.LIB.RSCLUSTER={}),i=RVS.LIB.RSCLUSTER[t]?RVS.LIB.RSCLUSTER[t]:{},RVS.LIB.RSCLUSTER[t]=i,RVS.LIB.RSCLUSTER[t]&&RVS.LIB.RSCLUSTER[t].theCluster&&RVS.LIB.RSCLUSTER[t].theCluster.cluster&&(r=Math.round(RVS.H[i.lid].c[0].clientWidth),s=Math.round(RVS.H[i.lid].c[0].clientHeight),r===(n=RVS.LIB.RSCLUSTER[t].theCluster).cluster.settings.width&&s===n.cluster.settings.height&&!e))||i.waiting||(RVS.LIB.RSCLUSTER[t]&&RVS.LIB.RSCLUSTER[t].theCluster&&n&&(n.initCall&&n.initCall.kill(),n&&n.cluster&&n.cluster.destroy&&n.cluster.destroy(),i=RVS.LIB.RSCLUSTER[t]={}),l.TWOMPI=l.TWOMPI||2*Math.PI,l.DEGTORAD=l.DEGTORAD||Math.PI/180,void 0!==RVS&&void 0!==RVS.L&&void 0!==RVS.L[t]&&null!=RVS.L[t].addOns["revslider-thecluster-addon"]&&(i.theCluster=l.theClusterUtils.getWebGLCanvas(),i.theCluster=jQuery.extend(!0,RVS._R.theClusterBuild.getBasics(),i.theCluster),i.theCluster=jQuery.extend(!0,i.theCluster,RVS.L[t].addOns["revslider-thecluster-addon"]),i.lid=t,i.waiting=!0,i.theCluster.initCall=tpGS.gsap.delayedCall(.3,(function(){i.waiting=!1,i.destroyed||RVS.L[t]&&(i.eow=RVS.L[t].size.width[RVS.screen].v.indexOf&&-1!==RVS.L[t].size.width[RVS.screen].v.indexOf("%")?RVS.H[t].c.width():parseInt(RVS.L[t].size.width[RVS.screen].v,0),i.eoh=RVS.L[t].size.height[RVS.screen].v.indexOf&&-1!==RVS.L[t].size.height[RVS.screen].v.indexOf("%")?RVS.H[t].c.height():parseInt(RVS.L[t].size.height[RVS.screen].v,0),RVS.H[t].c[0].appendChild(i.theCluster.canvas),l.theClusterUtils.layers=void 0===l.theClusterUtils.layers?{}:l.theClusterUtils.layers,i.theCluster.id=RVS.S.slideId,i.theCluster.lid=t,l.theClusterUtils.layers[RVS.S.slideId+"_"+t]=i,l.theClusterUtils.set
8Layer(i),l.theClusterUtils.fitCameraToObject(i))}))))},setLayer:function(e){var i=e.theCluster;i.size=parseFloat(i.size),i.angle=parseFloat(i.angle),i.tilt=parseFloat(i.tilt),i.offsetX=parseFloat(i.offsetX),i.offsetY=parseFloat(i.offsetY),i.offsetZ=parseFloat(i.offsetZ),i.mass=parseFloat(i.mass),i.mass2=parseFloat(i.mass2),i.mass3=parseFloat(i.mass3),i.spawnDiameter=parseFloat(i.spawnDiameter)/10,i.g1X=parseFloat(i.g1X),i.g1Y=parseFloat(i.g1Y),i.g1Z=parseFloat(i.g1Z),i.g2X=parseFloat(i.g2X),i.g2Y=parseFloat(i.g2Y),i.g2Z=parseFloat(i.g2Z),i.g3X=parseFloat(i.g3X),i.g3Y=parseFloat(i.g3Y),i.g3Z=parseFloat(i.g3Z),i.sIX=parseFloat(i.sIX),i.sIY=parseFloat(i.sIY),i.sIZ=parseFloat(i.sIZ),i.sVX=parseFloat(i.sVX),i.sVY=parseFloat(i.sVY),i.sVZ=parseFloat(i.sVZ),i.aniX=parseFloat(i.aniX),i.aniY=parseFloat(i.aniY),i.aniZ=parseFloat(i.aniZ),i.limitMovementValue=parseFloat(i.limitMovementValue),i.lifeTimeDelay=Math.abs(parseFloat(i.lifeTimeDelay)/10-2.1),i.noiseAmount=parseFloat(i.noiseAmount)/100,i.periodicSpawnValue=parseFloat(i.periodicSpawnValue),i.randSizeMin=parseFloat(i.randSizeMin),i.randSizeMax=parseFloat(i.randSizeMax),i.colorImageMixValue=parseFloat(i.colorImageMixValue),i.gravFollowMouseValue=parseFloat(i.gravFollowMouseValue),i.gravRotateMouseValue=parseFloat(i.gravRotateMouseValue),i.gravRotateReturnValue=parseFloat(i.gravRotateReturnValue)/1e4,i.focus=parseFloat(i.focus),i.maxBlur=.001*parseFloat(i.maxBlur),i.minBlur=.001*parseFloat(i.minBlur),i.aperture=1e-5*parseFloat(i.aperture),_R_is_Editor&&void 0===RVS.ENV.THECLUSTER_URL&&(RVS.ENV.THECLUSTER_URL="//"+window.location.host+"/wp-content/plugins/revslider-thecluster-addon/"),"default"===i.particle&&(i.particle=_R_is_Editor?RVS.ENV.THECLUSTER_URL+"public/lib/par2.png":l.theClusterUrl+"public/lib/par2.png"),-1!==i.particle.indexOf(".svg")&&(i.svg=!0),void 0===t&&(t=new THREE.Clock),i.settings={},i.settings.size=i.size/5,i.settings.amount=Math.floor(Math.sqrt(parseFloat(i.amount))),i.settings.icon=i.particle,i.settings.width=e.eow,i.settings.height=e.eoh,i.settings.canvas=i.canvas,i.settings.showHelper=i.showHelper,i.settings.keepCentered=i.keepCentered,i.settings.mass=i.mass,i.settings.mass2=i.mass2,i.settings.mass3=i.mass3,i.settings.spawnDiameter=i.spawnDiameter,i.settings.renderTexturePos,i.settings.renderTextureVcc,i.settings.renderTextureCustomValues,i.settings.renderTextureInitPos,i.settings.renderTextureInitVCC,i.settings.computePos,i.settings.computeVcc,i.settings.computeCustomValues,i.settings.computeInitPos,i.settings.computeInitVCC,i.settings.vccVector=[0,0,0,0,0,0,0,0],i.settings.arrowHelper,i.settings.clusterPoint,i.settings.dpr=parseFloat(i.dpr),i.settings.spawnForm=i.spawnForm,i.settings.spawnAccVec=i.spawnAccVec,i.settings.gravPointCounter=0,i.settings.gravPointArray=[new THREE.Vector3],i.settings.gravPositions=[0,0,0,0,0,0,0,0,0],i.settings.g1X=i.g1X,i.settings.g1Y=i.g1Y,i.settings.g1Z=i.g1Z,i.settings.g2X=i.g2X,i.settings.g2Y=i.g2Y,i.settings.g2Z=i.g2Z,i.settings.g3X=i.g3X,i.settings.g3Y=i.g3Y,i.settings.g3Z=i.g3Z,i.settings.limitMovement=y(i.limitMovement),i.settings.limitMovementValue=i.limitMovementValue,i.settings.limitCentrePosition=new THREE.Vector3(0,0,0),i.settings.sIX=i.sIX,i.settings.sIY=i.sIY,i.settings.sIZ=i.sIZ,i.settings.sVX=i.sVX,i.settings.sVY=i.sVY,i.settings.sVZ=i.sVZ,i.settings.gravPointsVisible=i.gravPointsVisible,i.settings.randomizeSize=i.randomizeSize,i.settings.tc_mainColorOri=f(_R_is_Editor?RSColor.get(i.tc_mainColor):i.tc_mainColor),i.settings.tc_mainColor=f(i.tc_mainColor),i.settings.isGradient=_R_is_Editor?-1!=RSColor.get(i.tc_mainColor).indexOf("gradient"):-1!=i.tc_mainColor.indexOf("gradient"),i.settings.isRadGradient=_R_is_Editor?-1!=RSColor.get(i.tc_mainColor).indexOf("radial"):-1!=i.tc_mainColor.indexOf("radial"),i.settings.draggable=null,i.settings.convertedPos=new THREE.Vector3,i.settings.animationSel=i.animationSel,i.settings.aniX=i.aniX,i.settings.aniY=i.aniY,i.settings.aniZ=i.aniZ,i.settings.mirroredOn=i.mirroredOn,i.settings.patternSel=i.patternSel,i.settings.lifeTimeDelay=i.lifeTimeDelay,i.settings.noiseOn=i.noiseOn,i.settings.noiseAmount=i.noiseAmount.toFixed(2),i.settings.lifetimeAlphaChange=i.lifetimeAlphaChange,i.settings.lifeTimeGradient=y(i.lifeTimeGradient),i.settings.gravP1MoveSel=i.gravP1MoveSel,i.settings.gravP2MoveSel=i.gravP2MoveSel,i.settings.gravP3MoveSel=i.gravP3MoveSel,i.settings.randomizeOpacity=y(i.randomizeOpacity),i.settings.periodicSpawn=y(i.periodicSpawn),i.settings.periodicSpawnValue=i.peri
8odicSpawnValue,i.settings.gravPoint1Toggle=y(i.gravPoint1Toggle),i.settings.gravPoint2Toggle=y(i.gravPoint2Toggle),i.settings.gravPoint3Toggle=y(i.gravPoint3Toggle),i.settings.randSizeMin=i.randSizeMin,i.settings.randSizeMax=i.randSizeMax,i.settings.colorImageMixValue=i.colorImageMixValue,i.settings.mouseVec=new THREE.Vector2,i.settings.mouseMoveVec=new THREE.Vector2,i.settings.mouseOnLayer=!1,i.settings.gravFollowMouse=i.gravFollowMouse,i.settings.gravFollowMouseValue=i.gravFollowMouseValue,i.settings.gravRotateMouseValue=i.gravRotateMouseValue,i.settings.gravRotateReturnValue=i.gravRotateReturnValue,i.settings.vfxSelector=i.vfxSelector,i.settings.focus=i.focus,i.settings.maxBlur=i.maxBlur,i.settings.minBlur=i.minBlur,i.settings.aperture=i.aperture,i.settings.sfxBreathing=i.sfxBreathing,v(i.settings,e),i.settings.lid=i.lid,i.settings.sid=i.sid,i.settings.isSVG=i.svg,i.settings.tcanv=document.createElement("canvas"),function(t,e,i,n,r){i*=100*window.devicePixelRatio*(n+1);var s=e.getContext("2d"),a=new Image;a.crossOrigin="Anonymous",-1==t.indexOf(".svg")?(a.crossOrigin="Anonymous",a.onload=function(){u(this.naturalWidth,this.naturalHeight,i,a,s,r)},a.src=t):jQuery.ajax({url:t,accepts:"image/svg+xml",complete:function(t){for(var e=t.responseText,n=jQuery(e),a=0;a<n.length;a++)if("svg"===n[a].tagName){n=n.eq(a);break}if(e){var o=parseFloat(n.attr("width")),l=parseFloat(n.attr("height"));isNaN(o)&&(o=i),isNaN(l)&&(l=i),n.attr("width",o),n.attr("height",l),e=(e=(new XMLSerializer).serializeToString(n[0])).replace(/<metadata([\s\S]*?)>([\s\S]*?)<\/metadata>/g,"");var c=new Image,g="data:image/svg+xml;base64,"+btoa(e);u(o,l,i,c,s,r,g)}else console.error("Failed to load svg, please make sure used SVG file contains valid SVG code or make sure server delivers SVG file with correct CORS permission headers.")},error:function(){u(0,0,i,a,s,r,t)}})}(i.settings.icon,i.settings.tcanv,i.settings.size,1,(function(){i.cluster=new g(i.settings,e),i.cluster.destroyed||(i.cluster.resize(e.eow,e.eoh),h(i.settings,e),i.cluster.render())}))},updateLayer:function(t,e,i,n,r){void 0!==l.theClusterUtils.layers[t+"_"+e]&&(l.theClusterUtils.layers[t+"_"+e].theCluster[i]=n,v(l.theClusterUtils.layers[t+"_"+e].theCluster.settings,l.theClusterUtils.layers[t+"_"+e]),l.theClusterUtils.layers[t+"_"+e].theCluster.cluster.update())},updateGravPoints:function(t,e,i,n,r){void 0!==l.theClusterUtils.layers[t+"_"+e]&&(l.theClusterUtils.layers[t+"_"+e].theCluster[i]=n,h(l.theClusterUtils.layers[t+"_"+e].theCluster.settings,l.theClusterUtils.layers[t+"_"+e]),l.theClusterUtils.layers[t+"_"+e].theCluster.cluster.update())},splitColor:function(t){return 3==(t=tpGS.gsap.utils.splitColor(t)).length&&(t[3]=1),t[0]/=255,t[1]/=255,t[2]/=255,t},fitCameraToObject:function(t){var e,i,n=t.theCluster;t.theCluster.cluster&&t.c&&(window._R_is_Editor?(e=Math.round(RVS.H[t.lid].c[0].clientWidth),i=Math.round(RVS.H[t.lid].c[0].clientHeight)):(e=Math.round(t.eow),i=Math.round(t.eoh)),e=isNaN(e)?0:e,i=n.settings.height=isNaN(i)?0:i,n.lastDim={width:e,height:i},e===n.settings.width&&i===n.settings.height||(n.settings.width=e,n.settings.height=i,n.cluster.destroy(),n.settings.canvas=t.theCluster.canvas=l.theClusterUtils.getWebGLCanvas().canvas,t.c[0].appendChild(n.settings.canvas),n.cluster=new g(n.settings,t)),n.cluster.paused=!1,n.cluster.initPP(),cancelAnimationFrame(n.cluster.frame),n.cluster.destroyed||(n.cluster.frame=requestAnimationFrame(n.cluster.bindedRender)))},getWebGLCanvas:function(){let t=document.createElement("canvas");return t.style.width="100%",t.style.height="100%",t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.style.zIndex=2,t.width=1600,t.height=1200,{canvas:t}}}}),g.prototype.createScene=function(){var t,l=this.settings;if(l.textureCanvas=new THREE.CanvasTexture(l.tcanv),l.textureCanvas.needsUpdate=!0,function(t){for(let e=0;e<9;e++)t.settings.gravPositions[e]=0;for(let r=0;r<3;r++){var e=new THREE.SphereGeometry(.4,7,7),i=new THREE.MeshBasicMaterial({color:3274158,transparent:!0}),n=new THREE.Mesh(e,i);t.settings.gravPointArray[r]=n,t.scene.add(t.settings.gravPointArray[r]),t.settings.gravPositions[3*r+0]=0,t.settings.gravPositions[3*r+1]=0,t.settings.gravPositions[3*r+2]=0,n.userData.draggable=!0,n.userData.name=r+1}}(this),(t=this).settings.g1X=t.settings.gravPositions[0],t.settings.g1Y=t.settings.gravPositions[1],t.settings.g1Z=t.settings.gravPositions[2],t.settings.g2X=t.settings.gravPositions[3],t.settings.g2Y=t.settings.gravPositions[4],t.settings.g2Z=t.settings.gravPositions[5],t.settings.g3X=t.settings.gravPositions[6],t.settings.g3Y=t.
8settings.gravPositions[7],t.settings.g3Z=t.settings.gravPositions[8],function(t){var i=t.settings;i.gravPoint1Toggle&&(s=s.replace("//-- Add G1 Here --","\n\t\t\t\tvec3 g1 = pos - vec3(u_gravPositions[0], u_gravPositions[1], u_gravPositions[2]);\n\t\t\t\tsumVector += normalize(g1) * length(g1) * gravCo * u_mass;\n\t\t\t"));i.gravPoint2Toggle&&(s=s.replace("//-- Add G2 Here --","\n\t\t\t\tvec3 g2 = pos - vec3(u_gravPositions[3], u_gravPositions[4], u_gravPositions[5]);\n\t\t\t\tsumVector += normalize(g2) * length(g2) * gravCo * u_mass2;\n\t\t\t"));i.gravPoint3Toggle&&(s=s.replace("//-- Add G3 Here --","\n\t\t\t\tvec3 g3 = pos - vec3(u_gravPositions[6], u_gravPositions[7], u_gravPositions[8]);\n\t\t\t\tsumVector += normalize(g3) * length(g3) * gravCo * u_mass3;\n\t\t\t"));s=s.replace("//-- Add G4 Here --",`\n\t\t\tif(u_mouseOnLayer){\n\t\t\t\tvec3 g4 = pos - vec3(u_mouseVector.x, u_mouseVector.y, 0.0);\n\t\t\t\tsumVector += normalize(g4) * length(g4) * gravCo * ${(10*i.gravFollowMouseValue).toFixed(1)};\n\t\t\t}\n\t\t`),"lifetime"==i.patternSel&&("fadeInOut"==i.lifetimeAlphaChange&&(s=s.replace("//-- Add Modified Vel Here --",`\n\t\t\t\t\tfloat lt = sin((u_time * ${i.lifeTimeDelay.toFixed(1)}) + textureVel.w * 6.28);\n\n\t\t\t\t\tif(lt < 0.0){\n\t\t\t\t\t\tvel.xyz = textureInitVCC.xyz;\n\t\t\t\t\t}\n\t\t\t\t`)),"fadeIn"==i.lifetimeAlphaChange&&(s=s.replace("//-- Add Modified Vel Here --",`\n\t\t\t\t\tfloat x = u_time * ${i.lifeTimeDelay.toFixed(1)} + textureVel.w * 6.28;\n\t\t\t\t\tfloat lt = sin(x)- 0.5 * sin(2.0 * x);\n\n\t\t\t\t\tif(lt < 0.0){\n\t\t\t\t\t\tvel.xyz = textureInitVCC.xyz;\n\t\t\t\t\t}\n\t\t\t\t`)),"fadeOut"==i.lifetimeAlphaChange&&(s=s.replace("//-- Add Modified Vel Here --",`\n\t\t\t\t\tfloat x = u_time * ${i.lifeTimeDelay.toFixed(1)} + textureVel.w * 6.28;\n\t\t\t\t\tfloat lt = -sin(x) + 0.5 * sin(2.0 * x);\n\n\t\t\t\t\tif(lt < 0.0){\n\t\t\t\t\t\tvel.xyz = textureInitVCC.xyz;\n\t\t\t\t\t}\n\t\t\t\t`)));i.noiseOn&&(s=(s=s.replace("//-- Add Noise Methods Here --","\n\t\t\t\tvec4 mod289(vec4 x) {\n\t\t\t\t\treturn x - floor(x * (1.0 / 289.0)) * 289.0;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat mod289(float x) {\n\t\t\t\t\treturn x - floor(x * (1.0 / 289.0)) * 289.0;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tvec4 permute(vec4 x) {\n\t\t\t\t\treturn mod289(((x*34.0)+1.0)*x);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat permute(float x) {\n\t\t\t\t\treturn mod289(((x*34.0)+1.0)*x);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tvec4 taylorInvSqrt(vec4 r) {\n\t\t\t\t\treturn 1.79284291400159 - 0.85373472095314 * r;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat taylorInvSqrt(float r) {\n\t\t\t\t\treturn 1.79284291400159 - 0.85373472095314 * r;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tvec4 grad4(float j, vec4 ip) {\n\t\t\t\t\tconst vec4 ones = vec4(1.0, 1.0, 1.0, -1.0);\n\t\t\t\t\tvec4 p,s;\n\t\t\t\t\n\t\t\t\t\tp.xyz = floor( fract (vec3(j) * ip.xyz) * 7.0) * ip.z - 1.0;\n\t\t\t\t\tp.w = 1.5 - dot(abs(p.xyz), ones.xyz);\n\t\t\t\t\ts = vec4(lessThan(p, vec4(0.0)));\n\t\t\t\t\tp.xyz = p.xyz + (s.xyz*2.0 - 1.0) * s.www;\n\t\t\t\t\n\t\t\t\t\treturn p;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t#define F4 0.309016994374947451\n\t\t\t\t\n\t\t\t\tvec4 snoise4 (vec4 v) {\n\t\t\t\t\tconst vec4 C = vec4( 0.138196601125011,0.276393202250021,0.414589803375032,-0.447213595499958);\n\t\t\t\t\n\t\t\t\t\tvec4 i = floor(v + dot(v, vec4(F4)) );\n\t\t\t\t\tvec4 x0 = v - i + dot(i, C.xxxx);\n\t\t\t\t\n\t\t\t\t\tvec4 i0;\n\t\t\t\t\tvec3 isX = step( x0.yzw, x0.xxx );\n\t\t\t\t\tvec3 isYZ = step( x0.zww, x0.yyz );\n\t\t\t\t\ti0.x = isX.x + isX.y + isX.z;\n\t\t\t\t\ti0.yzw = 1.0 - isX;\n\t\t\t\t\ti0.y += isYZ.x + isYZ.y;\n\t\t\t\t\ti0.zw += 1.0 - isYZ.xy;\n\t\t\t\t\ti0.z += isYZ.z;\n\t\t\t\t\ti0.w += 1.0 - isYZ.z;\n\t\t\t\t\n\t\t\t\t\tvec4 i3 = clamp( i0, 0.0, 1.0 );\n\t\t\t\t\tvec4 i2 = clamp( i0-1.0, 0.0, 1.0 );\n\t\t\t\t\tvec4 i1 = clamp( i0-2.0, 0.0, 1.0 );\n\t\t\t\t\n\t\t\t\t\tvec4 x1 = x0 - i1 + C.xxxx;\n\t\t\t\t\tvec4 x2 = x0 - i2 + C.yyyy;\n\t\t\t\t\tvec4 x3 = x0 - i3 + C.zzzz;\n\t\t\t\t\tvec4 x4 = x0 + C.wwww;\n\t\t\t\t\n\t\t\t\t\ti = mod289(i);\n\t\t\t\t\tfloat j0 = permute( permute( permute( permute(i.w) + i.z) + i.y) + i.x);\n\t\t\t\t\tvec4 j1 = permute( permute( permute( permute (\n\t\t\t\t\t\t\ti.w + vec4(i1.w, i2.w, i3.w, 1.0 ))\n\t\t\t\t\t\t+ i.z + vec4(i1.z, i2.z, i3.z, 1.0 ))\n\t\t\t\t\t\t+ i.y + vec4(i1.y, i2.y, i3.y, 1.0 ))\n\t\t\t\t\t\t+ i.x + vec4(i1.x, i2.x, i3.x, 1.0 ));\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tvec4 ip = vec4(1.0/294.0, 1.0/49.0, 1.0/7.0, 0.0) ;\n\t\t\t\t\n\t\t\t\t\tvec4 p0 = grad4(j0, ip);\n\t\t\t\t\tvec4 p1 = grad4(j1.x, ip);\n\t\t\t\t\tvec4 p2 = grad4(j1.y, ip);\n\t\t\t\t\tvec4 p3 = grad4(j1.z, ip);\n\t\t\t\t\tvec4 p4 = grad4(j1.w, ip);\n\t\t\t\t\n\t\t\t\t\tvec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3)));\n\t\t\t\t\tp0 *= norm.x;\n\t\t\t\t\tp1 *= norm.y;\n\t\t\t\t\tp2 *= norm.z;\n\t\t\t\t\tp3 *= norm.w;\n\t\t\t\t\tp4 *= taylorInvSqrt(dot(p4,p4));\n\t\t\t\t\n\t\t\t\t\tvec3 values0 = vec3(dot(p0, x0), dot(p1, x1), dot(p2, x2)); //value of contributions from each corner at point\n\t\t\t\t\tvec2 values1 = vec2(dot(p3, x3), dot(p4, x4));\n\t\t\t\t\n\t\t\t\t\tvec3 m0 = max(0.5 - vec3(dot(x0,x0), dot(x1,x1), dot(x2,x2)), 0.0); //(0.5 - x^2) where x is the distance\n\t\t\t\t\tvec2 m1 = max(0.5 - vec2(dot(x3,x3), dot(x4,x4)), 0.0);
8\n\t\t\t\t\n\t\t\t\t\tvec3 temp0 = -6.0 * m0 * m0 * values0;\n\t\t\t\t\tvec2 temp1 = -6.0 * m1 * m1 * values1;\n\t\t\t\t\n\t\t\t\t\tvec3 mmm0 = m0 * m0 * m0;\n\t\t\t\t\tvec2 mmm1 = m1 * m1 * m1;\n\t\t\t\t\n\t\t\t\t\tfloat dx = temp0[0] * x0.x + temp0[1] * x1.x + temp0[2] * x2.x + temp1[0] * x3.x + temp1[1] * x4.x + mmm0[0] * p0.x + mmm0[1] * p1.x + mmm0[2] * p2.x + mmm1[0] * p3.x + mmm1[1] * p4.x;\n\t\t\t\t\tfloat dy = temp0[0] * x0.y + temp0[1] * x1.y + temp0[2] * x2.y + temp1[0] * x3.y + temp1[1] * x4.y + mmm0[0] * p0.y + mmm0[1] * p1.y + mmm0[2] * p2.y + mmm1[0] * p3.y + mmm1[1] * p4.y;\n\t\t\t\t\tfloat dz = temp0[0] * x0.z + temp0[1] * x1.z + temp0[2] * x2.z + temp1[0] * x3.z + temp1[1] * x4.z + mmm0[0] * p0.z + mmm0[1] * p1.z + mmm0[2] * p2.z + mmm1[0] * p3.z + mmm1[1] * p4.z;\n\t\t\t\t\tfloat dw = temp0[0] * x0.w + temp0[1] * x1.w + temp0[2] * x2.w + temp1[0] * x3.w + temp1[1] * x4.w + mmm0[0] * p0.w + mmm0[1] * p1.w + mmm0[2] * p2.w + mmm1[0] * p3.w + mmm1[1] * p4.w;\n\t\t\t\t\n\t\t\t\t\treturn vec4(dx, dy, dz, dw) * 49.0;\n\t\t\t\t}\n\t\t\t\tvec3 curl( in vec3 p, in float noiseTime, in float persistence ) {\n\t\t\t\t\n\t\t\t\t\tvec4 xNoisePotentialDerivatives = vec4(0.0);\n\t\t\t\t\tvec4 yNoisePotentialDerivatives = vec4(0.0);\n\t\t\t\t\tvec4 zNoisePotentialDerivatives = vec4(0.0);\n\t\t\t\t\n\t\t\t\t\tfor (int i = 0; i < 3; ++i) {\n\t\t\t\t\n\t\t\t\t\t\tfloat twoPowI = pow(2.0, float(i));\n\t\t\t\t\t\tfloat scale = 0.5 * twoPowI * pow(persistence, float(i));\n\t\t\t\t\n\t\t\t\t\t\txNoisePotentialDerivatives += snoise4(vec4(p * twoPowI, noiseTime)) * scale;\n\t\t\t\t\t\tyNoisePotentialDerivatives += snoise4(vec4((p + vec3(123.4, 129845.6, -1239.1)) * twoPowI, noiseTime)) * scale;\n\t\t\t\t\t\tzNoisePotentialDerivatives += snoise4(vec4((p + vec3(-9519.0, 9051.0, -123.0)) * twoPowI, noiseTime)) * scale;\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\treturn vec3(\n\t\t\t\t\t\tzNoisePotentialDerivatives[1] - yNoisePotentialDerivatives[2],\n\t\t\t\t\t\txNoisePotentialDerivatives[2] - zNoisePotentialDerivatives[0],\n\t\t\t\t\t\tyNoisePotentialDerivatives[0] - xNoisePotentialDerivatives[1]\n\t\t\t\t\t);\n\t\t\t\t\n\t\t\t\t}\n\t\t\t")).replace("//-- Add Noise Here --","\n\t\t\t\tvel += normalize(curl(pos * 0.02, u_time, 0.01)) * (u_noiseAmount / 4.0);\n\t\t\t"));if(i.lifeTimeGradient)if(i.isGradient){var n=i.tc_mainColorOri[i.tc_mainColorOri.length-5]/255,r=i.tc_mainColorOri[i.tc_mainColorOri.length-4]/255,l=i.tc_mainColorOri[i.tc_mainColorOri.length-3]/255,u=i.tc_mainColorOri[i.tc_mainColorOri.length-2],c=1;i.tc_mainColorOri.length%5==0&&(c=0),o=o.replace("//-- Add ColorCode Here --",`\n\t\t\t\t\tconst int co1 = ${Math.round(n)};\n\t\t\t\t\tconst int co2 = ${Math.round(r)};\n\t\t\t\t\tconst int co3 = ${Math.round(l)};\n\t\t\t\t\tconst int co4 = ${Math.round(u)};\n\n\t\t\t\t\tvec4 c = vec4(co1, co2, co3, co4);\n\t\t\t\t\tconst int convert_i = ${(i.tc_mainColorOri.length-c)/5};\n\t\t\t\t\tconst int cancelGardientAngle = ${c};\n\n\t\t\t\t\tfor(int i=0; i<convert_i; i++){\n\t\t\t\t\t\tif(u_colorArray[i*5+4+cancelGardientAngle]/100.0 <= v_lifetime && v_lifetime <= u_colorArray[i*5+9+cancelGardientAngle]/100.0){\n\t\t\t\t\t\t\tc.x = mix(u_colorArray[i*5+0+${c}]/255.0, u_colorArray[i*5+5+${c}]/255.0, smoothstep(u_colorArray[i*5+4+${c}] / 100.0, u_colorArray[i*5+9+${c}] / 100.0, v_lifetime));\n\t\t\t\t\t\t\tc.y = mix(u_colorArray[i*5+1+${c}]/255.0, u_colorArray[i*5+6+${c}]/255.0, smoothstep(u_colorArray[i*5+4+${c}] / 100.0, u_colorArray[i*5+9+${c}] / 100.0, v_lifetime));\n\t\t\t\t\t\t\tc.z = mix(u_colorArray[i*5+2+${c}]/255.0, u_colorArray[i*5+7+${c}]/255.0, smoothstep(u_colorArray[i*5+4+${c}] / 100.0, u_colorArray[i*5+9+${c}] / 100.0, v_lifetime));\n\t\t\t\t\t\t\tc.w = 1.0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tvec4 b = texture2D( u_particleTexture, gl_PointCoord );\n\t\t\t\t`)}else o=o.replace("//-- Add ColorCode Here --",`\n\t\t\t\t\tvec4 c = vec4(${i.tc_mainColor[0]/255}, ${i.tc_mainColor[1]/255}, ${i.tc_mainColor[2]/255}, ${i.tc_mainColor[3]});\n\t\t\t\t\tvec4 b = texture2D( u_particleTexture, gl_PointCoord );\n\t\t\t\t`);else if(i.isGradient||i.isRadGradient){var g=(Math.round(10*m(t).x)/10).toFixed(1).toString(),d=(Math.round(10*m(t).y)/10).toFixed(1).toString(),v=C(g/2);g=C(g),d=C(d);n=i.tc_mainColorOri[i.tc_mainColorOri.length-5]/255,r=i.tc_mainColorOri[i.tc_mainColorOri.length-4]/255,l=i.tc_mainColorOri[i.tc_mainColorOri.length-3]/255,u=i.tc_mainColorOri[i.tc_mainColorOri.length-2];if(i.isRadGradient)o=o.replace("//-- Add ColorCode Here --",`\n\t\t\t\t\t\tvec3 posVal = v_pos;\n\t\t\t\t\t\tfloat length = length(posVal);\n\t\t\t\t\t\tfloat sizeAt0X_recalc = ${v};\n\t\t\t\t\t\tfloat l = resize(length, sizeAt0X_recalc);\n\t\n\t\t\t\t\t\tvec4 c = vec4(${n.toFixed(2)}, ${r.toFixed(2)}, ${l.toFixed(2)}, ${u.toFixed(2)});\n\t\t\t\t\t\tconst int convert_i = ${i.tc_mainColorOri.length/5};\n\t\t\t\t\t\n\t\t\t\t\t\tfor(int i=0; i<convert_i; i++){\n\t\t\t\t\t\t\tif(u_colorArray[i*5+4]/100.0 <= l && l <= u_colorArray[i*5+9]/100.0){\n\t\t\t\t\t\t\t\tc.x = mix(u_colorArray[i*5+0]/255.0, u_colorArray[i*5+5]/255.0, smoothstep(u_colorArray[i*5+4] / 100.0, u_colorArray[i*5+9] / 100.0, l));\n\t\t\t\t\t\t\t\tc.y = mix(u_colorArray[i*5+1]/255.0, u_colorArray[i*5+6]/255.0, smoothstep(u_colorArray[i*5+4] / 100.0, u_colorArray[i*5+9] / 100.0, l));\n\t\t\t\t\t\t\t\tc.z = mix(u_colorArray[i*5+2]/255.0, u_colorArray[i*5+7]/255.0, smoothstep(u_colorArray[i*5+4] / 100.0, u_colorArray[i*5+9] / 100.0, l));\n\t\t\t\t\t\t\t\tc.w = 1.0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tvec4 b = texture2D( u_particleTexture, gl_PointCoord );\n\t\t\t\t\t`);else if(i.tc_mainColorOri.length%5==0)o=o.replace("//-- Add ColorCode Here --",`\n\t\t\t\t\t\t\tvec3 posVal = v_pos;\n\t\t\t\t\t\t\tfloat localH = ${d};\n\t\t\t\t\t\t\tfloat length = posVal.y - localH/2.0;\n\t\t\t\t\t\t\tfloat sizeAt0Y_recalc = ${d};\n\t\t\t\t\t\t\tfloat l = resize(length, sizeAt0Y_recalc);\n\t\n\t\t\t\t\t\t\tvec4 c = vec4(${n.toFixed(2)}, ${r.toFixed(2)}, ${l.toFixed(2)}, ${u.toFixed(2)});\n\t\t\t\t\t\t\tconst int convert_i = ${i.tc_mainColorOri.length/5};\n\n\t\t\t\t\t\t\tfor(int i=0; i<convert_i; i++){\n\t\t\t\t\t\t\t\tif(u_colorArray[i*5+4]/100.0 <= l && l <= u_colorArray[i*5+9]/100.0){\n\t\t\t\t\t\t\t\t\tc.x = mix(u_colorArray[i*5+0]/255.0, u_colorArray[i*5+5]/255.0, smoothstep(u_colorArray[i*5+4] / 100.0, u_colorArray[i*5+9] / 100.0, l));\n\t\t\t\t\t\t\t\t\tc.y = mix(u_colorArray[i*5+1]/255.0, u_colorArray[i*5+6]/255.0, smoothstep(u_colorArray[i*5+4] / 100.0, u_colorArray[i*5+9] / 100.0, l));\n\t\t\t\t\t\t\t\t\tc.z = mix(u_colorArray[i*5+2]/255.0, u_colorArray[i*5+7]/255.0, smoothstep(u_colorArray[i*5+4] / 100.0, u_colorArray[i*5+9] / 100.0, l));\n\t\t\t\t\t\t\t\t\tc.w = 1.0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvec4 b = texture2D( u_particleTexture, gl_PointCoord );\n\t\t\t\t\t\t`);else{var p=v,h="posVal.x";i.tc_mainColorOri[0]<225&&i.tc_mainColorOri[0]>=135&&(h="posVal.y - localH/2.0",p=d),i.tc_mainColorOri[0]<135&&i.tc_mainColorOri[0]>=45&&(h="posVal.x + localW/2.0",p=g),i.tc_mainColorOri[0]<45&&i.tc_mainColorOri[0]>=0&&(h="posVal.y + localH/2.0",p=d),i.tc_mainColorOri[0]<0&&i.tc_mainColorOri[0]>=315&&(h="posVal.y + localH/2.0",p=d),i.tc_mainColorOri[0]<315&&i.tc_mainColorOri[0]>=225&&(h="posVal.x - localW/2.0",p=g),o=o.replace("//-- Add ColorCode Here --",`\n\t\t\t\t\t\t\tvec3 posVal = v_pos;\n\t\t\t\t\t\t\tfloat localW = ${g};\n\t\t\t\t\t\t\tfloat localH = ${d};\n\t\t\t\t\t\t\tfloat length = ${h};\n\t\t\t\t\t\t\tfloat selWH_recalc = ${p};\n\t\t\t\t\t\t\tfloat l = resize(length, selWH_recalc);\n\t\n\t\t\t\t\t\t\tvec4 c = vec4(${n.toFixed(2)}, ${r.toFixed(2)}, ${l.toFixed(2)}, ${u.toFixed(2)});\n\t\t\t\t\t\t\tconst int convert_i = ${(i.tc_mainColorOri.length-1)/5};\n\n\t\t\t\t\t\t\tfor(int i=0; i<convert_i; i++){\n\t\t\t\t\t\t\t\tif(u_colorArray[i*5+5]/100.0 <= l && l <= u_colorArray[i*5+10]/100.0){\n\t\t\t\t\t\t\t\t\tc.x = mix(u_colorArray[i*5+1]/255.0, u_colorArray[i*5+6]/255.0, smoothstep(u_colorArray[i*5+5] / 100.0, u_colorArray[i*5+10] / 100.0, l));\n\t\t\t\t\t\t\t\t\tc.y = mix(u_colorArray[i*5+2]/255.0, u_colorArray[i*5+7]/255.0, smoothstep(u_colorArray[i*5+5] / 100.0, u_colorArray[i*5+10] / 100.0, l));\n\t\t\t\t\t\t\t\t\tc.z = mix(u_colorArray[i*5+3]/255.0, u_colorArray[i*5+8]/255.0, smoothstep(u_colorArray[i*5+5] / 100.0, u_colorArray[i*5+10] / 100.0, l));\n\t\t\t\t\t\t\t\t\tc.w = 1.0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvec4 b = texture2D( u_particleTexture, gl_PointCoord );\n\t\t\t\t\t\t`)}}else o=o.replace("//-- Add ColorCode Here --",`\n\t\t\t\t\tvec4 c = vec4(${i.tc_mainColor[0]/255}, ${i.tc_mainColor[1]/255}, ${i.tc_mainColor[2]/255}, ${i.tc_mainColor[3]});\n\t\t\t\t\tvec4 b = texture2D( u_particleTexture, gl_PointCoord );\n\t\t\t\t`);switch(i.patternSel){case"continuous":e=i.periodicSpawn?e.replace("//-- Add ParticleMove Here --","\n\t\t\t\t\t\tvel = normalize(vel) * clamp(length(vel), minCo, maxCo);\n\t\t\t\t\t\tpos += vel * 0.30 * u_speed * (textureVel.w + 0.5);\n\t\t\t\t\t"):e.replace("//-- Add ParticleMove Here --","\n\t\t\t\t\t\tvel = normalize(vel) * clamp(length(vel), minCo, maxCo);\n\t\t\t\t\t\tpos += vel * 0.30 * u_speed;\n\t\t\t\t\t");break;case"sinus":e=i.periodicSpawn?e.replace("//-- Add ParticleMove Here --","\n\t\t\t\t\t\tvel = normalize(vel) * clamp(length(vel), minCo, maxCo);\n\t\t\t\t\t\tpos += vel * 0.30 * u_speed * sin(u_time + textureVel.w);\n\t\t\t\t\t"):e.replace("//-- Add ParticleMove Here --","\n\t\t\t\t\t\tvel = normalize(vel) * clamp(length(vel), minCo, maxCo);\n\t\t\t\t\t\tpos += vel * 0.30 * u_speed * sin(u_time);\n\t\t\t\t\t");break;case"lifetime":"fadeInOut"==i.lifetimeAlphaChange&&(e=e.replace("//-- Add ParticleMove Here --",`\n\t\t\t\t\t\tfloat lifetime = sin((u_time * ${i.lifeTimeDelay.toFixed(1)}) + textureVel.w * 6.28);\n\n\t\t\t\t\t\tif(lifetime > 0.0){\n\t\t\t\t\t\t\tvel = normalize(vel) * clamp(length(vel), minCo, maxCo);\n\t\t\t\t\t\t\tpos += vel * 0.30 * u_speed;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\tpos.xyz = textureInitPos.xyz;\n\t\t\t\t\t\t}\n\t\t\t\t\t`)),"fadeIn"==i.lifetimeAlphaChange&&(e=e.replace("//-- Add ParticleMove Here --",`\n\t\t\t\t\t\tfloat x = u_time * ${i.lifeTimeDelay.toFixed(1)} + textureVel.w * 6.28;\n\t\t\t\t\t\tfloat lifetime = sin(x)- 0.5 * sin(2.0 * x);\n\n\t\t\t\t\t\tif(lifetime > 0.0){\n\t\t\t\t\t\t\tvel = normalize(vel) * clamp(length(vel), minCo, maxCo);\n\t\t\t\t\t\t\tpos += vel * 0.30 * u_speed;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\tpos.xyz = textureInitPos.xyz;\n\t\t\t\t\t\t}\n\t\t\t\t\t`)),"fadeOut"==i.lifetimeAlphaChange&&(e=e.replace("//-- Add ParticleMove Here --",`\n\t\t\t\t\t\tfloat x = u_time * ${i.lifeTimeDelay.toFixed(1)} + textureVel.w * 6.28;\n\t\t\t\t\t\tfloat lifetime = -sin(x) + 0.5 * sin(2.0 * x);\n\n\t\t\t\t\t\tif(lifetime > 0.0){\n\t\t\t\t\t\t\tvel = normalize(vel) * clamp(length(vel), minCo, maxCo);\n\t\t\t\t\t\t\tpos += vel * 0.30 * u_speed;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\tpos.xyz = textureInitPos.xyz;\n\t\t\t\t\t\t}\n\t\t\t\t\t`))}"lifetime"==i.patternSel?("fadeInOut"==i.lifetimeAlphaChange&&(a=a.replace("//-- Add v_lifetime Here --",`\n\t\t\t\t\tv_lifetime = sin((u_time * ${i.lifeTimeDelay.toFixed(1)}) + vel.w * 6.28);\n\t\t\t\t`)),"fadeIn"==i.lifetimeAlphaChange&&(a=a.replace("//-- Add v_lifetime Here --",`\n\t\t\t\t\tfloat x = u_time * ${i.lifeTimeDelay.toFixed(1)} + vel.w * 6.28;\n\t\t\t\t\tv_lifetime = sin(x)- 0.5 * sin(2.0 * x);\n\t\t\t\t`)),"fadeOut"==i.lifetimeAlphaChange&&(a=a.replace("//-- Add v_lifetime Here --",`\n\t\t\t\t\tfloat x = u_time * ${i.lifeTimeDelay.toFixed(1)} + vel.w * 6.28;\n\t\t\t\t\tv_lifetime = -sin(x) + 0.5 * sin(2.0 * x);\n\t\t\t\t`))):a=a.replace("//-- Add v_lifetime Here --","\n\t\t\t\tv_lifetime = vel.w;\n\t\t\t")}(this),function(t){for(var e=t.settings,i=new THREE.BufferGeometry,n=new Float32Array(3*t.count),r=new Float32Array(2*t.count),s=0,l=0;l<t.count;l++)r[(s=2*l)+0]=l%e.amount/e.amount,r[s+1]=Math.floor(l/e.amount)/e.amount;i.setAttribute("position",new THREE.BufferAttribute(n,3)),i.setAttribute("uv",new THREE.BufferAttribute(r,2)),t.particleUniforms={texturePosition:{value:null},textureVelocity:{value:null},textureCustomValues:{value:null},textureInitPos:{value:null},textureInitVCC:{value:null},u_pointSize:{value:e.size},u_particleTexture:{value:e.textureCanvas},u_limitCentrePosition:{value:e.limitCentrePosition},u_limitMovementValue:{value:e.limitMovementValue},u_limitMovement:{value:e.limitMovement},u_colorArray:{value:e.tc_mainColorOri},u_time:{value:0},u_colorImageMixValue:{value:e.colorImageMixValue},u_lifeTimeDelay:{value:e.lifeTimeDelay},u_mouseOnLayer:{value:e.mouseOnLayer},u_mouseVector:{value:[0,0]}},t.particleMaterial=new THREE.ShaderMaterial({uniforms:t.particleUniforms,vertexShader:a,fragmentShader:o,blending:THREE.AdditiveBlending,depthTest:!1,transparent:!0,vertexColors:!0});var u=new THREE.Points(i,t.particleMaterial);t.scene.add(u)}(this),function(t){p("1",t.gravPoint1Toggle),p("2",t.gravPoint2Toggle),p("3",t.gravPoint3Toggle)}(l),function(t){t.gravPointsVisible?(t.gravPoint1Toggle?t.gravPointArray[0].visible=!0:t.gravPointArray[0].visible=!1,t.gravPoint2Toggle?t.gravPointArray[1].visible=!0:t.gravPointArray[1].visible=!1,t.gravPoint3Toggle?t.gravPointArray[2].visible=!0:t.gravPointArray[2].visible=!1):(t.gravPointArray[0].visible=!1,t.gravPointArray[1].visible=!1,t.gravPointArray[2].visible=!1)}(l),this.renderer=new THREE.WebGLRenderer({antialias:!0,canvas:l.canvas,alpha:!0}),this.renderer.setPixelRatio(Math.min(l.dpr,window.devicePixelRatio)),this.renderer.setSize(l.width,l.height),this.gravColor1=16721765,this.gravColor2=890098,this.gravColor3=3274158,x(this,l),function(t){var a=t.settings;void 0===THREE.GPUComputationRenderer&&(THREE.GPUComputationRenderer=function(t,e,
8i){this.variables=[],this.currentTextureIndex=0;var n=new THREE.Scene,r=new THREE.Camera;r.position.z=1;var s={passThruTexture:{value:null}},a=u(g(),s),o=new THREE.Mesh(new THREE.PlaneBufferGeometry(2,2),a);function l(i){i.defines.resolution="vec2( "+t.toFixed(1)+", "+e.toFixed(1)+" )"}function u(t,e){e=e||{};var i=new THREE.ShaderMaterial({uniforms:e,vertexShader:c(),fragmentShader:t});return l(i),i}function c(){return"void main()\t{\n\n\tgl_Position = vec4( position, 1.0 );\n\n}\n"}function g(){return"uniform sampler2D passThruTexture;\n\nvoid main() {\n\n\tvec2 uv = gl_FragCoord.xy / resolution.xy;\n\n\tgl_FragColor = texture2D( passThruTexture, uv );\n\n}\n"}n.add(o),this.addVariable=function(t,e,i){var n={name:t,initialValueTexture:i,material:this.createShaderMaterial(e),dependencies:null,renderTargets:[],wrapS:null,wrapT:null,minFilter:THREE.NearestFilter,magFilter:THREE.NearestFilter};return this.variables.push(n),n},this.setVariableDependencies=function(t,e){t.dependencies=e},this.init=function(){if(!i.capabilities.isWebGL2&&!i.extensions.get("OES_texture_float"))return"No OES_texture_float support for float textures.";if(0===i.capabilities.maxVertexTextures)return"No support for vertex shader textures.";for(var n=0;n<this.variables.length;n++){var r=this.variables[n];r.renderTargets[0]=this.createRenderTarget(t,e,r.wrapS,r.wrapT,r.minFilter,r.magFilter),r.renderTargets[1]=this.createRenderTarget(t,e,r.wrapS,r.wrapT,r.minFilter,r.magFilter),this.renderTexture(r.initialValueTexture,r.renderTargets[0]),this.renderTexture(r.initialValueTexture,r.renderTargets[1]);var s=r.material,a=s.uniforms;if(null!==r.dependencies)for(var o=0;o<r.dependencies.length;o++){var l=r.dependencies[o];if(l.name!==r.name){for(var u=!1,c=0;c<this.variables.length;c++)if(l.name===this.variables[c].name){u=!0;break}if(!u)return"Variable dependency not found. Variable="+r.name+", dependency="+l.name}a[l.name]={value:null},s.fragmentShader="\nuniform sampler2D "+l.name+";\n"+s.fragmentShader}}return this.currentTextureIndex=0,null},this.compute=function(){for(var t=this.currentTextureIndex,e=0===this.currentTextureIndex?1:0,i=0,n=this.variables.length;i<n;i++){var r=this.variables[i];if(null!==r.dependencies)for(var s=r.material.uniforms,a=0,o=r.dependencies.length;a<o;a++){var l=r.dependencies[a];s[l.name].value=l.renderTargets[t].texture}this.doRenderTarget(r.material,r.renderTargets[e])}this.currentTextureIndex=e},this.getCurrentRenderTarget=function(t){return t.renderTargets[this.currentTextureIndex]},this.getAlternateRenderTarget=function(t){return t.renderTargets[0===this.currentTextureIndex?1:0]},this.addResolutionDefine=l,this.createShaderMaterial=u,this.createRenderTarget=function(i,n,r,s,a,o){return i=i||t,n=n||e,r=r||THREE.ClampToEdgeWrapping,s=s||THREE.ClampToEdgeWrapping,a=a||THREE.NearestFilter,o=o||THREE.NearestFilter,new THREE.WebGLRenderTarget(i,n,{wrapS:r,wrapT:s,minFilter:a,magFilter:o,format:THREE.RGBAFormat,type:/(iPad|iPhone|iPod)/g.test(navigator.userAgent)?THREE.HalfFloatType:THREE.FloatType,stencilBuffer:!1,depthBuffer:!1})},this.createTexture=function(){var i=new Float32Array(t*e*4);return new THREE.DataTexture(i,t,e,THREE.RGBAFormat,THREE.FloatType)},this.renderTexture=function(t,e){s.passThruTexture.value=t,this.doRenderTarget(a,e),s.passThruTexture.value=null},this.doRenderTarget=function(t,e){var s=i.getRenderTarget();o.material=t,i.setRenderTarget(e),i.render(n,r),o.material=a,i.setRenderTarget(s)}});switch(t.computeRenderer=new THREE.GPUComputationRenderer(a.amount,a.amount,t.renderer),a.renderTexturePos=t.computeRenderer.createTexture(),a.renderTextureVcc=t.computeRenderer.createTexture(),a.renderTextureCustomValues=t.computeRenderer.createTexture(),a.renderTextureInitPos=t.computeRenderer.createTexture(),a.renderTextureInitVCC=t.computeRenderer.createTexture(),a.spawnForm){case"onGlobe":!function(t,e){for(var i=t.image.data,n=0,r=i.length;n<r;n+=4){var s=new THREE.Vector3(Math.random()-.5,Math.random()-.5,Math.random()-.5);s.setLength(e.settings.spawnDiameter);var a=i.length/4,o=n/4,l=e.settings.mirroredOn;l>=2?(o>=0&&o<1/l*a&&s.add(new THREE.Vector3(e.settings.sIX,e.settings.sIY,e.settings.sIZ)),o>=1/l*a&&o<2/l*a&&s.add(new THREE.Vector3(-e.settings.sIX,-e.settings.sIY,e.settings.sIZ)),l>=4&&(o>=2/l*a&&o<3/l*a&&s.add(new THREE.Vector3(-e.settings.sIX,e.settings.sIY,e.settings.sIZ)),o>=3/l*a&&o<4/l*a&&s.add(new THREE.Vector3(e.settings.sIX,-e.settings.sIY,e.settings.sIZ)),l>=6&&(o>=4/l*a&&o<5/l*a&&s.add(new THREE.Vector3(0,0,.5*e.settings.sIZ)),o>=5/l*a&&o<6/l*a&&s.add(new THREE.Vector3(0,0,1.5*e.settings.sIZ))))):s.add(new THREE.Vector3(e.settings.sIX,e.settings.sIY,e.settings.sIZ)),i[n+0]=s.x,i[n+1]=s.y,i[n+2]=s.z,i[n+3]=Math.random()}}(a.renderTexturePos,t);break;case"inGlobe":!function(t,e){for(var i=t.image.data,n=0,r=i.length;n<r;n+=4){var s=new THREE.Vector3(Math.random()-.5,Math.random()-.5,Math.random()-.5);
8s.setLength(Math.random()*e.settings.spawnDiameter);var a=i.length/4,o=n/4,l=e.settings.mirroredOn;l>=2?(o>=0&&o<1/l*a&&s.add(new THREE.Vector3(e.settings.sIX,e.settings.sIY,e.settings.sIZ)),o>=1/l*a&&o<2/l*a&&s.add(new THREE.Vector3(-e.settings.sIX,-e.settings.sIY,e.settings.sIZ)),l>=4&&(o>=2/l*a&&o<3/l*a&&s.add(new THREE.Vector3(-e.settings.sIX,e.settings.sIY,e.settings.sIZ)),o>=3/l*a&&o<4/l*a&&s.add(new THREE.Vector3(e.settings.sIX,-e.settings.sIY,e.settings.sIZ)),l>=6&&(o>=4/l*a&&o<5/l*a&&s.add(new THREE.Vector3(0,0,.5*e.settings.sIZ)),o>=5/l*a&&o<6/l*a&&s.add(new THREE.Vector3(0,0,1.5*e.settings.sIZ))))):s.add(new THREE.Vector3(e.settings.sIX,e.settings.sIY,e.settings.sIZ)),i[n+0]=s.x,i[n+1]=s.y,i[n+2]=s.z,i[n+3]=Math.random()}}(a.renderTexturePos,t);break;case"onBorder":!function(t,e){for(var i=m(e),n=t.image.data,r=0,s=n.length;r<s;r+=4){if(Math.random()>=.5)var a=new THREE.Vector3(Math.random()*i.x-i.x/2,-i.y/2+Math.round(Math.random())*i.y,10*Math.random()-5);else a=new THREE.Vector3(-i.x/2+Math.round(Math.random())*i.x,Math.random()*i.y-i.y/2,10*Math.random()-5);n[r+0]=a.x,n[r+1]=a.y,n[r+2]=a.z,n[r+3]=Math.random()}}(a.renderTexturePos,t);break;case"random":!function(t,e){for(var i=m(e),n=t.image.data,r=0,s=n.length;r<s;r+=4){var a=new THREE.Vector3(Math.random()*i.x-i.x/2,Math.random()*i.y-i.y/2,10*Math.random()-5);n[r+0]=a.x,n[r+1]=a.y,n[r+2]=a.z,n[r+3]=Math.random()}}(a.renderTexturePos,t);break;case"random3D":!function(t,e){for(var i=m(e),n=t.image.data,r=0,s=n.length;r<s;r+=4){var a=new THREE.Vector3(Math.random()*i.x-i.x/2,Math.random()*i.y-i.y/2,Math.random()*i.y-i.y/2);n[r+0]=a.x,n[r+1]=a.y,n[r+2]=a.z,n[r+3]=Math.random()}}(a.renderTexturePos,t);break;case"inLine":!function(t,e){for(var i=m(e),n=t.image.data,r=0,s=n.length;r<s;r+=4){var a=new THREE.Vector3(Math.random()*i.x-i.x/2+e.settings.sIX,e.settings.sIY,e.settings.sIZ);e.settings.mirroredOn>=2&&(r<n.length/4&&a.set(Math.random()*i.x-i.x/2+e.settings.sIX,-e.settings.sIY,e.settings.sIZ),e.settings.mirroredOn>=4&&(r>n.length/4&&r<n.length/2&&a.set(Math.random()*i.x-i.x/2+e.settings.sIX,-e.settings.sIY,-e.settings.sIZ),r>n.length/2&&r<3*n.length/4&&a.set(Math.random()*i.x-i.x/2+e.settings.sIX,e.settings.sIY,-e.settings.sIZ))),n[r+0]=a.x,n[r+1]=a.y,n[r+2]=a.z,n[r+3]=Math.random()}}(a.renderTexturePos,t);break;case"inCircle":!function(t,e){for(var i=t.image.data,n=0,r=i.length;n<r;n+=4){var s=new THREE.Vector3(Math.random()-.5,Math.random()-.5,0);s.setLength(e.settings.spawnDiameter);var a=i.length/4,o=n/4,l=e.settings.mirroredOn;l>=2?(o>=0&&o<1/l*a&&s.add(new THREE.Vector3(e.settings.sIX,e.settings.sIY,e.settings.sIZ)),o>=1/l*a&&o<2/l*a&&s.add(new THREE.Vector3(-e.settings.sIX,-e.settings.sIY,e.settings.sIZ)),l>=4&&(o>=2/l*a&&o<3/l*a&&s.add(new THREE.Vector3(-e.settings.sIX,e.settings.sIY,e.settings.sIZ)),o>=3/l*a&&o<4/l*a&&s.add(new THREE.Vector3(e.settings.sIX,-e.settings.sIY,e.settings.sIZ)),l>=6&&(o>=4/l*a&&o<5/l*a&&s.add(new THREE.Vector3(0,0,.5*e.settings.sIZ)),o>=5/l*a&&o<6/l*a&&s.add(new THREE.Vector3(0,0,1.5*e.settings.sIZ))))):s.add(new THREE.Vector3(e.settings.sIX,e.settings.sIY,e.settings.sIZ)),i[n+0]=s.x,i[n+1]=s.y,i[n+2]=s.z,i[n+3]=Math.random()}}(a.renderTexturePos,t)}switch(a.spawnAccVec){case"random":!function(t){for(var e=t.image.data,i=0,n=e.length;i<n;i+=4)e[i+0]=20*Math.random()-10,e[i+1]=20*Math.random()-10,e[i+2]=20*Math.random()-10,e[i+3]=0}(a.renderTextureVcc);break;case"toCentre":!function(t,e){for(var i=e.image.data,n=t.image.data,r=0,s=n.length;r<s;r+=4)n[r+0]=-i[r+0],n[r+1]=-i[r+1],n[r+2]=-i[r+2],n[r+3]=0}(a.renderTextureVcc,a.renderTexturePos);break;case"normalCW":!function(t,e){for(var i=e.image.data,n=t.image.data,r=0,s=n.length;r<s;r+=4){var a=Math.PI/2,o=new THREE.Vector3(i[r+0],i[r+1],i[r+2]),l=new THREE.Vector3;l.x=o.x*Math.cos(a)+o.y*Math.sin(a),l.y=-o.x*Math.sin(a)+o.y*Math.cos(a),l.normalize(),n[r+0]=l.x,n[r+1]=l.y,n[r+2]=l.z,n[r+3]=0}}(a.renderTextureVcc,a.renderTexturePos);break;case"normalCCW":!function(t,e){for(var i=e.image.data,n=t.image.data,r=0,s=n.length;r<s;r+=4){var a=Math.PI/2,o=new THREE.Vector3(i[r+0],i[r+1],i[r+2]),l=new THREE.Vector3;l.x=o.x*Math.cos(a)-o.y*Math.sin(a),l.y=o.x*Math.sin(a)+o.y*Math.cos(a),l.normalize(),n[r+0]=l.x,n[r+1]=l.y,n[r+2]=l.z,n[r+3]=0}}(a.renderTextureVcc,a.renderTexturePos);break;case"direction":!function(t,e){var i=t.image.data;e.normalize();for(var n=0,r=i.length;n<r;n+=4)i[n+0]=e.x,i[n+1]=e.y,i[n+2]=e.z,i[n+3]=0}(a.renderTextureVcc,new THREE.Vector3(a.sVX,a.sVY,a.sVZ))}a.renderTextureInitPos=a.renderTexturePos,a.renderTextureInitVCC=a.renderTextureVcc,function(t){for(var e=t.renderTextureVcc.image.data,i=t.periodicSpawnValue,n=1/(i-1),r=0,s=0,a=e.length;s<a;s+=4)"lifetime"===t.patternSel?t.periodicSpawn?(1==i&&(e[s+3]=0),i>1&&(r<i?(e[s+3]=n*r,r++):(r=1,e[s+3]=0))):e[s+3]=Math.min(Math.max(Math.random(),.05),1):t.randomizeOpacity?e[s+3]=Math.random()+.05:e[s+3]=1}(a),function(t,e){for(var i=t.image.data,n=0,r=i.length;n<r;n+=4)if(i[n+0]=0,i[n+1]=0,i[n+2]=0,e.settings.randomizeSize){var s=Math.random()*(e.settings.randSizeMax-e.settings.randSizeMin)+e.settings.randSizeMin;i[n+3]=s/100}else i[n+3]=1}(a.renderTextureCustomValues,t),a.computePos=t.computeRenderer.addVariable("texturePosition",e,a.renderTexturePos),a.computeVcc=t.computeRenderer.addVariable("textureVelocity",s,a.renderTextureVcc),a.computeCustomValues=t.computeRenderer.addVariable("textureCustomValues",n,a.renderTextureCustomValues),a.computeInitPos=t.computeRenderer.addVariable("textureInitPos",i,a.renderTextureInitPos),a.computeInitVCC=t.computeRenderer.addVariable("textureInitVCC",r,a.renderTextureInitVCC),t.computeRenderer.setVariableDependencies(a.computePos,[a.computePos,a.computeVcc,a.computeCustomValues,a.computeInitPos,a.computeInitVCC]),t.posToUniform=a.computePos.material.uniforms,t.posToUniform.u_speed={value:a.speed},t.posToUniform.u_time={value:0},t.posToUniform.u_lifeTimeDelay={value:a.lifeTimeDelay},t.computeRenderer.setVariableDependencies(a.computeVcc,[a.computeVcc,a.computePos,a.computeCustomValues,a.computeInitPos,a.computeInitVCC]),t.vccToUniform=a.computeVcc.material.uniforms,t.vccToUniform.u_speed={value:a.speed},t.vccToUniform.u_mass={value:a.mass},t.vccToUniform.u_mass2={value:a.mass2},t.vccToUniform.u_mass3={value:a.mass3},t.vccToUniform.u_gravPositions={value:a.gravPositions},t.vccToUniform.u_mouseVector={value:a.mouseVec},t.vccToUniform.u_mouseOnLayer={value:a.mouseOnLayer},t.vccToUniform.u_time={value:0},t.vccToUniform.u_lifeTimeDelay={value:a.lifeTimeDelay},t.vccToUniform.u_noiseAmount={value:a.noiseAmount},t.computeRenderer.setVariableDependencies(a.computeCustomValues,[a.computeCustomValues]),t.computeRenderer.setVariableDependencies(a.computeInitPos,[a.computeInitPos]),t.computeRenderer.setVariableDependencies(a.computeInitVCC,[a.
8computeInitVCC]),t.computeRenderer.init()}(this),"indivGrav"===l.gravFollowMouse&&(l.canvas.addEventListener("mouseenter",(t=>{this.settings.mouseOnLayer=!0,this.vccToUniform.u_mouseOnLayer.value=this.settings.mouseOnLayer,this.particleMaterial.uniforms.u_mouseOnLayer.value=this.settings.mouseOnLayer})),l.canvas.addEventListener("mouseleave",(t=>{this.settings.mouseOnLayer=!1,this.vccToUniform.u_mouseOnLayer.value=this.settings.mouseOnLayer,this.particleMaterial.uniforms.u_mouseOnLayer.value=this.settings.mouseOnLayer})),l.canvas.addEventListener("mousemove",(t=>{var e=this.settings.canvas.getBoundingClientRect();this.settings.mouseOnLayer=!0,this.settings.mouseVec.x=t.layerX/e.width*2-1,this.settings.mouseVec.y=-t.layerY/e.height*2+1;var i=new THREE.Vector3(this.settings.mouseVec.x,this.settings.mouseVec.y,0);i.unproject(this.camera);var n=i.sub(this.camera.position).normalize(),r=-this.camera.position.z/n.z;l.convertedPos=this.camera.position.clone().add(n.multiplyScalar(r)),l.convertedPos.z=0,this.settings.mouseMoveVec.set(l.convertedPos.x,l.convertedPos.y,0),this.vccToUniform.u_mouseVector.value=[this.settings.mouseMoveVec.x,this.settings.mouseMoveVec.y],this.particleMaterial.uniforms.u_mouseVector.value=[this.settings.mouseMoveVec.x,this.settings.mouseMoveVec.y]}))),"indivRotaWithReturn"===l.gravFollowMouse||"indivRota"===l.gravFollowMouse){var u=document.documentElement.clientWidth,c=document.documentElement.clientHeight,g=[0,0],d=0;document.addEventListener("mousemove",(t=>{if(d>0){var e=t.clientX,i=t.clientY,n=[g[0]-e,g[1]-i],r=n[0]/u*this.settings.gravRotateMouseValue,s=-n[1]/c*this.settings.gravRotateMouseValue;this.scene.rotation.y+=-r*Math.PI/180,this.scene.rotation.x+=s*Math.PI/180,g[0]=e,g[1]=i}else g[0]=t.clientX,g[1]=t.clientY,d++}))}},g.prototype.initPP=function(){var t=_(this);t.theCluster&&"off"!==t.theCluster.vfxSelector&&!this.ppEnabled&&void 0!==this.w&&void 0!==this.h&&0!==this.w&&0!==this.h&&(this.ppEnabled=!1,t.pp=l.postProcessing.d3.init(this.renderer,this.scene,this.camera,{focus:this.settings.focus,aperture:this.settings.aperture,maxblur:this.settings.maxBlur,transparent:!0,width:this.w,height:this.h}))},g.prototype.render=function(e){if(!this.destroyed&&!this.paused)if(this.frame=cancelAnimationFrame(this.frame),this.frame=requestAnimationFrame(this.bindedRender),void 0!==e&&void 0!==this.time){this.tDiff=(e-this.time)/1600,this.time=e;var i=_(this);if(void 0!==i.theCluster.lastDim&&i.theCluster.lastDim.width===Math.round(i.eow)&&i.theCluster.lastDim.height===Math.round(i.eoh)||l.theClusterUtils.fitCameraToObject(i),!this.destroyed){this.computeRenderer.compute(),this.particleUniforms.texturePosition.value=this.computeRenderer.getCurrentRenderTarget(this.settings.computePos).texture,this.particleUniforms.textureVelocity.value=this.computeRenderer.getCurrentRenderTarget(this.settings.computeVcc).texture,this.particleUniforms.textureCustomValues.value=this.computeRenderer.getCurrentRenderTarget(this.settings.computeCustomValues).texture,this.particleUniforms.textureInitPos.value=this.computeRenderer.getCurrentRenderTarget(this.settings.computeInitPos).texture,this.particleUniforms.textureInitVCC.value=this.computeRenderer.getCurrentRenderTarget(this.settings.computeInitVCC).texture,0==this.settings.gravPointsVisible&&("off"==this.settings.gravP1MoveSel&&"off"==this.settings.gravP2MoveSel&&"off"==this.settings.gravP3MoveSel||function(t,e){var i=function(t,e){var i=10*Math.sin(t/5e3),n=10*Math.cos(t/5e3);return{x:i,y:n}}(e);t.settings.gravPoint1Toggle&&(t.settings["g1"+t.settings.gravP1MoveSel[0].toUpperCase()]=i.x,t.settings["g1"+t.settings.gravP1MoveSel[1].toUpperCase()]=i.y,t.settings.gravPointArray[0].position[t.settings.gravP1MoveSel[0]]=t.settings["g1"+t.settings.gravP1MoveSel[0].toUpperCase()],t.settings.gravPointArray[0].position[t.settings.gravP1MoveSel[1]]=t.settings["g1"+t.settings.gravP1MoveSel[1].toUpperCase()]);t.settings.gravPoint2Toggle&&(t.settings["g2"+t.settings.gravP2MoveSel[0].toUpperCase()]=i.x,t.settings["g2"+t.settings.gravP2MoveSel[1].toUpperCase()]=i.y,t.settings.gravPointArray[1].position[t.settings.gravP2MoveSel[0]]=t.settings["g2"+t.settings.gravP2MoveSel[0].toUpperCase()],t.settings.gravPointArray[1].position[t.settings.gravP2MoveSel[1]]=t.settings["g2"+t.settings.gravP2MoveSel[1].toUpperCase()]);t.settings.gravPoint3Toggle&&(t.settings["g3"+t.settings.gravP3MoveSel[0].toUpperCase()]=i.x,t.settings["g3"+t.settings.gravP3MoveSel[1].toUpperCase()]=i.y,t.settings.gravPointArray[2].position[t.settings.gravP3MoveSel[0]]=t.settings["g1"+t.settings.gravP3MoveSel[0].toUpperCase()],t.settings.gravPointArray[2].position[t.settings.gravP3MoveSel[1]]=t.settings["g1"+t.settings.gravP3MoveSel[1].toUpperCase()]);d(t.settings),t.vccToUniform.u_gravPositions.value=t.settings.gravPositions}(this,e));var n;t.getElapsedTime()>0&&(this.particleMaterial.uniforms.u_time.value+=this.tDiff,this.posToUniform.u_time.value+=this.tDiff,this.vccToUniform.u_time.value+=this.tDiff,i.pp&&i.pp.composer?("off"!=i.theCluster.vfxSelector&&this.settings.sfxBreathing&&(i.pp.effectPass.uniforms.maxblur.value=tpGS.gsap.utils.mapRange(0,1,this.settings.minBlur,this.settings.maxBlur,Math.abs(Math.sin(Math.PI*(this.particleMaterial.uniforms.u_time.value+.5)*.3)))),i.pp.composer.render()):this.renderer.render(this.scene,this.camera),"off"!=this.settings.animationSel&&((n=this).scene.rotation.x+=n.settings.aniX/1e3*n.settings.speed*1.5,n.scene.rotation.y+=n.settings.aniY/1e3*n.settings.speed*1.5,n.scene.rotation.z+=n.settings.aniZ/1e3*n.settings.speed*1.5),"indivRotaWithReturn"===this.settings.gravFollowMouse&&"off"===this.settings.animationSel&&(this.scene.rotation.y>0&&(this.scene.rotation.y-=this.settings.gravRotateReturnValue),this.scene.rotation.y<0&&(this.scene.rotation.y+=this.settings.gravRotateReturnValue),this.scene.rotation.x>0&&(this.scene.rotation.x-=this.settings.gravRotateReturnValue),this.scene.rotation.x<0&&(this.scene.rotation.x+=this.settings.gravRotateReturnValue)))}}else this.time=e},g.prototype.update=function(){this.particleMaterial.uniforms.u_pointSize.value=this.settings.size,this.particleMaterial.uniforms.u_limitMovementValue.value=this.settings.limitMovementValue,this.particleMaterial.uniforms.u_limitCentrePosition.value=this.settings.limitCentrePosition,this.posToUniform.u_speed.value=this.settings.speed,this.posToUniform.u_lifeTimeDelay.value=this.settings.lifeTimeDelay,this.vccToUniform.u_speed.value=this.settings.speed,this.vccToUniform.u_mass.value=this.settings.mass,this.vccToUniform.u_mass2.value=this.settings.mass2,this.vccToUniform.u_mass3.value=this.settings.mass3,this.vccToUniform.u_gravPositions.value=this.settings.gravPositions,this.vccToUniform.u_lifeTimeDelay.value=this.settings.lifeTimeDelay,this.vccToUniform.u_noiseAmount.value=(this.settings.noiseAmount/100).toFixed(2),this.particleMaterial.uniforms.u_colorImageMixValue.value=this.settings.colorImageMixValue,x(this,this.settings)},g.prototype.resize=function(t,e){this.w=t,this.h=e,this.camera.aspect=this.w/this.h,this.camera.updateProjectionMatrix(),this.renderer&&this.renderer.setSize(this.w,this.h)},g.prototype.destroy=function(){this.destroyed=!0,this.renderer&&(this.renderer.dispose(),this.renderer.domElement.remove(),this.renderer.domElement=null),this.renderer=null,this.frame=cancelAnimationFrame(this.frame)},window.RS_MODULES=window.RS_MODULES||{}
8,window.RS_MODULES.thecluster={loaded:!0,version:"1.0.8"},window.RS_MODULES.checkMinimal&&window.RS_MODULES.checkMinimal()}();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.