nodes2ts 1.1.9 → 3.0.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 (105) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc.cjs +11 -0
  3. package/.github/workflows/lint.js.yml +22 -0
  4. package/.github/workflows/node.js.yml +22 -0
  5. package/.mocharc.js +7 -0
  6. package/README.md +22 -5
  7. package/dist/Interval.d.ts +7 -8
  8. package/dist/Interval.js +12 -12
  9. package/dist/Interval.js.map +1 -1
  10. package/dist/MutableInteger.js +5 -4
  11. package/dist/MutableInteger.js.map +1 -1
  12. package/dist/Platform.d.ts +15 -0
  13. package/dist/Platform.js +53 -0
  14. package/dist/Platform.js.map +1 -0
  15. package/dist/R1Interval.d.ts +8 -9
  16. package/dist/R1Interval.js +59 -78
  17. package/dist/R1Interval.js.map +1 -1
  18. package/dist/R2Vector.d.ts +12 -13
  19. package/dist/R2Vector.js +65 -85
  20. package/dist/R2Vector.js.map +1 -1
  21. package/dist/S1Angle.d.ts +38 -5
  22. package/dist/S1Angle.js +89 -37
  23. package/dist/S1Angle.js.map +1 -1
  24. package/dist/S1ChordAngle.d.ts +166 -0
  25. package/dist/S1ChordAngle.js +318 -0
  26. package/dist/S1ChordAngle.js.map +1 -0
  27. package/dist/S1Interval.d.ts +11 -12
  28. package/dist/S1Interval.js +134 -140
  29. package/dist/S1Interval.js.map +1 -1
  30. package/dist/S2.d.ts +8 -5
  31. package/dist/S2.js +91 -108
  32. package/dist/S2.js.map +1 -1
  33. package/dist/S2Cap.d.ts +33 -25
  34. package/dist/S2Cap.js +199 -203
  35. package/dist/S2Cap.js.map +1 -1
  36. package/dist/S2Cell.d.ts +15 -13
  37. package/dist/S2Cell.js +196 -206
  38. package/dist/S2Cell.js.map +1 -1
  39. package/dist/S2CellId.d.ts +37 -14
  40. package/dist/S2CellId.js +407 -359
  41. package/dist/S2CellId.js.map +1 -1
  42. package/dist/S2CellUnion.d.ts +1 -2
  43. package/dist/S2CellUnion.js +137 -133
  44. package/dist/S2CellUnion.js.map +1 -1
  45. package/dist/S2EdgeUtil.js +14 -17
  46. package/dist/S2EdgeUtil.js.map +1 -1
  47. package/dist/S2LatLng.d.ts +15 -11
  48. package/dist/S2LatLng.js +100 -114
  49. package/dist/S2LatLng.js.map +1 -1
  50. package/dist/S2LatLngRect.d.ts +8 -4
  51. package/dist/S2LatLngRect.js +215 -197
  52. package/dist/S2LatLngRect.js.map +1 -1
  53. package/dist/S2Metric.d.ts +4 -5
  54. package/dist/S2Metric.js +30 -27
  55. package/dist/S2Metric.js.map +1 -1
  56. package/dist/S2Point.d.ts +48 -14
  57. package/dist/S2Point.js +156 -109
  58. package/dist/S2Point.js.map +1 -1
  59. package/dist/S2Projections.d.ts +43 -9
  60. package/dist/S2Projections.js +226 -47
  61. package/dist/S2Projections.js.map +1 -1
  62. package/dist/S2Region.js +2 -1
  63. package/dist/S2Region.js.map +1 -1
  64. package/dist/S2RegionCoverer.d.ts +21 -6
  65. package/dist/S2RegionCoverer.js +144 -109
  66. package/dist/S2RegionCoverer.js.map +1 -1
  67. package/dist/export.d.ts +0 -1
  68. package/dist/export.js +42 -32
  69. package/dist/export.js.map +1 -1
  70. package/dist/utils/preconditions.d.ts +2 -0
  71. package/dist/utils/preconditions.js +16 -0
  72. package/dist/utils/preconditions.js.map +1 -0
  73. package/package.json +28 -34
  74. package/.npmignore +0 -8
  75. package/.nyc_output/1eb1f420a13c15f529aac41a40bcaa21.json +0 -1
  76. package/.nyc_output/5ff62256eb1c111254ba0b469fb547da.json +0 -1
  77. package/.nyc_output/949d6e8c2061067f3bdfd27dfff5ba83.json +0 -1
  78. package/coverage/Interval.ts.html +0 -203
  79. package/coverage/MutableInteger.ts.html +0 -77
  80. package/coverage/R1Interval.ts.html +0 -647
  81. package/coverage/R2Vector.ts.html +0 -587
  82. package/coverage/S1Angle.ts.html +0 -344
  83. package/coverage/S1Interval.ts.html +0 -1349
  84. package/coverage/S2.ts.html +0 -1178
  85. package/coverage/S2Cap.ts.html +0 -1433
  86. package/coverage/S2Cell.ts.html +0 -1415
  87. package/coverage/S2CellId.ts.html +0 -3329
  88. package/coverage/S2EdgeUtil.ts.html +0 -2534
  89. package/coverage/S2LatLng.ts.html +0 -848
  90. package/coverage/S2LatLngRect.ts.html +0 -2222
  91. package/coverage/S2Point.ts.html +0 -758
  92. package/coverage/S2Projections.ts.html +0 -518
  93. package/coverage/base.css +0 -212
  94. package/coverage/decimal.ts.html +0 -68
  95. package/coverage/index.html +0 -288
  96. package/coverage/prettify.css +0 -1
  97. package/coverage/prettify.js +0 -1
  98. package/coverage/sort-arrow-sprite.png +0 -0
  99. package/coverage/sorter.js +0 -158
  100. package/dist/decimal.d.ts +0 -3
  101. package/dist/decimal.js +0 -4
  102. package/dist/decimal.js.map +0 -1
  103. package/dist/decimal_augmentation.d.ts +0 -24
  104. package/dist/decimal_augmentation.js +0 -2
  105. package/dist/decimal_augmentation.js.map +0 -1
@@ -1,4 +1,6 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.S2CellUnion = void 0;
2
4
  /*
3
5
  * Copyright 2005 Google Inc.
4
6
  *
@@ -14,14 +16,14 @@
14
16
  * See the License for the specific language governing permissions and
15
17
  * limitations under the License.
16
18
  */
17
- var Long = require('long');
18
- var S2CellId_1 = require("./S2CellId");
19
- var S2Cell_1 = require("./S2Cell");
20
- var S2Projections_1 = require("./S2Projections");
21
- var S2LatLngRect_1 = require("./S2LatLngRect");
22
- var S2Point_1 = require("./S2Point");
23
- var S2_1 = require("./S2");
24
- var S2Cap_1 = require("./S2Cap");
19
+ const Long = require("long");
20
+ const S2CellId_1 = require("./S2CellId");
21
+ const S2Cell_1 = require("./S2Cell");
22
+ const S2Projections_1 = require("./S2Projections");
23
+ const S2LatLngRect_1 = require("./S2LatLngRect");
24
+ const S2Point_1 = require("./S2Point");
25
+ const S2Cap_1 = require("./S2Cap");
26
+ const S1ChordAngle_1 = require("./S1ChordAngle");
25
27
  /**
26
28
  * An S2CellUnion is a region consisting of cells of various sizes. Typically a
27
29
  * cell union is used to approximate some other shape. There is a tradeoff
@@ -30,37 +32,39 @@ var S2Cap_1 = require("./S2Cap");
30
32
  * suitable for optimizations based on preprocessing.
31
33
  *
32
34
  */
33
- var S2CellUnion = (function () {
34
- function S2CellUnion() {
35
+ class S2CellUnion {
36
+ constructor() {
35
37
  /** The CellIds that form the Union */
36
38
  this.cellIds = [];
37
39
  }
38
- S2CellUnion.prototype.S2CellUnion = function () {
39
- };
40
40
  /**
41
41
  * Populates a cell union with the given S2CellIds or 64-bit cells ids, and
42
42
  * then calls Normalize(). The InitSwap() version takes ownership of the
43
43
  * vector data without copying and clears the given vector. These methods may
44
44
  * be called multiple times.
45
45
  */
46
- S2CellUnion.prototype.initFromIds = function (cellIds) {
46
+ initFromIds(cellIds) {
47
47
  this.initRawIds(cellIds);
48
48
  this.normalize();
49
- };
50
- S2CellUnion.prototype.initSwap = function (cellIds) {
49
+ }
50
+ initFromCellIds(cellIds) {
51
+ this.initRawCellIds(cellIds);
52
+ this.normalize();
53
+ }
54
+ initSwap(cellIds) {
51
55
  this.initRawSwap(cellIds);
52
56
  this.normalize();
53
- };
54
- S2CellUnion.prototype.initRawCellIds = function (cellIds) {
57
+ }
58
+ initRawCellIds(cellIds) {
55
59
  this.cellIds = cellIds;
56
- };
57
- S2CellUnion.prototype.initRawIds = function (cellIds) {
58
- var size = cellIds.length;
60
+ }
61
+ initRawIds(cellIds) {
62
+ const size = cellIds.length;
59
63
  this.cellIds = [];
60
- for (var i = 0; i < size; i++) {
64
+ for (let i = 0; i < size; i++) {
61
65
  this.cellIds.push(new S2CellId_1.S2CellId(cellIds[i]));
62
66
  }
63
- };
67
+ }
64
68
  /**
65
69
  * Like Init(), but does not call Normalize(). The cell union *must* be
66
70
  * normalized before doing any calculations with it, so it is the caller's
@@ -68,19 +72,19 @@ var S2CellUnion = (function () {
68
72
  * useful when converting cell unions to another representation and back.
69
73
  * These methods may be called multiple times.
70
74
  */
71
- S2CellUnion.prototype.initRawSwap = function (cellIds) {
75
+ initRawSwap(cellIds) {
72
76
  this.cellIds = [].concat(cellIds);
73
- };
74
- S2CellUnion.prototype.size = function () {
77
+ }
78
+ size() {
75
79
  return this.cellIds.length;
76
- };
80
+ }
77
81
  /** Convenience methods for accessing the individual cell ids. */
78
- S2CellUnion.prototype.cellId = function (i) {
82
+ cellId(i) {
79
83
  return this.cellIds[i];
80
- };
81
- S2CellUnion.prototype.getCellIds = function () {
84
+ }
85
+ getCellIds() {
82
86
  return this.cellIds;
83
- };
87
+ }
84
88
  /**
85
89
  * Replaces "output" with an expanded version of the cell union where any
86
90
  * cells whose level is less than "min_level" or where (level - min_level) is
@@ -93,14 +97,14 @@ var S2CellUnion = (function () {
93
97
  * converted back to the original list of cell ids that satisfies the desired
94
98
  * constraints.
95
99
  */
96
- S2CellUnion.prototype.denormalize = function (minLevel, levelMod) {
100
+ denormalize(minLevel, levelMod) {
97
101
  // assert (minLevel >= 0 && minLevel <= S2CellId.MAX_LEVEL);
98
102
  // assert (levelMod >= 1 && levelMod <= 3);
99
- var output = [];
100
- for (var i = 0; i < this.cellIds.length; i++) {
101
- var id = this.cellIds[i];
102
- var level = id.level();
103
- var newLevel = Math.max(minLevel, level);
103
+ const output = [];
104
+ for (let i = 0; i < this.cellIds.length; i++) {
105
+ const id = this.cellIds[i];
106
+ const level = id.level();
107
+ let newLevel = Math.max(minLevel, level);
104
108
  if (levelMod > 1) {
105
109
  // Round up so that (new_level - min_level) is a multiple of level_mod.
106
110
  // (Note that S2CellId::kMaxLevel is a multiple of 1, 2, and 3.)
@@ -111,36 +115,36 @@ var S2CellUnion = (function () {
111
115
  output.push(id);
112
116
  }
113
117
  else {
114
- var end = id.childEndL(newLevel);
115
- for (var iid = id.childBeginL(newLevel); !iid.equals(end); iid = iid.next()) {
118
+ const end = id.childEndL(newLevel);
119
+ for (let iid = id.childBeginL(newLevel); !iid.equals(end); iid = iid.next()) {
116
120
  output.push(iid);
117
121
  }
118
122
  }
119
123
  }
120
124
  return output;
121
- };
125
+ }
122
126
  /**
123
127
  * If there are more than "excess" elements of the cell_ids() vector that are
124
128
  * allocated but unused, reallocate the array to eliminate the excess space.
125
129
  * This reduces memory usage when many cell unions need to be held in memory
126
130
  * at once.
127
131
  */
128
- S2CellUnion.prototype.pack = function () {
132
+ pack() {
129
133
  throw new Error('useless');
130
134
  // this.cellIds.trimToSize();
131
- };
132
- S2CellUnion.prototype.containsC = function (cell) {
135
+ }
136
+ containsC(cell) {
133
137
  return this.containsCell(cell);
134
- };
135
- S2CellUnion.prototype.mayIntersectC = function (cell) {
138
+ }
139
+ mayIntersectC(cell) {
136
140
  return this.mayIntersectCell(cell);
137
- };
141
+ }
138
142
  /**
139
143
  * Return true if the cell union contains the given cell id. Containment is
140
144
  * defined with respect to regions, e.g. a cell contains its 4 children. This
141
145
  * is a fast operation (logarithmic in the size of the cell union).
142
146
  */
143
- S2CellUnion.prototype.contains = function (id) {
147
+ contains(id) {
144
148
  // This function requires that Normalize has been called first.
145
149
  //
146
150
  // This is an exact test. Each cell occupies a linear span of the S2
@@ -149,7 +153,7 @@ var S2CellUnion = (function () {
149
153
  // the space-filling curve. So we simply find the pair of cell ids that
150
154
  // surround the given cell id (using binary search). There is containment
151
155
  // if and only if one of these two cell ids contains this cell.
152
- var pos = S2CellId_1.S2CellId.binarySearch(this.cellIds, id.id);
156
+ let pos = S2CellId_1.S2CellId.binarySearch(this.cellIds, id.id);
153
157
  if (pos < 0) {
154
158
  pos = -pos - 1;
155
159
  }
@@ -157,15 +161,15 @@ var S2CellUnion = (function () {
157
161
  return true;
158
162
  }
159
163
  return pos != 0 && this.cellIds[pos - 1].rangeMax().greaterOrEquals(id);
160
- };
164
+ }
161
165
  /**
162
166
  * Return true if the cell union intersects the given cell id. This is a fast
163
167
  * operation (logarithmic in the size of the cell union).
164
168
  */
165
- S2CellUnion.prototype.intersects = function (id) {
169
+ intersects(id) {
166
170
  // This function requires that Normalize has been called first.
167
171
  // This is an exact test; see the comments for Contains() above.
168
- var pos = S2CellId_1.S2CellId.binarySearch(this.cellIds, id.id);
172
+ let pos = S2CellId_1.S2CellId.binarySearch(this.cellIds, id.id);
169
173
  if (pos < 0) {
170
174
  pos = -pos - 1;
171
175
  }
@@ -173,78 +177,78 @@ var S2CellUnion = (function () {
173
177
  return true;
174
178
  }
175
179
  return pos != 0 && this.cellIds[pos - 1].rangeMax().greaterOrEquals(id.rangeMin());
176
- };
177
- S2CellUnion.prototype.containsUnion = function (that) {
180
+ }
181
+ containsUnion(that) {
178
182
  // A divide-and-conquer or alternating-skip-search approach
179
183
  // may be significantly faster in both the average and worst case.
180
- for (var i = 0; i < that.cellIds.length; i++) {
184
+ for (let i = 0; i < that.cellIds.length; i++) {
181
185
  if (!this.contains(that.cellIds[i])) {
182
186
  return false;
183
187
  }
184
188
  }
185
189
  return true;
186
- };
190
+ }
187
191
  /** This is a fast operation (logarithmic in the size of the cell union). */
188
- S2CellUnion.prototype.containsCell = function (cell) {
192
+ containsCell(cell) {
189
193
  return this.contains(cell.id);
190
- };
194
+ }
191
195
  /**
192
196
  * Return true if this cell union contain/intersects the given other cell
193
197
  * union.
194
198
  */
195
- S2CellUnion.prototype.intersectsUnion = function (that) {
199
+ intersectsUnion(that) {
196
200
  // A divide-and-conquer or alternating-skip-search approach
197
201
  // may be significantly faster in both the average and worst case.
198
- for (var i = 0; i < that.cellIds.length; i++) {
202
+ for (let i = 0; i < that.cellIds.length; i++) {
199
203
  if (!this.intersects(that.cellIds[i])) {
200
204
  return false;
201
205
  }
202
206
  }
203
207
  return true;
204
- };
205
- S2CellUnion.prototype.getUnion = function (x, y) {
208
+ }
209
+ getUnion(x, y) {
206
210
  // assert (x != this && y != this);
207
211
  this.cellIds = [].concat(x.cellIds).concat(y.cellIds);
208
212
  this.normalize();
209
- };
213
+ }
210
214
  /**
211
215
  * Specialized version of GetIntersection() that gets the intersection of a
212
216
  * cell union with the given cell id. This can be useful for "splitting" a
213
217
  * cell union into chunks.
214
218
  */
215
- S2CellUnion.prototype.getIntersection = function (x, id) {
219
+ getIntersection(x, id) {
216
220
  // assert (x != this);
217
221
  this.cellIds = [];
218
222
  if (x.contains(id)) {
219
223
  this.cellIds.push(id);
220
224
  }
221
225
  else {
222
- var pos = S2CellId_1.S2CellId.binarySearch(x.cellIds, id.rangeMin().id);
226
+ let pos = S2CellId_1.S2CellId.binarySearch(x.cellIds, id.rangeMin().id);
223
227
  if (pos < 0) {
224
228
  pos = -pos - 1;
225
229
  }
226
- var idmax = id.rangeMax();
227
- var size = x.cellIds.length;
230
+ const idmax = id.rangeMax();
231
+ const size = x.cellIds.length;
228
232
  while (pos < size && x.cellIds[pos].lessOrEquals(idmax)) {
229
233
  this.cellIds.push(x.cellIds[(pos++)]);
230
234
  }
231
235
  }
232
- };
236
+ }
233
237
  /**
234
238
  * Initialize this cell union to the union or intersection of the two given
235
239
  * cell unions. Requires: x != this and y != this.
236
240
  */
237
- S2CellUnion.prototype.getIntersectionUU = function (x, y) {
241
+ getIntersectionUU(x, y) {
238
242
  // assert (x != this && y != this);
239
243
  // This is a fairly efficient calculation that uses binary search to skip
240
244
  // over sections of both input vectors. It takes constant time if all the
241
245
  // cells of "x" come before or after all the cells of "y" in S2CellId order.
242
246
  this.cellIds = [];
243
- var i = 0;
244
- var j = 0;
247
+ let i = 0;
248
+ let j = 0;
245
249
  while (i < x.cellIds.length && j < y.cellIds.length) {
246
- var imin = x.cellId(i).rangeMin();
247
- var jmin = y.cellId(j).rangeMin();
250
+ const imin = x.cellId(i).rangeMin();
251
+ const jmin = y.cellId(j).rangeMin();
248
252
  if (imin.greaterThan(jmin)) {
249
253
  // Either j->contains(*i) or the two cells are disjoint.
250
254
  if (x.cellId(i).lessOrEquals(y.cellId(j).rangeMax())) {
@@ -284,7 +288,7 @@ var S2CellUnion = (function () {
284
288
  // The output is generated in sorted order, and there should not be any
285
289
  // cells that can be merged (provided that both inputs were normalized).
286
290
  // assert (!normalize());
287
- };
291
+ }
288
292
  /**
289
293
  * Expands the cell union such that it contains all cells of the given level
290
294
  * that are adjacent to any cell of the original union. Two cells are defined
@@ -296,12 +300,12 @@ var S2CellUnion = (function () {
296
300
  * order of 4000 adjacent cells in the output. For most applications the
297
301
  * Expand(min_fraction, min_distance) method below is easier to use.
298
302
  */
299
- S2CellUnion.prototype.expand = function (level) {
300
- var output = [];
301
- var levelLsb = S2CellId_1.S2CellId.lowestOnBitForLevel(level);
302
- var i = this.size() - 1;
303
+ expand(level) {
304
+ let output = [];
305
+ const levelLsb = S2CellId_1.S2CellId.lowestOnBitForLevel(level);
306
+ let i = this.size() - 1;
303
307
  do {
304
- var id = this.cellId(i);
308
+ let id = this.cellId(i);
305
309
  if (id.lowestOnBit().lessThan(levelLsb)) {
306
310
  id = id.parentL(level);
307
311
  // Optimization: skip over any cells contained by this one. This is
@@ -314,7 +318,7 @@ var S2CellUnion = (function () {
314
318
  output = output.concat(id.getAllNeighbors(level));
315
319
  } while (--i >= 0);
316
320
  this.initSwap(output);
317
- };
321
+ }
318
322
  /**
319
323
  * Expand the cell union such that it contains all points whose distance to
320
324
  * the cell union is at most minRadius, but do not use cells that are more
@@ -328,35 +332,35 @@ var S2CellUnion = (function () {
328
332
  * case, the number of cells in the output can be up to 4 * (1 + 2 **
329
333
  * maxLevelDiff) times larger than the number of cells in the input.
330
334
  */
331
- S2CellUnion.prototype.expandA = function (minRadius, maxLevelDiff) {
332
- var minLevel = S2CellId_1.S2CellId.MAX_LEVEL;
333
- for (var i = 0; i < this.cellIds.length; i++) {
334
- var id = this.cellId(i);
335
+ expandA(minRadius, maxLevelDiff) {
336
+ let minLevel = S2CellId_1.S2CellId.MAX_LEVEL;
337
+ for (let i = 0; i < this.cellIds.length; i++) {
338
+ const id = this.cellId(i);
335
339
  minLevel = Math.min(minLevel, id.level());
336
340
  }
337
341
  // Find the maximum level such that all cells are at least "min_radius"
338
342
  // wide.
339
- var radiusLevel = S2Projections_1.S2Projections.MIN_WIDTH.getMaxLevel(minRadius.radians);
340
- if (radiusLevel == 0 && minRadius.radians.gt(S2Projections_1.S2Projections.MIN_WIDTH.getValue(0))) {
343
+ const radiusLevel = S2Projections_1.S2Projections.MIN_WIDTH.getMaxLevel(minRadius.radians);
344
+ if (radiusLevel == 0 && minRadius.radians > (S2Projections_1.S2Projections.MIN_WIDTH.getValue(0))) {
341
345
  // The requested expansion is greater than the width of a face cell.
342
346
  // The easiest way to handle this is to expand twice.
343
347
  this.expand(0);
344
348
  }
345
349
  this.expand(Math.min(minLevel + maxLevelDiff, radiusLevel));
346
- };
347
- S2CellUnion.prototype.getCapBound = function () {
350
+ }
351
+ getCapBound() {
348
352
  // Compute the approximate centroid of the region. This won't produce the
349
353
  // bounding cap of minimal area, but it should be close enough.
350
354
  if (this.cellIds.length == 0) {
351
355
  return S2Cap_1.S2Cap.empty();
352
356
  }
353
- var centroid = new S2Point_1.S2Point(0, 0, 0);
354
- this.cellIds.forEach(function (id) {
355
- var area = S2Cell_1.S2Cell.averageArea(id.level());
357
+ let centroid = new S2Point_1.S2Point(0, 0, 0);
358
+ this.cellIds.forEach(id => {
359
+ const area = S2Cell_1.S2Cell.averageArea(id.level());
356
360
  centroid = S2Point_1.S2Point.add(centroid, S2Point_1.S2Point.mul(id.toPoint(), area));
357
361
  });
358
- if (centroid.equals(new S2Point_1.S2Point(0, 0, 0))) {
359
- centroid = new S2Point_1.S2Point(1, 0, 0);
362
+ if (centroid.equals(S2Point_1.S2Point.ORIGIN)) {
363
+ centroid = S2Point_1.S2Point.X_POS;
360
364
  }
361
365
  else {
362
366
  centroid = S2Point_1.S2Point.normalize(centroid);
@@ -365,45 +369,45 @@ var S2CellUnion = (function () {
365
369
  // contains the bounding caps of all the individual cells. Note that it is
366
370
  // *not* sufficient to just bound all the cell vertices because the bounding
367
371
  // cap may be concave (i.e. cover more than one hemisphere).
368
- var cap = new S2Cap_1.S2Cap(centroid, 0);
369
- this.cellIds.forEach(function (id) {
372
+ let cap = S2Cap_1.S2Cap.fromAxisChord(centroid, S1ChordAngle_1.S1ChordAngle.ZERO);
373
+ this.cellIds.forEach(id => {
370
374
  cap = cap.addCap(new S2Cell_1.S2Cell(id).getCapBound());
371
375
  });
372
376
  return cap;
373
- };
374
- S2CellUnion.prototype.getRectBound = function () {
375
- var bound = S2LatLngRect_1.S2LatLngRect.empty();
376
- this.cellIds.forEach(function (id) {
377
+ }
378
+ getRectBound() {
379
+ let bound = S2LatLngRect_1.S2LatLngRect.empty();
380
+ this.cellIds.forEach(id => {
377
381
  bound = bound.union(new S2Cell_1.S2Cell(id).getRectBound());
378
382
  });
379
383
  return bound;
380
- };
384
+ }
381
385
  /** This is a fast operation (logarithmic in the size of the cell union). */
382
- S2CellUnion.prototype.mayIntersectCell = function (cell) {
386
+ mayIntersectCell(cell) {
383
387
  return this.intersects(cell.id);
384
- };
388
+ }
385
389
  /**
386
390
  * The point 'p' does not need to be normalized. This is a fast operation
387
391
  * (logarithmic in the size of the cell union).
388
392
  */
389
- S2CellUnion.prototype.containsPoint = function (p) {
393
+ containsPoint(p) {
390
394
  return this.contains(S2CellId_1.S2CellId.fromPoint(p));
391
- };
395
+ }
392
396
  /**
393
397
  * The number of leaf cells covered by the union.
394
398
  * This will be no more than 6*2^60 for the whole sphere.
395
399
  *
396
400
  * @return the number of leaf cells covered by the union
397
401
  */
398
- S2CellUnion.prototype.leafCellsCovered = function () {
399
- var numLeaves = new Long(0);
400
- this.cellIds.forEach(function (id) {
401
- var invertedLevel = S2CellId_1.S2CellId.MAX_LEVEL - id.level();
402
+ leafCellsCovered() {
403
+ let numLeaves = new Long(0);
404
+ this.cellIds.forEach((id) => {
405
+ const invertedLevel = S2CellId_1.S2CellId.MAX_LEVEL - id.level();
402
406
  numLeaves = numLeaves
403
407
  .add(new Long(1).shiftLeft(invertedLevel << 1));
404
408
  });
405
409
  return numLeaves;
406
- };
410
+ }
407
411
  /**
408
412
  * Approximate this cell union's area by summing the average area of
409
413
  * each contained cell's average area, using {@link S2Cell#averageArea()}.
@@ -417,35 +421,35 @@ var S2CellUnion = (function () {
417
421
  *
418
422
  * @return the sum of the average area of each contained cell's average area
419
423
  */
420
- S2CellUnion.prototype.averageBasedArea = function () {
421
- return S2_1.S2.toDecimal(this.leafCellsCovered().toString()).times(S2Projections_1.S2Projections.AVG_AREA.getValue(S2CellId_1.S2CellId.MAX_LEVEL)).toNumber();
422
- };
424
+ averageBasedArea() {
425
+ return this.leafCellsCovered().mul(S2Projections_1.S2Projections.AVG_AREA.getValue(S2CellId_1.S2CellId.MAX_LEVEL)).toNumber();
426
+ }
423
427
  /**
424
428
  * Calculates this cell union's area by summing the approximate area for each
425
429
  * contained cell, using {@link S2Cell#approxArea()}.
426
430
  *
427
431
  * @return approximate area of the cell union
428
432
  */
429
- S2CellUnion.prototype.approxArea = function () {
430
- var area = S2_1.S2.toDecimal(0);
431
- this.cellIds.forEach(function (id) {
432
- area = area.plus(new S2Cell_1.S2Cell(id).approxArea());
433
+ approxArea() {
434
+ let area = 0;
435
+ this.cellIds.forEach(id => {
436
+ area = area + (new S2Cell_1.S2Cell(id).approxArea());
433
437
  });
434
- return area.toNumber();
435
- };
438
+ return area;
439
+ }
436
440
  /**
437
441
  * Calculates this cell union's area by summing the exact area for each
438
442
  * contained cell, using the {@link S2Cell#exactArea()}.
439
443
  *
440
444
  * @return the exact area of the cell union
441
445
  */
442
- S2CellUnion.prototype.exactArea = function () {
443
- var area = S2_1.S2.toDecimal(0);
444
- this.cellIds.forEach(function (id) {
445
- area = area.plus(new S2Cell_1.S2Cell(id).exactArea());
446
+ exactArea() {
447
+ let area = 0;
448
+ this.cellIds.forEach(id => {
449
+ area = area + new S2Cell_1.S2Cell(id).exactArea();
446
450
  });
447
- return area.toNumber();
448
- };
451
+ return area;
452
+ }
449
453
  /**
450
454
  * Normalizes the cell union by discarding cells that are contained by other
451
455
  * cells, replacing groups of 4 child cells by their parent cell whenever
@@ -458,16 +462,16 @@ var S2CellUnion = (function () {
458
462
  * @return true if the normalize operation had any effect on the cell union,
459
463
  * false if the union was already normalized
460
464
  */
461
- S2CellUnion.prototype.normalize = function () {
465
+ normalize() {
462
466
  // Optimize the representation by looking for cases where all subcells
463
467
  // of a parent cell are present.
464
- var output = [];
468
+ const output = [];
465
469
  // ArrayList<S2CellId> output = new ArrayList<>(this.cellIds.size());
466
470
  // output.ensureCapacity(this.cellIds.size());
467
- this.cellIds.sort(function (a, b) { return a.compareTo(b); });
471
+ this.cellIds.sort((a, b) => a.compareTo(b));
468
472
  // Collections.sort(this.cellIds);
469
- this.cellIds.forEach(function (id) {
470
- var size = output.length;
473
+ this.cellIds.forEach(id => {
474
+ let size = output.length;
471
475
  // Check whether this cell is contained by the previous cell.
472
476
  if (output.length !== 0 && output[size - 1].contains(id)) {
473
477
  return;
@@ -475,6 +479,7 @@ var S2CellUnion = (function () {
475
479
  // Discard any previous cells contained by this cell.
476
480
  while (output.length !== 0 && id.contains(output[output.length - 1])) {
477
481
  output.splice(output.length - 1, 1);
482
+ // output.remove(output.size() - 1);
478
483
  }
479
484
  // Check whether the last 3 elements of "output" plus "id" can be
480
485
  // collapsed into a single parent cell.
@@ -482,17 +487,17 @@ var S2CellUnion = (function () {
482
487
  size = output.length;
483
488
  // A necessary (but not sufficient) condition is that the XOR of the
484
489
  // four cells must be zero. This is also very fast to test.
485
- if ((output[size - 3].id.and(output[size - 2].id).and(output[size - 1].id)).notEquals(id.id)) {
490
+ if ((output[size - 3].id.xor(output[size - 2].id).xor(output[size - 1].id)).notEquals(id.id)) {
486
491
  break;
487
492
  }
488
493
  // Now we do a slightly more expensive but exact test. First, compute a
489
494
  // mask that blocks out the two bits that encode the child position of
490
495
  // "id" with respect to its parent, then check that the other three
491
496
  // children all agree with "mask.
492
- var mask = id.lowestOnBit().shiftLeft(1);
497
+ let mask = id.lowestOnBit().shiftLeft(1);
493
498
  mask = mask.add(mask.shiftLeft(1)).not();
494
499
  // mask = ~(mask + (mask << 1));
495
- var idMasked = id.id.and(mask);
500
+ const idMasked = id.id.and(mask);
496
501
  if ((output[size - 3].id.and(mask)).notEquals(idMasked)
497
502
  || (output[size - 2].id.and(mask)).notEquals(idMasked)
498
503
  || (output[size - 1].id.and(mask)).notEquals(idMasked) || id.isFace()) {
@@ -512,8 +517,7 @@ var S2CellUnion = (function () {
512
517
  return true;
513
518
  }
514
519
  return false;
515
- };
516
- return S2CellUnion;
517
- }());
520
+ }
521
+ }
518
522
  exports.S2CellUnion = S2CellUnion;
519
523
  //# sourceMappingURL=S2CellUnion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"S2CellUnion.js","sourceRoot":"","sources":["../src/S2CellUnion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"S2CellUnion.js","sourceRoot":"","sources":["../src/S2CellUnion.ts"],"names":[],"mappings":"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"}