three-stdlib 2.10.0 → 2.10.1
Sign up to get free protection for your applications and to get access to all the features.
- package/index.cjs.js +1 -1
- package/index.js +1 -1
- package/package.json +1 -1
- package/utils/GeometryUtils.cjs.js +1 -1
- package/utils/GeometryUtils.d.ts +5 -26
- package/utils/GeometryUtils.js +29 -43
package/index.js
CHANGED
@@ -52,7 +52,7 @@ export { Sky } from './objects/Sky.js';
|
|
52
52
|
export { Water2 } from './objects/Water2.js';
|
53
53
|
export { SceneUtils } from './utils/SceneUtils.js';
|
54
54
|
export { UVsDebug } from './utils/UVsDebug.js';
|
55
|
-
export {
|
55
|
+
export { GeometryUtils } from './utils/GeometryUtils.js';
|
56
56
|
export { RoughnessMipmapper } from './utils/RoughnessMipmapper.js';
|
57
57
|
export { SkeletonUtils } from './utils/SkeletonUtils.js';
|
58
58
|
export { ShadowMapViewer } from './utils/ShadowMapViewer.js';
|
package/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");const r=(t=new e.Vector3(0,0,0),p=10,o=1,y=0,n=1,s=2,a=3)=>{const l=p/2,c=[new e.Vector3(t.x-l,t.y,t.z-l),new e.Vector3(t.x-l,t.y,t.z+l),new e.Vector3(t.x+l,t.y,t.z+l),new e.Vector3(t.x+l,t.y,t.z-l)],u=[c[y],c[n],c[s],c[a]];if(0<=--o){const e=[];return Array.prototype.push.apply(e,r(u[0],l,o,y,a,s,n)),Array.prototype.push.apply(e,r(u[1],l,o,y,n,s,a)),Array.prototype.push.apply(e,r(u[2],l,o,y,n,s,a)),Array.prototype.push.apply(e,r(u[3],l,o,s,n,y,a)),e}return u},t=(r=new e.Vector3(0,0,0),p=10,o=1,y=0,n=1,s=2,a=3,l=4,c=5,u=6,h=7)=>{const A=p/2,i=[new e.Vector3(r.x-A,r.y+A,r.z-A),new e.Vector3(r.x-A,r.y+A,r.z+A),new e.Vector3(r.x-A,r.y-A,r.z+A),new e.Vector3(r.x-A,r.y-A,r.z-A),new e.Vector3(r.x+A,r.y-A,r.z-A),new e.Vector3(r.x+A,r.y-A,r.z+A),new e.Vector3(r.x+A,r.y+A,r.z+A),new e.Vector3(r.x+A,r.y+A,r.z-A)],x=[i[y],i[n],i[s],i[a],i[l],i[c],i[u],i[h]];if(--o>=0){const e=[];return Array.prototype.push.apply(e,t(x[0],A,o,y,a,l,h,u,c,s,n)),Array.prototype.push.apply(e,t(x[1],A,o,y,h,u,n,s,c,l,a)),Array.prototype.push.apply(e,t(x[2],A,o,y,h,u,n,s,c,l,a)),Array.prototype.push.apply(e,t(x[3],A,o,s,a,y,n,u,h,l,c)),Array.prototype.push.apply(e,t(x[4],A,o,s,a,y,n,u,h,l,c)),Array.prototype.push.apply(e,t(x[5],A,o,l,a,s,c,u,n,y,h)),Array.prototype.push.apply(e,t(x[6],A,o,l,a,s,c,u,n,y,h)),Array.prototype.push.apply(e,t(x[7],A,o,u,c,s,n,y,a,l,h)),e}return x},p={hilbert3D:t,gosper:(e=1)=>function(e){let r=0,t=0,p=0;const o=[0,0,0],y=e.fractal;for(let n=0,s=y.length;n<s;n++){const s=y[n];"+"===s?p+=e.angle:"-"===s?p-=e.angle:"F"===s&&(r+=e.size*Math.cos(p),t+=-e.size*Math.sin(p),o.push(r,t,0))}return o}({fractal:function(e){let r="",t=e.axiom;for(let p=0,o=e.steps;0<=o?p<o:p>o;0<=o?p++:p--){r="";for(let p=0,o=t.length;p<o;p++){const o=t[p];o in e.rules?r+=e.rules[o]:r+=o}t=r}return r}({axiom:"A",steps:4,rules:{A:"A+BF++BF-FA--FAFA-BF+",B:"-FA+BFBF++BF+FA--FA-B"}}),size:e,angle:Math.PI/3}),hilbert2D:r};exports.GeometryUtils=p;
|
package/utils/GeometryUtils.d.ts
CHANGED
@@ -1,27 +1,6 @@
|
|
1
1
|
import { Vector3 } from 'three';
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
iterations?: number,
|
8
|
-
v0?: number,
|
9
|
-
v1?: number,
|
10
|
-
v2?: number,
|
11
|
-
v3?: number,
|
12
|
-
): Vector3[];
|
13
|
-
function hilbert3D(
|
14
|
-
center?: Vector3,
|
15
|
-
size?: number,
|
16
|
-
iterations?: number,
|
17
|
-
v0?: number,
|
18
|
-
v1?: number,
|
19
|
-
v2?: number,
|
20
|
-
v3?: number,
|
21
|
-
v4?: number,
|
22
|
-
v5?: number,
|
23
|
-
v6?: number,
|
24
|
-
v7?: number,
|
25
|
-
): Vector3[];
|
26
|
-
function gosper(size?: number): number[];
|
27
|
-
}
|
2
|
+
export declare const GeometryUtils: {
|
3
|
+
hilbert3D: (center?: Vector3, size?: number, iterations?: number, v0?: number, v1?: number, v2?: number, v3?: number, v4?: number, v5?: number, v6?: number, v7?: number) => Vector3[];
|
4
|
+
gosper: (size?: number) => number[];
|
5
|
+
hilbert2D: (center?: Vector3, size?: number, iterations?: number, v0?: number, v1?: number, v2?: number, v3?: number) => Vector3[];
|
6
|
+
};
|
package/utils/GeometryUtils.js
CHANGED
@@ -15,21 +15,14 @@ import { Vector3 } from 'three';
|
|
15
15
|
* @param v3 Corner index +X, -Z.
|
16
16
|
*/
|
17
17
|
|
18
|
-
const hilbert2D = (center, size, iterations, v0, v1, v2, v3) => {
|
18
|
+
const hilbert2D = (center = new Vector3(0, 0, 0), size = 10, iterations = 1, v0 = 0, v1 = 1, v2 = 2, v3 = 3) => {
|
19
19
|
// Default Vars
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
iterations = iterations !== undefined ? iterations : 1,
|
24
|
-
v0 = v0 !== undefined ? v0 : 0,
|
25
|
-
v1 = v1 !== undefined ? v1 : 1,
|
26
|
-
v2 = v2 !== undefined ? v2 : 2,
|
27
|
-
v3 = v3 !== undefined ? v3 : 3;
|
28
|
-
var vec_s = [new Vector3(center.x - half, center.y, center.z - half), new Vector3(center.x - half, center.y, center.z + half), new Vector3(center.x + half, center.y, center.z + half), new Vector3(center.x + half, center.y, center.z - half)];
|
29
|
-
var vec = [vec_s[v0], vec_s[v1], vec_s[v2], vec_s[v3]]; // Recurse iterations
|
20
|
+
const half = size / 2;
|
21
|
+
const vec_s = [new Vector3(center.x - half, center.y, center.z - half), new Vector3(center.x - half, center.y, center.z + half), new Vector3(center.x + half, center.y, center.z + half), new Vector3(center.x + half, center.y, center.z - half)];
|
22
|
+
const vec = [vec_s[v0], vec_s[v1], vec_s[v2], vec_s[v3]]; // Recurse iterations
|
30
23
|
|
31
24
|
if (0 <= --iterations) {
|
32
|
-
|
25
|
+
const tmp = [];
|
33
26
|
Array.prototype.push.apply(tmp, hilbert2D(vec[0], half, iterations, v0, v3, v2, v1));
|
34
27
|
Array.prototype.push.apply(tmp, hilbert2D(vec[1], half, iterations, v0, v1, v2, v3));
|
35
28
|
Array.prototype.push.apply(tmp, hilbert2D(vec[2], half, iterations, v0, v1, v2, v3));
|
@@ -61,25 +54,14 @@ const hilbert2D = (center, size, iterations, v0, v1, v2, v3) => {
|
|
61
54
|
*/
|
62
55
|
|
63
56
|
|
64
|
-
const hilbert3D = (center, size, iterations, v0, v1, v2, v3, v4, v5, v6, v7) => {
|
57
|
+
const hilbert3D = (center = new Vector3(0, 0, 0), size = 10, iterations = 1, v0 = 0, v1 = 1, v2 = 2, v3 = 3, v4 = 4, v5 = 5, v6 = 6, v7 = 7) => {
|
65
58
|
// Default Vars
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
iterations = iterations !== undefined ? iterations : 1,
|
70
|
-
v0 = v0 !== undefined ? v0 : 0,
|
71
|
-
v1 = v1 !== undefined ? v1 : 1,
|
72
|
-
v2 = v2 !== undefined ? v2 : 2,
|
73
|
-
v3 = v3 !== undefined ? v3 : 3,
|
74
|
-
v4 = v4 !== undefined ? v4 : 4,
|
75
|
-
v5 = v5 !== undefined ? v5 : 5,
|
76
|
-
v6 = v6 !== undefined ? v6 : 6,
|
77
|
-
v7 = v7 !== undefined ? v7 : 7;
|
78
|
-
var vec_s = [new Vector3(center.x - half, center.y + half, center.z - half), new Vector3(center.x - half, center.y + half, center.z + half), new Vector3(center.x - half, center.y - half, center.z + half), new Vector3(center.x - half, center.y - half, center.z - half), new Vector3(center.x + half, center.y - half, center.z - half), new Vector3(center.x + half, center.y - half, center.z + half), new Vector3(center.x + half, center.y + half, center.z + half), new Vector3(center.x + half, center.y + half, center.z - half)];
|
79
|
-
var vec = [vec_s[v0], vec_s[v1], vec_s[v2], vec_s[v3], vec_s[v4], vec_s[v5], vec_s[v6], vec_s[v7]]; // Recurse iterations
|
59
|
+
const half = size / 2;
|
60
|
+
const vec_s = [new Vector3(center.x - half, center.y + half, center.z - half), new Vector3(center.x - half, center.y + half, center.z + half), new Vector3(center.x - half, center.y - half, center.z + half), new Vector3(center.x - half, center.y - half, center.z - half), new Vector3(center.x + half, center.y - half, center.z - half), new Vector3(center.x + half, center.y - half, center.z + half), new Vector3(center.x + half, center.y + half, center.z + half), new Vector3(center.x + half, center.y + half, center.z - half)];
|
61
|
+
const vec = [vec_s[v0], vec_s[v1], vec_s[v2], vec_s[v3], vec_s[v4], vec_s[v5], vec_s[v6], vec_s[v7]]; // Recurse iterations
|
80
62
|
|
81
63
|
if (--iterations >= 0) {
|
82
|
-
|
64
|
+
const tmp = [];
|
83
65
|
Array.prototype.push.apply(tmp, hilbert3D(vec[0], half, iterations, v0, v3, v4, v7, v6, v5, v2, v1));
|
84
66
|
Array.prototype.push.apply(tmp, hilbert3D(vec[1], half, iterations, v0, v7, v6, v1, v2, v5, v4, v3));
|
85
67
|
Array.prototype.push.apply(tmp, hilbert3D(vec[2], half, iterations, v0, v7, v6, v1, v2, v5, v4, v3));
|
@@ -104,18 +86,16 @@ const hilbert3D = (center, size, iterations, v0, v1, v2, v3, v4, v5, v6, v7) =>
|
|
104
86
|
*/
|
105
87
|
|
106
88
|
|
107
|
-
const gosper = size => {
|
108
|
-
size = size !== undefined ? size : 1;
|
109
|
-
|
89
|
+
const gosper = (size = 1) => {
|
110
90
|
function fractalize(config) {
|
111
|
-
|
112
|
-
|
91
|
+
let output = '';
|
92
|
+
let input = config.axiom;
|
113
93
|
|
114
94
|
for (let i = 0, il = config.steps; 0 <= il ? i < il : i > il; 0 <= il ? i++ : i--) {
|
115
95
|
output = '';
|
116
96
|
|
117
97
|
for (let j = 0, jl = input.length; j < jl; j++) {
|
118
|
-
|
98
|
+
const char = input[j];
|
119
99
|
|
120
100
|
if (char in config.rules) {
|
121
101
|
output += config.rules[char];
|
@@ -131,14 +111,14 @@ const gosper = size => {
|
|
131
111
|
}
|
132
112
|
|
133
113
|
function toPoints(config) {
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
114
|
+
let currX = 0;
|
115
|
+
let currY = 0;
|
116
|
+
let angle = 0;
|
117
|
+
const path = [0, 0, 0];
|
118
|
+
const fractal = config.fractal;
|
139
119
|
|
140
120
|
for (let i = 0, l = fractal.length; i < l; i++) {
|
141
|
-
|
121
|
+
const char = fractal[i];
|
142
122
|
|
143
123
|
if (char === '+') {
|
144
124
|
angle += config.angle;
|
@@ -155,7 +135,7 @@ const gosper = size => {
|
|
155
135
|
} //
|
156
136
|
|
157
137
|
|
158
|
-
|
138
|
+
const gosper = fractalize({
|
159
139
|
axiom: 'A',
|
160
140
|
steps: 4,
|
161
141
|
rules: {
|
@@ -163,7 +143,7 @@ const gosper = size => {
|
|
163
143
|
B: '-FA+BFBF++BF+FA--FA-B'
|
164
144
|
}
|
165
145
|
});
|
166
|
-
|
146
|
+
const points = toPoints({
|
167
147
|
fractal: gosper,
|
168
148
|
size: size,
|
169
149
|
angle: Math.PI / 3 // 60 degrees
|
@@ -172,4 +152,10 @@ const gosper = size => {
|
|
172
152
|
return points;
|
173
153
|
};
|
174
154
|
|
175
|
-
|
155
|
+
const GeometryUtils = {
|
156
|
+
hilbert3D,
|
157
|
+
gosper,
|
158
|
+
hilbert2D
|
159
|
+
};
|
160
|
+
|
161
|
+
export { GeometryUtils };
|