@tsparticles/shape-cog 3.0.3 → 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,4 +1,5 @@
1
- import { getRangeValue } from "@tsparticles/engine";
1
+ import { getRangeValue, percentDenominator, } from "@tsparticles/engine";
2
+ const double = 2, doublePI = Math.PI * double, minAngle = 0, origin = { x: 0, y: 0 }, taperFactor = 0.005, defaultHoleRadius = 44, defaultInnerRadius = 72, defaultInnerTaper = 35, defaultNotches = 7, defaultOuterTaper = 50;
2
3
  export class CogDrawer {
3
4
  afterDraw(data) {
4
5
  const { context, particle, radius } = data;
@@ -9,11 +10,11 @@ export class CogDrawer {
9
10
  particle.cogOuterTaper === undefined) {
10
11
  return;
11
12
  }
12
- const pi2 = 2 * Math.PI, holeRadius = (radius * particle.cogHoleRadius) / 100;
13
+ const holeRadius = (radius * particle.cogHoleRadius) / percentDenominator;
13
14
  context.globalCompositeOperation = "destination-out";
14
15
  context.beginPath();
15
- context.moveTo(holeRadius, 0);
16
- context.arc(0, 0, holeRadius, 0, pi2);
16
+ context.moveTo(holeRadius, origin.y);
17
+ context.arc(origin.x, origin.y, holeRadius, minAngle, doublePI);
17
18
  context.closePath();
18
19
  context.fill();
19
20
  context.globalCompositeOperation = "source-over";
@@ -27,10 +28,10 @@ export class CogDrawer {
27
28
  particle.cogOuterTaper === undefined) {
28
29
  return;
29
30
  }
30
- const pi2 = 2 * Math.PI, angle = pi2 / (particle.cogNotches * 2), taperAI = angle * particle.cogInnerTaper * 0.005, taperAO = angle * particle.cogOuterTaper * 0.005, innerRadius = (radius * particle.cogInnerRadius) / 100;
31
+ const angle = doublePI / (particle.cogNotches * double), taperAI = angle * particle.cogInnerTaper * taperFactor, taperAO = angle * particle.cogOuterTaper * taperFactor, innerRadius = (radius * particle.cogInnerRadius) / percentDenominator;
31
32
  let a = angle, toggle = false;
32
33
  context.moveTo(radius * Math.cos(taperAO), radius * Math.sin(taperAO));
33
- for (; a <= pi2; a += angle) {
34
+ for (; a <= doublePI; a += angle) {
34
35
  if (toggle) {
35
36
  context.lineTo(innerRadius * Math.cos(a - taperAI), innerRadius * Math.sin(a - taperAI));
36
37
  context.lineTo(radius * Math.cos(a + taperAO), radius * Math.sin(a + taperAO));
@@ -44,10 +45,10 @@ export class CogDrawer {
44
45
  }
45
46
  particleInit(container, particle) {
46
47
  const shapeData = particle.shapeData;
47
- particle.cogHoleRadius = getRangeValue(shapeData?.holeRadius ?? 44);
48
- particle.cogInnerRadius = getRangeValue(shapeData?.innerRadius ?? 72);
49
- particle.cogInnerTaper = getRangeValue(shapeData?.innerTaper ?? 35);
50
- particle.cogNotches = getRangeValue(shapeData?.notches ?? 7);
51
- particle.cogOuterTaper = getRangeValue(shapeData?.outerTaper ?? 50);
48
+ particle.cogHoleRadius = getRangeValue(shapeData?.holeRadius ?? defaultHoleRadius);
49
+ particle.cogInnerRadius = getRangeValue(shapeData?.innerRadius ?? defaultInnerRadius);
50
+ particle.cogInnerTaper = getRangeValue(shapeData?.innerTaper ?? defaultInnerTaper);
51
+ particle.cogNotches = getRangeValue(shapeData?.notches ?? defaultNotches);
52
+ particle.cogOuterTaper = getRangeValue(shapeData?.outerTaper ?? defaultOuterTaper);
52
53
  }
53
54
  }
package/cjs/CogDrawer.js CHANGED
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CogDrawer = void 0;
4
4
  const engine_1 = require("@tsparticles/engine");
5
+ const double = 2, doublePI = Math.PI * double, minAngle = 0, origin = { x: 0, y: 0 }, taperFactor = 0.005, defaultHoleRadius = 44, defaultInnerRadius = 72, defaultInnerTaper = 35, defaultNotches = 7, defaultOuterTaper = 50;
5
6
  class CogDrawer {
6
7
  afterDraw(data) {
7
8
  const { context, particle, radius } = data;
@@ -12,11 +13,11 @@ class CogDrawer {
12
13
  particle.cogOuterTaper === undefined) {
13
14
  return;
14
15
  }
15
- const pi2 = 2 * Math.PI, holeRadius = (radius * particle.cogHoleRadius) / 100;
16
+ const holeRadius = (radius * particle.cogHoleRadius) / engine_1.percentDenominator;
16
17
  context.globalCompositeOperation = "destination-out";
17
18
  context.beginPath();
18
- context.moveTo(holeRadius, 0);
19
- context.arc(0, 0, holeRadius, 0, pi2);
19
+ context.moveTo(holeRadius, origin.y);
20
+ context.arc(origin.x, origin.y, holeRadius, minAngle, doublePI);
20
21
  context.closePath();
21
22
  context.fill();
22
23
  context.globalCompositeOperation = "source-over";
@@ -30,10 +31,10 @@ class CogDrawer {
30
31
  particle.cogOuterTaper === undefined) {
31
32
  return;
32
33
  }
33
- const pi2 = 2 * Math.PI, angle = pi2 / (particle.cogNotches * 2), taperAI = angle * particle.cogInnerTaper * 0.005, taperAO = angle * particle.cogOuterTaper * 0.005, innerRadius = (radius * particle.cogInnerRadius) / 100;
34
+ const angle = doublePI / (particle.cogNotches * double), taperAI = angle * particle.cogInnerTaper * taperFactor, taperAO = angle * particle.cogOuterTaper * taperFactor, innerRadius = (radius * particle.cogInnerRadius) / engine_1.percentDenominator;
34
35
  let a = angle, toggle = false;
35
36
  context.moveTo(radius * Math.cos(taperAO), radius * Math.sin(taperAO));
36
- for (; a <= pi2; a += angle) {
37
+ for (; a <= doublePI; a += angle) {
37
38
  if (toggle) {
38
39
  context.lineTo(innerRadius * Math.cos(a - taperAI), innerRadius * Math.sin(a - taperAI));
39
40
  context.lineTo(radius * Math.cos(a + taperAO), radius * Math.sin(a + taperAO));
@@ -47,11 +48,11 @@ class CogDrawer {
47
48
  }
48
49
  particleInit(container, particle) {
49
50
  const shapeData = particle.shapeData;
50
- particle.cogHoleRadius = (0, engine_1.getRangeValue)(shapeData?.holeRadius ?? 44);
51
- particle.cogInnerRadius = (0, engine_1.getRangeValue)(shapeData?.innerRadius ?? 72);
52
- particle.cogInnerTaper = (0, engine_1.getRangeValue)(shapeData?.innerTaper ?? 35);
53
- particle.cogNotches = (0, engine_1.getRangeValue)(shapeData?.notches ?? 7);
54
- particle.cogOuterTaper = (0, engine_1.getRangeValue)(shapeData?.outerTaper ?? 50);
51
+ particle.cogHoleRadius = (0, engine_1.getRangeValue)(shapeData?.holeRadius ?? defaultHoleRadius);
52
+ particle.cogInnerRadius = (0, engine_1.getRangeValue)(shapeData?.innerRadius ?? defaultInnerRadius);
53
+ particle.cogInnerTaper = (0, engine_1.getRangeValue)(shapeData?.innerTaper ?? defaultInnerTaper);
54
+ particle.cogNotches = (0, engine_1.getRangeValue)(shapeData?.notches ?? defaultNotches);
55
+ particle.cogOuterTaper = (0, engine_1.getRangeValue)(shapeData?.outerTaper ?? defaultOuterTaper);
55
56
  }
56
57
  }
57
58
  exports.CogDrawer = CogDrawer;
package/esm/CogDrawer.js CHANGED
@@ -1,4 +1,5 @@
1
- import { getRangeValue } from "@tsparticles/engine";
1
+ import { getRangeValue, percentDenominator, } from "@tsparticles/engine";
2
+ const double = 2, doublePI = Math.PI * double, minAngle = 0, origin = { x: 0, y: 0 }, taperFactor = 0.005, defaultHoleRadius = 44, defaultInnerRadius = 72, defaultInnerTaper = 35, defaultNotches = 7, defaultOuterTaper = 50;
2
3
  export class CogDrawer {
3
4
  afterDraw(data) {
4
5
  const { context, particle, radius } = data;
@@ -9,11 +10,11 @@ export class CogDrawer {
9
10
  particle.cogOuterTaper === undefined) {
10
11
  return;
11
12
  }
12
- const pi2 = 2 * Math.PI, holeRadius = (radius * particle.cogHoleRadius) / 100;
13
+ const holeRadius = (radius * particle.cogHoleRadius) / percentDenominator;
13
14
  context.globalCompositeOperation = "destination-out";
14
15
  context.beginPath();
15
- context.moveTo(holeRadius, 0);
16
- context.arc(0, 0, holeRadius, 0, pi2);
16
+ context.moveTo(holeRadius, origin.y);
17
+ context.arc(origin.x, origin.y, holeRadius, minAngle, doublePI);
17
18
  context.closePath();
18
19
  context.fill();
19
20
  context.globalCompositeOperation = "source-over";
@@ -27,10 +28,10 @@ export class CogDrawer {
27
28
  particle.cogOuterTaper === undefined) {
28
29
  return;
29
30
  }
30
- const pi2 = 2 * Math.PI, angle = pi2 / (particle.cogNotches * 2), taperAI = angle * particle.cogInnerTaper * 0.005, taperAO = angle * particle.cogOuterTaper * 0.005, innerRadius = (radius * particle.cogInnerRadius) / 100;
31
+ const angle = doublePI / (particle.cogNotches * double), taperAI = angle * particle.cogInnerTaper * taperFactor, taperAO = angle * particle.cogOuterTaper * taperFactor, innerRadius = (radius * particle.cogInnerRadius) / percentDenominator;
31
32
  let a = angle, toggle = false;
32
33
  context.moveTo(radius * Math.cos(taperAO), radius * Math.sin(taperAO));
33
- for (; a <= pi2; a += angle) {
34
+ for (; a <= doublePI; a += angle) {
34
35
  if (toggle) {
35
36
  context.lineTo(innerRadius * Math.cos(a - taperAI), innerRadius * Math.sin(a - taperAI));
36
37
  context.lineTo(radius * Math.cos(a + taperAO), radius * Math.sin(a + taperAO));
@@ -44,10 +45,10 @@ export class CogDrawer {
44
45
  }
45
46
  particleInit(container, particle) {
46
47
  const shapeData = particle.shapeData;
47
- particle.cogHoleRadius = getRangeValue(shapeData?.holeRadius ?? 44);
48
- particle.cogInnerRadius = getRangeValue(shapeData?.innerRadius ?? 72);
49
- particle.cogInnerTaper = getRangeValue(shapeData?.innerTaper ?? 35);
50
- particle.cogNotches = getRangeValue(shapeData?.notches ?? 7);
51
- particle.cogOuterTaper = getRangeValue(shapeData?.outerTaper ?? 50);
48
+ particle.cogHoleRadius = getRangeValue(shapeData?.holeRadius ?? defaultHoleRadius);
49
+ particle.cogInnerRadius = getRangeValue(shapeData?.innerRadius ?? defaultInnerRadius);
50
+ particle.cogInnerTaper = getRangeValue(shapeData?.innerTaper ?? defaultInnerTaper);
51
+ particle.cogNotches = getRangeValue(shapeData?.notches ?? defaultNotches);
52
+ particle.cogOuterTaper = getRangeValue(shapeData?.outerTaper ?? defaultOuterTaper);
52
53
  }
53
54
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/shape-cog",
3
- "version": "3.0.3",
3
+ "version": "3.1.0",
4
4
  "description": "tsParticles cog shape",
5
5
  "homepage": "https://particles.js.org",
6
6
  "repository": {
@@ -100,7 +100,7 @@
100
100
  "./package.json": "./package.json"
101
101
  },
102
102
  "dependencies": {
103
- "@tsparticles/engine": "^3.0.3"
103
+ "@tsparticles/engine": "^3.1.0"
104
104
  },
105
105
  "publishConfig": {
106
106
  "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-cog [26 Dec 2023 at 19:30]</title>
6
+ <title>@tsparticles/shape-cog [13 Jan 2024 at 23:06]</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.cog.js","isAsset":true,"statSize":2556,"parsedSize":6446,"gzipSize":1924,"groups":[{"label":"dist/browser","path":"./dist/browser","statSize":2514,"groups":[{"id":92,"label":"index.js + 1 modules (concatenated)","path":"./dist/browser/index.js + 1 modules (concatenated)","statSize":2514,"parsedSize":6446,"gzipSize":1924,"concatenated":true,"groups":[{"label":"dist/browser","path":"./dist/browser/index.js + 1 modules (concatenated)/dist/browser","statSize":2514,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/index.js + 1 modules (concatenated)/dist/browser/index.js","statSize":164,"parsedSize":420,"gzipSize":125,"inaccurateSizes":true},{"id":null,"label":"CogDrawer.js","path":"./dist/browser/index.js + 1 modules (concatenated)/dist/browser/CogDrawer.js","statSize":2350,"parsedSize":6025,"gzipSize":1798,"inaccurateSizes":true}],"parsedSize":6446,"gzipSize":1924,"inaccurateSizes":true}]}],"parsedSize":6446,"gzipSize":1924},{"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.cog":true}}];
34
+ window.chartData = [{"label":"tsparticles.shape.cog.js","isAsset":true,"statSize":2942,"parsedSize":6882,"gzipSize":2035,"groups":[{"label":"dist/browser","path":"./dist/browser","statSize":2900,"groups":[{"id":303,"label":"index.js + 1 modules (concatenated)","path":"./dist/browser/index.js + 1 modules (concatenated)","statSize":2900,"parsedSize":6882,"gzipSize":2035,"concatenated":true,"groups":[{"label":"dist/browser","path":"./dist/browser/index.js + 1 modules (concatenated)/dist/browser","statSize":2900,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/index.js + 1 modules (concatenated)/dist/browser/index.js","statSize":164,"parsedSize":389,"gzipSize":115,"inaccurateSizes":true},{"id":null,"label":"CogDrawer.js","path":"./dist/browser/index.js + 1 modules (concatenated)/dist/browser/CogDrawer.js","statSize":2736,"parsedSize":6492,"gzipSize":1919,"inaccurateSizes":true}],"parsedSize":6882,"gzipSize":2035,"inaccurateSizes":true}]}],"parsedSize":6882,"gzipSize":2035},{"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.cog":true}}];
35
35
  window.entrypoints = ["tsparticles.shape.cog","tsparticles.shape.cog.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.3
7
+ * v3.1.0
8
8
  */
9
9
  (function webpackUniversalModuleDefinition(root, factory) {
10
10
  if(typeof exports === 'object' && typeof module === 'object')
@@ -98,6 +98,19 @@ __webpack_require__.d(__webpack_exports__, {
98
98
  var engine_root_window_ = __webpack_require__(533);
99
99
  ;// CONCATENATED MODULE: ./dist/browser/CogDrawer.js
100
100
 
101
+ const CogDrawer_double = 2,
102
+ doublePI = Math.PI * CogDrawer_double,
103
+ minAngle = 0,
104
+ origin = {
105
+ x: 0,
106
+ y: 0
107
+ },
108
+ taperFactor = 0.005,
109
+ defaultHoleRadius = 44,
110
+ defaultInnerRadius = 72,
111
+ defaultInnerTaper = 35,
112
+ defaultNotches = 7,
113
+ defaultOuterTaper = 50;
101
114
  class CogDrawer {
102
115
  afterDraw(data) {
103
116
  const {
@@ -108,12 +121,11 @@ class CogDrawer {
108
121
  if (particle.cogHoleRadius === undefined || particle.cogInnerRadius === undefined || particle.cogInnerTaper === undefined || particle.cogNotches === undefined || particle.cogOuterTaper === undefined) {
109
122
  return;
110
123
  }
111
- const pi2 = 2 * Math.PI,
112
- holeRadius = radius * particle.cogHoleRadius / 100;
124
+ const holeRadius = radius * particle.cogHoleRadius / engine_root_window_.percentDenominator;
113
125
  context.globalCompositeOperation = "destination-out";
114
126
  context.beginPath();
115
- context.moveTo(holeRadius, 0);
116
- context.arc(0, 0, holeRadius, 0, pi2);
127
+ context.moveTo(holeRadius, origin.y);
128
+ context.arc(origin.x, origin.y, holeRadius, minAngle, doublePI);
117
129
  context.closePath();
118
130
  context.fill();
119
131
  context.globalCompositeOperation = "source-over";
@@ -127,15 +139,14 @@ class CogDrawer {
127
139
  if (particle.cogHoleRadius === undefined || particle.cogInnerRadius === undefined || particle.cogInnerTaper === undefined || particle.cogNotches === undefined || particle.cogOuterTaper === undefined) {
128
140
  return;
129
141
  }
130
- const pi2 = 2 * Math.PI,
131
- angle = pi2 / (particle.cogNotches * 2),
132
- taperAI = angle * particle.cogInnerTaper * 0.005,
133
- taperAO = angle * particle.cogOuterTaper * 0.005,
134
- innerRadius = radius * particle.cogInnerRadius / 100;
142
+ const angle = doublePI / (particle.cogNotches * CogDrawer_double),
143
+ taperAI = angle * particle.cogInnerTaper * taperFactor,
144
+ taperAO = angle * particle.cogOuterTaper * taperFactor,
145
+ innerRadius = radius * particle.cogInnerRadius / engine_root_window_.percentDenominator;
135
146
  let a = angle,
136
147
  toggle = false;
137
148
  context.moveTo(radius * Math.cos(taperAO), radius * Math.sin(taperAO));
138
- for (; a <= pi2; a += angle) {
149
+ for (; a <= doublePI; a += angle) {
139
150
  if (toggle) {
140
151
  context.lineTo(innerRadius * Math.cos(a - taperAI), innerRadius * Math.sin(a - taperAI));
141
152
  context.lineTo(radius * Math.cos(a + taperAO), radius * Math.sin(a + taperAO));
@@ -148,11 +159,11 @@ class CogDrawer {
148
159
  }
149
160
  particleInit(container, particle) {
150
161
  const shapeData = particle.shapeData;
151
- particle.cogHoleRadius = (0,engine_root_window_.getRangeValue)(shapeData?.holeRadius ?? 44);
152
- particle.cogInnerRadius = (0,engine_root_window_.getRangeValue)(shapeData?.innerRadius ?? 72);
153
- particle.cogInnerTaper = (0,engine_root_window_.getRangeValue)(shapeData?.innerTaper ?? 35);
154
- particle.cogNotches = (0,engine_root_window_.getRangeValue)(shapeData?.notches ?? 7);
155
- particle.cogOuterTaper = (0,engine_root_window_.getRangeValue)(shapeData?.outerTaper ?? 50);
162
+ particle.cogHoleRadius = (0,engine_root_window_.getRangeValue)(shapeData?.holeRadius ?? defaultHoleRadius);
163
+ particle.cogInnerRadius = (0,engine_root_window_.getRangeValue)(shapeData?.innerRadius ?? defaultInnerRadius);
164
+ particle.cogInnerTaper = (0,engine_root_window_.getRangeValue)(shapeData?.innerTaper ?? defaultInnerTaper);
165
+ particle.cogNotches = (0,engine_root_window_.getRangeValue)(shapeData?.notches ?? defaultNotches);
166
+ particle.cogOuterTaper = (0,engine_root_window_.getRangeValue)(shapeData?.outerTaper ?? defaultOuterTaper);
156
167
  }
157
168
  }
158
169
  ;// CONCATENATED MODULE: ./dist/browser/index.js
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see tsparticles.shape.cog.min.js.LICENSE.txt */
2
- !function(e,o){if("object"==typeof exports&&"object"==typeof module)module.exports=o(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],o);else{var t="object"==typeof exports?o(require("@tsparticles/engine")):o(e.window);for(var r in t)("object"==typeof exports?exports:e)[r]=t[r]}}(this,(e=>(()=>{"use strict";var o={533:o=>{o.exports=e}},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var n=t[e]={exports:{}};return o[e](n,n.exports,r),n.exports}r.d=(e,o)=>{for(var t in o)r.o(o,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})},r.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};return(()=>{r.r(a),r.d(a,{loadCogShape:()=>t});var e=r(533);class o{afterDraw(e){const{context:o,particle:t,radius:r}=e;if(void 0===t.cogHoleRadius||void 0===t.cogInnerRadius||void 0===t.cogInnerTaper||void 0===t.cogNotches||void 0===t.cogOuterTaper)return;const a=2*Math.PI,n=r*t.cogHoleRadius/100;o.globalCompositeOperation="destination-out",o.beginPath(),o.moveTo(n,0),o.arc(0,0,n,0,a),o.closePath(),o.fill(),o.globalCompositeOperation="source-over"}draw(e){const{context:o,particle:t,radius:r}=e;if(void 0===t.cogHoleRadius||void 0===t.cogInnerRadius||void 0===t.cogInnerTaper||void 0===t.cogNotches||void 0===t.cogOuterTaper)return;const a=2*Math.PI,n=a/(2*t.cogNotches),i=n*t.cogInnerTaper*.005,s=n*t.cogOuterTaper*.005,c=r*t.cogInnerRadius/100;let p=n,d=!1;for(o.moveTo(r*Math.cos(s),r*Math.sin(s));p<=a;p+=n)d?(o.lineTo(c*Math.cos(p-i),c*Math.sin(p-i)),o.lineTo(r*Math.cos(p+s),r*Math.sin(p+s))):(o.lineTo(r*Math.cos(p-s),r*Math.sin(p-s)),o.lineTo(c*Math.cos(p+i),c*Math.sin(p+i))),d=!d}particleInit(o,t){const r=t.shapeData;t.cogHoleRadius=(0,e.getRangeValue)(r?.holeRadius??44),t.cogInnerRadius=(0,e.getRangeValue)(r?.innerRadius??72),t.cogInnerTaper=(0,e.getRangeValue)(r?.innerTaper??35),t.cogNotches=(0,e.getRangeValue)(r?.notches??7),t.cogOuterTaper=(0,e.getRangeValue)(r?.outerTaper??50)}}async function t(e,t=!0){await e.addShape("cog",new o,t)}})(),a})()));
2
+ !function(e,o){if("object"==typeof exports&&"object"==typeof module)module.exports=o(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],o);else{var t="object"==typeof exports?o(require("@tsparticles/engine")):o(e.window);for(var r in t)("object"==typeof exports?exports:e)[r]=t[r]}}(this,(e=>(()=>{"use strict";var o={533:o=>{o.exports=e}},t={};function r(e){var n=t[e];if(void 0!==n)return n.exports;var a=t[e]={exports:{}};return o[e](a,a.exports,r),a.exports}r.d=(e,o)=>{for(var t in o)r.o(o,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})},r.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o),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,{loadCogShape:()=>c});var e=r(533);const o=2*Math.PI,t=0,a=0;class i{afterDraw(r){const{context:n,particle:i,radius:c}=r;if(void 0===i.cogHoleRadius||void 0===i.cogInnerRadius||void 0===i.cogInnerTaper||void 0===i.cogNotches||void 0===i.cogOuterTaper)return;const s=c*i.cogHoleRadius/e.percentDenominator;n.globalCompositeOperation="destination-out",n.beginPath(),n.moveTo(s,a),n.arc(t,a,s,0,o),n.closePath(),n.fill(),n.globalCompositeOperation="source-over"}draw(t){const{context:r,particle:n,radius:a}=t;if(void 0===n.cogHoleRadius||void 0===n.cogInnerRadius||void 0===n.cogInnerTaper||void 0===n.cogNotches||void 0===n.cogOuterTaper)return;const i=o/(2*n.cogNotches),c=i*n.cogInnerTaper*.005,s=i*n.cogOuterTaper*.005,p=a*n.cogInnerRadius/e.percentDenominator;let d=i,l=!1;for(r.moveTo(a*Math.cos(s),a*Math.sin(s));d<=o;d+=i)l?(r.lineTo(p*Math.cos(d-c),p*Math.sin(d-c)),r.lineTo(a*Math.cos(d+s),a*Math.sin(d+s))):(r.lineTo(a*Math.cos(d-s),a*Math.sin(d-s)),r.lineTo(p*Math.cos(d+c),p*Math.sin(d+c))),l=!l}particleInit(o,t){const r=t.shapeData;t.cogHoleRadius=(0,e.getRangeValue)(r?.holeRadius??44),t.cogInnerRadius=(0,e.getRangeValue)(r?.innerRadius??72),t.cogInnerTaper=(0,e.getRangeValue)(r?.innerTaper??35),t.cogNotches=(0,e.getRangeValue)(r?.notches??7),t.cogOuterTaper=(0,e.getRangeValue)(r?.outerTaper??50)}}async function c(e,o=!0){await e.addShape("cog",new i,o)}})(),n})()));
@@ -1 +1 @@
1
- /*! tsParticles Cog Shape v3.0.3 by Matteo Bruni */
1
+ /*! tsParticles Cog Shape v3.1.0 by Matteo Bruni */
package/umd/CogDrawer.js CHANGED
@@ -11,6 +11,7 @@
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CogDrawer = void 0;
13
13
  const engine_1 = require("@tsparticles/engine");
14
+ const double = 2, doublePI = Math.PI * double, minAngle = 0, origin = { x: 0, y: 0 }, taperFactor = 0.005, defaultHoleRadius = 44, defaultInnerRadius = 72, defaultInnerTaper = 35, defaultNotches = 7, defaultOuterTaper = 50;
14
15
  class CogDrawer {
15
16
  afterDraw(data) {
16
17
  const { context, particle, radius } = data;
@@ -21,11 +22,11 @@
21
22
  particle.cogOuterTaper === undefined) {
22
23
  return;
23
24
  }
24
- const pi2 = 2 * Math.PI, holeRadius = (radius * particle.cogHoleRadius) / 100;
25
+ const holeRadius = (radius * particle.cogHoleRadius) / engine_1.percentDenominator;
25
26
  context.globalCompositeOperation = "destination-out";
26
27
  context.beginPath();
27
- context.moveTo(holeRadius, 0);
28
- context.arc(0, 0, holeRadius, 0, pi2);
28
+ context.moveTo(holeRadius, origin.y);
29
+ context.arc(origin.x, origin.y, holeRadius, minAngle, doublePI);
29
30
  context.closePath();
30
31
  context.fill();
31
32
  context.globalCompositeOperation = "source-over";
@@ -39,10 +40,10 @@
39
40
  particle.cogOuterTaper === undefined) {
40
41
  return;
41
42
  }
42
- const pi2 = 2 * Math.PI, angle = pi2 / (particle.cogNotches * 2), taperAI = angle * particle.cogInnerTaper * 0.005, taperAO = angle * particle.cogOuterTaper * 0.005, innerRadius = (radius * particle.cogInnerRadius) / 100;
43
+ const angle = doublePI / (particle.cogNotches * double), taperAI = angle * particle.cogInnerTaper * taperFactor, taperAO = angle * particle.cogOuterTaper * taperFactor, innerRadius = (radius * particle.cogInnerRadius) / engine_1.percentDenominator;
43
44
  let a = angle, toggle = false;
44
45
  context.moveTo(radius * Math.cos(taperAO), radius * Math.sin(taperAO));
45
- for (; a <= pi2; a += angle) {
46
+ for (; a <= doublePI; a += angle) {
46
47
  if (toggle) {
47
48
  context.lineTo(innerRadius * Math.cos(a - taperAI), innerRadius * Math.sin(a - taperAI));
48
49
  context.lineTo(radius * Math.cos(a + taperAO), radius * Math.sin(a + taperAO));
@@ -56,11 +57,11 @@
56
57
  }
57
58
  particleInit(container, particle) {
58
59
  const shapeData = particle.shapeData;
59
- particle.cogHoleRadius = (0, engine_1.getRangeValue)(shapeData?.holeRadius ?? 44);
60
- particle.cogInnerRadius = (0, engine_1.getRangeValue)(shapeData?.innerRadius ?? 72);
61
- particle.cogInnerTaper = (0, engine_1.getRangeValue)(shapeData?.innerTaper ?? 35);
62
- particle.cogNotches = (0, engine_1.getRangeValue)(shapeData?.notches ?? 7);
63
- particle.cogOuterTaper = (0, engine_1.getRangeValue)(shapeData?.outerTaper ?? 50);
60
+ particle.cogHoleRadius = (0, engine_1.getRangeValue)(shapeData?.holeRadius ?? defaultHoleRadius);
61
+ particle.cogInnerRadius = (0, engine_1.getRangeValue)(shapeData?.innerRadius ?? defaultInnerRadius);
62
+ particle.cogInnerTaper = (0, engine_1.getRangeValue)(shapeData?.innerTaper ?? defaultInnerTaper);
63
+ particle.cogNotches = (0, engine_1.getRangeValue)(shapeData?.notches ?? defaultNotches);
64
+ particle.cogOuterTaper = (0, engine_1.getRangeValue)(shapeData?.outerTaper ?? defaultOuterTaper);
64
65
  }
65
66
  }
66
67
  exports.CogDrawer = CogDrawer;