bruce-cesium 7.6.8 → 7.7.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/bruce-cesium.es5.js +17086 -16651
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +8503 -8067
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +1 -1
- package/dist/lib/rendering/menu-item-manager.js +153 -7
- package/dist/lib/rendering/menu-item-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/other/assembly-render-manager.js +6 -0
- package/dist/lib/rendering/render-managers/other/assembly-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +19 -5
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -1
- package/dist/lib/rendering/tileset-render-engine.js +47 -18
- package/dist/lib/rendering/tileset-render-engine.js.map +1 -1
- package/dist/lib/rendering/view-render-engine.js +58 -63
- package/dist/lib/rendering/view-render-engine.js.map +1 -1
- package/dist/lib/utils/entity-utils.js +32 -36
- package/dist/lib/utils/entity-utils.js.map +1 -1
- package/dist/lib/utils/simplify-geometry.js +101 -5
- package/dist/lib/utils/simplify-geometry.js.map +1 -1
- package/dist/lib/utils/view-utils.js +156 -1
- package/dist/lib/utils/view-utils.js.map +1 -1
- package/dist/types/bruce-cesium.d.ts +1 -1
- package/dist/types/rendering/menu-item-manager.d.ts +24 -1
- package/dist/types/rendering/render-managers/other/assembly-render-manager.d.ts +2 -0
- package/dist/types/rendering/render-managers/tilesets/tileset-cad-render-manager.d.ts +8 -1
- package/dist/types/rendering/tileset-render-engine.d.ts +7 -0
- package/dist/types/rendering/view-render-engine.d.ts +6 -0
- package/dist/types/utils/simplify-geometry.d.ts +2 -2
- package/dist/types/utils/view-utils.d.ts +97 -1
- package/package.json +2 -2
|
@@ -7,6 +7,7 @@ const drawing_utils_1 = require("./drawing-utils");
|
|
|
7
7
|
const measure_utils_1 = require("./measure-utils");
|
|
8
8
|
const js_utils_1 = require("../internal/js-utils");
|
|
9
9
|
const cesium_entity_styler_1 = require("./cesium-entity-styler");
|
|
10
|
+
const tileset_render_engine_1 = require("../rendering/tileset-render-engine");
|
|
10
11
|
const viewer_utils_1 = require("../viewer/viewer-utils");
|
|
11
12
|
const view_utils_1 = require("./view-utils");
|
|
12
13
|
const entity_simulation_1 = require("../rendering/render-managers/common/entity-simulation");
|
|
@@ -112,39 +113,18 @@ const getLocationFromFeature = (feature) => {
|
|
|
112
113
|
return result;
|
|
113
114
|
};
|
|
114
115
|
function calcEntityLocation(entity, modelSpace) {
|
|
115
|
-
var _a
|
|
116
|
+
var _a;
|
|
116
117
|
const worldPosition = (_a = entity.Bruce) === null || _a === void 0 ? void 0 : _a.AssemblyWorldPosition;
|
|
117
118
|
if (!worldPosition) {
|
|
118
119
|
return null;
|
|
119
120
|
}
|
|
120
|
-
// The
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
// All relative to the Assembly root's world location.
|
|
125
|
-
// "Bruce.Location" stores the geometry-pivot centre instead of the Entity origin.
|
|
126
|
-
// So we compute directly from the matrix translation to get the model origin position.
|
|
127
|
-
const tx = +worldPosition[0][3];
|
|
128
|
-
const ty = +worldPosition[1][3];
|
|
129
|
-
const tz = +worldPosition[2][3];
|
|
130
|
-
let rootPos;
|
|
131
|
-
if (modelSpace) {
|
|
132
|
-
rootPos = Cesium.Cartesian3.fromDegrees(0, 0, 0);
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
const rootLoc = (_b = entity.Bruce) === null || _b === void 0 ? void 0 : _b.AssemblyRootLocation;
|
|
136
|
-
rootPos = Cesium.Cartesian3.fromDegrees((0, js_utils_1.EnsureNumber)(rootLoc === null || rootLoc === void 0 ? void 0 : rootLoc.longitude), (0, js_utils_1.EnsureNumber)(rootLoc === null || rootLoc === void 0 ? void 0 : rootLoc.latitude), (0, js_utils_1.EnsureNumber)(rootLoc === null || rootLoc === void 0 ? void 0 : rootLoc.altitude));
|
|
137
|
-
}
|
|
138
|
-
const enuFrame = Cesium.Transforms.eastNorthUpToFixedFrame(rootPos);
|
|
139
|
-
// Rotate using the assembly's accumulated world h/p/r before applying the local offset,
|
|
140
|
-
// matching how tilesets apply the root transform.
|
|
141
|
-
const rootTransform = (_c = entity.Bruce) === null || _c === void 0 ? void 0 : _c.AssemblyWorldTransform;
|
|
142
|
-
if (rootTransform) {
|
|
143
|
-
const rootHpr = new Cesium.HeadingPitchRoll(Cesium.Math.toRadians((0, js_utils_1.EnsureNumber)(rootTransform.heading)), Cesium.Math.toRadians((0, js_utils_1.EnsureNumber)(rootTransform.pitch)), Cesium.Math.toRadians((0, js_utils_1.EnsureNumber)(rootTransform.roll)));
|
|
144
|
-
const hprMat4 = Cesium.Matrix4.fromRotationTranslation(Cesium.Matrix3.fromHeadingPitchRoll(rootHpr), Cesium.Cartesian3.ZERO, new Cesium.Matrix4());
|
|
145
|
-
Cesium.Matrix4.multiply(enuFrame, hprMat4, enuFrame);
|
|
121
|
+
// The root's frame with its offset and turn, as tilesets use; Bruce.Location is the pivot, not the origin.
|
|
122
|
+
const frame = calcAssemblyRootFrame(entity, modelSpace);
|
|
123
|
+
if (!frame) {
|
|
124
|
+
return null;
|
|
146
125
|
}
|
|
147
|
-
|
|
126
|
+
const offset = new Cesium.Cartesian3(+worldPosition[0][3], +worldPosition[1][3], +worldPosition[2][3]);
|
|
127
|
+
return Cesium.Matrix4.multiplyByPoint(frame, offset, new Cesium.Cartesian3());
|
|
148
128
|
}
|
|
149
129
|
/*
|
|
150
130
|
* Reads a row-major 4x4 from a record, or null when it is missing or malformed.
|
|
@@ -246,7 +226,7 @@ var EntityUtils;
|
|
|
246
226
|
return null;
|
|
247
227
|
}
|
|
248
228
|
const offset = calcAssemblyPartOffset(entity);
|
|
249
|
-
const frame = (_a = params.rootFrame) !== null && _a !== void 0 ? _a : calcAssemblyRootFrame(entity, view_utils_1.ViewUtils.GetModelSpace(viewer));
|
|
229
|
+
const frame = (_a = params.rootFrame) !== null && _a !== void 0 ? _a : calcAssemblyRootFrame(entity, view_utils_1.ViewUtils.GetModelSpace(viewer) && !view_utils_1.ViewUtils.IsModelSpaceUcs(viewer));
|
|
250
230
|
return offset && frame ? Cesium.Matrix4.multiplyByPoint(frame, offset, new Cesium.Cartesian3()) : null;
|
|
251
231
|
}
|
|
252
232
|
EntityUtils.GetAssemblyPartPos3d = GetAssemblyPartPos3d;
|
|
@@ -307,9 +287,8 @@ var EntityUtils;
|
|
|
307
287
|
let terrainSamples = 0;
|
|
308
288
|
const MAX_VALID_SAMPLES = 20;
|
|
309
289
|
let validSamples = 0;
|
|
310
|
-
//
|
|
311
|
-
|
|
312
|
-
const modelSpace = view_utils_1.ViewUtils.GetModelSpace(viewer);
|
|
290
|
+
// Only legacy model-space moves Assemblies onto 0,0; UCS model-space draws records where they are.
|
|
291
|
+
const modelSpace = view_utils_1.ViewUtils.GetModelSpace(viewer) && !view_utils_1.ViewUtils.IsModelSpaceUcs(viewer);
|
|
313
292
|
// Quick lookup on what historic Entities we have and what dates they map to.
|
|
314
293
|
let latestDate = null;
|
|
315
294
|
const entityIdDates = new Map();
|
|
@@ -329,6 +308,8 @@ var EntityUtils;
|
|
|
329
308
|
// Hacky lookup for Entity ID -> related Tileset coords that are currently active.
|
|
330
309
|
// This helps find ones that are modified due to being historic/moving and apply an Entity's local movement against them.
|
|
331
310
|
const entityIdTilesetCoords = new Map();
|
|
311
|
+
// Entity ID -> what moves its Tileset's coords to where legacy model-space draws the Tileset.
|
|
312
|
+
const entityIdTilesetShift = new Map();
|
|
332
313
|
const data = {
|
|
333
314
|
pos3d: null,
|
|
334
315
|
rectangle: null,
|
|
@@ -341,7 +322,7 @@ var EntityUtils;
|
|
|
341
322
|
// Raise to minimumAlt if needed.
|
|
342
323
|
if ((!isNaN(minimumAlt) && minimumAlt != null)) {
|
|
343
324
|
const carto = Cesium.Cartographic.fromCartesian(pos3d);
|
|
344
|
-
if (carto
|
|
325
|
+
if (carto) {
|
|
345
326
|
let baseHeight = 0;
|
|
346
327
|
if (heightRef == null || heightRef == Cesium.HeightReference.RELATIVE_TO_GROUND || heightRef == Cesium.HeightReference.NONE) {
|
|
347
328
|
// If the terrain provider is not ready let's not ping it.
|
|
@@ -374,7 +355,7 @@ var EntityUtils;
|
|
|
374
355
|
// Just add paddingAlt if needed.
|
|
375
356
|
else if (paddingAlt) {
|
|
376
357
|
const carto = Cesium.Cartographic.fromCartesian(pos3d);
|
|
377
|
-
if (carto
|
|
358
|
+
if (carto) {
|
|
378
359
|
return Cesium.Cartesian3.fromRadians(carto.longitude, carto.latitude, carto.height + paddingAlt);
|
|
379
360
|
}
|
|
380
361
|
}
|
|
@@ -439,6 +420,10 @@ var EntityUtils;
|
|
|
439
420
|
if (tileset === null || tileset === void 0 ? void 0 : tileset._bruceCoords) {
|
|
440
421
|
// Record so we can use it during record evaluation instead of rendered evaluation.
|
|
441
422
|
entityIdTilesetCoords.set(entityId, tileset._bruceCoords);
|
|
423
|
+
const shift = tileset_render_engine_1.TilesetRenderEngine.GetModelSpaceShift(tileset);
|
|
424
|
+
if (shift) {
|
|
425
|
+
entityIdTilesetShift.set(entityId, shift);
|
|
426
|
+
}
|
|
442
427
|
return [];
|
|
443
428
|
// The render logic currently swaps out the UCS location when the assembly is moving.
|
|
444
429
|
// const location = tileset._bruceCoords.ucs?.location;
|
|
@@ -582,6 +567,11 @@ var EntityUtils;
|
|
|
582
567
|
const data = getLocationFromFeature(part);
|
|
583
568
|
if (data != null) {
|
|
584
569
|
let pos3d = Cesium.Cartesian3.fromDegrees(data.location.longitude, data.location.latitude, data.location.altitude);
|
|
570
|
+
// A feature names its real location, which legacy model-space draws elsewhere.
|
|
571
|
+
const shift = tileset_render_engine_1.TilesetRenderEngine.GetModelSpaceShift(part.tileset);
|
|
572
|
+
if (shift) {
|
|
573
|
+
pos3d = Cesium.Matrix4.multiplyByPoint(shift, pos3d, new Cesium.Cartesian3());
|
|
574
|
+
}
|
|
585
575
|
const toAdjust = [pos3d];
|
|
586
576
|
await ensureHeightRefs(toAdjust, {
|
|
587
577
|
...sample,
|
|
@@ -730,6 +720,9 @@ var EntityUtils;
|
|
|
730
720
|
const transformHpr = Cesium.Matrix3.fromHeadingPitchRoll(hpr);
|
|
731
721
|
const transformedOffset = Cesium.Matrix3.multiplyByVector(transformHpr, offset, new Cesium.Cartesian3());
|
|
732
722
|
pos3d = Cesium.Matrix4.multiplyByPoint(m1, transformedOffset, new Cesium.Cartesian3());
|
|
723
|
+
if (entityIdTilesetShift.has(entityId)) {
|
|
724
|
+
pos3d = Cesium.Matrix4.multiplyByPoint(entityIdTilesetShift.get(entityId), pos3d, new Cesium.Cartesian3());
|
|
725
|
+
}
|
|
733
726
|
pos3d = await processPosHeight(pos3d, Cesium.HeightReference.NONE);
|
|
734
727
|
const geometryRadius = getTrustedGeometryRadius(entity);
|
|
735
728
|
if (geometryRadius && (pos3d === null || pos3d === void 0 ? void 0 : pos3d.x)) {
|
|
@@ -740,6 +733,9 @@ var EntityUtils;
|
|
|
740
733
|
else {
|
|
741
734
|
if (location) {
|
|
742
735
|
let pos3d = Cesium.Cartesian3.fromDegrees(longitude, latitude, (0, js_utils_1.EnsureNumber)(location.altitude));
|
|
736
|
+
if (entityIdTilesetShift.has(entityId)) {
|
|
737
|
+
pos3d = Cesium.Matrix4.multiplyByPoint(entityIdTilesetShift.get(entityId), pos3d, new Cesium.Cartesian3());
|
|
738
|
+
}
|
|
743
739
|
pos3d = await processPosHeight(pos3d, Cesium.HeightReference.NONE);
|
|
744
740
|
const geometryRadius = getTrustedGeometryRadius(entity);
|
|
745
741
|
if (geometryRadius && (pos3d === null || pos3d === void 0 ? void 0 : pos3d.x)) {
|
|
@@ -1082,8 +1078,8 @@ var EntityUtils;
|
|
|
1082
1078
|
if (allowRendered == null) {
|
|
1083
1079
|
allowRendered = true;
|
|
1084
1080
|
}
|
|
1085
|
-
|
|
1086
|
-
;
|
|
1081
|
+
// Legacy model-space draws every Assembly on 0,0; UCS model-space draws it where its record puts it.
|
|
1082
|
+
const isModelSpace = view_utils_1.ViewUtils.GetModelSpace(viewer) && !view_utils_1.ViewUtils.IsModelSpaceUcs(viewer);
|
|
1087
1083
|
const isAssemblyEntity = ((_a = entity === null || entity === void 0 ? void 0 : entity.Bruce) === null || _a === void 0 ? void 0 : _a.AssemblyRootLocation) != null;
|
|
1088
1084
|
function evaluateRendered() {
|
|
1089
1085
|
const rego = visualRegister ? visualRegister.GetRego({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-utils.js","sourceRoot":"","sources":["../../../src/utils/entity-utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entity-utils.js","sourceRoot":"","sources":["../../../src/utils/entity-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,8 +89,8 @@ var SimplifyGeometry;
|
|
|
89
89
|
/**
|
|
90
90
|
* Whether a simplified geometry still describes something a renderer can triangulate.
|
|
91
91
|
* @param geometry the simplification result.
|
|
92
|
-
* @returns false when any polygon has a collapsed
|
|
93
|
-
*
|
|
92
|
+
* @returns false when any polygon has a collapsed, zero area or self intersecting ring, a hole outside
|
|
93
|
+
* its outer ring or inside another hole, rings whose edges cross, or a hole wound like its outer ring.
|
|
94
94
|
*/
|
|
95
95
|
function IsSafeToRender(geometry) {
|
|
96
96
|
return isSafeToRender(geometry);
|
|
@@ -114,14 +114,28 @@ function isSafeToRender(geometry) {
|
|
|
114
114
|
}
|
|
115
115
|
let outer = null;
|
|
116
116
|
let outerIsClockwise = false;
|
|
117
|
+
// The current outer ring followed by its holes, which must not cross themselves or each other.
|
|
118
|
+
let group = [];
|
|
119
|
+
const groupIntersects = () => group.length > 0 && hasIntersection(group);
|
|
117
120
|
for (let i = 0; i < g.Polygon.length; i++) {
|
|
118
121
|
const points = bruce_models_1.Geometry.ParsePoints(g.Polygon[i].LinearRing);
|
|
119
122
|
if (!points || points.length < MIN_RING_POSITIONS) {
|
|
120
123
|
safe = false;
|
|
121
124
|
return;
|
|
122
125
|
}
|
|
123
|
-
|
|
126
|
+
// Simplifying does not preserve topology, so it can flatten a ring or fold it across itself.
|
|
127
|
+
const area = signedRingArea(points);
|
|
128
|
+
if (isZeroArea(area, points)) {
|
|
129
|
+
safe = false;
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
const clockwise = area < 0;
|
|
124
133
|
if (g.Polygon[i].Facing !== "in") {
|
|
134
|
+
if (groupIntersects()) {
|
|
135
|
+
safe = false;
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
group = [points];
|
|
125
139
|
outer = points;
|
|
126
140
|
outerIsClockwise = clockwise;
|
|
127
141
|
continue;
|
|
@@ -135,12 +149,21 @@ function isSafeToRender(geometry) {
|
|
|
135
149
|
safe = false;
|
|
136
150
|
return;
|
|
137
151
|
}
|
|
138
|
-
|
|
139
|
-
|
|
152
|
+
// Edges are checked once the group is complete, and with none crossing one corner settles nesting.
|
|
153
|
+
if (!isPointInRing(points[0], outer)) {
|
|
154
|
+
safe = false;
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
for (let j = 1; j < group.length; j++) {
|
|
158
|
+
if (isPointInRing(points[0], group[j]) || isPointInRing(group[j][0], points)) {
|
|
140
159
|
safe = false;
|
|
141
160
|
return;
|
|
142
161
|
}
|
|
143
162
|
}
|
|
163
|
+
group.push(points);
|
|
164
|
+
}
|
|
165
|
+
if (groupIntersects()) {
|
|
166
|
+
safe = false;
|
|
144
167
|
}
|
|
145
168
|
};
|
|
146
169
|
check(geometry);
|
|
@@ -155,6 +178,79 @@ function signedRingArea(points) {
|
|
|
155
178
|
}
|
|
156
179
|
return sum / 2;
|
|
157
180
|
}
|
|
181
|
+
// Relative to the squared bounding box diagonal, so the cutoff means the same at any coordinate scale.
|
|
182
|
+
const ZERO_AREA_RATIO = 1e-9;
|
|
183
|
+
function isZeroArea(area, points) {
|
|
184
|
+
let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
|
|
185
|
+
for (const p of points) {
|
|
186
|
+
minX = Math.min(minX, p.longitude);
|
|
187
|
+
maxX = Math.max(maxX, p.longitude);
|
|
188
|
+
minY = Math.min(minY, p.latitude);
|
|
189
|
+
maxY = Math.max(maxY, p.latitude);
|
|
190
|
+
}
|
|
191
|
+
const diagonalSq = (maxX - minX) ** 2 + (maxY - minY) ** 2;
|
|
192
|
+
return Math.abs(area) <= diagonalSq * ZERO_AREA_RATIO;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Whether any two edges of the rings cross or touch, other than neighbours on one ring sharing their corner.
|
|
196
|
+
* Edges are swept in order of their west end so only pairs that overlap in longitude are compared.
|
|
197
|
+
*/
|
|
198
|
+
function hasIntersection(rings) {
|
|
199
|
+
const edges = [];
|
|
200
|
+
for (let r = 0; r < rings.length; r++) {
|
|
201
|
+
// Repeated vertices would make neighbouring edges look non adjacent and report their shared corner.
|
|
202
|
+
const ring = [];
|
|
203
|
+
for (const p of rings[r]) {
|
|
204
|
+
const last = ring[ring.length - 1];
|
|
205
|
+
if (!last || last.longitude !== p.longitude || last.latitude !== p.latitude) {
|
|
206
|
+
ring.push(p);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
if (ring.length > 1 && ring[0].longitude === ring[ring.length - 1].longitude && ring[0].latitude === ring[ring.length - 1].latitude) {
|
|
210
|
+
ring.pop();
|
|
211
|
+
}
|
|
212
|
+
const count = ring.length;
|
|
213
|
+
if (count < 3) {
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
for (let i = 0; i < count; i++) {
|
|
217
|
+
const a = ring[i];
|
|
218
|
+
const b = ring[(i + 1) % count];
|
|
219
|
+
edges.push({ ring: r, index: i, count, a, b, minX: Math.min(a.longitude, b.longitude), maxX: Math.max(a.longitude, b.longitude) });
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
edges.sort((x, y) => x.minX - y.minX);
|
|
223
|
+
for (let i = 0; i < edges.length; i++) {
|
|
224
|
+
const e1 = edges[i];
|
|
225
|
+
for (let j = i + 1; j < edges.length && edges[j].minX <= e1.maxX; j++) {
|
|
226
|
+
const e2 = edges[j];
|
|
227
|
+
if (e1.ring === e2.ring) {
|
|
228
|
+
const gap = Math.abs(e1.index - e2.index);
|
|
229
|
+
if (gap === 1 || gap === e1.count - 1) {
|
|
230
|
+
continue;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
if (segmentsTouch(e1.a, e1.b, e2.a, e2.b)) {
|
|
234
|
+
return true;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
function segmentsTouch(a, b, c, d) {
|
|
241
|
+
const cross = (o, p, q) => (p.longitude - o.longitude) * (q.latitude - o.latitude) - (p.latitude - o.latitude) * (q.longitude - o.longitude);
|
|
242
|
+
const within = (o, p, q) => (Math.min(o.longitude, p.longitude) <= q.longitude && q.longitude <= Math.max(o.longitude, p.longitude) &&
|
|
243
|
+
Math.min(o.latitude, p.latitude) <= q.latitude && q.latitude <= Math.max(o.latitude, p.latitude));
|
|
244
|
+
const d1 = cross(c, d, a);
|
|
245
|
+
const d2 = cross(c, d, b);
|
|
246
|
+
const d3 = cross(a, b, c);
|
|
247
|
+
const d4 = cross(a, b, d);
|
|
248
|
+
if (((d1 > 0 && d2 < 0) || (d1 < 0 && d2 > 0)) && ((d3 > 0 && d4 < 0) || (d3 < 0 && d4 > 0))) {
|
|
249
|
+
return true;
|
|
250
|
+
}
|
|
251
|
+
return ((d1 === 0 && within(c, d, a)) || (d2 === 0 && within(c, d, b)) ||
|
|
252
|
+
(d3 === 0 && within(a, b, c)) || (d4 === 0 && within(a, b, d)));
|
|
253
|
+
}
|
|
158
254
|
function isPointInRing(point, ring) {
|
|
159
255
|
let inside = false;
|
|
160
256
|
for (let i = 0, j = ring.length - 1; i < ring.length; j = i++) {
|