UNPKG

@tsparticles/path-polygon

Version:
2 lines 2.17 kB
/*! For license information please see tsparticles.path.polygon.min.js.LICENSE.txt */ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],t);else{var o="object"==typeof exports?t(require("@tsparticles/engine")):t(e.window);for(var i in o)("object"==typeof exports?exports:e)[i]=o[i]}}(this,(e=>(()=>{var t={303:t=>{t.exports=e}},o={};function i(e){var s=o[e];if(void 0!==s)return s.exports;var r=o[e]={exports:{}};return t[e](r,r.exports,i),r.exports}i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};i.r(s),i.d(s,{loadPolygonPath:()=>a,polygonPathName:()=>p});var r=i(303);class n{constructor(){this._createDirs=()=>{this.dirsList=[];for(let e=0;e<360;e+=360/this.options.sides){const t=this.options.angle+e;this.dirsList.push(r.Vector.create(Math.cos(t*Math.PI/180),Math.sin(t*Math.PI/180)))}},this.dirsList=[],this.options={sides:6,turnSteps:20,angle:30}}generate(e){const{sides:t}=this.options;void 0===e.hexStep&&(e.hexStep=0),void 0===e.hexDirection&&(e.hexDirection=6===t?2*(3*(0,r.getRandom)()|0):(0,r.getRandom)()*t|0),void 0===e.hexSpeed&&(e.hexSpeed=e.velocity.length),e.hexStep%this.options.turnSteps==0&&(e.hexDirection=(0,r.getRandom)()>.5?(e.hexDirection+1)%t:(e.hexDirection+t-1)%t),e.velocity.x=0,e.velocity.y=0,e.hexStep++;const o=this.dirsList[e.hexDirection];return r.Vector.create(o.x*e.hexSpeed,o.y*e.hexSpeed)}init(e){const t=e.actualOptions.particles.move.path.options;this.options.sides=t.sides>0?t.sides:6,this.options.angle=t.angle??30,this.options.turnSteps=t.turnSteps>=0?t.turnSteps:20,this._createDirs()}reset(e){delete e.hexStep,delete e.hexDirection,delete e.hexSpeed}update(){}}const p="polygonPathGenerator";async function a(e,t=!0){e.checkVersion("3.9.1"),await e.addPathGenerator(p,new n,t)}return s})()));