@tsparticles/shape-rounded-polygon 3.0.2 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,32 +1,35 @@
1
1
  import { getRangeValue, } from "@tsparticles/engine";
2
- function polygon(sides, radius, rot = 0) {
3
- const step = (Math.PI * 2) / sides, path = [];
2
+ const double = 2, doublePI = Math.PI * double, half = 0.5, defaultSides = 5, defaultRotation = 0, defaultRadius = 5;
3
+ function polygon(sides, radius, rot = defaultRotation) {
4
+ const step = doublePI / sides, path = [];
4
5
  for (let i = 0; i < sides; i++) {
5
6
  path.push({ x: Math.cos(i * step + rot) * radius, y: Math.sin(i * step + rot) * radius });
6
7
  }
7
8
  return path;
8
9
  }
9
10
  function roundedPath(context, path, radius) {
10
- let p1 = path[0], p2 = path[1];
11
+ const index1 = 0, index2 = 1, increment = 1;
12
+ let p1 = path[index1], p2 = path[index2];
11
13
  const len = path.length;
12
- context.moveTo((p1.x + p2.x) / 2, (p1.y + p2.y) / 2);
14
+ context.moveTo((p1.x + p2.x) * half, (p1.y + p2.y) * half);
13
15
  for (let i = 1; i <= len; i++) {
14
16
  p1 = p2;
15
- p2 = path[(i + 1) % len];
16
- context.arcTo(p1.x, p1.y, (p1.x + p2.x) / 2, (p1.y + p2.y) / 2, radius);
17
+ p2 = path[(i + increment) % len];
18
+ context.arcTo(p1.x, p1.y, (p1.x + p2.x) * half, (p1.y + p2.y) * half, radius);
17
19
  }
18
20
  }
19
21
  export class RoundedPolygonDrawer {
20
22
  draw(data) {
21
23
  const { context, particle, radius } = data;
22
- roundedPath(context, polygon(particle.sides, radius), particle.borderRadius ?? 5);
24
+ roundedPath(context, polygon(particle.sides, radius), particle.borderRadius ?? defaultRadius);
23
25
  }
24
26
  getSidesCount(particle) {
25
27
  const roundedPolygon = particle.shapeData;
26
- return Math.round(getRangeValue(roundedPolygon?.sides ?? 5));
28
+ return Math.round(getRangeValue(roundedPolygon?.sides ?? defaultSides));
27
29
  }
28
30
  particleInit(container, particle) {
29
31
  const shapeData = particle.shapeData;
30
- particle.borderRadius = Math.round(getRangeValue(shapeData?.radius ?? 5)) * container.retina.pixelRatio;
32
+ particle.borderRadius =
33
+ Math.round(getRangeValue(shapeData?.radius ?? defaultSides)) * container.retina.pixelRatio;
31
34
  }
32
35
  }
@@ -2,35 +2,38 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RoundedPolygonDrawer = void 0;
4
4
  const engine_1 = require("@tsparticles/engine");
5
- function polygon(sides, radius, rot = 0) {
6
- const step = (Math.PI * 2) / sides, path = [];
5
+ const double = 2, doublePI = Math.PI * double, half = 0.5, defaultSides = 5, defaultRotation = 0, defaultRadius = 5;
6
+ function polygon(sides, radius, rot = defaultRotation) {
7
+ const step = doublePI / sides, path = [];
7
8
  for (let i = 0; i < sides; i++) {
8
9
  path.push({ x: Math.cos(i * step + rot) * radius, y: Math.sin(i * step + rot) * radius });
9
10
  }
10
11
  return path;
11
12
  }
12
13
  function roundedPath(context, path, radius) {
13
- let p1 = path[0], p2 = path[1];
14
+ const index1 = 0, index2 = 1, increment = 1;
15
+ let p1 = path[index1], p2 = path[index2];
14
16
  const len = path.length;
15
- context.moveTo((p1.x + p2.x) / 2, (p1.y + p2.y) / 2);
17
+ context.moveTo((p1.x + p2.x) * half, (p1.y + p2.y) * half);
16
18
  for (let i = 1; i <= len; i++) {
17
19
  p1 = p2;
18
- p2 = path[(i + 1) % len];
19
- context.arcTo(p1.x, p1.y, (p1.x + p2.x) / 2, (p1.y + p2.y) / 2, radius);
20
+ p2 = path[(i + increment) % len];
21
+ context.arcTo(p1.x, p1.y, (p1.x + p2.x) * half, (p1.y + p2.y) * half, radius);
20
22
  }
21
23
  }
22
24
  class RoundedPolygonDrawer {
23
25
  draw(data) {
24
26
  const { context, particle, radius } = data;
25
- roundedPath(context, polygon(particle.sides, radius), particle.borderRadius ?? 5);
27
+ roundedPath(context, polygon(particle.sides, radius), particle.borderRadius ?? defaultRadius);
26
28
  }
27
29
  getSidesCount(particle) {
28
30
  const roundedPolygon = particle.shapeData;
29
- return Math.round((0, engine_1.getRangeValue)(roundedPolygon?.sides ?? 5));
31
+ return Math.round((0, engine_1.getRangeValue)(roundedPolygon?.sides ?? defaultSides));
30
32
  }
31
33
  particleInit(container, particle) {
32
34
  const shapeData = particle.shapeData;
33
- particle.borderRadius = Math.round((0, engine_1.getRangeValue)(shapeData?.radius ?? 5)) * container.retina.pixelRatio;
35
+ particle.borderRadius =
36
+ Math.round((0, engine_1.getRangeValue)(shapeData?.radius ?? defaultSides)) * container.retina.pixelRatio;
34
37
  }
35
38
  }
36
39
  exports.RoundedPolygonDrawer = RoundedPolygonDrawer;
@@ -1,32 +1,35 @@
1
1
  import { getRangeValue, } from "@tsparticles/engine";
2
- function polygon(sides, radius, rot = 0) {
3
- const step = (Math.PI * 2) / sides, path = [];
2
+ const double = 2, doublePI = Math.PI * double, half = 0.5, defaultSides = 5, defaultRotation = 0, defaultRadius = 5;
3
+ function polygon(sides, radius, rot = defaultRotation) {
4
+ const step = doublePI / sides, path = [];
4
5
  for (let i = 0; i < sides; i++) {
5
6
  path.push({ x: Math.cos(i * step + rot) * radius, y: Math.sin(i * step + rot) * radius });
6
7
  }
7
8
  return path;
8
9
  }
9
10
  function roundedPath(context, path, radius) {
10
- let p1 = path[0], p2 = path[1];
11
+ const index1 = 0, index2 = 1, increment = 1;
12
+ let p1 = path[index1], p2 = path[index2];
11
13
  const len = path.length;
12
- context.moveTo((p1.x + p2.x) / 2, (p1.y + p2.y) / 2);
14
+ context.moveTo((p1.x + p2.x) * half, (p1.y + p2.y) * half);
13
15
  for (let i = 1; i <= len; i++) {
14
16
  p1 = p2;
15
- p2 = path[(i + 1) % len];
16
- context.arcTo(p1.x, p1.y, (p1.x + p2.x) / 2, (p1.y + p2.y) / 2, radius);
17
+ p2 = path[(i + increment) % len];
18
+ context.arcTo(p1.x, p1.y, (p1.x + p2.x) * half, (p1.y + p2.y) * half, radius);
17
19
  }
18
20
  }
19
21
  export class RoundedPolygonDrawer {
20
22
  draw(data) {
21
23
  const { context, particle, radius } = data;
22
- roundedPath(context, polygon(particle.sides, radius), particle.borderRadius ?? 5);
24
+ roundedPath(context, polygon(particle.sides, radius), particle.borderRadius ?? defaultRadius);
23
25
  }
24
26
  getSidesCount(particle) {
25
27
  const roundedPolygon = particle.shapeData;
26
- return Math.round(getRangeValue(roundedPolygon?.sides ?? 5));
28
+ return Math.round(getRangeValue(roundedPolygon?.sides ?? defaultSides));
27
29
  }
28
30
  particleInit(container, particle) {
29
31
  const shapeData = particle.shapeData;
30
- particle.borderRadius = Math.round(getRangeValue(shapeData?.radius ?? 5)) * container.retina.pixelRatio;
32
+ particle.borderRadius =
33
+ Math.round(getRangeValue(shapeData?.radius ?? defaultSides)) * container.retina.pixelRatio;
31
34
  }
32
35
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/shape-rounded-polygon",
3
- "version": "3.0.2",
3
+ "version": "3.1.0",
4
4
  "description": "tsParticles rounded polygon shape",
5
5
  "homepage": "https://particles.js.org",
6
6
  "repository": {
@@ -59,7 +59,7 @@
59
59
  "./package.json": "./package.json"
60
60
  },
61
61
  "dependencies": {
62
- "@tsparticles/engine": "^3.0.2"
62
+ "@tsparticles/engine": "^3.1.0"
63
63
  },
64
64
  "publishConfig": {
65
65
  "access": "public"
package/report.html CHANGED
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8"/>
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
6
- <title>@tsparticles/shape-rounded-polygon [6 Dec 2023 at 17:44]</title>
6
+ <title>@tsparticles/shape-rounded-polygon [13 Jan 2024 at 23:07]</title>
7
7
  <link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
8
8
 
9
9
  <script>
@@ -31,7 +31,7 @@
31
31
  <body>
32
32
  <div id="app"></div>
33
33
  <script>
34
- window.chartData = [{"label":"tsparticles.shape.rounded-polygon.js","isAsset":true,"statSize":1456,"parsedSize":5285,"gzipSize":1810,"groups":[{"label":"dist/browser","path":"./dist/browser","statSize":1414,"groups":[{"id":396,"label":"index.js + 1 modules (concatenated)","path":"./dist/browser/index.js + 1 modules (concatenated)","statSize":1414,"parsedSize":5285,"gzipSize":1810,"concatenated":true,"groups":[{"label":"dist/browser","path":"./dist/browser/index.js + 1 modules (concatenated)/dist/browser","statSize":1414,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/index.js + 1 modules (concatenated)/dist/browser/index.js","statSize":220,"parsedSize":822,"gzipSize":281,"inaccurateSizes":true},{"id":null,"label":"RoundedPolygonDrawer.js","path":"./dist/browser/index.js + 1 modules (concatenated)/dist/browser/RoundedPolygonDrawer.js","statSize":1194,"parsedSize":4462,"gzipSize":1528,"inaccurateSizes":true}],"parsedSize":5285,"gzipSize":1810,"inaccurateSizes":true}]}],"parsedSize":5285,"gzipSize":1810},{"label":"engine\",\"commonjs2\":\"@tsparticles/engine\",\"amd\":\"@tsparticles","path":"./engine\",\"commonjs2\":\"@tsparticles/engine\",\"amd\":\"@tsparticles","statSize":42,"groups":[{"id":533,"label":"engine\",\"root\":\"window\"}","path":"./engine\",\"commonjs2\":\"@tsparticles/engine\",\"amd\":\"@tsparticles/engine\",\"root\":\"window\"}","statSize":42}],"parsedSize":0,"gzipSize":0}],"isInitialByEntrypoint":{"tsparticles.shape.rounded-polygon":true}}];
34
+ window.chartData = [{"label":"tsparticles.shape.rounded-polygon.js","isAsset":true,"statSize":1713,"parsedSize":5584,"gzipSize":1889,"groups":[{"label":"dist/browser","path":"./dist/browser","statSize":1671,"groups":[{"id":426,"label":"index.js + 1 modules (concatenated)","path":"./dist/browser/index.js + 1 modules (concatenated)","statSize":1671,"parsedSize":5584,"gzipSize":1889,"concatenated":true,"groups":[{"label":"dist/browser","path":"./dist/browser/index.js + 1 modules (concatenated)/dist/browser","statSize":1671,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/index.js + 1 modules (concatenated)/dist/browser/index.js","statSize":220,"parsedSize":735,"gzipSize":248,"inaccurateSizes":true},{"id":null,"label":"RoundedPolygonDrawer.js","path":"./dist/browser/index.js + 1 modules (concatenated)/dist/browser/RoundedPolygonDrawer.js","statSize":1451,"parsedSize":4848,"gzipSize":1640,"inaccurateSizes":true}],"parsedSize":5584,"gzipSize":1889,"inaccurateSizes":true}]}],"parsedSize":5584,"gzipSize":1889},{"label":"engine\",\"commonjs2\":\"@tsparticles/engine\",\"amd\":\"@tsparticles","path":"./engine\",\"commonjs2\":\"@tsparticles/engine\",\"amd\":\"@tsparticles","statSize":42,"groups":[{"id":533,"label":"engine\",\"root\":\"window\"}","path":"./engine\",\"commonjs2\":\"@tsparticles/engine\",\"amd\":\"@tsparticles/engine\",\"root\":\"window\"}","statSize":42}],"parsedSize":0,"gzipSize":0}],"isInitialByEntrypoint":{"tsparticles.shape.rounded-polygon":true}}];
35
35
  window.entrypoints = ["tsparticles.shape.rounded-polygon","tsparticles.shape.rounded-polygon.min"];
36
36
  window.defaultSizes = "parsed";
37
37
  </script>
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v3.0.2
7
+ * v3.1.0
8
8
  */
9
9
  (function webpackUniversalModuleDefinition(root, factory) {
10
10
  if(typeof exports === 'object' && typeof module === 'object')
@@ -98,8 +98,14 @@ __webpack_require__.d(__webpack_exports__, {
98
98
  var engine_root_window_ = __webpack_require__(533);
99
99
  ;// CONCATENATED MODULE: ./dist/browser/RoundedPolygonDrawer.js
100
100
 
101
- function polygon(sides, radius, rot = 0) {
102
- const step = Math.PI * 2 / sides,
101
+ const RoundedPolygonDrawer_double = 2,
102
+ doublePI = Math.PI * RoundedPolygonDrawer_double,
103
+ half = 0.5,
104
+ defaultSides = 5,
105
+ defaultRotation = 0,
106
+ defaultRadius = 5;
107
+ function polygon(sides, radius, rot = defaultRotation) {
108
+ const step = doublePI / sides,
103
109
  path = [];
104
110
  for (let i = 0; i < sides; i++) {
105
111
  path.push({
@@ -110,14 +116,17 @@ function polygon(sides, radius, rot = 0) {
110
116
  return path;
111
117
  }
112
118
  function roundedPath(context, path, radius) {
113
- let p1 = path[0],
114
- p2 = path[1];
119
+ const index1 = 0,
120
+ index2 = 1,
121
+ increment = 1;
122
+ let p1 = path[index1],
123
+ p2 = path[index2];
115
124
  const len = path.length;
116
- context.moveTo((p1.x + p2.x) / 2, (p1.y + p2.y) / 2);
125
+ context.moveTo((p1.x + p2.x) * half, (p1.y + p2.y) * half);
117
126
  for (let i = 1; i <= len; i++) {
118
127
  p1 = p2;
119
- p2 = path[(i + 1) % len];
120
- context.arcTo(p1.x, p1.y, (p1.x + p2.x) / 2, (p1.y + p2.y) / 2, radius);
128
+ p2 = path[(i + increment) % len];
129
+ context.arcTo(p1.x, p1.y, (p1.x + p2.x) * half, (p1.y + p2.y) * half, radius);
121
130
  }
122
131
  }
123
132
  class RoundedPolygonDrawer {
@@ -127,15 +136,15 @@ class RoundedPolygonDrawer {
127
136
  particle,
128
137
  radius
129
138
  } = data;
130
- roundedPath(context, polygon(particle.sides, radius), particle.borderRadius ?? 5);
139
+ roundedPath(context, polygon(particle.sides, radius), particle.borderRadius ?? defaultRadius);
131
140
  }
132
141
  getSidesCount(particle) {
133
142
  const roundedPolygon = particle.shapeData;
134
- return Math.round((0,engine_root_window_.getRangeValue)(roundedPolygon?.sides ?? 5));
143
+ return Math.round((0,engine_root_window_.getRangeValue)(roundedPolygon?.sides ?? defaultSides));
135
144
  }
136
145
  particleInit(container, particle) {
137
146
  const shapeData = particle.shapeData;
138
- particle.borderRadius = Math.round((0,engine_root_window_.getRangeValue)(shapeData?.radius ?? 5)) * container.retina.pixelRatio;
147
+ particle.borderRadius = Math.round((0,engine_root_window_.getRangeValue)(shapeData?.radius ?? defaultSides)) * container.retina.pixelRatio;
139
148
  }
140
149
  }
141
150
  ;// CONCATENATED MODULE: ./dist/browser/index.js
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see tsparticles.shape.rounded-polygon.min.js.LICENSE.txt */
2
- !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 r in o)("object"==typeof exports?exports:e)[r]=o[r]}}(this,(e=>(()=>{"use strict";var t={533:t=>{t.exports=e}},o={};function r(e){var n=o[e];if(void 0!==n)return n.exports;var a=o[e]={exports:{}};return t[e](a,a.exports,r),a.exports}r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{r.r(n),r.d(n,{loadRoundedPolygonShape:()=>o});var e=r(533);class t{draw(e){const{context:t,particle:o,radius:r}=e;!function(e,t,o){let r=t[0],n=t[1];const a=t.length;e.moveTo((r.x+n.x)/2,(r.y+n.y)/2);for(let i=1;i<=a;i++)r=n,n=t[(i+1)%a],e.arcTo(r.x,r.y,(r.x+n.x)/2,(r.y+n.y)/2,o)}(t,function(e,t,o=0){const r=2*Math.PI/e,n=[];for(let a=0;a<e;a++)n.push({x:Math.cos(a*r+o)*t,y:Math.sin(a*r+o)*t});return n}(o.sides,r),o.borderRadius??5)}getSidesCount(t){const o=t.shapeData;return Math.round((0,e.getRangeValue)(o?.sides??5))}particleInit(t,o){const r=o.shapeData;o.borderRadius=Math.round((0,e.getRangeValue)(r?.radius??5))*t.retina.pixelRatio}}async function o(e,o=!0){await e.addShape("rounded-polygon",new t,o)}})(),n})()));
2
+ !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 r in o)("object"==typeof exports?exports:e)[r]=o[r]}}(this,(e=>(()=>{"use strict";var t={533:t=>{t.exports=e}},o={};function r(e){var n=o[e];if(void 0!==n)return n.exports;var a=o[e]={exports:{}};return t[e](a,a.exports,r),a.exports}r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{r.r(n),r.d(n,{loadRoundedPolygonShape:()=>i});var e=r(533);const t=2*Math.PI,o=.5;class a{draw(e){const{context:r,particle:n,radius:a}=e;!function(e,t,r){let n=t[0],a=t[1];const i=t.length;e.moveTo((n.x+a.x)*o,(n.y+a.y)*o);for(let s=1;s<=i;s++)n=a,a=t[(s+1)%i],e.arcTo(n.x,n.y,(n.x+a.x)*o,(n.y+a.y)*o,r)}(r,function(e,o,r=0){const n=t/e,a=[];for(let t=0;t<e;t++)a.push({x:Math.cos(t*n+r)*o,y:Math.sin(t*n+r)*o});return a}(n.sides,a),n.borderRadius??5)}getSidesCount(t){const o=t.shapeData;return Math.round((0,e.getRangeValue)(o?.sides??5))}particleInit(t,o){const r=o.shapeData;o.borderRadius=Math.round((0,e.getRangeValue)(r?.radius??5))*t.retina.pixelRatio}}async function i(e,t=!0){await e.addShape("rounded-polygon",new a,t)}})(),n})()));
@@ -1 +1 @@
1
- /*! tsParticles RoundedPolygon Shape v3.0.2 by Matteo Bruni */
1
+ /*! tsParticles RoundedPolygon Shape v3.1.0 by Matteo Bruni */
@@ -11,35 +11,38 @@
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.RoundedPolygonDrawer = void 0;
13
13
  const engine_1 = require("@tsparticles/engine");
14
- function polygon(sides, radius, rot = 0) {
15
- const step = (Math.PI * 2) / sides, path = [];
14
+ const double = 2, doublePI = Math.PI * double, half = 0.5, defaultSides = 5, defaultRotation = 0, defaultRadius = 5;
15
+ function polygon(sides, radius, rot = defaultRotation) {
16
+ const step = doublePI / sides, path = [];
16
17
  for (let i = 0; i < sides; i++) {
17
18
  path.push({ x: Math.cos(i * step + rot) * radius, y: Math.sin(i * step + rot) * radius });
18
19
  }
19
20
  return path;
20
21
  }
21
22
  function roundedPath(context, path, radius) {
22
- let p1 = path[0], p2 = path[1];
23
+ const index1 = 0, index2 = 1, increment = 1;
24
+ let p1 = path[index1], p2 = path[index2];
23
25
  const len = path.length;
24
- context.moveTo((p1.x + p2.x) / 2, (p1.y + p2.y) / 2);
26
+ context.moveTo((p1.x + p2.x) * half, (p1.y + p2.y) * half);
25
27
  for (let i = 1; i <= len; i++) {
26
28
  p1 = p2;
27
- p2 = path[(i + 1) % len];
28
- context.arcTo(p1.x, p1.y, (p1.x + p2.x) / 2, (p1.y + p2.y) / 2, radius);
29
+ p2 = path[(i + increment) % len];
30
+ context.arcTo(p1.x, p1.y, (p1.x + p2.x) * half, (p1.y + p2.y) * half, radius);
29
31
  }
30
32
  }
31
33
  class RoundedPolygonDrawer {
32
34
  draw(data) {
33
35
  const { context, particle, radius } = data;
34
- roundedPath(context, polygon(particle.sides, radius), particle.borderRadius ?? 5);
36
+ roundedPath(context, polygon(particle.sides, radius), particle.borderRadius ?? defaultRadius);
35
37
  }
36
38
  getSidesCount(particle) {
37
39
  const roundedPolygon = particle.shapeData;
38
- return Math.round((0, engine_1.getRangeValue)(roundedPolygon?.sides ?? 5));
40
+ return Math.round((0, engine_1.getRangeValue)(roundedPolygon?.sides ?? defaultSides));
39
41
  }
40
42
  particleInit(container, particle) {
41
43
  const shapeData = particle.shapeData;
42
- particle.borderRadius = Math.round((0, engine_1.getRangeValue)(shapeData?.radius ?? 5)) * container.retina.pixelRatio;
44
+ particle.borderRadius =
45
+ Math.round((0, engine_1.getRangeValue)(shapeData?.radius ?? defaultSides)) * container.retina.pixelRatio;
43
46
  }
44
47
  }
45
48
  exports.RoundedPolygonDrawer = RoundedPolygonDrawer;