poly-extrude 0.13.0 → 0.15.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.
Files changed (68) hide show
  1. package/dist/cylinder.d.ts +11 -0
  2. package/{src → dist}/cylinder.js +108 -111
  3. package/dist/cylinder.js.map +1 -0
  4. package/dist/index.d.ts +8 -0
  5. package/dist/index.js +9 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/math/Curve.d.ts +41 -0
  8. package/dist/math/Curve.js +142 -0
  9. package/dist/math/Curve.js.map +1 -0
  10. package/dist/math/Interpolations.d.ts +8 -0
  11. package/dist/math/Interpolations.js +48 -0
  12. package/dist/math/Interpolations.js.map +1 -0
  13. package/dist/math/Matrix4.d.ts +8 -0
  14. package/dist/math/Matrix4.js +582 -0
  15. package/dist/math/Matrix4.js.map +1 -0
  16. package/dist/math/QuadraticBezierCurve3.d.ts +10 -0
  17. package/dist/math/QuadraticBezierCurve3.js +22 -0
  18. package/dist/math/QuadraticBezierCurve3.js.map +1 -0
  19. package/dist/math/Quaternion.d.ts +46 -0
  20. package/dist/math/Quaternion.js +415 -0
  21. package/dist/math/Quaternion.js.map +1 -0
  22. package/dist/math/Vector3.d.ts +42 -0
  23. package/dist/math/Vector3.js +403 -0
  24. package/dist/math/Vector3.js.map +1 -0
  25. package/dist/path/PathPoint.d.ts +15 -0
  26. package/dist/path/PathPoint.js +35 -0
  27. package/dist/path/PathPoint.js.map +1 -0
  28. package/dist/path/PathPointList.d.ts +27 -0
  29. package/dist/path/PathPointList.js +212 -0
  30. package/dist/path/PathPointList.js.map +1 -0
  31. package/dist/path.d.ts +11 -0
  32. package/{src → dist}/path.js +334 -360
  33. package/dist/path.js.map +1 -0
  34. package/dist/plane.d.ts +2 -0
  35. package/{src → dist}/plane.js +57 -58
  36. package/dist/plane.js.map +1 -0
  37. package/dist/poly-extrude.js +1288 -1581
  38. package/dist/poly-extrude.js.map +1 -1
  39. package/dist/poly-extrude.min.js +2 -2
  40. package/dist/poly-extrude.mjs +1287 -1582
  41. package/dist/poly-extrude.mjs.map +1 -0
  42. package/dist/polygon.d.ts +9 -0
  43. package/{src → dist}/polygon.js +163 -179
  44. package/dist/polygon.js.map +1 -0
  45. package/dist/polyline.d.ts +24 -0
  46. package/{src → dist}/polyline.js +420 -456
  47. package/dist/polyline.js.map +1 -0
  48. package/dist/tube.d.ts +12 -0
  49. package/{src → dist}/tube.js +124 -142
  50. package/dist/tube.js.map +1 -0
  51. package/dist/type.d.ts +9 -0
  52. package/dist/type.js +2 -0
  53. package/dist/type.js.map +1 -0
  54. package/dist/util.d.ts +21 -0
  55. package/{src → dist}/util.js +217 -242
  56. package/dist/util.js.map +1 -0
  57. package/package.json +10 -5
  58. package/readme.md +12 -2
  59. package/src/cylinder.ts +124 -0
  60. package/src/index.ts +13 -0
  61. package/src/path.ts +385 -0
  62. package/src/plane.ts +60 -0
  63. package/src/polygon.ts +189 -0
  64. package/src/polyline.ts +473 -0
  65. package/src/tube.ts +155 -0
  66. package/src/type.ts +9 -0
  67. package/src/util.ts +243 -0
  68. package/index.js +0 -7
@@ -0,0 +1,212 @@
1
+ /* eslint-disable no-tabs */
2
+ // code copy from https://github.com/shawn0326/three.path/blob/master/src/PathPointList.js
3
+ import { Matrix4 } from '../math/Matrix4.js';
4
+ import { QuadraticBezierCurve3 } from '../math/QuadraticBezierCurve3.js';
5
+ import { Vector3 } from '../math/Vector3.js';
6
+ import { PathPoint } from './PathPoint.js';
7
+ const helpVec3_1 = new Vector3();
8
+ const helpVec3_2 = new Vector3();
9
+ const helpVec3_3 = new Vector3();
10
+ const helpMat4 = new Matrix4();
11
+ const helpCurve = new QuadraticBezierCurve3();
12
+ function _getCornerBezierCurve(last, current, next, cornerRadius, firstCorner, out) {
13
+ const lastDir = helpVec3_1.subVectors(current, last);
14
+ const nextDir = helpVec3_2.subVectors(next, current);
15
+ const lastDirLength = lastDir.length();
16
+ const nextDirLength = nextDir.length();
17
+ lastDir.normalize();
18
+ nextDir.normalize();
19
+ // cornerRadius can not bigger then lineDistance / 2, auto fix this
20
+ const v0Dist = Math.min((firstCorner ? lastDirLength / 2 : lastDirLength) * 0.999999, cornerRadius);
21
+ out.v0.copy(current).sub(lastDir.multiplyScalar(v0Dist));
22
+ out.v1.copy(current);
23
+ const v2Dist = Math.min(nextDirLength / 2 * 0.999999, cornerRadius);
24
+ out.v2.copy(current).add(nextDir.multiplyScalar(v2Dist));
25
+ return out;
26
+ }
27
+ /**
28
+ * PathPointList
29
+ * input points to generate a PathPoint list
30
+ */
31
+ class PathPointList {
32
+ constructor() {
33
+ this.array = []; // path point array
34
+ this.count = 0;
35
+ }
36
+ /**
37
+ * Set points
38
+ * @param {THREE.Vector3[]} points key points array
39
+ * @param {number} cornerRadius? the corner radius. set 0 to disable round corner. default is 0.1
40
+ * @param {number} cornerSplit? the corner split. default is 10.
41
+ * @param {number} up? force up. default is auto up (calculate by tangent).
42
+ * @param {boolean} close? close path. default is false.
43
+ */
44
+ set(points, cornerRadius = 0.1, cornerSplit = 10, up = null, close = false) {
45
+ points = points.slice(0);
46
+ if (points.length < 2) {
47
+ console.warn('PathPointList: points length less than 2.');
48
+ this.count = 0;
49
+ return;
50
+ }
51
+ // Auto close
52
+ if (close && !points[0].equals(points[points.length - 1])) {
53
+ points.push(new Vector3().copy(points[0]));
54
+ }
55
+ // Generate path point list
56
+ for (let i = 0, l = points.length; i < l; i++) {
57
+ if (i === 0) {
58
+ this._start(points[i], points[i + 1], up);
59
+ }
60
+ else if (i === l - 1) {
61
+ if (close) {
62
+ // Connect end point and start point
63
+ this._corner(points[i], points[1], cornerRadius, cornerSplit, up);
64
+ // Fix start point
65
+ const dist = this.array[0].dist; // should not copy dist
66
+ this.array[0].copy(this.array[this.count - 1]);
67
+ this.array[0].dist = dist;
68
+ }
69
+ else {
70
+ this._end(points[i]);
71
+ }
72
+ }
73
+ else {
74
+ this._corner(points[i], points[i + 1], cornerRadius, cornerSplit, up);
75
+ }
76
+ }
77
+ }
78
+ /**
79
+ * Get distance of this path
80
+ * @return {number}
81
+ */
82
+ distance() {
83
+ if (this.count > 0) {
84
+ return this.array[this.count - 1].dist;
85
+ }
86
+ return 0;
87
+ }
88
+ _getByIndex(index) {
89
+ if (!this.array[index]) {
90
+ this.array[index] = new PathPoint();
91
+ }
92
+ return this.array[index];
93
+ }
94
+ _start(current, next, up) {
95
+ this.count = 0;
96
+ const point = this._getByIndex(this.count);
97
+ point.pos.copy(current);
98
+ point.dir.subVectors(next, current);
99
+ // init start up dir
100
+ if (up) {
101
+ point.up.copy(up);
102
+ }
103
+ else {
104
+ // select an initial normal vector perpendicular to the first tangent vector
105
+ let min = Number.MAX_VALUE;
106
+ const tx = Math.abs(point.dir.x);
107
+ const ty = Math.abs(point.dir.y);
108
+ const tz = Math.abs(point.dir.z);
109
+ if (tx < min) {
110
+ min = tx;
111
+ point.up.set(1, 0, 0);
112
+ }
113
+ if (ty < min) {
114
+ min = ty;
115
+ point.up.set(0, 1, 0);
116
+ }
117
+ if (tz < min) {
118
+ point.up.set(0, 0, 1);
119
+ }
120
+ }
121
+ point.right.crossVectors(point.dir, point.up).normalize();
122
+ point.up.crossVectors(point.right, point.dir).normalize();
123
+ point.dist = 0;
124
+ point.widthScale = 1;
125
+ point.sharp = false;
126
+ point.dir.normalize();
127
+ this.count++;
128
+ }
129
+ _end(current) {
130
+ const lastPoint = this.array[this.count - 1];
131
+ const point = this._getByIndex(this.count);
132
+ point.pos.copy(current);
133
+ point.dir.subVectors(current, lastPoint.pos);
134
+ const dist = point.dir.length();
135
+ point.dir.normalize();
136
+ point.up.copy(lastPoint.up); // copy last up
137
+ const vec = helpVec3_1.crossVectors(lastPoint.dir, point.dir);
138
+ if (vec.length() > Number.EPSILON) {
139
+ vec.normalize();
140
+ const theta = Math.acos(Math.min(Math.max(lastPoint.dir.dot(point.dir), -1), 1)); // clamp for floating pt errors
141
+ point.up.applyMatrix4(helpMat4.makeRotationAxis(vec, theta));
142
+ }
143
+ point.right.crossVectors(point.dir, point.up).normalize();
144
+ point.dist = lastPoint.dist + dist;
145
+ point.widthScale = 1;
146
+ point.sharp = false;
147
+ this.count++;
148
+ }
149
+ _corner(current, next, cornerRadius, cornerSplit, up) {
150
+ if (cornerRadius > 0 && cornerSplit > 0) {
151
+ const lastPoint = this.array[this.count - 1];
152
+ const curve = _getCornerBezierCurve(lastPoint.pos, current, next, cornerRadius, (this.count - 1) === 0, helpCurve);
153
+ const samplerPoints = curve.getPoints(cornerSplit); // TODO optimize
154
+ for (let f = 0; f < cornerSplit; f++) {
155
+ this._sharpCorner(samplerPoints[f], samplerPoints[f + 1], up, f === 0 ? 1 : 0);
156
+ }
157
+ if (!samplerPoints[cornerSplit].equals(next)) {
158
+ this._sharpCorner(samplerPoints[cornerSplit], next, up, 2);
159
+ }
160
+ }
161
+ else {
162
+ this._sharpCorner(current, next, up, 0, true);
163
+ }
164
+ }
165
+ // dirType: 0 - use middle dir / 1 - use last dir / 2- use next dir
166
+ _sharpCorner(current, next, up, dirType = 0, sharp = false) {
167
+ const lastPoint = this.array[this.count - 1];
168
+ const point = this._getByIndex(this.count);
169
+ const lastDir = helpVec3_1.subVectors(current, lastPoint.pos);
170
+ const nextDir = helpVec3_2.subVectors(next, current);
171
+ const lastDirLength = lastDir.length();
172
+ lastDir.normalize();
173
+ nextDir.normalize();
174
+ point.pos.copy(current);
175
+ if (dirType === 1) {
176
+ point.dir.copy(lastDir);
177
+ }
178
+ else if (dirType === 2) {
179
+ point.dir.copy(nextDir);
180
+ }
181
+ else {
182
+ point.dir.addVectors(lastDir, nextDir);
183
+ point.dir.normalize();
184
+ }
185
+ if (up) {
186
+ if (point.dir.dot(up) === 1) {
187
+ point.right.crossVectors(nextDir, up).normalize();
188
+ }
189
+ else {
190
+ point.right.crossVectors(point.dir, up).normalize();
191
+ }
192
+ point.up.crossVectors(point.right, point.dir).normalize();
193
+ }
194
+ else {
195
+ point.up.copy(lastPoint.up);
196
+ const vec = helpVec3_3.crossVectors(lastPoint.dir, point.dir);
197
+ if (vec.length() > Number.EPSILON) {
198
+ vec.normalize();
199
+ const theta = Math.acos(Math.min(Math.max(lastPoint.dir.dot(point.dir), -1), 1)); // clamp for floating pt errors
200
+ point.up.applyMatrix4(helpMat4.makeRotationAxis(vec, theta));
201
+ }
202
+ point.right.crossVectors(point.dir, point.up).normalize();
203
+ }
204
+ point.dist = lastPoint.dist + lastDirLength;
205
+ const _cos = lastDir.dot(nextDir);
206
+ point.widthScale = Math.min(1 / Math.sqrt((1 + _cos) / 2), 1.415) || 1;
207
+ point.sharp = (Math.abs(_cos - 1) > 0.05) && sharp;
208
+ this.count++;
209
+ }
210
+ }
211
+ export { PathPointList };
212
+ //# sourceMappingURL=PathPointList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PathPointList.js","sourceRoot":"","sources":["../../src/path/PathPointList.js"],"names":[],"mappings":"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"}
package/dist/path.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ import { PolylineType, ResultType } from './type';
2
+ type PathsOptions = {
3
+ lineWidth?: number;
4
+ cornerRadius?: number;
5
+ cornerSplit?: number;
6
+ };
7
+ type PathsResult = ResultType & {
8
+ lines: Array<PolylineType>;
9
+ };
10
+ export declare function expandPaths(lines: Array<PolylineType>, options?: PathsOptions): PathsResult;
11
+ export {};