@sarmal/core 0.25.0 → 0.26.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.
- package/dist/auto-init.cjs +94 -95
- package/dist/auto-init.cjs.map +1 -1
- package/dist/auto-init.js +94 -95
- package/dist/auto-init.js.map +1 -1
- package/dist/curves/artemis2.cjs +6 -7
- package/dist/curves/artemis2.cjs.map +1 -1
- package/dist/curves/artemis2.d.cts +1 -1
- package/dist/curves/artemis2.d.ts +1 -1
- package/dist/curves/artemis2.js +6 -7
- package/dist/curves/artemis2.js.map +1 -1
- package/dist/curves/astroid.cjs +3 -3
- package/dist/curves/astroid.cjs.map +1 -1
- package/dist/curves/astroid.d.cts +1 -1
- package/dist/curves/astroid.d.ts +1 -1
- package/dist/curves/astroid.js +3 -3
- package/dist/curves/astroid.js.map +1 -1
- package/dist/curves/deltoid.cjs +3 -3
- package/dist/curves/deltoid.cjs.map +1 -1
- package/dist/curves/deltoid.d.cts +1 -1
- package/dist/curves/deltoid.d.ts +1 -1
- package/dist/curves/deltoid.js +3 -3
- package/dist/curves/deltoid.js.map +1 -1
- package/dist/curves/epicycloid3.cjs +3 -3
- package/dist/curves/epicycloid3.cjs.map +1 -1
- package/dist/curves/epicycloid3.d.cts +1 -1
- package/dist/curves/epicycloid3.d.ts +1 -1
- package/dist/curves/epicycloid3.js +3 -3
- package/dist/curves/epicycloid3.js.map +1 -1
- package/dist/curves/epitrochoid7.cjs +7 -7
- package/dist/curves/epitrochoid7.cjs.map +1 -1
- package/dist/curves/epitrochoid7.d.cts +1 -1
- package/dist/curves/epitrochoid7.d.ts +1 -1
- package/dist/curves/epitrochoid7.js +7 -7
- package/dist/curves/epitrochoid7.js.map +1 -1
- package/dist/curves/index.cjs +57 -58
- package/dist/curves/index.cjs.map +1 -1
- package/dist/curves/index.d.cts +1 -1
- package/dist/curves/index.d.ts +1 -1
- package/dist/curves/index.js +57 -58
- package/dist/curves/index.js.map +1 -1
- package/dist/curves/lame.cjs +3 -3
- package/dist/curves/lame.cjs.map +1 -1
- package/dist/curves/lame.d.cts +1 -1
- package/dist/curves/lame.d.ts +1 -1
- package/dist/curves/lame.js +3 -3
- package/dist/curves/lame.js.map +1 -1
- package/dist/curves/lissajous32.cjs +4 -4
- package/dist/curves/lissajous32.cjs.map +1 -1
- package/dist/curves/lissajous32.d.cts +1 -1
- package/dist/curves/lissajous32.d.ts +1 -1
- package/dist/curves/lissajous32.js +4 -4
- package/dist/curves/lissajous32.js.map +1 -1
- package/dist/curves/lissajous43.cjs +4 -4
- package/dist/curves/lissajous43.cjs.map +1 -1
- package/dist/curves/lissajous43.d.cts +1 -1
- package/dist/curves/lissajous43.d.ts +1 -1
- package/dist/curves/lissajous43.js +4 -4
- package/dist/curves/lissajous43.js.map +1 -1
- package/dist/curves/rose3.cjs +4 -4
- package/dist/curves/rose3.cjs.map +1 -1
- package/dist/curves/rose3.d.cts +1 -1
- package/dist/curves/rose3.d.ts +1 -1
- package/dist/curves/rose3.js +4 -4
- package/dist/curves/rose3.js.map +1 -1
- package/dist/curves/rose5.cjs +4 -4
- package/dist/curves/rose5.cjs.map +1 -1
- package/dist/curves/rose5.d.cts +1 -1
- package/dist/curves/rose5.d.ts +1 -1
- package/dist/curves/rose5.js +4 -4
- package/dist/curves/rose5.js.map +1 -1
- package/dist/curves/rose52.cjs +4 -4
- package/dist/curves/rose52.cjs.map +1 -1
- package/dist/curves/rose52.d.cts +1 -1
- package/dist/curves/rose52.d.ts +1 -1
- package/dist/curves/rose52.js +4 -4
- package/dist/curves/rose52.js.map +1 -1
- package/dist/curves/star.cjs +4 -4
- package/dist/curves/star.cjs.map +1 -1
- package/dist/curves/star.d.cts +1 -1
- package/dist/curves/star.d.ts +1 -1
- package/dist/curves/star.js +4 -4
- package/dist/curves/star.js.map +1 -1
- package/dist/curves/star4.cjs +4 -4
- package/dist/curves/star4.cjs.map +1 -1
- package/dist/curves/star4.d.cts +2 -2
- package/dist/curves/star4.d.ts +2 -2
- package/dist/curves/star4.js +4 -4
- package/dist/curves/star4.js.map +1 -1
- package/dist/curves/star7.cjs +4 -4
- package/dist/curves/star7.cjs.map +1 -1
- package/dist/curves/star7.d.cts +2 -2
- package/dist/curves/star7.d.ts +2 -2
- package/dist/curves/star7.js +4 -4
- package/dist/curves/star7.js.map +1 -1
- package/dist/index.cjs +94 -95
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.js +94 -95
- package/dist/index.js.map +1 -1
- package/dist/{types-BZpzgNau.d.cts → types-zbxUgcmZ.d.cts} +30 -37
- package/dist/{types-BZpzgNau.d.ts → types-zbxUgcmZ.d.ts} +30 -37
- package/package.json +1 -1
package/dist/curves/star4.cjs
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
// src/curves/star4.ts
|
|
4
4
|
var TWO_PI = Math.PI * 2;
|
|
5
|
-
function star4Fn(
|
|
6
|
-
const r = Math.abs(Math.cos(2 *
|
|
5
|
+
function star4Fn(phase, _elapsed, _params) {
|
|
6
|
+
const r = Math.abs(Math.cos(2 * phase)) + 0.35 * Math.abs(Math.cos(6 * phase)) + 0.15 * Math.abs(Math.cos(10 * phase));
|
|
7
7
|
return {
|
|
8
|
-
x: r * Math.cos(
|
|
9
|
-
y: r * Math.sin(
|
|
8
|
+
x: r * Math.cos(phase),
|
|
9
|
+
y: r * Math.sin(phase)
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
var star4 = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/curves/star4.ts"],"names":[],"mappings":";;;AAEA,IAAM,MAAA,GAAS,KAAK,EAAA,GAAK,CAAA;AAEzB,SAAS,OAAA,CAAQ,
|
|
1
|
+
{"version":3,"sources":["../../src/curves/star4.ts"],"names":[],"mappings":";;;AAEA,IAAM,MAAA,GAAS,KAAK,EAAA,GAAK,CAAA;AAEzB,SAAS,OAAA,CAAQ,KAAA,EAAe,QAAA,EAAkB,OAAA,EAAiC;AACjF,EAAA,MAAM,CAAA,GACJ,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,IAAI,KAAK,CAAC,CAAA,GAC5B,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,KAAK,GAAA,CAAI,CAAA,GAAI,KAAK,CAAC,CAAA,GACnC,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,EAAA,GAAK,KAAK,CAAC,CAAA;AACtC,EAAA,OAAO;AAAA,IACL,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AAAA,IACrB,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,KAAK;AAAA,GACvB;AACF;AAMO,IAAM,KAAA,GAAkB;AAAA,EAC7B,IAAA,EAAM,cAAA;AAAA,EACN,EAAA,EAAI,OAAA;AAAA,EACJ,MAAA,EAAQ,MAAA;AAAA,EACR,KAAA,EAAO;AACT","file":"star4.cjs","sourcesContent":["import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction star4Fn(phase: number, _elapsed: number, _params: Record<string, number>) {\n const r =\n Math.abs(Math.cos(2 * phase)) +\n 0.35 * Math.abs(Math.cos(6 * phase)) +\n 0.15 * Math.abs(Math.cos(10 * phase));\n return {\n x: r * Math.cos(phase),\n y: r * Math.sin(phase),\n };\n}\n\n/**\n * 4-pointed star based on Fourier harmonics.\n * Same construction as `star` but with base frequency `2*phase`, producing 4 tips.\n */\nexport const star4: CurveDef = {\n name: \"Star (4-arm)\",\n fn: star4Fn,\n period: TWO_PI,\n speed: 1.0,\n};\n"]}
|
package/dist/curves/star4.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { C as CurveDef } from '../types-
|
|
1
|
+
import { C as CurveDef } from '../types-zbxUgcmZ.cjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* 4-pointed star based on Fourier harmonics.
|
|
5
|
-
* Same construction as `star` but with base frequency `
|
|
5
|
+
* Same construction as `star` but with base frequency `2*phase`, producing 4 tips.
|
|
6
6
|
*/
|
|
7
7
|
declare const star4: CurveDef;
|
|
8
8
|
|
package/dist/curves/star4.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { C as CurveDef } from '../types-
|
|
1
|
+
import { C as CurveDef } from '../types-zbxUgcmZ.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* 4-pointed star based on Fourier harmonics.
|
|
5
|
-
* Same construction as `star` but with base frequency `
|
|
5
|
+
* Same construction as `star` but with base frequency `2*phase`, producing 4 tips.
|
|
6
6
|
*/
|
|
7
7
|
declare const star4: CurveDef;
|
|
8
8
|
|
package/dist/curves/star4.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// src/curves/star4.ts
|
|
2
2
|
var TWO_PI = Math.PI * 2;
|
|
3
|
-
function star4Fn(
|
|
4
|
-
const r = Math.abs(Math.cos(2 *
|
|
3
|
+
function star4Fn(phase, _elapsed, _params) {
|
|
4
|
+
const r = Math.abs(Math.cos(2 * phase)) + 0.35 * Math.abs(Math.cos(6 * phase)) + 0.15 * Math.abs(Math.cos(10 * phase));
|
|
5
5
|
return {
|
|
6
|
-
x: r * Math.cos(
|
|
7
|
-
y: r * Math.sin(
|
|
6
|
+
x: r * Math.cos(phase),
|
|
7
|
+
y: r * Math.sin(phase)
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
10
|
var star4 = {
|
package/dist/curves/star4.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/curves/star4.ts"],"names":[],"mappings":";AAEA,IAAM,MAAA,GAAS,KAAK,EAAA,GAAK,CAAA;AAEzB,SAAS,OAAA,CAAQ,
|
|
1
|
+
{"version":3,"sources":["../../src/curves/star4.ts"],"names":[],"mappings":";AAEA,IAAM,MAAA,GAAS,KAAK,EAAA,GAAK,CAAA;AAEzB,SAAS,OAAA,CAAQ,KAAA,EAAe,QAAA,EAAkB,OAAA,EAAiC;AACjF,EAAA,MAAM,CAAA,GACJ,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,IAAI,KAAK,CAAC,CAAA,GAC5B,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,KAAK,GAAA,CAAI,CAAA,GAAI,KAAK,CAAC,CAAA,GACnC,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,EAAA,GAAK,KAAK,CAAC,CAAA;AACtC,EAAA,OAAO;AAAA,IACL,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AAAA,IACrB,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,KAAK;AAAA,GACvB;AACF;AAMO,IAAM,KAAA,GAAkB;AAAA,EAC7B,IAAA,EAAM,cAAA;AAAA,EACN,EAAA,EAAI,OAAA;AAAA,EACJ,MAAA,EAAQ,MAAA;AAAA,EACR,KAAA,EAAO;AACT","file":"star4.js","sourcesContent":["import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction star4Fn(phase: number, _elapsed: number, _params: Record<string, number>) {\n const r =\n Math.abs(Math.cos(2 * phase)) +\n 0.35 * Math.abs(Math.cos(6 * phase)) +\n 0.15 * Math.abs(Math.cos(10 * phase));\n return {\n x: r * Math.cos(phase),\n y: r * Math.sin(phase),\n };\n}\n\n/**\n * 4-pointed star based on Fourier harmonics.\n * Same construction as `star` but with base frequency `2*phase`, producing 4 tips.\n */\nexport const star4: CurveDef = {\n name: \"Star (4-arm)\",\n fn: star4Fn,\n period: TWO_PI,\n speed: 1.0,\n};\n"]}
|
package/dist/curves/star7.cjs
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
// src/curves/star7.ts
|
|
4
4
|
var TWO_PI = Math.PI * 2;
|
|
5
|
-
function star7Fn(
|
|
6
|
-
const r = Math.abs(Math.cos(7 / 2 *
|
|
5
|
+
function star7Fn(phase, _elapsed, _params) {
|
|
6
|
+
const r = Math.abs(Math.cos(7 / 2 * phase)) + 0.35 * Math.abs(Math.cos(21 / 2 * phase)) + 0.15 * Math.abs(Math.cos(35 / 2 * phase));
|
|
7
7
|
return {
|
|
8
|
-
x: r * Math.cos(
|
|
9
|
-
y: r * Math.sin(
|
|
8
|
+
x: r * Math.cos(phase),
|
|
9
|
+
y: r * Math.sin(phase)
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
var star7 = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/curves/star7.ts"],"names":[],"mappings":";;;AAEA,IAAM,MAAA,GAAS,KAAK,EAAA,GAAK,CAAA;AAEzB,SAAS,OAAA,CAAQ,
|
|
1
|
+
{"version":3,"sources":["../../src/curves/star7.ts"],"names":[],"mappings":";;;AAEA,IAAM,MAAA,GAAS,KAAK,EAAA,GAAK,CAAA;AAEzB,SAAS,OAAA,CAAQ,KAAA,EAAe,QAAA,EAAkB,OAAA,EAAiC;AACjF,EAAA,MAAM,CAAA,GACJ,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAK,CAAA,GAAI,CAAA,GAAK,KAAK,CAAC,CAAA,GAClC,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAK,EAAA,GAAK,CAAA,GAAK,KAAK,CAAC,CAAA,GAC1C,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAK,EAAA,GAAK,CAAA,GAAK,KAAK,CAAC,CAAA;AAC5C,EAAA,OAAO;AAAA,IACL,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AAAA,IACrB,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,KAAK;AAAA,GACvB;AACF;AAMO,IAAM,KAAA,GAAkB;AAAA,EAC7B,IAAA,EAAM,cAAA;AAAA,EACN,EAAA,EAAI,OAAA;AAAA,EACJ,MAAA,EAAQ,MAAA;AAAA,EACR,KAAA,EAAO;AACT","file":"star7.cjs","sourcesContent":["import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction star7Fn(phase: number, _elapsed: number, _params: Record<string, number>) {\n const r =\n Math.abs(Math.cos((7 / 2) * phase)) +\n 0.35 * Math.abs(Math.cos((21 / 2) * phase)) +\n 0.15 * Math.abs(Math.cos((35 / 2) * phase));\n return {\n x: r * Math.cos(phase),\n y: r * Math.sin(phase),\n };\n}\n\n/**\n * 7-pointed star based on Fourier harmonics.\n * Same construction as `star` but with base frequency `7*phase/2`, producing 7 tips.\n */\nexport const star7: CurveDef = {\n name: \"Star (7-arm)\",\n fn: star7Fn,\n period: TWO_PI,\n speed: 1.0,\n};\n"]}
|
package/dist/curves/star7.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { C as CurveDef } from '../types-
|
|
1
|
+
import { C as CurveDef } from '../types-zbxUgcmZ.cjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* 7-pointed star based on Fourier harmonics.
|
|
5
|
-
* Same construction as `star` but with base frequency `
|
|
5
|
+
* Same construction as `star` but with base frequency `7*phase/2`, producing 7 tips.
|
|
6
6
|
*/
|
|
7
7
|
declare const star7: CurveDef;
|
|
8
8
|
|
package/dist/curves/star7.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { C as CurveDef } from '../types-
|
|
1
|
+
import { C as CurveDef } from '../types-zbxUgcmZ.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* 7-pointed star based on Fourier harmonics.
|
|
5
|
-
* Same construction as `star` but with base frequency `
|
|
5
|
+
* Same construction as `star` but with base frequency `7*phase/2`, producing 7 tips.
|
|
6
6
|
*/
|
|
7
7
|
declare const star7: CurveDef;
|
|
8
8
|
|
package/dist/curves/star7.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// src/curves/star7.ts
|
|
2
2
|
var TWO_PI = Math.PI * 2;
|
|
3
|
-
function star7Fn(
|
|
4
|
-
const r = Math.abs(Math.cos(7 / 2 *
|
|
3
|
+
function star7Fn(phase, _elapsed, _params) {
|
|
4
|
+
const r = Math.abs(Math.cos(7 / 2 * phase)) + 0.35 * Math.abs(Math.cos(21 / 2 * phase)) + 0.15 * Math.abs(Math.cos(35 / 2 * phase));
|
|
5
5
|
return {
|
|
6
|
-
x: r * Math.cos(
|
|
7
|
-
y: r * Math.sin(
|
|
6
|
+
x: r * Math.cos(phase),
|
|
7
|
+
y: r * Math.sin(phase)
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
10
|
var star7 = {
|
package/dist/curves/star7.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/curves/star7.ts"],"names":[],"mappings":";AAEA,IAAM,MAAA,GAAS,KAAK,EAAA,GAAK,CAAA;AAEzB,SAAS,OAAA,CAAQ,
|
|
1
|
+
{"version":3,"sources":["../../src/curves/star7.ts"],"names":[],"mappings":";AAEA,IAAM,MAAA,GAAS,KAAK,EAAA,GAAK,CAAA;AAEzB,SAAS,OAAA,CAAQ,KAAA,EAAe,QAAA,EAAkB,OAAA,EAAiC;AACjF,EAAA,MAAM,CAAA,GACJ,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAK,CAAA,GAAI,CAAA,GAAK,KAAK,CAAC,CAAA,GAClC,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAK,EAAA,GAAK,CAAA,GAAK,KAAK,CAAC,CAAA,GAC1C,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAK,EAAA,GAAK,CAAA,GAAK,KAAK,CAAC,CAAA;AAC5C,EAAA,OAAO;AAAA,IACL,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AAAA,IACrB,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,KAAK;AAAA,GACvB;AACF;AAMO,IAAM,KAAA,GAAkB;AAAA,EAC7B,IAAA,EAAM,cAAA;AAAA,EACN,EAAA,EAAI,OAAA;AAAA,EACJ,MAAA,EAAQ,MAAA;AAAA,EACR,KAAA,EAAO;AACT","file":"star7.js","sourcesContent":["import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction star7Fn(phase: number, _elapsed: number, _params: Record<string, number>) {\n const r =\n Math.abs(Math.cos((7 / 2) * phase)) +\n 0.35 * Math.abs(Math.cos((21 / 2) * phase)) +\n 0.15 * Math.abs(Math.cos((35 / 2) * phase));\n return {\n x: r * Math.cos(phase),\n y: r * Math.sin(phase),\n };\n}\n\n/**\n * 7-pointed star based on Fourier harmonics.\n * Same construction as `star` but with base frequency `7*phase/2`, producing 7 tips.\n */\nexport const star7: CurveDef = {\n name: \"Star (7-arm)\",\n fn: star7Fn,\n period: TWO_PI,\n speed: 1.0,\n};\n"]}
|
package/dist/index.cjs
CHANGED
|
@@ -74,21 +74,21 @@ function createEngine(curveDef, trailLength = 120) {
|
|
|
74
74
|
}
|
|
75
75
|
let curve = resolveCurve(curveDef);
|
|
76
76
|
const trail = new CircularBuffer(trailLength);
|
|
77
|
-
let
|
|
77
|
+
let phase = 0;
|
|
78
78
|
let actualTime = 0;
|
|
79
79
|
let userSpeedOverride = null;
|
|
80
80
|
let morphCurveB = null;
|
|
81
81
|
let _morphAlpha = null;
|
|
82
82
|
let _morphStrategy = "normalized";
|
|
83
83
|
let _speedTransition = null;
|
|
84
|
-
function sampleSkeleton(c,
|
|
84
|
+
function sampleSkeleton(c, samplePhase) {
|
|
85
85
|
if (c.skeletonFn) {
|
|
86
|
-
return c.skeletonFn(
|
|
86
|
+
return c.skeletonFn(samplePhase);
|
|
87
87
|
}
|
|
88
88
|
if (c.skeleton === "live") {
|
|
89
|
-
return c.fn(
|
|
89
|
+
return c.fn(samplePhase, actualTime, EMPTY_PARAMS);
|
|
90
90
|
}
|
|
91
|
-
return c.fn(
|
|
91
|
+
return c.fn(samplePhase, 0, EMPTY_PARAMS);
|
|
92
92
|
}
|
|
93
93
|
return {
|
|
94
94
|
tick(deltaTime) {
|
|
@@ -106,15 +106,15 @@ function createEngine(curveDef, trailLength = 120) {
|
|
|
106
106
|
if (morphCurveB !== null && _morphAlpha !== null) {
|
|
107
107
|
effectiveSpeed = lerp(effectiveSpeed, morphCurveB.speed, _morphAlpha);
|
|
108
108
|
}
|
|
109
|
-
|
|
109
|
+
phase = (phase + effectiveSpeed * deltaTime) % curve.period;
|
|
110
110
|
actualTime += deltaTime;
|
|
111
111
|
if (morphCurveB !== null && _morphAlpha !== null) {
|
|
112
|
-
const a = curve.fn(
|
|
113
|
-
const
|
|
114
|
-
const b = morphCurveB.fn(
|
|
112
|
+
const a = curve.fn(phase, actualTime, EMPTY_PARAMS);
|
|
113
|
+
const phaseB = _morphStrategy === "normalized" ? phase / curve.period * morphCurveB.period : phase;
|
|
114
|
+
const b = morphCurveB.fn(phaseB, actualTime, EMPTY_PARAMS);
|
|
115
115
|
trail.push(a.x + (b.x - a.x) * _morphAlpha, a.y + (b.y - a.y) * _morphAlpha);
|
|
116
116
|
} else {
|
|
117
|
-
const point = curve.fn(
|
|
117
|
+
const point = curve.fn(phase, actualTime, EMPTY_PARAMS);
|
|
118
118
|
trail.push(point.x, point.y);
|
|
119
119
|
}
|
|
120
120
|
return trail.toArray();
|
|
@@ -132,30 +132,30 @@ function createEngine(curveDef, trailLength = 120) {
|
|
|
132
132
|
return _morphAlpha;
|
|
133
133
|
},
|
|
134
134
|
reset() {
|
|
135
|
-
|
|
135
|
+
phase = 0;
|
|
136
136
|
actualTime = 0;
|
|
137
137
|
trail.clear();
|
|
138
138
|
},
|
|
139
|
-
jump(
|
|
140
|
-
|
|
139
|
+
jump(newPhase, { clearTrail = false } = {}) {
|
|
140
|
+
phase = (newPhase % curve.period + curve.period) % curve.period;
|
|
141
141
|
if (clearTrail) {
|
|
142
142
|
trail.clear();
|
|
143
143
|
}
|
|
144
144
|
},
|
|
145
|
-
seek(
|
|
145
|
+
seek(targetPhase, { wrap = false, step = curve.period / trailLength } = {}) {
|
|
146
146
|
const advance = curve.speed * step;
|
|
147
|
-
const target = (
|
|
147
|
+
const target = (targetPhase % curve.period + curve.period) % curve.period;
|
|
148
148
|
const targetTime = target / curve.speed;
|
|
149
|
-
|
|
149
|
+
phase = target;
|
|
150
150
|
actualTime = targetTime;
|
|
151
151
|
trail.clear();
|
|
152
152
|
const pointsFromStart = Math.floor(target / advance) + 1;
|
|
153
153
|
const count = wrap ? trailLength : Math.min(trailLength, pointsFromStart);
|
|
154
154
|
for (let i = count - 1; i >= 0; i--) {
|
|
155
|
-
const
|
|
156
|
-
const
|
|
157
|
-
const
|
|
158
|
-
const point = curve.fn(
|
|
155
|
+
const samplePhase = target - i * advance;
|
|
156
|
+
const wrappedPhase = (samplePhase % curve.period + curve.period) % curve.period;
|
|
157
|
+
const elapsed = targetTime - i * step;
|
|
158
|
+
const point = curve.fn(wrappedPhase, elapsed, EMPTY_PARAMS);
|
|
159
159
|
trail.push(point.x, point.y);
|
|
160
160
|
}
|
|
161
161
|
},
|
|
@@ -168,10 +168,10 @@ function createEngine(curveDef, trailLength = 120) {
|
|
|
168
168
|
const frozenStrategy = _morphStrategy;
|
|
169
169
|
curve = {
|
|
170
170
|
...frozenB,
|
|
171
|
-
fn: (
|
|
172
|
-
const a = frozenA.fn(
|
|
173
|
-
const
|
|
174
|
-
const b = frozenB.fn(
|
|
171
|
+
fn: (samplePhase, elapsed, params) => {
|
|
172
|
+
const a = frozenA.fn(samplePhase, elapsed, params);
|
|
173
|
+
const phaseB = frozenStrategy === "normalized" ? samplePhase / frozenA.period * frozenB.period : samplePhase;
|
|
174
|
+
const b = frozenB.fn(phaseB, elapsed, params);
|
|
175
175
|
return {
|
|
176
176
|
x: a.x + (b.x - a.x) * frozenAlpha,
|
|
177
177
|
y: a.y + (b.y - a.y) * frozenAlpha
|
|
@@ -189,7 +189,7 @@ function createEngine(curveDef, trailLength = 120) {
|
|
|
189
189
|
completeMorph() {
|
|
190
190
|
if (morphCurveB !== null) {
|
|
191
191
|
if (_morphStrategy === "normalized" && curve.period !== morphCurveB.period) {
|
|
192
|
-
|
|
192
|
+
phase = phase / curve.period * morphCurveB.period;
|
|
193
193
|
}
|
|
194
194
|
curve = morphCurveB;
|
|
195
195
|
}
|
|
@@ -201,10 +201,10 @@ function createEngine(curveDef, trailLength = 120) {
|
|
|
201
201
|
const points2 = new Array(steps);
|
|
202
202
|
if (morphCurveB !== null && _morphAlpha !== null) {
|
|
203
203
|
for (let i = 0; i < steps; i++) {
|
|
204
|
-
const
|
|
205
|
-
const a = sampleSkeleton(curve,
|
|
206
|
-
const
|
|
207
|
-
const b = sampleSkeleton(morphCurveB,
|
|
204
|
+
const samplePhase = i / (steps - 1) * curve.period;
|
|
205
|
+
const a = sampleSkeleton(curve, samplePhase);
|
|
206
|
+
const phaseB = _morphStrategy === "normalized" ? samplePhase / curve.period * morphCurveB.period : samplePhase;
|
|
207
|
+
const b = sampleSkeleton(morphCurveB, phaseB);
|
|
208
208
|
points2[i] = {
|
|
209
209
|
x: a.x + (b.x - a.x) * _morphAlpha,
|
|
210
210
|
y: a.y + (b.y - a.y) * _morphAlpha
|
|
@@ -213,8 +213,8 @@ function createEngine(curveDef, trailLength = 120) {
|
|
|
213
213
|
return points2;
|
|
214
214
|
}
|
|
215
215
|
for (let i = 0; i < steps; i++) {
|
|
216
|
-
const
|
|
217
|
-
points2[i] = sampleSkeleton(curve,
|
|
216
|
+
const samplePhase = i / (steps - 1) * curve.period;
|
|
217
|
+
points2[i] = sampleSkeleton(curve, samplePhase);
|
|
218
218
|
}
|
|
219
219
|
return points2;
|
|
220
220
|
},
|
|
@@ -745,8 +745,8 @@ function createRenderer(options) {
|
|
|
745
745
|
if (!engine.isLiveSkeleton) {
|
|
746
746
|
buildSkeletonCanvas();
|
|
747
747
|
}
|
|
748
|
-
if (options.
|
|
749
|
-
engine.seek(options.
|
|
748
|
+
if (options.initialPhase !== void 0) {
|
|
749
|
+
engine.seek(options.initialPhase);
|
|
750
750
|
}
|
|
751
751
|
renderFrame(0);
|
|
752
752
|
const shouldAutoStart = options.autoStart !== false;
|
|
@@ -880,8 +880,8 @@ function sampleCurveSkeleton(curveDef) {
|
|
|
880
880
|
const samples = Math.ceil(period * 50);
|
|
881
881
|
const pts = Array.from({ length: samples });
|
|
882
882
|
for (let i = 0; i < samples; i++) {
|
|
883
|
-
const
|
|
884
|
-
pts[i] = curveDef.skeletonFn ? curveDef.skeletonFn(
|
|
883
|
+
const phase = i / (samples - 1) * period;
|
|
884
|
+
pts[i] = curveDef.skeletonFn ? curveDef.skeletonFn(phase) : curveDef.fn(phase, 0, EMPTY_PARAMS2);
|
|
885
885
|
}
|
|
886
886
|
return pts;
|
|
887
887
|
}
|
|
@@ -1091,8 +1091,8 @@ function createSVGRenderer(options) {
|
|
|
1091
1091
|
animationId = requestAnimationFrame(loop);
|
|
1092
1092
|
}
|
|
1093
1093
|
}
|
|
1094
|
-
if (options.
|
|
1095
|
-
engine.seek(options.
|
|
1094
|
+
if (options.initialPhase !== void 0) {
|
|
1095
|
+
engine.seek(options.initialPhase);
|
|
1096
1096
|
}
|
|
1097
1097
|
renderFrame(0);
|
|
1098
1098
|
const shouldAutoStart = options.autoStart !== false;
|
|
@@ -1242,7 +1242,7 @@ function catmullRom1D(p0, p1, p2, p3, u) {
|
|
|
1242
1242
|
const u3 = u2 * u;
|
|
1243
1243
|
return 0.5 * (2 * p1 + (-p0 + p2) * u + (2 * p0 - 5 * p1 + 4 * p2 - p3) * u2 + (-p0 + 3 * p1 - 3 * p2 + p3) * u3);
|
|
1244
1244
|
}
|
|
1245
|
-
function evaluateCatmullRom(points2,
|
|
1245
|
+
function evaluateCatmullRom(points2, phase) {
|
|
1246
1246
|
const N = points2.length;
|
|
1247
1247
|
if (N === 0) {
|
|
1248
1248
|
return { x: 0, y: 0 };
|
|
@@ -1250,13 +1250,13 @@ function evaluateCatmullRom(points2, t) {
|
|
|
1250
1250
|
if (N === 1) {
|
|
1251
1251
|
return { x: points2[0][0], y: points2[0][1] };
|
|
1252
1252
|
}
|
|
1253
|
-
|
|
1253
|
+
phase = (phase % PERIOD + PERIOD) % PERIOD;
|
|
1254
1254
|
const segmentSize = PERIOD / N;
|
|
1255
|
-
let i = Math.floor(
|
|
1255
|
+
let i = Math.floor(phase / segmentSize);
|
|
1256
1256
|
if (i >= N) {
|
|
1257
1257
|
i = N - 1;
|
|
1258
1258
|
}
|
|
1259
|
-
let u = (
|
|
1259
|
+
let u = (phase - i * segmentSize) / segmentSize;
|
|
1260
1260
|
u = Math.max(0, Math.min(1, u));
|
|
1261
1261
|
const p0 = points2[(i - 1 + N) % N];
|
|
1262
1262
|
const p1 = points2[i];
|
|
@@ -1286,9 +1286,8 @@ function drawCurve(points2, opts) {
|
|
|
1286
1286
|
const pts = points2.map(([x, y]) => [x, y]);
|
|
1287
1287
|
return {
|
|
1288
1288
|
name: opts?.name ?? "drawn",
|
|
1289
|
-
fn: (
|
|
1290
|
-
period: PERIOD
|
|
1291
|
-
kind: "drawn"
|
|
1289
|
+
fn: (phase) => evaluateCatmullRom(pts, phase),
|
|
1290
|
+
period: PERIOD
|
|
1292
1291
|
};
|
|
1293
1292
|
}
|
|
1294
1293
|
|
|
@@ -1323,9 +1322,9 @@ var artemis2 = {
|
|
|
1323
1322
|
|
|
1324
1323
|
// src/curves/astroid.ts
|
|
1325
1324
|
var TWO_PI2 = Math.PI * 2;
|
|
1326
|
-
function astroidFn(
|
|
1327
|
-
const c = Math.cos(
|
|
1328
|
-
const s = Math.sin(
|
|
1325
|
+
function astroidFn(phase, _elapsed, _params) {
|
|
1326
|
+
const c = Math.cos(phase);
|
|
1327
|
+
const s = Math.sin(phase);
|
|
1329
1328
|
return {
|
|
1330
1329
|
x: c * c * c,
|
|
1331
1330
|
y: s * s * s
|
|
@@ -1340,10 +1339,10 @@ var astroid = {
|
|
|
1340
1339
|
|
|
1341
1340
|
// src/curves/deltoid.ts
|
|
1342
1341
|
var TWO_PI3 = Math.PI * 2;
|
|
1343
|
-
function deltoidFn(
|
|
1342
|
+
function deltoidFn(phase, _elapsed, _params) {
|
|
1344
1343
|
return {
|
|
1345
|
-
x: 2 * Math.cos(
|
|
1346
|
-
y: 2 * Math.sin(
|
|
1344
|
+
x: 2 * Math.cos(phase) + Math.cos(2 * phase),
|
|
1345
|
+
y: 2 * Math.sin(phase) - Math.sin(2 * phase)
|
|
1347
1346
|
};
|
|
1348
1347
|
}
|
|
1349
1348
|
var deltoid = {
|
|
@@ -1355,10 +1354,10 @@ var deltoid = {
|
|
|
1355
1354
|
|
|
1356
1355
|
// src/curves/epicycloid3.ts
|
|
1357
1356
|
var TWO_PI4 = Math.PI * 2;
|
|
1358
|
-
function epicycloid3Fn(
|
|
1357
|
+
function epicycloid3Fn(phase, _elapsed, _params) {
|
|
1359
1358
|
return {
|
|
1360
|
-
x: 4 * Math.cos(
|
|
1361
|
-
y: 4 * Math.sin(
|
|
1359
|
+
x: 4 * Math.cos(phase) - Math.cos(4 * phase),
|
|
1360
|
+
y: 4 * Math.sin(phase) - Math.sin(4 * phase)
|
|
1362
1361
|
};
|
|
1363
1362
|
}
|
|
1364
1363
|
var epicycloid3 = {
|
|
@@ -1370,18 +1369,18 @@ var epicycloid3 = {
|
|
|
1370
1369
|
|
|
1371
1370
|
// src/curves/epitrochoid7.ts
|
|
1372
1371
|
var TWO_PI5 = Math.PI * 2;
|
|
1373
|
-
function epitrochoid7Fn(
|
|
1374
|
-
const d = 1 + 0.55 * Math.sin(
|
|
1372
|
+
function epitrochoid7Fn(phase, _elapsed, _params) {
|
|
1373
|
+
const d = 1 + 0.55 * Math.sin(phase * 0.5);
|
|
1375
1374
|
return {
|
|
1376
|
-
x: 7 * Math.cos(
|
|
1377
|
-
y: 7 * Math.sin(
|
|
1375
|
+
x: 7 * Math.cos(phase) - d * Math.cos(7 * phase),
|
|
1376
|
+
y: 7 * Math.sin(phase) - d * Math.sin(7 * phase)
|
|
1378
1377
|
};
|
|
1379
1378
|
}
|
|
1380
|
-
function epitrochoid7SkeletonFn(
|
|
1379
|
+
function epitrochoid7SkeletonFn(phase) {
|
|
1381
1380
|
const d = 1.275;
|
|
1382
1381
|
return {
|
|
1383
|
-
x: 7 * Math.cos(
|
|
1384
|
-
y: 7 * Math.sin(
|
|
1382
|
+
x: 7 * Math.cos(phase) - d * Math.cos(7 * phase),
|
|
1383
|
+
y: 7 * Math.sin(phase) - d * Math.sin(7 * phase)
|
|
1385
1384
|
};
|
|
1386
1385
|
}
|
|
1387
1386
|
var epitrochoid7 = {
|
|
@@ -1394,11 +1393,11 @@ var epitrochoid7 = {
|
|
|
1394
1393
|
|
|
1395
1394
|
// src/curves/lissajous32.ts
|
|
1396
1395
|
var TWO_PI6 = Math.PI * 2;
|
|
1397
|
-
function lissajous32Fn(
|
|
1398
|
-
const phi =
|
|
1396
|
+
function lissajous32Fn(phase, elapsed, _params) {
|
|
1397
|
+
const phi = elapsed * 0.45;
|
|
1399
1398
|
return {
|
|
1400
|
-
x: Math.sin(3 *
|
|
1401
|
-
y: Math.sin(2 *
|
|
1399
|
+
x: Math.sin(3 * phase + phi),
|
|
1400
|
+
y: Math.sin(2 * phase)
|
|
1402
1401
|
};
|
|
1403
1402
|
}
|
|
1404
1403
|
var lissajous32 = {
|
|
@@ -1411,11 +1410,11 @@ var lissajous32 = {
|
|
|
1411
1410
|
|
|
1412
1411
|
// src/curves/lissajous43.ts
|
|
1413
1412
|
var TWO_PI7 = Math.PI * 2;
|
|
1414
|
-
function lissajous43Fn(
|
|
1415
|
-
const phi =
|
|
1413
|
+
function lissajous43Fn(phase, elapsed, _params) {
|
|
1414
|
+
const phi = elapsed * 0.38;
|
|
1416
1415
|
return {
|
|
1417
|
-
x: Math.sin(4 *
|
|
1418
|
-
y: Math.sin(3 *
|
|
1416
|
+
x: Math.sin(4 * phase + phi),
|
|
1417
|
+
y: Math.sin(3 * phase)
|
|
1419
1418
|
};
|
|
1420
1419
|
}
|
|
1421
1420
|
var lissajous43 = {
|
|
@@ -1428,9 +1427,9 @@ var lissajous43 = {
|
|
|
1428
1427
|
|
|
1429
1428
|
// src/curves/lame.ts
|
|
1430
1429
|
var TWO_PI8 = Math.PI * 2;
|
|
1431
|
-
function lameFn(
|
|
1432
|
-
const p = 1.75 + 1.25 * Math.sin(
|
|
1433
|
-
const c = Math.cos(
|
|
1430
|
+
function lameFn(phase, elapsed, _params) {
|
|
1431
|
+
const p = 1.75 + 1.25 * Math.sin(elapsed * 0.48);
|
|
1432
|
+
const c = Math.cos(phase), s = Math.sin(phase);
|
|
1434
1433
|
return {
|
|
1435
1434
|
x: Math.sign(c) * Math.pow(Math.abs(c), p),
|
|
1436
1435
|
y: Math.sign(s) * Math.pow(Math.abs(s), p)
|
|
@@ -1446,11 +1445,11 @@ var lame = {
|
|
|
1446
1445
|
|
|
1447
1446
|
// src/curves/rose3.ts
|
|
1448
1447
|
var TWO_PI9 = Math.PI * 2;
|
|
1449
|
-
function rose3Fn(
|
|
1450
|
-
const r = Math.cos(3 *
|
|
1448
|
+
function rose3Fn(phase, _elapsed, _params) {
|
|
1449
|
+
const r = Math.cos(3 * phase);
|
|
1451
1450
|
return {
|
|
1452
|
-
x: r * Math.cos(
|
|
1453
|
-
y: r * Math.sin(
|
|
1451
|
+
x: r * Math.cos(phase),
|
|
1452
|
+
y: r * Math.sin(phase)
|
|
1454
1453
|
};
|
|
1455
1454
|
}
|
|
1456
1455
|
var rose3 = {
|
|
@@ -1462,11 +1461,11 @@ var rose3 = {
|
|
|
1462
1461
|
|
|
1463
1462
|
// src/curves/rose5.ts
|
|
1464
1463
|
var TWO_PI10 = Math.PI * 2;
|
|
1465
|
-
function rose5Fn(
|
|
1466
|
-
const r = Math.cos(5 *
|
|
1464
|
+
function rose5Fn(phase, _elapsed, _params) {
|
|
1465
|
+
const r = Math.cos(5 * phase);
|
|
1467
1466
|
return {
|
|
1468
|
-
x: r * Math.cos(
|
|
1469
|
-
y: r * Math.sin(
|
|
1467
|
+
x: r * Math.cos(phase),
|
|
1468
|
+
y: r * Math.sin(phase)
|
|
1470
1469
|
};
|
|
1471
1470
|
}
|
|
1472
1471
|
var rose5 = {
|
|
@@ -1478,11 +1477,11 @@ var rose5 = {
|
|
|
1478
1477
|
|
|
1479
1478
|
// src/curves/rose52.ts
|
|
1480
1479
|
var FOUR_PI = Math.PI * 4;
|
|
1481
|
-
function rose52Fn(
|
|
1482
|
-
const r = Math.cos(5 / 2 *
|
|
1480
|
+
function rose52Fn(phase, _elapsed, _params) {
|
|
1481
|
+
const r = Math.cos(5 / 2 * phase);
|
|
1483
1482
|
return {
|
|
1484
|
-
x: r * Math.cos(
|
|
1485
|
-
y: r * Math.sin(
|
|
1483
|
+
x: r * Math.cos(phase),
|
|
1484
|
+
y: r * Math.sin(phase)
|
|
1486
1485
|
};
|
|
1487
1486
|
}
|
|
1488
1487
|
var rose52 = {
|
|
@@ -1494,11 +1493,11 @@ var rose52 = {
|
|
|
1494
1493
|
|
|
1495
1494
|
// src/curves/star.ts
|
|
1496
1495
|
var TWO_PI11 = Math.PI * 2;
|
|
1497
|
-
function starFn(
|
|
1498
|
-
const r = Math.abs(Math.cos(5 / 2 *
|
|
1496
|
+
function starFn(phase, _elapsed, _params) {
|
|
1497
|
+
const r = Math.abs(Math.cos(5 / 2 * phase)) + 0.35 * Math.abs(Math.cos(15 / 2 * phase)) + 0.15 * Math.abs(Math.cos(25 / 2 * phase));
|
|
1499
1498
|
return {
|
|
1500
|
-
x: r * Math.cos(
|
|
1501
|
-
y: r * Math.sin(
|
|
1499
|
+
x: r * Math.cos(phase),
|
|
1500
|
+
y: r * Math.sin(phase)
|
|
1502
1501
|
};
|
|
1503
1502
|
}
|
|
1504
1503
|
var star = {
|
|
@@ -1510,11 +1509,11 @@ var star = {
|
|
|
1510
1509
|
|
|
1511
1510
|
// src/curves/star4.ts
|
|
1512
1511
|
var TWO_PI12 = Math.PI * 2;
|
|
1513
|
-
function star4Fn(
|
|
1514
|
-
const r = Math.abs(Math.cos(2 *
|
|
1512
|
+
function star4Fn(phase, _elapsed, _params) {
|
|
1513
|
+
const r = Math.abs(Math.cos(2 * phase)) + 0.35 * Math.abs(Math.cos(6 * phase)) + 0.15 * Math.abs(Math.cos(10 * phase));
|
|
1515
1514
|
return {
|
|
1516
|
-
x: r * Math.cos(
|
|
1517
|
-
y: r * Math.sin(
|
|
1515
|
+
x: r * Math.cos(phase),
|
|
1516
|
+
y: r * Math.sin(phase)
|
|
1518
1517
|
};
|
|
1519
1518
|
}
|
|
1520
1519
|
var star4 = {
|
|
@@ -1526,11 +1525,11 @@ var star4 = {
|
|
|
1526
1525
|
|
|
1527
1526
|
// src/curves/star7.ts
|
|
1528
1527
|
var TWO_PI13 = Math.PI * 2;
|
|
1529
|
-
function star7Fn(
|
|
1530
|
-
const r = Math.abs(Math.cos(7 / 2 *
|
|
1528
|
+
function star7Fn(phase, _elapsed, _params) {
|
|
1529
|
+
const r = Math.abs(Math.cos(7 / 2 * phase)) + 0.35 * Math.abs(Math.cos(21 / 2 * phase)) + 0.15 * Math.abs(Math.cos(35 / 2 * phase));
|
|
1531
1530
|
return {
|
|
1532
|
-
x: r * Math.cos(
|
|
1533
|
-
y: r * Math.sin(
|
|
1531
|
+
x: r * Math.cos(phase),
|
|
1532
|
+
y: r * Math.sin(phase)
|
|
1534
1533
|
};
|
|
1535
1534
|
}
|
|
1536
1535
|
var star7 = {
|