poly-extrude 0.15.0 → 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/polygon.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import { PolygonType, ResultType } from './type';
2
2
  type PolygonsOptions = {
3
3
  depth?: number;
4
+ top?: boolean;
4
5
  };
5
6
  type PolygonsResult = ResultType & {
6
7
  polygons: Array<PolygonType>;
7
8
  };
8
9
  export declare function extrudePolygons(polygons: Array<PolygonType>, options?: PolygonsOptions): PolygonsResult;
10
+ export declare function polygons(polygons: any, options?: {}): PolygonsResult;
9
11
  export {};
package/dist/polygon.js CHANGED
@@ -1,27 +1,13 @@
1
1
  import earcut from 'earcut';
2
- import { generateNormal, generateSideWallUV, isClockwise, merge } from './util';
2
+ import { generateNormal, generateSideWallUV, merge, calPolygonPointsCount, validatePolygon } from './util';
3
3
  export function extrudePolygons(polygons, options) {
4
- options = Object.assign({}, { depth: 2 }, options);
4
+ options = Object.assign({}, { depth: 2, top: true }, options);
5
5
  const results = polygons.map(polygon => {
6
- for (let i = 0, len = polygon.length; i < len; i++) {
7
- const ring = polygon[i];
8
- validateRing(ring);
9
- if (i === 0) {
10
- if (!isClockwise(ring)) {
11
- polygon[i] = ring.reverse();
12
- }
13
- }
14
- else if (isClockwise(ring)) {
15
- polygon[i] = ring.reverse();
16
- }
17
- if (isClosedRing(ring)) {
18
- ring.splice(ring.length - 1, 1);
19
- }
20
- }
6
+ validatePolygon(polygon);
21
7
  const result = flatVertices(polygon, options);
22
8
  result.polygon = polygon;
23
9
  const triangles = earcut(result.flatVertices, result.holes, 2);
24
- generateTopAndBottom(result, triangles);
10
+ generateTopAndBottom(result, triangles, options);
25
11
  generateSides(result, options);
26
12
  result.position = new Float32Array(result.points);
27
13
  result.indices = new Uint32Array(result.indices);
@@ -33,18 +19,24 @@ export function extrudePolygons(polygons, options) {
33
19
  result.polygons = polygons;
34
20
  return result;
35
21
  }
36
- function generateTopAndBottom(result, triangles) {
22
+ function generateTopAndBottom(result, triangles, options) {
37
23
  const indices = [];
38
24
  const { count } = result;
25
+ const top = options.top;
39
26
  for (let i = 0, len = triangles.length; i < len; i += 3) {
40
27
  // top
41
28
  const a = triangles[i], b = triangles[i + 1], c = triangles[i + 2];
42
- indices[i] = a;
43
- indices[i + 1] = b;
44
- indices[i + 2] = c;
29
+ if (top) {
30
+ indices[i] = a;
31
+ indices[i + 1] = b;
32
+ indices[i + 2] = c;
33
+ }
45
34
  // bottom
46
- const idx = len + i;
35
+ let idx = len + i;
47
36
  const a1 = count + a, b1 = count + b, c1 = count + c;
37
+ if (!top) {
38
+ idx = i;
39
+ }
48
40
  indices[idx] = a1;
49
41
  indices[idx + 1] = b1;
50
42
  indices[idx + 2] = c1;
@@ -96,16 +88,6 @@ function generateSides(result, options) {
96
88
  }
97
89
  }
98
90
  }
99
- function calPolygonPointsCount(polygon) {
100
- let count = 0;
101
- let i = 0;
102
- const len = polygon.length;
103
- while (i < len) {
104
- count += (polygon[i].length);
105
- i++;
106
- }
107
- return count;
108
- }
109
91
  function flatVertices(polygon, options) {
110
92
  const count = calPolygonPointsCount(polygon);
111
93
  const len = polygon.length;
@@ -150,14 +132,48 @@ function flatVertices(polygon, options) {
150
132
  uv
151
133
  };
152
134
  }
153
- function validateRing(ring) {
154
- if (!isClosedRing(ring)) {
155
- ring.push(ring[0]);
135
+ function simplePolygon(polygon, options = {}) {
136
+ const flatVertices = [], holes = [];
137
+ let pIndex = -1, aIndex = -1, uvIndex = -1;
138
+ const points = [], uv = [];
139
+ for (let i = 0, len = polygon.length; i < len; i++) {
140
+ const ring = polygon[i];
141
+ if (i > 0) {
142
+ holes.push(flatVertices.length / 2);
143
+ }
144
+ for (let j = 0, len1 = ring.length; j < len1; j++) {
145
+ const c = ring[j];
146
+ flatVertices[++pIndex] = c[0];
147
+ flatVertices[++pIndex] = c[1];
148
+ points[++aIndex] = c[0];
149
+ points[++aIndex] = c[1];
150
+ points[++aIndex] = c[2] || 0;
151
+ uv[++uvIndex] = c[0];
152
+ uv[++uvIndex] = c[1];
153
+ }
156
154
  }
155
+ const triangles = earcut(flatVertices, holes, 2);
156
+ const normal = generateNormal(triangles, points);
157
+ return {
158
+ normal,
159
+ uv,
160
+ points,
161
+ indices: triangles
162
+ };
157
163
  }
158
- function isClosedRing(ring) {
159
- const len = ring.length;
160
- const [x1, y1] = ring[0], [x2, y2] = ring[len - 1];
161
- return (x1 === x2 && y1 === y2);
164
+ export function polygons(polygons, options = {}) {
165
+ const results = polygons.map(polygon => {
166
+ validatePolygon(polygon);
167
+ const result = simplePolygon(polygon, options);
168
+ result.polygon = polygon;
169
+ result.position = new Float32Array(result.points);
170
+ result.indices = new Uint32Array(result.indices);
171
+ result.uv = new Float32Array(result.uv);
172
+ result.normal = new Float32Array(result.normal);
173
+ return result;
174
+ });
175
+ const result = merge(results);
176
+ result.polygons = polygons;
177
+ return result;
162
178
  }
163
179
  //# sourceMappingURL=polygon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"polygon.js","sourceRoot":"","sources":["../src/polygon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"polygon.js","sourceRoot":"","sources":["../src/polygon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { PolygonType, PolylineType, ResultType } from './type';
2
+ type PolygonsOnPathOptions = {
3
+ extrudePath: PolylineType;
4
+ openEnd?: boolean;
5
+ openEndUV?: boolean;
6
+ };
7
+ type PolygonsOnPathResult = ResultType & {
8
+ polygons: Array<PolygonType>;
9
+ };
10
+ export declare function extrudePolygonsOnPath(polygons: Array<PolygonType>, options?: PolygonsOnPathOptions): PolygonsOnPathResult;
11
+ export {};
@@ -0,0 +1,262 @@
1
+ import { Vector3 } from './math/Vector3';
2
+ import { PathPointList } from './path/PathPointList';
3
+ import { generateNormal, isClockwise, line2Vectors, merge, validateRing, isClosedRing, calPolygonPointsCount, getPolygonsBBOX, mergeArray } from './util';
4
+ import earcut from 'earcut';
5
+ const UP = new Vector3(0, 0, 1);
6
+ const normalDir = new Vector3();
7
+ export function extrudePolygonsOnPath(polygons, options) {
8
+ options = Object.assign({}, { openEnd: false, openEndUV: true }, options);
9
+ const { extrudePath, openEnd } = options;
10
+ if (!extrudePath || !Array.isArray(extrudePath) || extrudePath.length < 2) {
11
+ console.error('extrudePath is error:', extrudePath);
12
+ return null;
13
+ }
14
+ const bbox = getPolygonsBBOX(polygons);
15
+ const [minx, miny, maxx, maxy] = bbox;
16
+ const center = [(minx + maxx) / 2, (miny + maxy) / 2];
17
+ const points = line2Vectors(extrudePath);
18
+ const pathPointList = new PathPointList();
19
+ //@ts-ignore
20
+ pathPointList.set(points, 0, options.cornerSplit, UP);
21
+ const results = polygons.map(polygon => {
22
+ for (let i = 0, len = polygon.length; i < len; i++) {
23
+ const ring = polygon[i];
24
+ validateRing(ring);
25
+ if (i === 0) {
26
+ if (isClockwise(ring)) {
27
+ polygon[i] = ring.reverse();
28
+ }
29
+ }
30
+ else if (!isClockwise(ring)) {
31
+ polygon[i] = ring.reverse();
32
+ }
33
+ }
34
+ const result = generatePolygonOnPathVertexData(pathPointList, polygon, center);
35
+ if (!openEnd) {
36
+ generateStartAndEnd(result, polygon, options);
37
+ }
38
+ result.polygon = polygon;
39
+ result.position = new Float32Array(result.points);
40
+ result.indices = new Uint32Array(result.indices);
41
+ result.uv = new Float32Array(result.uv);
42
+ result.normal = new Float32Array(result.normal);
43
+ return result;
44
+ });
45
+ const result = merge(results);
46
+ result.polygons = polygons;
47
+ return result;
48
+ }
49
+ function getAngle(c1, c2) {
50
+ const [x1, y1] = c1;
51
+ const [x2, y2] = c2;
52
+ const dy = y2 - y1;
53
+ const dx = x2 - x1;
54
+ return Math.atan2(dy, dx);
55
+ }
56
+ function transformPolygon(polygon, center) {
57
+ const [cx, cy] = center;
58
+ const list = [];
59
+ polygon.forEach((ring, rIndex) => {
60
+ const data = [];
61
+ let totalDistance = 0;
62
+ let tempPoint;
63
+ for (let i = 0, len = ring.length; i < len; i++) {
64
+ const p = ring[i];
65
+ const x1 = p[0], y1 = p[1];
66
+ const offsetx = x1 - cx, offsety = y1 - cy;
67
+ let distance = 0;
68
+ if (i > 0) {
69
+ const x2 = tempPoint[0], y2 = tempPoint[1];
70
+ const dx = x2 - x1, dy = y2 - y1;
71
+ distance = Math.sqrt(dx * dx + dy * dy) + totalDistance;
72
+ totalDistance = distance;
73
+ }
74
+ data[i] = {
75
+ // dx,
76
+ // dy,
77
+ // dz: 0,
78
+ distance,
79
+ radius: Math.sqrt(offsetx * offsetx + offsety * offsety),
80
+ angle: getAngle(center, p)
81
+ };
82
+ tempPoint = p;
83
+ }
84
+ list[rIndex] = {
85
+ ring: data,
86
+ ringLen: totalDistance
87
+ };
88
+ });
89
+ return list;
90
+ }
91
+ const TEMP_VECTOR3 = new Vector3(0, 0, 0);
92
+ // Vertex Data Generate Functions
93
+ // code copy from https://github.com/shawn0326/three.path/blob/master/src/PathGeometry.js
94
+ function generatePolygonOnPathVertexData(pathPointList, polygon, center) {
95
+ const tpolygon = transformPolygon(polygon, center);
96
+ // let count = 0;
97
+ // modify data
98
+ const points = [];
99
+ const normal = [];
100
+ const uv = [];
101
+ // const uv2 = [];
102
+ const indices = [];
103
+ let verticesCount = 0;
104
+ let pIndex = -1;
105
+ let nIndex = -1;
106
+ let uIndex = -1;
107
+ let iIndex = -1;
108
+ const startPoints = [], endPoints = [];
109
+ function addVertices(pathPoint, ring, ringLen, first, end) {
110
+ const uvDist = pathPoint.dist / ringLen;
111
+ const radialSegments = ring.length;
112
+ // const startRad = ring[0].angle;
113
+ for (let i = 0; i < radialSegments; i++) {
114
+ const item = ring[i];
115
+ if (!item) {
116
+ continue;
117
+ }
118
+ const isLast = i === radialSegments - 1;
119
+ const angle = item.angle;
120
+ const radius = item.radius;
121
+ const distance = item.distance;
122
+ normalDir.copy(pathPoint.up).applyAxisAngle(pathPoint.dir, angle).normalize();
123
+ const v = TEMP_VECTOR3.copy(pathPoint.up);
124
+ v.applyAxisAngle(pathPoint.dir, angle);
125
+ v.x *= radius;
126
+ v.y *= radius;
127
+ v.z *= radius;
128
+ points[++pIndex] = pathPoint.pos.x + v.x;
129
+ points[++pIndex] = pathPoint.pos.y + v.y;
130
+ points[++pIndex] = pathPoint.pos.z + v.z;
131
+ // if (i === 0 || i === radialSegments - 1) {
132
+ // console.log(i, radialSegments, v.x, v.y, v.z);
133
+ // }
134
+ normal[++nIndex] = normalDir.x;
135
+ normal[++nIndex] = normalDir.y;
136
+ normal[++nIndex] = normalDir.z;
137
+ uv[++uIndex] = uvDist;
138
+ uv[++uIndex] = distance / ringLen;
139
+ verticesCount++;
140
+ if (first && !isLast) {
141
+ let index = startPoints.length - 1;
142
+ startPoints[++index] = pathPoint.pos.x + v.x;
143
+ startPoints[++index] = pathPoint.pos.y + v.y;
144
+ startPoints[++index] = pathPoint.pos.z + v.z;
145
+ }
146
+ if (end && !isLast) {
147
+ let index = endPoints.length - 1;
148
+ endPoints[++index] = pathPoint.pos.x + v.x;
149
+ endPoints[++index] = pathPoint.pos.y + v.y;
150
+ endPoints[++index] = pathPoint.pos.z + v.z;
151
+ }
152
+ }
153
+ if (!first) {
154
+ const begin1 = verticesCount - (radialSegments) * 2;
155
+ const begin2 = verticesCount - (radialSegments);
156
+ for (let i = 0; i < radialSegments; i++) {
157
+ indices[++iIndex] = begin2 + i;
158
+ indices[++iIndex] = begin1 + i;
159
+ indices[++iIndex] = begin1 + i + 1;
160
+ indices[++iIndex] = begin2 + i;
161
+ indices[++iIndex] = begin1 + i + 1;
162
+ indices[++iIndex] = begin2 + i + 1;
163
+ }
164
+ }
165
+ }
166
+ const polygonLen = tpolygon[0].ringLen;
167
+ tpolygon.forEach(item => {
168
+ for (let i = 0; i < pathPointList.count; i++) {
169
+ const pathPoint = pathPointList.array[i];
170
+ const { ring, ringLen } = item;
171
+ addVertices(pathPoint, ring, ringLen, i === 0, i === pathPointList.count - 1);
172
+ }
173
+ });
174
+ return {
175
+ points,
176
+ normal,
177
+ uv,
178
+ // uv2,
179
+ indices,
180
+ startPoints,
181
+ endPoints,
182
+ polygonLen
183
+ // count
184
+ };
185
+ }
186
+ function generateStartAndEnd(result, polygon, options) {
187
+ const { openEndUV } = options;
188
+ for (let i = 0, len = polygon.length; i < len; i++) {
189
+ const ring = polygon[i];
190
+ if (isClosedRing(ring)) {
191
+ ring.splice(ring.length - 1, 1);
192
+ }
193
+ }
194
+ const pointCount = calPolygonPointsCount(polygon);
195
+ const flatVertices = [], holes = [];
196
+ let pIndex = -1;
197
+ for (let i = 0, len = polygon.length; i < len; i++) {
198
+ const ring = polygon[i];
199
+ if (i > 0) {
200
+ holes.push(flatVertices.length / 2);
201
+ }
202
+ for (let j = 0, len1 = ring.length; j < len1; j++) {
203
+ const c = ring[j];
204
+ flatVertices[++pIndex] = c[0];
205
+ flatVertices[++pIndex] = c[1];
206
+ }
207
+ }
208
+ const triangles = earcut(flatVertices, holes, 2);
209
+ const { points, normal, uv, indices, startPoints, endPoints, polygonLen } = result;
210
+ pIndex = 0;
211
+ let uIndex = 0;
212
+ const aPoints1 = [], auv1 = [], aPoints2 = [], auv2 = [];
213
+ for (let i = 0; i < pointCount; i++) {
214
+ const idx = i * 3;
215
+ const x = startPoints[idx];
216
+ const y = startPoints[idx + 1];
217
+ const z = startPoints[idx + 2];
218
+ aPoints1[pIndex] = x;
219
+ aPoints1[pIndex + 1] = y;
220
+ aPoints1[pIndex + 2] = z;
221
+ if (openEndUV) {
222
+ auv1[uIndex] = y / polygonLen;
223
+ auv1[uIndex + 1] = z / polygonLen;
224
+ }
225
+ else {
226
+ auv1[uIndex] = 0;
227
+ auv1[uIndex + 1] = 0;
228
+ }
229
+ const x1 = endPoints[idx];
230
+ const y1 = endPoints[idx + 1];
231
+ const z1 = endPoints[idx + 2];
232
+ aPoints2[pIndex] = x1;
233
+ aPoints2[pIndex + 1] = y1;
234
+ aPoints2[pIndex + 2] = z1;
235
+ if (openEndUV) {
236
+ auv2[uIndex] = y1 / polygonLen;
237
+ auv2[uIndex + 1] = z1 / polygonLen;
238
+ }
239
+ else {
240
+ auv2[uIndex] = 0;
241
+ auv2[uIndex + 1] = 0;
242
+ }
243
+ pIndex += 3;
244
+ uIndex += 2;
245
+ }
246
+ const indexOffset = points.length / 3;
247
+ const indexs = [];
248
+ for (let i = 0, len = triangles.length; i < len; i++) {
249
+ indexs[i] = triangles[i] + indexOffset;
250
+ indexs[i + len] = triangles[i] + indexOffset + pointCount;
251
+ }
252
+ const anormal1 = generateNormal(triangles, aPoints1);
253
+ const anormal2 = generateNormal(triangles, aPoints2);
254
+ mergeArray(points, aPoints1);
255
+ mergeArray(points, aPoints2);
256
+ mergeArray(uv, auv1);
257
+ mergeArray(uv, auv2);
258
+ mergeArray(normal, anormal1);
259
+ mergeArray(normal, anormal2);
260
+ mergeArray(indices, indexs);
261
+ }
262
+ //# sourceMappingURL=polygonpath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polygonpath.js","sourceRoot":"","sources":["../src/polygonpath.ts"],"names":[],"mappings":"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"}
package/dist/util.d.ts CHANGED
@@ -1,11 +1,17 @@
1
1
  import { Vector3 } from './math/Vector3';
2
- import { PolylineType, ResultType } from './type';
2
+ import { PolygonType, PolylineType, ResultType } from './type';
3
+ export declare function mergeArray(array1: any, array2: any): void;
3
4
  /**
4
5
  * https://github.com/Turfjs/turf/blob/master/packages/turf-boolean-clockwise/index.ts
5
6
  * @param {*} ring
6
7
  * @returns
7
8
  */
8
9
  export declare function isClockwise(ring: PolylineType): boolean;
10
+ export declare function validateRing(ring: PolylineType): void;
11
+ export declare function isClosedRing(ring: PolylineType): boolean;
12
+ export declare function calPolygonPointsCount(polygon: PolygonType): number;
13
+ export declare function getPolygonsBBOX(polygons: any, bbox?: any): any;
14
+ export declare function validatePolygon(polygon: PolygonType): void;
9
15
  export declare function generateNormal(indices: any, position: any): Float32Array<any>;
10
16
  export declare function merge(results: Array<ResultType>): {
11
17
  position: Float32Array<ArrayBuffer>;
package/dist/util.js CHANGED
@@ -1,4 +1,10 @@
1
1
  import { Vector3 } from './math/Vector3';
2
+ export function mergeArray(array1, array2) {
3
+ let index = array1.length - 1;
4
+ for (let i = 0, len = array2.length; i < len; i++) {
5
+ array1[++index] = array2[i];
6
+ }
7
+ }
2
8
  /**
3
9
  * https://github.com/Turfjs/turf/blob/master/packages/turf-boolean-clockwise/index.ts
4
10
  * @param {*} ring
@@ -18,6 +24,63 @@ export function isClockwise(ring) {
18
24
  }
19
25
  return sum > 0;
20
26
  }
27
+ export function validateRing(ring) {
28
+ if (!isClosedRing(ring)) {
29
+ ring.push(ring[0]);
30
+ }
31
+ }
32
+ export function isClosedRing(ring) {
33
+ const len = ring.length;
34
+ const [x1, y1] = ring[0], [x2, y2] = ring[len - 1];
35
+ return (x1 === x2 && y1 === y2);
36
+ }
37
+ export function calPolygonPointsCount(polygon) {
38
+ let count = 0;
39
+ let i = 0;
40
+ const len = polygon.length;
41
+ while (i < len) {
42
+ count += (polygon[i].length);
43
+ i++;
44
+ }
45
+ return count;
46
+ }
47
+ export function getPolygonsBBOX(polygons, bbox) {
48
+ bbox = bbox || [Infinity, Infinity, -Infinity, -Infinity];
49
+ for (let i = 0, len = polygons.length; i < len; i++) {
50
+ const p = polygons[i];
51
+ if (Array.isArray(p[0][0])) {
52
+ getPolygonsBBOX(p, bbox);
53
+ }
54
+ else {
55
+ for (let j = 0, len1 = p.length; j < len1; j++) {
56
+ const c = p[j];
57
+ const [x, y] = c;
58
+ bbox[0] = Math.min(bbox[0], x);
59
+ bbox[1] = Math.min(bbox[1], y);
60
+ bbox[2] = Math.max(bbox[2], x);
61
+ bbox[3] = Math.max(bbox[3], y);
62
+ }
63
+ }
64
+ }
65
+ return bbox;
66
+ }
67
+ export function validatePolygon(polygon) {
68
+ for (let i = 0, len = polygon.length; i < len; i++) {
69
+ const ring = polygon[i];
70
+ validateRing(ring);
71
+ if (i === 0) {
72
+ if (!isClockwise(ring)) {
73
+ polygon[i] = ring.reverse();
74
+ }
75
+ }
76
+ else if (isClockwise(ring)) {
77
+ polygon[i] = ring.reverse();
78
+ }
79
+ if (isClosedRing(ring)) {
80
+ ring.splice(ring.length - 1, 1);
81
+ }
82
+ }
83
+ }
21
84
  function v3Sub(out, v1, v2) {
22
85
  out[0] = v1[0] - v2[0];
23
86
  out[1] = v1[1] - v2[1];
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poly-extrude",
3
- "version": "0.15.0",
3
+ "version": "0.17.0",
4
4
  "description": "extrude polyline/polygon etc",
5
5
  "main": "dist/poly-extrude.js",
6
6
  "module": "dist/poly-extrude.mjs",
@@ -43,7 +43,7 @@
43
43
  "tslib": "^2.8.1"
44
44
  },
45
45
  "dependencies": {
46
- "earcut": "^2.2.4"
46
+ "earcut": "^3.0.1"
47
47
  },
48
48
  "files": [
49
49
  "dist/",