@sarmal/core 0.15.1 → 0.17.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 +176 -78
- package/dist/auto-init.cjs.map +1 -1
- package/dist/auto-init.js +175 -77
- package/dist/auto-init.js.map +1 -1
- package/dist/curves/artemis2.cjs +10 -7
- package/dist/curves/artemis2.d.cts +1 -1
- package/dist/curves/artemis2.d.ts +1 -1
- package/dist/curves/artemis2.js +9 -6
- package/dist/curves/astroid.cjs +4 -4
- 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/deltoid.cjs +4 -4
- 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/epicycloid3.cjs +4 -4
- 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/epitrochoid7.cjs +5 -5
- package/dist/curves/epitrochoid7.d.cts +1 -1
- package/dist/curves/epitrochoid7.d.ts +1 -1
- package/dist/curves/epitrochoid7.js +4 -4
- package/dist/curves/index.cjs +114 -29
- package/dist/curves/index.cjs.map +1 -1
- package/dist/curves/index.d.cts +29 -21
- package/dist/curves/index.d.ts +29 -21
- package/dist/curves/index.js +126 -29
- package/dist/curves/index.js.map +1 -1
- package/dist/curves/lame.cjs +6 -5
- package/dist/curves/lame.d.cts +1 -1
- package/dist/curves/lame.d.ts +1 -1
- package/dist/curves/lame.js +5 -4
- package/dist/curves/lissajous32.cjs +4 -4
- package/dist/curves/lissajous32.d.cts +1 -1
- package/dist/curves/lissajous32.d.ts +1 -1
- package/dist/curves/lissajous32.js +3 -3
- package/dist/curves/lissajous43.cjs +4 -4
- package/dist/curves/lissajous43.d.cts +1 -1
- package/dist/curves/lissajous43.d.ts +1 -1
- package/dist/curves/lissajous43.js +3 -3
- package/dist/curves/rose3.cjs +4 -4
- package/dist/curves/rose3.d.cts +1 -1
- package/dist/curves/rose3.d.ts +1 -1
- package/dist/curves/rose3.js +3 -3
- package/dist/curves/rose5.cjs +4 -4
- package/dist/curves/rose5.d.cts +1 -1
- package/dist/curves/rose5.d.ts +1 -1
- package/dist/curves/rose5.js +3 -3
- package/dist/curves/rose52.cjs +21 -0
- package/dist/curves/rose52.cjs.map +1 -0
- package/dist/curves/rose52.d.cts +9 -0
- package/dist/curves/rose52.d.ts +9 -0
- package/dist/curves/rose52.js +19 -0
- package/dist/curves/rose52.js.map +1 -0
- package/dist/curves/star.cjs +24 -0
- package/dist/curves/star.cjs.map +1 -0
- package/dist/curves/star.d.cts +8 -0
- package/dist/curves/star.d.ts +8 -0
- package/dist/curves/star.js +22 -0
- package/dist/curves/star.js.map +1 -0
- package/dist/curves/star4.cjs +24 -0
- package/dist/curves/star4.cjs.map +1 -0
- package/dist/curves/star4.d.cts +9 -0
- package/dist/curves/star4.d.ts +9 -0
- package/dist/curves/star4.js +22 -0
- package/dist/curves/star4.js.map +1 -0
- package/dist/curves/star7.cjs +24 -0
- package/dist/curves/star7.cjs.map +1 -0
- package/dist/curves/star7.d.cts +9 -0
- package/dist/curves/star7.d.ts +9 -0
- package/dist/curves/star7.js +22 -0
- package/dist/curves/star7.js.map +1 -0
- package/dist/index.cjs +190 -78
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +70 -29
- package/dist/index.d.ts +70 -29
- package/dist/index.js +208 -78
- package/dist/index.js.map +1 -1
- package/dist/types-BL9HhEmk.d.cts +259 -246
- package/dist/types-BL9HhEmk.d.ts +259 -246
- package/package.json +1 -1
package/dist/curves/deltoid.cjs
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
// src/curves/deltoid.ts
|
|
4
4
|
var TWO_PI = Math.PI * 2;
|
|
5
5
|
function deltoidFn(t, _time, _params) {
|
|
6
6
|
return {
|
|
7
7
|
x: 2 * Math.cos(t) + Math.cos(2 * t),
|
|
8
|
-
y: 2 * Math.sin(t) - Math.sin(2 * t)
|
|
8
|
+
y: 2 * Math.sin(t) - Math.sin(2 * t),
|
|
9
9
|
};
|
|
10
10
|
}
|
|
11
11
|
var deltoid = {
|
|
12
12
|
name: "Deltoid",
|
|
13
13
|
fn: deltoidFn,
|
|
14
14
|
period: TWO_PI,
|
|
15
|
-
speed: 0.9
|
|
15
|
+
speed: 0.9,
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
exports.deltoid = deltoid;
|
|
19
19
|
//# sourceMappingURL=deltoid.cjs.map
|
|
20
|
-
//# sourceMappingURL=deltoid.cjs.map
|
|
20
|
+
//# sourceMappingURL=deltoid.cjs.map
|
package/dist/curves/deltoid.d.ts
CHANGED
package/dist/curves/deltoid.js
CHANGED
|
@@ -3,16 +3,16 @@ var TWO_PI = Math.PI * 2;
|
|
|
3
3
|
function deltoidFn(t, _time, _params) {
|
|
4
4
|
return {
|
|
5
5
|
x: 2 * Math.cos(t) + Math.cos(2 * t),
|
|
6
|
-
y: 2 * Math.sin(t) - Math.sin(2 * t)
|
|
6
|
+
y: 2 * Math.sin(t) - Math.sin(2 * t),
|
|
7
7
|
};
|
|
8
8
|
}
|
|
9
9
|
var deltoid = {
|
|
10
10
|
name: "Deltoid",
|
|
11
11
|
fn: deltoidFn,
|
|
12
12
|
period: TWO_PI,
|
|
13
|
-
speed: 0.9
|
|
13
|
+
speed: 0.9,
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
export { deltoid };
|
|
17
17
|
//# sourceMappingURL=deltoid.js.map
|
|
18
|
-
//# sourceMappingURL=deltoid.js.map
|
|
18
|
+
//# sourceMappingURL=deltoid.js.map
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
// src/curves/epicycloid3.ts
|
|
4
4
|
var TWO_PI = Math.PI * 2;
|
|
5
5
|
function epicycloid3Fn(t, _time, _params) {
|
|
6
6
|
return {
|
|
7
7
|
x: 4 * Math.cos(t) - Math.cos(4 * t),
|
|
8
|
-
y: 4 * Math.sin(t) - Math.sin(4 * t)
|
|
8
|
+
y: 4 * Math.sin(t) - Math.sin(4 * t),
|
|
9
9
|
};
|
|
10
10
|
}
|
|
11
11
|
var epicycloid3 = {
|
|
12
12
|
name: "Epicycloid (n=3)",
|
|
13
13
|
fn: epicycloid3Fn,
|
|
14
14
|
period: TWO_PI,
|
|
15
|
-
speed: 0.75
|
|
15
|
+
speed: 0.75,
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
exports.epicycloid3 = epicycloid3;
|
|
19
19
|
//# sourceMappingURL=epicycloid3.cjs.map
|
|
20
|
-
//# sourceMappingURL=epicycloid3.cjs.map
|
|
20
|
+
//# sourceMappingURL=epicycloid3.cjs.map
|
|
@@ -3,16 +3,16 @@ var TWO_PI = Math.PI * 2;
|
|
|
3
3
|
function epicycloid3Fn(t, _time, _params) {
|
|
4
4
|
return {
|
|
5
5
|
x: 4 * Math.cos(t) - Math.cos(4 * t),
|
|
6
|
-
y: 4 * Math.sin(t) - Math.sin(4 * t)
|
|
6
|
+
y: 4 * Math.sin(t) - Math.sin(4 * t),
|
|
7
7
|
};
|
|
8
8
|
}
|
|
9
9
|
var epicycloid3 = {
|
|
10
10
|
name: "Epicycloid (n=3)",
|
|
11
11
|
fn: epicycloid3Fn,
|
|
12
12
|
period: TWO_PI,
|
|
13
|
-
speed: 0.75
|
|
13
|
+
speed: 0.75,
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
export { epicycloid3 };
|
|
17
17
|
//# sourceMappingURL=epicycloid3.js.map
|
|
18
|
-
//# sourceMappingURL=epicycloid3.js.map
|
|
18
|
+
//# sourceMappingURL=epicycloid3.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
// src/curves/epitrochoid7.ts
|
|
4
4
|
var TWO_PI = Math.PI * 2;
|
|
@@ -6,14 +6,14 @@ function epitrochoid7Fn(t, _time, _params) {
|
|
|
6
6
|
const d = 1 + 0.55 * Math.sin(t * 0.5);
|
|
7
7
|
return {
|
|
8
8
|
x: 7 * Math.cos(t) - d * Math.cos(7 * t),
|
|
9
|
-
y: 7 * Math.sin(t) - d * Math.sin(7 * t)
|
|
9
|
+
y: 7 * Math.sin(t) - d * Math.sin(7 * t),
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
function epitrochoid7SkeletonFn(t) {
|
|
13
13
|
const d = 1.275;
|
|
14
14
|
return {
|
|
15
15
|
x: 7 * Math.cos(t) - d * Math.cos(7 * t),
|
|
16
|
-
y: 7 * Math.sin(t) - d * Math.sin(7 * t)
|
|
16
|
+
y: 7 * Math.sin(t) - d * Math.sin(7 * t),
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
var epitrochoid7 = {
|
|
@@ -21,9 +21,9 @@ var epitrochoid7 = {
|
|
|
21
21
|
fn: epitrochoid7Fn,
|
|
22
22
|
period: TWO_PI,
|
|
23
23
|
speed: 1.4,
|
|
24
|
-
skeletonFn: epitrochoid7SkeletonFn
|
|
24
|
+
skeletonFn: epitrochoid7SkeletonFn,
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
exports.epitrochoid7 = epitrochoid7;
|
|
28
28
|
//# sourceMappingURL=epitrochoid7.cjs.map
|
|
29
|
-
//# sourceMappingURL=epitrochoid7.cjs.map
|
|
29
|
+
//# sourceMappingURL=epitrochoid7.cjs.map
|
|
@@ -4,14 +4,14 @@ function epitrochoid7Fn(t, _time, _params) {
|
|
|
4
4
|
const d = 1 + 0.55 * Math.sin(t * 0.5);
|
|
5
5
|
return {
|
|
6
6
|
x: 7 * Math.cos(t) - d * Math.cos(7 * t),
|
|
7
|
-
y: 7 * Math.sin(t) - d * Math.sin(7 * t)
|
|
7
|
+
y: 7 * Math.sin(t) - d * Math.sin(7 * t),
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
10
|
function epitrochoid7SkeletonFn(t) {
|
|
11
11
|
const d = 1.275;
|
|
12
12
|
return {
|
|
13
13
|
x: 7 * Math.cos(t) - d * Math.cos(7 * t),
|
|
14
|
-
y: 7 * Math.sin(t) - d * Math.sin(7 * t)
|
|
14
|
+
y: 7 * Math.sin(t) - d * Math.sin(7 * t),
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
var epitrochoid7 = {
|
|
@@ -19,9 +19,9 @@ var epitrochoid7 = {
|
|
|
19
19
|
fn: epitrochoid7Fn,
|
|
20
20
|
period: TWO_PI,
|
|
21
21
|
speed: 1.4,
|
|
22
|
-
skeletonFn: epitrochoid7SkeletonFn
|
|
22
|
+
skeletonFn: epitrochoid7SkeletonFn,
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
export { epitrochoid7 };
|
|
26
26
|
//# sourceMappingURL=epitrochoid7.js.map
|
|
27
|
-
//# sourceMappingURL=epitrochoid7.js.map
|
|
27
|
+
//# sourceMappingURL=epitrochoid7.js.map
|
package/dist/curves/index.cjs
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
// src/curves/artemis2.ts
|
|
4
4
|
var TWO_PI = Math.PI * 2;
|
|
5
5
|
function artemis2Fn(t, _time, _params) {
|
|
6
|
-
const a = 0.35,
|
|
7
|
-
|
|
6
|
+
const a = 0.35,
|
|
7
|
+
b = 0.15,
|
|
8
|
+
ox = 0.175;
|
|
9
|
+
const s = Math.sin(t),
|
|
10
|
+
c = Math.cos(t);
|
|
8
11
|
const denom = 1 + s * s;
|
|
9
12
|
return {
|
|
10
|
-
x: c * (1 + a * c) / denom - ox,
|
|
11
|
-
y: s * c * (1 + b * c) / denom
|
|
13
|
+
x: (c * (1 + a * c)) / denom - ox,
|
|
14
|
+
y: (s * c * (1 + b * c)) / denom,
|
|
12
15
|
};
|
|
13
16
|
}
|
|
14
17
|
var artemis2 = {
|
|
15
18
|
name: "Artemis II",
|
|
16
19
|
fn: artemis2Fn,
|
|
17
20
|
period: TWO_PI,
|
|
18
|
-
speed: 0.7
|
|
21
|
+
speed: 0.7,
|
|
19
22
|
};
|
|
20
23
|
|
|
21
24
|
// src/curves/astroid.ts
|
|
@@ -25,14 +28,14 @@ function astroidFn(t, _time, _params) {
|
|
|
25
28
|
const s = Math.sin(t);
|
|
26
29
|
return {
|
|
27
30
|
x: c * c * c,
|
|
28
|
-
y: s * s * s
|
|
31
|
+
y: s * s * s,
|
|
29
32
|
};
|
|
30
33
|
}
|
|
31
34
|
var astroid = {
|
|
32
35
|
name: "Astroid",
|
|
33
36
|
fn: astroidFn,
|
|
34
37
|
period: TWO_PI2,
|
|
35
|
-
speed: 1.1
|
|
38
|
+
speed: 1.1,
|
|
36
39
|
};
|
|
37
40
|
|
|
38
41
|
// src/curves/deltoid.ts
|
|
@@ -40,14 +43,14 @@ var TWO_PI3 = Math.PI * 2;
|
|
|
40
43
|
function deltoidFn(t, _time, _params) {
|
|
41
44
|
return {
|
|
42
45
|
x: 2 * Math.cos(t) + Math.cos(2 * t),
|
|
43
|
-
y: 2 * Math.sin(t) - Math.sin(2 * t)
|
|
46
|
+
y: 2 * Math.sin(t) - Math.sin(2 * t),
|
|
44
47
|
};
|
|
45
48
|
}
|
|
46
49
|
var deltoid = {
|
|
47
50
|
name: "Deltoid",
|
|
48
51
|
fn: deltoidFn,
|
|
49
52
|
period: TWO_PI3,
|
|
50
|
-
speed: 0.9
|
|
53
|
+
speed: 0.9,
|
|
51
54
|
};
|
|
52
55
|
|
|
53
56
|
// src/curves/epicycloid3.ts
|
|
@@ -55,14 +58,14 @@ var TWO_PI4 = Math.PI * 2;
|
|
|
55
58
|
function epicycloid3Fn(t, _time, _params) {
|
|
56
59
|
return {
|
|
57
60
|
x: 4 * Math.cos(t) - Math.cos(4 * t),
|
|
58
|
-
y: 4 * Math.sin(t) - Math.sin(4 * t)
|
|
61
|
+
y: 4 * Math.sin(t) - Math.sin(4 * t),
|
|
59
62
|
};
|
|
60
63
|
}
|
|
61
64
|
var epicycloid3 = {
|
|
62
65
|
name: "Epicycloid (n=3)",
|
|
63
66
|
fn: epicycloid3Fn,
|
|
64
67
|
period: TWO_PI4,
|
|
65
|
-
speed: 0.75
|
|
68
|
+
speed: 0.75,
|
|
66
69
|
};
|
|
67
70
|
|
|
68
71
|
// src/curves/epitrochoid7.ts
|
|
@@ -71,14 +74,14 @@ function epitrochoid7Fn(t, _time, _params) {
|
|
|
71
74
|
const d = 1 + 0.55 * Math.sin(t * 0.5);
|
|
72
75
|
return {
|
|
73
76
|
x: 7 * Math.cos(t) - d * Math.cos(7 * t),
|
|
74
|
-
y: 7 * Math.sin(t) - d * Math.sin(7 * t)
|
|
77
|
+
y: 7 * Math.sin(t) - d * Math.sin(7 * t),
|
|
75
78
|
};
|
|
76
79
|
}
|
|
77
80
|
function epitrochoid7SkeletonFn(t) {
|
|
78
81
|
const d = 1.275;
|
|
79
82
|
return {
|
|
80
83
|
x: 7 * Math.cos(t) - d * Math.cos(7 * t),
|
|
81
|
-
y: 7 * Math.sin(t) - d * Math.sin(7 * t)
|
|
84
|
+
y: 7 * Math.sin(t) - d * Math.sin(7 * t),
|
|
82
85
|
};
|
|
83
86
|
}
|
|
84
87
|
var epitrochoid7 = {
|
|
@@ -86,7 +89,7 @@ var epitrochoid7 = {
|
|
|
86
89
|
fn: epitrochoid7Fn,
|
|
87
90
|
period: TWO_PI5,
|
|
88
91
|
speed: 1.4,
|
|
89
|
-
skeletonFn: epitrochoid7SkeletonFn
|
|
92
|
+
skeletonFn: epitrochoid7SkeletonFn,
|
|
90
93
|
};
|
|
91
94
|
|
|
92
95
|
// src/curves/lissajous32.ts
|
|
@@ -95,7 +98,7 @@ function lissajous32Fn(t, time, _params) {
|
|
|
95
98
|
const phi = time * 0.45;
|
|
96
99
|
return {
|
|
97
100
|
x: Math.sin(3 * t + phi),
|
|
98
|
-
y: Math.sin(2 * t)
|
|
101
|
+
y: Math.sin(2 * t),
|
|
99
102
|
};
|
|
100
103
|
}
|
|
101
104
|
var lissajous32 = {
|
|
@@ -103,7 +106,7 @@ var lissajous32 = {
|
|
|
103
106
|
fn: lissajous32Fn,
|
|
104
107
|
period: TWO_PI6,
|
|
105
108
|
speed: 2,
|
|
106
|
-
skeleton: "live"
|
|
109
|
+
skeleton: "live",
|
|
107
110
|
};
|
|
108
111
|
|
|
109
112
|
// src/curves/lissajous43.ts
|
|
@@ -112,7 +115,7 @@ function lissajous43Fn(t, time, _params) {
|
|
|
112
115
|
const phi = time * 0.38;
|
|
113
116
|
return {
|
|
114
117
|
x: Math.sin(4 * t + phi),
|
|
115
|
-
y: Math.sin(3 * t)
|
|
118
|
+
y: Math.sin(3 * t),
|
|
116
119
|
};
|
|
117
120
|
}
|
|
118
121
|
var lissajous43 = {
|
|
@@ -120,17 +123,18 @@ var lissajous43 = {
|
|
|
120
123
|
fn: lissajous43Fn,
|
|
121
124
|
period: TWO_PI7,
|
|
122
125
|
speed: 1.8,
|
|
123
|
-
skeleton: "live"
|
|
126
|
+
skeleton: "live",
|
|
124
127
|
};
|
|
125
128
|
|
|
126
129
|
// src/curves/lame.ts
|
|
127
130
|
var TWO_PI8 = Math.PI * 2;
|
|
128
131
|
function lameFn(t, time, _params) {
|
|
129
132
|
const p = 1.75 + 1.25 * Math.sin(time * 0.48);
|
|
130
|
-
const c = Math.cos(t),
|
|
133
|
+
const c = Math.cos(t),
|
|
134
|
+
s = Math.sin(t);
|
|
131
135
|
return {
|
|
132
136
|
x: Math.sign(c) * Math.pow(Math.abs(c), p),
|
|
133
|
-
y: Math.sign(s) * Math.pow(Math.abs(s), p)
|
|
137
|
+
y: Math.sign(s) * Math.pow(Math.abs(s), p),
|
|
134
138
|
};
|
|
135
139
|
}
|
|
136
140
|
var lame = {
|
|
@@ -138,7 +142,7 @@ var lame = {
|
|
|
138
142
|
fn: lameFn,
|
|
139
143
|
period: TWO_PI8,
|
|
140
144
|
speed: 1,
|
|
141
|
-
skeleton: "live"
|
|
145
|
+
skeleton: "live",
|
|
142
146
|
};
|
|
143
147
|
|
|
144
148
|
// src/curves/rose3.ts
|
|
@@ -147,14 +151,14 @@ function rose3Fn(t, _time, _params) {
|
|
|
147
151
|
const r = Math.cos(3 * t);
|
|
148
152
|
return {
|
|
149
153
|
x: r * Math.cos(t),
|
|
150
|
-
y: r * Math.sin(t)
|
|
154
|
+
y: r * Math.sin(t),
|
|
151
155
|
};
|
|
152
156
|
}
|
|
153
157
|
var rose3 = {
|
|
154
158
|
name: "Rose (n=3)",
|
|
155
159
|
fn: rose3Fn,
|
|
156
160
|
period: TWO_PI9,
|
|
157
|
-
speed: 1.15
|
|
161
|
+
speed: 1.15,
|
|
158
162
|
};
|
|
159
163
|
|
|
160
164
|
// src/curves/rose5.ts
|
|
@@ -163,14 +167,87 @@ function rose5Fn(t, _time, _params) {
|
|
|
163
167
|
const r = Math.cos(5 * t);
|
|
164
168
|
return {
|
|
165
169
|
x: r * Math.cos(t),
|
|
166
|
-
y: r * Math.sin(t)
|
|
170
|
+
y: r * Math.sin(t),
|
|
167
171
|
};
|
|
168
172
|
}
|
|
169
173
|
var rose5 = {
|
|
170
174
|
name: "Rose (n=5)",
|
|
171
175
|
fn: rose5Fn,
|
|
172
176
|
period: TWO_PI10,
|
|
173
|
-
speed: 1
|
|
177
|
+
speed: 1,
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
// src/curves/rose52.ts
|
|
181
|
+
var FOUR_PI = Math.PI * 4;
|
|
182
|
+
function rose52Fn(t, _time, _params) {
|
|
183
|
+
const r = Math.cos((5 / 2) * t);
|
|
184
|
+
return {
|
|
185
|
+
x: r * Math.cos(t),
|
|
186
|
+
y: r * Math.sin(t),
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
var rose52 = {
|
|
190
|
+
name: "Rose (n=5/2)",
|
|
191
|
+
fn: rose52Fn,
|
|
192
|
+
period: FOUR_PI,
|
|
193
|
+
speed: 0.8,
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
// src/curves/star.ts
|
|
197
|
+
var TWO_PI11 = Math.PI * 2;
|
|
198
|
+
function starFn(t, _time, _params) {
|
|
199
|
+
const r =
|
|
200
|
+
Math.abs(Math.cos((5 / 2) * t)) +
|
|
201
|
+
0.35 * Math.abs(Math.cos((15 / 2) * t)) +
|
|
202
|
+
0.15 * Math.abs(Math.cos((25 / 2) * t));
|
|
203
|
+
return {
|
|
204
|
+
x: r * Math.cos(t),
|
|
205
|
+
y: r * Math.sin(t),
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
var star = {
|
|
209
|
+
name: "Star",
|
|
210
|
+
fn: starFn,
|
|
211
|
+
period: TWO_PI11,
|
|
212
|
+
speed: 1,
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
// src/curves/star4.ts
|
|
216
|
+
var TWO_PI12 = Math.PI * 2;
|
|
217
|
+
function star4Fn(t, _time, _params) {
|
|
218
|
+
const r =
|
|
219
|
+
Math.abs(Math.cos(2 * t)) +
|
|
220
|
+
0.35 * Math.abs(Math.cos(6 * t)) +
|
|
221
|
+
0.15 * Math.abs(Math.cos(10 * t));
|
|
222
|
+
return {
|
|
223
|
+
x: r * Math.cos(t),
|
|
224
|
+
y: r * Math.sin(t),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
var star4 = {
|
|
228
|
+
name: "Star (4-arm)",
|
|
229
|
+
fn: star4Fn,
|
|
230
|
+
period: TWO_PI12,
|
|
231
|
+
speed: 1,
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
// src/curves/star7.ts
|
|
235
|
+
var TWO_PI13 = Math.PI * 2;
|
|
236
|
+
function star7Fn(t, _time, _params) {
|
|
237
|
+
const r =
|
|
238
|
+
Math.abs(Math.cos((7 / 2) * t)) +
|
|
239
|
+
0.35 * Math.abs(Math.cos((21 / 2) * t)) +
|
|
240
|
+
0.15 * Math.abs(Math.cos((35 / 2) * t));
|
|
241
|
+
return {
|
|
242
|
+
x: r * Math.cos(t),
|
|
243
|
+
y: r * Math.sin(t),
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
var star7 = {
|
|
247
|
+
name: "Star (7-arm)",
|
|
248
|
+
fn: star7Fn,
|
|
249
|
+
period: TWO_PI13,
|
|
250
|
+
speed: 1,
|
|
174
251
|
};
|
|
175
252
|
|
|
176
253
|
// src/curves/index.ts
|
|
@@ -179,12 +256,16 @@ var curves = {
|
|
|
179
256
|
epitrochoid7,
|
|
180
257
|
astroid,
|
|
181
258
|
deltoid,
|
|
182
|
-
rose5,
|
|
183
259
|
rose3,
|
|
260
|
+
rose5,
|
|
261
|
+
rose52,
|
|
262
|
+
star,
|
|
263
|
+
star4,
|
|
264
|
+
star7,
|
|
184
265
|
lissajous32,
|
|
185
266
|
lissajous43,
|
|
186
267
|
epicycloid3,
|
|
187
|
-
lame
|
|
268
|
+
lame,
|
|
188
269
|
};
|
|
189
270
|
|
|
190
271
|
exports.artemis2 = artemis2;
|
|
@@ -198,5 +279,9 @@ exports.lissajous32 = lissajous32;
|
|
|
198
279
|
exports.lissajous43 = lissajous43;
|
|
199
280
|
exports.rose3 = rose3;
|
|
200
281
|
exports.rose5 = rose5;
|
|
282
|
+
exports.rose52 = rose52;
|
|
283
|
+
exports.star = star;
|
|
284
|
+
exports.star4 = star4;
|
|
285
|
+
exports.star7 = star7;
|
|
286
|
+
//# sourceMappingURL=index.cjs.map
|
|
201
287
|
//# sourceMappingURL=index.cjs.map
|
|
202
|
-
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/curves/artemis2.ts","../../src/curves/astroid.ts","../../src/curves/deltoid.ts","../../src/curves/epicycloid3.ts","../../src/curves/epitrochoid7.ts","../../src/curves/lissajous32.ts","../../src/curves/lissajous43.ts","../../src/curves/lame.ts","../../src/curves/rose3.ts","../../src/curves/rose5.ts","../../src/curves/index.ts"],"names":["TWO_PI"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\n/**\n * Artemis II free-return lunar trajectory\n * @see https://www.nasa.gov/wp-content/uploads/2025/09/artemis-ii-map-508.pdf\n * a = x-axis asymmetry (widens one lobe),\n * b = y-axis asymmetry,\n * ox = horizontal offset to visually center the shape\n */\nfunction artemis2Fn(t: number, _time: number, _params: Record<string, number>) {\n const a = 0.35,\n b = 0.15,\n ox = 0.175;\n const s = Math.sin(t),\n c = Math.cos(t);\n const denom = 1 + s * s;\n return {\n x: (c * (1 + a * c)) / denom - ox,\n y: (s * c * (1 + b * c)) / denom,\n };\n}\n\n/**\n * Artemis II free-return lunar trajectory curve\n * Traces the path of the Orion spacecraft during the Artemis II mission\n */\nexport const artemis2: CurveDef = {\n name: \"Artemis II\",\n fn: artemis2Fn,\n period: TWO_PI,\n speed: 0.7,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction astroidFn(t: number, _time: number, _params: Record<string, number>) {\n const c = Math.cos(t);\n const s = Math.sin(t);\n return {\n x: c * c * c,\n y: s * s * s,\n };\n}\n\n/**\n * Astroid curve - a 4-cusped hypocycloid\n * Creates a star-like shape with four sharp corners\n */\nexport const astroid: CurveDef = {\n name: \"Astroid\",\n fn: astroidFn,\n period: TWO_PI,\n speed: 1.1,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction deltoidFn(t: number, _time: number, _params: Record<string, number>) {\n return {\n x: 2 * Math.cos(t) + Math.cos(2 * t),\n y: 2 * Math.sin(t) - Math.sin(2 * t),\n };\n}\n\n/**\n * Deltoid curve - a 3-cusped hypocycloid\n * Creates a triangular shape with curved sides\n */\nexport const deltoid: CurveDef = {\n name: \"Deltoid\",\n fn: deltoidFn,\n period: TWO_PI,\n speed: 0.9,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction epicycloid3Fn(t: number, _time: number, _params: Record<string, number>) {\n return {\n x: 4 * Math.cos(t) - Math.cos(4 * t),\n y: 4 * Math.sin(t) - Math.sin(4 * t),\n };\n}\n\n/**\n * Epicycloid with 3 cusps\n * Creates a three-pointed star shape\n */\nexport const epicycloid3: CurveDef = {\n name: \"Epicycloid (n=3)\",\n fn: epicycloid3Fn,\n period: TWO_PI,\n speed: 0.75,\n};\n","import type { CurveDef, Point } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction epitrochoid7Fn(t: number, _time: number, _params: Record<string, number>) {\n const d = 1.0 + 0.55 * Math.sin(t * 0.5);\n return {\n x: 7 * Math.cos(t) - d * Math.cos(7 * t),\n y: 7 * Math.sin(t) - d * Math.sin(7 * t),\n };\n}\n\nfunction epitrochoid7SkeletonFn(t: number): Point {\n // average of the oscillating range for a stable base shape\n const d = 1.275;\n return {\n x: 7 * Math.cos(t) - d * Math.cos(7 * t),\n y: 7 * Math.sin(t) - d * Math.sin(7 * t),\n };\n}\n\n/**\n * Epitrochoid with 7 lobes and dynamic variation\n * Creates a flower-like pattern with undulating petals\n */\nexport const epitrochoid7: CurveDef = {\n name: \"Epitrochoid\",\n fn: epitrochoid7Fn,\n period: TWO_PI,\n speed: 1.4,\n skeletonFn: epitrochoid7SkeletonFn,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction lissajous32Fn(t: number, time: number, _params: Record<string, number>) {\n const phi = time * 0.45;\n return {\n x: Math.sin(3 * t + phi),\n y: Math.sin(2 * t),\n };\n}\n\n/**\n * Lissajous curve with frequency ratio 3:2\n * Creates a figure-eight-like pattern with live skeleton\n */\nexport const lissajous32: CurveDef = {\n name: \"Lissajous 3:2\",\n fn: lissajous32Fn,\n period: TWO_PI,\n speed: 2.0,\n skeleton: \"live\",\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction lissajous43Fn(t: number, time: number, _params: Record<string, number>) {\n const phi = time * 0.38;\n return {\n x: Math.sin(4 * t + phi),\n y: Math.sin(3 * t),\n };\n}\n\n/**\n * Lissajous curve with frequency ratio 4:3\n * Creates a complex interweaving pattern with live skeleton\n */\nexport const lissajous43: CurveDef = {\n name: \"Lissajous 4:3\",\n fn: lissajous43Fn,\n period: TWO_PI,\n speed: 1.8,\n skeleton: \"live\",\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction lameFn(t: number, time: number, _params: Record<string, number>) {\n const p = 1.75 + 1.25 * Math.sin(time * 0.48);\n const c = Math.cos(t),\n s = Math.sin(t);\n return {\n x: Math.sign(c) * Math.pow(Math.abs(c), p),\n y: Math.sign(s) * Math.pow(Math.abs(s), p),\n };\n}\n\n/**\n * Lamé curve (superellipse) with time-varying exponent\n * Creates a squircle-like shape that morphs over time\n */\nexport const lame: CurveDef = {\n name: \"Lamé Curve\",\n fn: lameFn,\n period: TWO_PI,\n speed: 1.0,\n skeleton: \"live\",\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction rose3Fn(t: number, _time: number, _params: Record<string, number>) {\n const r = Math.cos(3 * t);\n return {\n x: r * Math.cos(t),\n y: r * Math.sin(t),\n };\n}\n\n/**\n * Rose curve with 3 petals\n * Creates a three-petaled flower pattern\n */\nexport const rose3: CurveDef = {\n name: \"Rose (n=3)\",\n fn: rose3Fn,\n period: TWO_PI,\n speed: 1.15,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction rose5Fn(t: number, _time: number, _params: Record<string, number>) {\n const r = Math.cos(5 * t);\n return {\n x: r * Math.cos(t),\n y: r * Math.sin(t),\n };\n}\n\n/**\n * Rose curve with 5 petals\n * Creates a five-petaled flower pattern\n */\nexport const rose5: CurveDef = {\n name: \"Rose (n=5)\",\n fn: rose5Fn,\n period: TWO_PI,\n speed: 1.0,\n};\n","// Individual curve exports for tree-shaking\nexport { artemis2 } from \"./artemis2\";\nexport { astroid } from \"./astroid\";\nexport { deltoid } from \"./deltoid\";\nexport { epicycloid3 } from \"./epicycloid3\";\nexport { epitrochoid7 } from \"./epitrochoid7\";\nexport { lissajous32 } from \"./lissajous32\";\nexport { lissajous43 } from \"./lissajous43\";\nexport { lame } from \"./lame\";\nexport { rose3 } from \"./rose3\";\nexport { rose5 } from \"./rose5\";\n\n// Bulk export for convenience\n// >> Standard\nimport { rose3 } from \"./rose3\";\nimport { rose5 } from \"./rose5\";\nimport { astroid } from \"./astroid\";\nimport { deltoid } from \"./deltoid\";\nimport { epicycloid3 } from \"./epicycloid3\";\nimport { epitrochoid7 } from \"./epitrochoid7\";\nimport { lissajous32 } from \"./lissajous32\";\nimport { lissajous43 } from \"./lissajous43\";\nimport { lame } from \"./lame\";\n// >> Iconic\nimport { artemis2 } from \"./artemis2\";\n\n/**\n * Collection of all built-in sarmal curves\n * Import individual curves for better tree-shaking\n */\nexport const curves = {\n artemis2,\n epitrochoid7,\n astroid,\n deltoid,\n rose5,\n rose3,\n lissajous32,\n lissajous43,\n epicycloid3,\n lame,\n} as const;\nexport type CurveName = keyof typeof curves;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/curves/artemis2.ts","../../src/curves/astroid.ts","../../src/curves/deltoid.ts","../../src/curves/epicycloid3.ts","../../src/curves/epitrochoid7.ts","../../src/curves/lissajous32.ts","../../src/curves/lissajous43.ts","../../src/curves/lame.ts","../../src/curves/rose3.ts","../../src/curves/rose5.ts","../../src/curves/rose52.ts","../../src/curves/star.ts","../../src/curves/star4.ts","../../src/curves/star7.ts","../../src/curves/index.ts"],"names":["TWO_PI"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\n/**\n * Artemis II free-return lunar trajectory\n * @see https://www.nasa.gov/wp-content/uploads/2025/09/artemis-ii-map-508.pdf\n * a = x-axis asymmetry (widens one lobe),\n * b = y-axis asymmetry,\n * ox = horizontal offset to visually center the shape\n */\nfunction artemis2Fn(t: number, _time: number, _params: Record<string, number>) {\n const a = 0.35,\n b = 0.15,\n ox = 0.175;\n const s = Math.sin(t),\n c = Math.cos(t);\n const denom = 1 + s * s;\n return {\n x: (c * (1 + a * c)) / denom - ox,\n y: (s * c * (1 + b * c)) / denom,\n };\n}\n\n/**\n * Artemis II free-return lunar trajectory curve\n * Traces the path of the Orion spacecraft during the Artemis II mission\n */\nexport const artemis2: CurveDef = {\n name: \"Artemis II\",\n fn: artemis2Fn,\n period: TWO_PI,\n speed: 0.7,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction astroidFn(t: number, _time: number, _params: Record<string, number>) {\n const c = Math.cos(t);\n const s = Math.sin(t);\n return {\n x: c * c * c,\n y: s * s * s,\n };\n}\n\n/**\n * Astroid curve - a 4-cusped hypocycloid\n * Creates a star-like shape with four sharp corners\n */\nexport const astroid: CurveDef = {\n name: \"Astroid\",\n fn: astroidFn,\n period: TWO_PI,\n speed: 1.1,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction deltoidFn(t: number, _time: number, _params: Record<string, number>) {\n return {\n x: 2 * Math.cos(t) + Math.cos(2 * t),\n y: 2 * Math.sin(t) - Math.sin(2 * t),\n };\n}\n\n/**\n * Deltoid curve - a 3-cusped hypocycloid\n * Creates a triangular shape with curved sides\n */\nexport const deltoid: CurveDef = {\n name: \"Deltoid\",\n fn: deltoidFn,\n period: TWO_PI,\n speed: 0.9,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction epicycloid3Fn(t: number, _time: number, _params: Record<string, number>) {\n return {\n x: 4 * Math.cos(t) - Math.cos(4 * t),\n y: 4 * Math.sin(t) - Math.sin(4 * t),\n };\n}\n\n/**\n * Epicycloid with 3 cusps\n * Creates a three-pointed star shape\n */\nexport const epicycloid3: CurveDef = {\n name: \"Epicycloid (n=3)\",\n fn: epicycloid3Fn,\n period: TWO_PI,\n speed: 0.75,\n};\n","import type { CurveDef, Point } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction epitrochoid7Fn(t: number, _time: number, _params: Record<string, number>) {\n const d = 1.0 + 0.55 * Math.sin(t * 0.5);\n return {\n x: 7 * Math.cos(t) - d * Math.cos(7 * t),\n y: 7 * Math.sin(t) - d * Math.sin(7 * t),\n };\n}\n\nfunction epitrochoid7SkeletonFn(t: number): Point {\n // average of the oscillating range for a stable base shape\n const d = 1.275;\n return {\n x: 7 * Math.cos(t) - d * Math.cos(7 * t),\n y: 7 * Math.sin(t) - d * Math.sin(7 * t),\n };\n}\n\n/**\n * Epitrochoid with 7 lobes and dynamic variation\n * Creates a flower-like pattern with undulating petals\n */\nexport const epitrochoid7: CurveDef = {\n name: \"Epitrochoid\",\n fn: epitrochoid7Fn,\n period: TWO_PI,\n speed: 1.4,\n skeletonFn: epitrochoid7SkeletonFn,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction lissajous32Fn(t: number, time: number, _params: Record<string, number>) {\n const phi = time * 0.45;\n return {\n x: Math.sin(3 * t + phi),\n y: Math.sin(2 * t),\n };\n}\n\n/**\n * Lissajous curve with frequency ratio 3:2\n * Creates a figure-eight-like pattern with live skeleton\n */\nexport const lissajous32: CurveDef = {\n name: \"Lissajous 3:2\",\n fn: lissajous32Fn,\n period: TWO_PI,\n speed: 2.0,\n skeleton: \"live\",\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction lissajous43Fn(t: number, time: number, _params: Record<string, number>) {\n const phi = time * 0.38;\n return {\n x: Math.sin(4 * t + phi),\n y: Math.sin(3 * t),\n };\n}\n\n/**\n * Lissajous curve with frequency ratio 4:3\n * Creates a complex interweaving pattern with live skeleton\n */\nexport const lissajous43: CurveDef = {\n name: \"Lissajous 4:3\",\n fn: lissajous43Fn,\n period: TWO_PI,\n speed: 1.8,\n skeleton: \"live\",\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction lameFn(t: number, time: number, _params: Record<string, number>) {\n const p = 1.75 + 1.25 * Math.sin(time * 0.48);\n const c = Math.cos(t),\n s = Math.sin(t);\n return {\n x: Math.sign(c) * Math.pow(Math.abs(c), p),\n y: Math.sign(s) * Math.pow(Math.abs(s), p),\n };\n}\n\n/**\n * Lamé curve (superellipse) with time-varying exponent\n * Creates a squircle-like shape that morphs over time\n */\nexport const lame: CurveDef = {\n name: \"Lamé Curve\",\n fn: lameFn,\n period: TWO_PI,\n speed: 1.0,\n skeleton: \"live\",\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction rose3Fn(t: number, _time: number, _params: Record<string, number>) {\n const r = Math.cos(3 * t);\n return {\n x: r * Math.cos(t),\n y: r * Math.sin(t),\n };\n}\n\n/**\n * Rose curve with 3 petals\n * Creates a three-petaled flower pattern\n */\nexport const rose3: CurveDef = {\n name: \"Rose (n=3)\",\n fn: rose3Fn,\n period: TWO_PI,\n speed: 1.15,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction rose5Fn(t: number, _time: number, _params: Record<string, number>) {\n const r = Math.cos(5 * t);\n return {\n x: r * Math.cos(t),\n y: r * Math.sin(t),\n };\n}\n\n/**\n * Rose curve with 5 petals\n * Creates a five-petaled flower pattern\n */\nexport const rose5: CurveDef = {\n name: \"Rose (n=5)\",\n fn: rose5Fn,\n period: TWO_PI,\n speed: 1.0,\n};\n","import type { CurveDef } from \"../types\";\n\nconst FOUR_PI = Math.PI * 4;\n\nfunction rose52Fn(t: number, _time: number, _params: Record<string, number>) {\n const r = Math.cos((5 / 2) * t);\n return {\n x: r * Math.cos(t),\n y: r * Math.sin(t),\n };\n}\n\n/**\n * Rose curve with n=5/2 that traces 5 petals over two full revolutions\n * The head passes through the center between petals, creating elegant crossing trails.\n */\nexport const rose52: CurveDef = {\n name: \"Rose (n=5/2)\",\n fn: rose52Fn,\n period: FOUR_PI,\n speed: 0.8,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction starFn(t: number, _time: number, _params: Record<string, number>) {\n const r =\n Math.abs(Math.cos((5 / 2) * t)) +\n 0.35 * Math.abs(Math.cos((15 / 2) * t)) +\n 0.15 * Math.abs(Math.cos((25 / 2) * t));\n return {\n x: r * Math.cos(t),\n y: r * Math.sin(t),\n };\n}\n\n/**\n * 5-pointed star based on Fourier harmonics.\n */\nexport const star: CurveDef = {\n name: \"Star\",\n fn: starFn,\n period: TWO_PI,\n speed: 1.0,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction star4Fn(t: number, _time: number, _params: Record<string, number>) {\n const r =\n Math.abs(Math.cos(2 * t)) +\n 0.35 * Math.abs(Math.cos(6 * t)) +\n 0.15 * Math.abs(Math.cos(10 * t));\n return {\n x: r * Math.cos(t),\n y: r * Math.sin(t),\n };\n}\n\n/**\n * 4-pointed star based on Fourier harmonics.\n * Same construction as `star` but with base frequency `2t`, 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","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction star7Fn(t: number, _time: number, _params: Record<string, number>) {\n const r =\n Math.abs(Math.cos((7 / 2) * t)) +\n 0.35 * Math.abs(Math.cos((21 / 2) * t)) +\n 0.15 * Math.abs(Math.cos((35 / 2) * t));\n return {\n x: r * Math.cos(t),\n y: r * Math.sin(t),\n };\n}\n\n/**\n * 7-pointed star based on Fourier harmonics.\n * Same construction as `star` but with base frequency `7t/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","// Individual curve exports for tree-shaking\nexport { artemis2 } from \"./artemis2\";\nexport { astroid } from \"./astroid\";\nexport { deltoid } from \"./deltoid\";\nexport { epicycloid3 } from \"./epicycloid3\";\nexport { epitrochoid7 } from \"./epitrochoid7\";\nexport { lissajous32 } from \"./lissajous32\";\nexport { lissajous43 } from \"./lissajous43\";\nexport { lame } from \"./lame\";\nexport { rose3 } from \"./rose3\";\nexport { rose5 } from \"./rose5\";\nexport { rose52 } from \"./rose52\";\nexport { star } from \"./star\";\nexport { star4 } from \"./star4\";\nexport { star7 } from \"./star7\";\n\n// Bulk export for convenience\n// >> Standard\nimport { rose3 } from \"./rose3\";\nimport { rose5 } from \"./rose5\";\nimport { rose52 } from \"./rose52\";\nimport { star } from \"./star\";\nimport { star4 } from \"./star4\";\nimport { star7 } from \"./star7\";\nimport { astroid } from \"./astroid\";\nimport { deltoid } from \"./deltoid\";\nimport { epicycloid3 } from \"./epicycloid3\";\nimport { epitrochoid7 } from \"./epitrochoid7\";\nimport { lissajous32 } from \"./lissajous32\";\nimport { lissajous43 } from \"./lissajous43\";\nimport { lame } from \"./lame\";\n// >> Iconic\nimport { artemis2 } from \"./artemis2\";\n\n/**\n * Collection of all built-in sarmal curves\n * Import individual curves for better tree-shaking\n */\nexport const curves = {\n artemis2,\n epitrochoid7,\n astroid,\n deltoid,\n rose3,\n rose5,\n rose52,\n star,\n star4,\n star7,\n lissajous32,\n lissajous43,\n epicycloid3,\n lame,\n} as const;\nexport type CurveName = keyof typeof curves;\n"]}
|
package/dist/curves/index.d.cts
CHANGED
|
@@ -1,30 +1,38 @@
|
|
|
1
|
-
import { C as CurveDef } from
|
|
2
|
-
export { artemis2 } from
|
|
3
|
-
export { astroid } from
|
|
4
|
-
export { deltoid } from
|
|
5
|
-
export { epicycloid3 } from
|
|
6
|
-
export { epitrochoid7 } from
|
|
7
|
-
export { lissajous32 } from
|
|
8
|
-
export { lissajous43 } from
|
|
9
|
-
export { lame } from
|
|
10
|
-
export { rose3 } from
|
|
11
|
-
export { rose5 } from
|
|
1
|
+
import { C as CurveDef } from "../types-BL9HhEmk.cjs";
|
|
2
|
+
export { artemis2 } from "./artemis2.cjs";
|
|
3
|
+
export { astroid } from "./astroid.cjs";
|
|
4
|
+
export { deltoid } from "./deltoid.cjs";
|
|
5
|
+
export { epicycloid3 } from "./epicycloid3.cjs";
|
|
6
|
+
export { epitrochoid7 } from "./epitrochoid7.cjs";
|
|
7
|
+
export { lissajous32 } from "./lissajous32.cjs";
|
|
8
|
+
export { lissajous43 } from "./lissajous43.cjs";
|
|
9
|
+
export { lame } from "./lame.cjs";
|
|
10
|
+
export { rose3 } from "./rose3.cjs";
|
|
11
|
+
export { rose5 } from "./rose5.cjs";
|
|
12
|
+
export { rose52 } from "./rose52.cjs";
|
|
13
|
+
export { star } from "./star.cjs";
|
|
14
|
+
export { star4 } from "./star4.cjs";
|
|
15
|
+
export { star7 } from "./star7.cjs";
|
|
12
16
|
|
|
13
17
|
/**
|
|
14
18
|
* Collection of all built-in sarmal curves
|
|
15
19
|
* Import individual curves for better tree-shaking
|
|
16
20
|
*/
|
|
17
21
|
declare const curves: {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
readonly artemis2: CurveDef;
|
|
23
|
+
readonly epitrochoid7: CurveDef;
|
|
24
|
+
readonly astroid: CurveDef;
|
|
25
|
+
readonly deltoid: CurveDef;
|
|
26
|
+
readonly rose3: CurveDef;
|
|
27
|
+
readonly rose5: CurveDef;
|
|
28
|
+
readonly rose52: CurveDef;
|
|
29
|
+
readonly star: CurveDef;
|
|
30
|
+
readonly star4: CurveDef;
|
|
31
|
+
readonly star7: CurveDef;
|
|
32
|
+
readonly lissajous32: CurveDef;
|
|
33
|
+
readonly lissajous43: CurveDef;
|
|
34
|
+
readonly epicycloid3: CurveDef;
|
|
35
|
+
readonly lame: CurveDef;
|
|
28
36
|
};
|
|
29
37
|
type CurveName = keyof typeof curves;
|
|
30
38
|
|