poly-extrude 0.0.1 → 0.0.4

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 (40) hide show
  1. package/dist/poly-extrude.js +97 -81
  2. package/dist/poly-extrude.js.map +1 -1
  3. package/dist/poly-extrude.min.js +2 -2
  4. package/dist/poly-extrude.mjs +97 -81
  5. package/package.json +7 -2
  6. package/src/polygon.js +12 -12
  7. package/src/polyline.js +21 -8
  8. package/src/util.js +27 -40
  9. package/.eslintignore +0 -12
  10. package/.eslintrc.js +0 -34
  11. package/.vscode/settings.json +0 -3
  12. package/babel.config.js +0 -12
  13. package/pnpm-lock.yaml +0 -3054
  14. package/rollup.config.js +0 -108
  15. package/test/buildings.html +0 -77
  16. package/test/data/a.png +0 -0
  17. package/test/data/building-texture-dark.jpg +0 -0
  18. package/test/data/building.geojson +0 -1118
  19. package/test/data/buildings-ny.geojson +0 -2845
  20. package/test/data/buildings.geojson +0 -1
  21. package/test/data/free-line.geojson +0 -1
  22. package/test/data/line.geojson +0 -1
  23. package/test/data/polygon.geojson +0 -1
  24. package/test/data/simple-hole.geojson +0 -1
  25. package/test/data/simple-line.geojson +0 -45
  26. package/test/data/simple.geojson +0 -1
  27. package/test/data/street.geojson +0 -1
  28. package/test/data//345/244/252/346/271/226.geojson +0 -8
  29. package/test/data//350/210/237/345/261/261/345/270/202.geojson +0 -1
  30. package/test/data//350/213/217/345/267/236.geojson +0 -1
  31. package/test/data//351/204/261/351/230/263/346/271/226.geojson +0 -1
  32. package/test/line-draw.html +0 -100
  33. package/test/line-uv.html +0 -69
  34. package/test/line.html +0 -56
  35. package/test/multi-polygon.html +0 -53
  36. package/test/ny-building.html +0 -67
  37. package/test/simple.html +0 -61
  38. package/test/street.html +0 -52
  39. package/test/util.js +0 -131
  40. package/test/uv.html +0 -77
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * poly-extrude v0.0.1
2
+ * poly-extrude v0.0.4
3
3
  */
4
4
  (function (global, factory) {
5
5
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
@@ -731,8 +731,9 @@
731
731
  var n = [];
732
732
  var len = indices.length;
733
733
  var normals = new Float32Array(position.length);
734
+ var f = 0;
734
735
 
735
- for (var f = 0; f < len; f += 3) {
736
+ while (f < len) {
736
737
  // const i1 = indices[f++] * 3;
737
738
  // const i2 = indices[f++] * 3;
738
739
  // const i3 = indices[f++] * 3;
@@ -747,30 +748,30 @@
747
748
  i3 = c * 3;
748
749
  v3Set(p1, position[i1], position[i1 + 1], position[i1 + 2]);
749
750
  v3Set(p2, position[i2], position[i2 + 1], position[i2 + 2]);
750
- v3Set(p3, position[i3], position[i3 + 1], position[i3 + 2]); // pA.fromBufferAttribute(positionAttribute, vA);
751
- // pB.fromBufferAttribute(positionAttribute, vB);
752
- // pC.fromBufferAttribute(positionAttribute, vC);
753
- // cb.subVectors(pC, pB);
754
- // ab.subVectors(pA, pB);
755
- // cb.cross(ab);
756
-
751
+ v3Set(p3, position[i3], position[i3 + 1], position[i3 + 2]);
757
752
  v3Sub(v32, p3, p2);
758
753
  v3Sub(v21, p1, p2);
759
754
  v3Cross(n, v32, v21); // Already be weighted by the triangle area
760
755
 
761
- for (var i = 0; i < 3; i++) {
762
- normals[i1 + i] += n[i];
763
- normals[i2 + i] += n[i];
764
- normals[i3 + i] += n[i];
756
+ for (var _i = 0; _i < 3; _i++) {
757
+ normals[i1 + _i] += n[_i];
758
+ normals[i2 + _i] += n[_i];
759
+ normals[i3 + _i] += n[_i];
765
760
  }
761
+
762
+ f += 3;
766
763
  }
767
764
 
768
- for (var _i = 0; _i < normals.length; _i += 3) {
769
- v3Set(n, normals[_i], normals[_i + 1], normals[_i + 2]);
765
+ var i = 0;
766
+ var l = normals.length;
767
+
768
+ while (i < l) {
769
+ v3Set(n, normals[i], normals[i + 1], normals[i + 2]);
770
770
  v3Normalize(n, n);
771
- normals[_i] = n[0] || 1;
772
- normals[_i + 1] = n[1] || 1;
773
- normals[_i + 2] = n[2] || 1;
771
+ normals[i] = n[0] || 0;
772
+ normals[i + 1] = n[1] || 0;
773
+ normals[i + 2] = n[2] || 0;
774
+ i += 3;
774
775
  }
775
776
 
776
777
  return normals;
@@ -819,11 +820,14 @@
819
820
  result.position.set(_position, pOffset);
820
821
  result.normal.set(normal, pOffset);
821
822
  result.uv.set(uv, uvOffset);
823
+ var j = 0;
824
+ var len1 = _indices.length;
822
825
 
823
- for (var j = 0, len1 = _indices.length; j < len1; j++) {
826
+ while (j < len1) {
824
827
  var pIndex = _indices[j] + pCount;
825
828
  result.indices[iIdx] = pIndex;
826
829
  iIdx++;
830
+ j++;
827
831
  }
828
832
 
829
833
  uvOffset += uv.length;
@@ -841,39 +845,33 @@
841
845
  } // https://github.com/mrdoob/three.js/blob/16f13e3b07e31d0e9a00df7c3366bbe0e464588c/src/geometries/ExtrudeGeometry.js?_pjax=%23js-repo-pjax-container#L736
842
846
 
843
847
  function generateSideWallUV(uvs, vertices, indexA, indexB, indexC, indexD) {
844
- var a_x = vertices[indexA * 3];
845
- var a_y = vertices[indexA * 3 + 1];
846
- var a_z = vertices[indexA * 3 + 2];
847
- var b_x = vertices[indexB * 3];
848
- var b_y = vertices[indexB * 3 + 1];
849
- var b_z = vertices[indexB * 3 + 2];
850
- var c_x = vertices[indexC * 3];
851
- var c_y = vertices[indexC * 3 + 1];
852
- var c_z = vertices[indexC * 3 + 2];
853
- var d_x = vertices[indexD * 3];
854
- var d_y = vertices[indexD * 3 + 1];
855
- var d_z = vertices[indexD * 3 + 2];
848
+ var idx1 = indexA * 3,
849
+ idx2 = indexB * 3,
850
+ idx3 = indexC * 3,
851
+ idx4 = indexD * 3;
852
+ var a_x = vertices[idx1];
853
+ var a_y = vertices[idx1 + 1];
854
+ var a_z = vertices[idx1 + 2];
855
+ var b_x = vertices[idx2];
856
+ var b_y = vertices[idx2 + 1];
857
+ var b_z = vertices[idx2 + 2];
858
+ var c_x = vertices[idx3];
859
+ var c_y = vertices[idx3 + 1];
860
+ var c_z = vertices[idx3 + 2];
861
+ var d_x = vertices[idx4];
862
+ var d_y = vertices[idx4 + 1];
863
+ var d_z = vertices[idx4 + 2];
856
864
 
857
865
  if (Math.abs(a_y - b_y) < Math.abs(a_x - b_x)) {
858
866
  uvs.push(a_x, 1 - a_z);
859
867
  uvs.push(b_x, 1 - b_z);
860
868
  uvs.push(c_x, 1 - c_z);
861
- uvs.push(d_x, 1 - d_z); // return [
862
- // new Vector2(a_x, 1 - a_z),
863
- // new Vector2(b_x, 1 - b_z),
864
- // new Vector2(c_x, 1 - c_z),
865
- // new Vector2(d_x, 1 - d_z)
866
- // ];
869
+ uvs.push(d_x, 1 - d_z);
867
870
  } else {
868
871
  uvs.push(a_y, 1 - a_z);
869
872
  uvs.push(b_y, 1 - b_z);
870
873
  uvs.push(c_y, 1 - c_z);
871
- uvs.push(d_y, 1 - d_z); // return [
872
- // new Vector2(a_y, 1 - a_z),
873
- // new Vector2(b_y, 1 - b_z),
874
- // new Vector2(c_y, 1 - c_z),
875
- // new Vector2(d_y, 1 - d_z)
876
- // ];
874
+ uvs.push(d_y, 1 - d_z);
877
875
  }
878
876
  }
879
877
 
@@ -906,10 +904,7 @@
906
904
  });
907
905
  var result = flatVertices(polygon, options);
908
906
  result.polygon = polygon;
909
- var time = 'earcut';
910
- console.time(time);
911
907
  var triangles = earcut$1(result.flatVertices, result.holes, 2);
912
- console.timeEnd(time);
913
908
  generateTopAndBottom$1(result, triangles);
914
909
  generateSides$1(result, options);
915
910
  result.position = new Float32Array(result.points);
@@ -957,29 +952,32 @@
957
952
 
958
953
  for (var i = 0, len = polygon.length; i < len; i++) {
959
954
  var ring = polygon[i];
955
+ var j = 0;
956
+ var len1 = ring.length;
960
957
 
961
- for (var j = 0, len1 = ring.length; j < len1; j++) {
958
+ while (j < len1) {
962
959
  var v1 = ring[j];
963
960
  var v2 = ring[j + 1];
964
961
 
965
962
  if (j === len1 - 1) {
966
963
  v2 = ring[0];
967
- } // const p1 = [v1[0], v1[1], options.depth],
968
- // p2 = [v2[0], v2[1], options.depth],
969
- // p3 = [v1[0], v1[1], 0],
970
- // p4 = [v2[0], v2[1], 0];
971
-
964
+ }
972
965
 
973
966
  var idx = points.length / 3;
974
- points.push(v1[0], v1[1], 0, v2[0], v2[1], 0, v1[0], v1[1], z, v2[0], v2[1], z);
967
+ var x1 = v1[0],
968
+ y1 = v1[1],
969
+ x2 = v2[0],
970
+ y2 = v2[1];
971
+ points.push(x1, y1, 0, x2, y2, 0, x1, y1, z, x2, y2, z);
975
972
  var a = idx,
976
973
  b = idx + 1,
977
974
  c = idx + 2,
978
975
  d = idx + 3; // points.push(p3, p4, p1, p2);
979
976
 
980
- index.push(a, c, b);
981
- index.push(c, d, b);
977
+ index.push(a, c, b, c, d, b); // index.push(c, d, b);
978
+
982
979
  generateSideWallUV(uvs, points, a, b, c, d);
980
+ j++;
983
981
  }
984
982
  }
985
983
  }
@@ -1018,7 +1016,10 @@
1018
1016
  holes.push(idx0 / 2);
1019
1017
  }
1020
1018
 
1021
- for (var j = 0, len1 = ring.length; j < len1; j++) {
1019
+ var j = 0;
1020
+ var len1 = ring.length;
1021
+
1022
+ while (j < len1) {
1022
1023
  var c = ring[j];
1023
1024
  var x = c[0],
1024
1025
  y = c[1];
@@ -1038,6 +1039,7 @@
1038
1039
  uvs[uOffset + idx2 + 1] = y;
1039
1040
  idx1 += 3;
1040
1041
  idx2 += 2;
1042
+ j++;
1041
1043
  }
1042
1044
  }
1043
1045
 
@@ -1078,8 +1080,10 @@
1078
1080
  uvs = [];
1079
1081
  var leftPoints = result.leftPoints,
1080
1082
  rightPoints = result.rightPoints;
1083
+ var i = 0,
1084
+ len = leftPoints.length;
1081
1085
 
1082
- for (var i = 0, len = leftPoints.length; i < len; i++) {
1086
+ while (i < len) {
1083
1087
  // top left
1084
1088
  var idx0 = i * 3;
1085
1089
  var _leftPoints$i = leftPoints[i],
@@ -1106,32 +1110,41 @@
1106
1110
  points[idx3] = x2;
1107
1111
  points[idx3 + 1] = y2;
1108
1112
  points[idx3 + 2] = 0;
1113
+ i++;
1109
1114
  }
1110
1115
 
1111
- for (var _i = 0, _len = points.length; _i < _len; _i += 3) {
1112
- var x = points[_i],
1113
- y = points[_i + 1];
1116
+ i = 0;
1117
+ len = points.length;
1118
+
1119
+ while (i < len) {
1120
+ var x = points[i],
1121
+ y = points[i + 1];
1114
1122
  uvs.push(x, y);
1123
+ i += 3;
1115
1124
  }
1116
1125
 
1117
- for (var _i2 = 0, _len2 = leftPoints.length; _i2 < _len2 - 1; _i2++) {
1126
+ i = 0;
1127
+ len = leftPoints.length;
1128
+
1129
+ while (i < len - 1) {
1118
1130
  // top
1119
1131
  // left1 left2 right1,right2
1120
- var a1 = _i2,
1121
- b1 = _i2 + 1,
1122
- c1 = a1 + _len2,
1123
- d1 = b1 + _len2;
1132
+ var a1 = i,
1133
+ b1 = i + 1,
1134
+ c1 = a1 + len,
1135
+ d1 = b1 + len;
1124
1136
  index.push(a1, c1, b1);
1125
1137
  index.push(c1, d1, b1); // bottom
1126
1138
  // left1 left2 right1,right2
1127
1139
 
1128
- var len2 = _len2 * 2;
1129
- var a2 = _i2 + len2,
1140
+ var len2 = len * 2;
1141
+ var a2 = i + len2,
1130
1142
  b2 = a2 + 1,
1131
- c2 = a2 + _len2,
1132
- d2 = b2 + _len2;
1143
+ c2 = a2 + len,
1144
+ d2 = b2 + len;
1133
1145
  index.push(a2, c2, b2);
1134
1146
  index.push(c2, d2, b2);
1147
+ i++;
1135
1148
  }
1136
1149
 
1137
1150
  result.index = index;
@@ -1154,14 +1167,12 @@
1154
1167
  var a = idx,
1155
1168
  b = idx + 1,
1156
1169
  c = idx + 2,
1157
- d = idx + 3; // points.push(p3, p4, p1, p2);
1158
-
1159
- index.push(a, c, b);
1160
- index.push(c, d, b);
1170
+ d = idx + 3;
1171
+ index.push(a, c, b, c, d, b);
1161
1172
  generateSideWallUV(uvs, points, a, b, c, d);
1162
1173
  }
1163
1174
 
1164
- for (var i = 0, _len3 = rings.length; i < _len3; i++) {
1175
+ for (var i = 0, _len = rings.length; i < _len; i++) {
1165
1176
  var ring = rings[i];
1166
1177
 
1167
1178
  if (i > 0) {
@@ -1171,19 +1182,23 @@
1171
1182
  ring = ring.reverse();
1172
1183
  }
1173
1184
 
1174
- for (var j = 0, len1 = ring.length - 1; j < len1; j++) {
1185
+ var j = 0;
1186
+ var len1 = ring.length - 1;
1187
+
1188
+ while (j < len1) {
1175
1189
  var v1 = ring[j];
1176
1190
  var v2 = ring[j + 1];
1177
1191
  addOneSideIndex(v1, v2);
1192
+ j++;
1178
1193
  }
1179
1194
  }
1180
1195
 
1181
1196
  var len = leftPoints.length;
1182
1197
  var vs = [rightPoints[0], leftPoints[0], leftPoints[len - 1], rightPoints[len - 1]];
1183
1198
 
1184
- for (var _i3 = 0; _i3 < vs.length; _i3 += 2) {
1185
- var _v = vs[_i3],
1186
- _v2 = vs[_i3 + 1];
1199
+ for (var _i = 0; _i < vs.length; _i += 2) {
1200
+ var _v = vs[_i],
1201
+ _v2 = vs[_i + 1];
1187
1202
  addOneSideIndex(_v, _v2);
1188
1203
  }
1189
1204
  }
@@ -1204,8 +1219,9 @@
1204
1219
  leftPoints = [],
1205
1220
  rightPoints = [];
1206
1221
  var len = line.length;
1222
+ var i = 0;
1207
1223
 
1208
- for (var i = 0; i < len - 1; i++) {
1224
+ while (i < len - 1) {
1209
1225
  var _p = line[i],
1210
1226
  _p2 = line[i + 1];
1211
1227
  var dy = _p2[1] - _p[1],
@@ -1243,6 +1259,8 @@
1243
1259
  leftPoints.push(_op2);
1244
1260
  rightPoints.push(_op);
1245
1261
  }
1262
+
1263
+ i++;
1246
1264
  }
1247
1265
 
1248
1266
  var rAngle = preAngle;
@@ -1311,7 +1329,5 @@
1311
1329
 
1312
1330
  Object.defineProperty(exports, '__esModule', { value: true });
1313
1331
 
1314
- typeof console !== 'undefined' && console.log('poly-extrude v0.0.1');
1315
-
1316
1332
  }));
1317
1333
  //# sourceMappingURL=poly-extrude.js.map