raain-model 3.2.2 → 3.2.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.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [3.2.3] - 2026-03-09
11
+
12
+ ### Changed
13
+
14
+ - **PolarFilter**: unified `azimuthMin/Max, edgeMin/Max` fields into `zones: PolarFilterZone[]` with free-form `metadata` per zone. Backward-compatible constructor. Bounding box exposed via getters. `merging()` uses intersection semantics.
15
+ - **PolarMeasureValueMap**: `iterate()` supports `bypass` option — when true, iterates only on zones stored in `buildPolarFilter` with deduplication. Throws if combined with `iterateOnEachEdge`.
16
+
17
+ ### Added
18
+
19
+ - `PolarFilterZone` interface (`azMin, azMax, edMin, edMax, metadata?`)
20
+ - `iterateOnZones()` method in `PolarMeasureValueMap` for zone-based traversal
21
+ - Performance tests: bypass zones speedup, zone deduplication, bypass+edge error
22
+
23
+ ## [3.2.2] - 2026-03-05
24
+
10
25
  ### Fixed
11
26
 
12
27
  - `mergeCartesianResults` no longer silently produces empty data when `mergeLimitPoints` is undefined — limit points are
package/bpInfo.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.bpInfo = void 0;
4
- exports.bpInfo = { version: 'v3.2.2' };
4
+ exports.bpInfo = { version: 'v3.2.4' };
5
5
  //# sourceMappingURL=bpInfo.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "raain-model",
3
- "version": "3.2.2",
3
+ "version": "3.2.4",
4
4
  "author": "contact@radartorain.com",
5
5
  "homepage": "https://github.com/raainio/raain-model",
6
6
  "description": "radartorain.com api model",
@@ -56,4 +56,4 @@
56
56
  "typedoc": "^0.25.12",
57
57
  "typescript": "^5.0.4"
58
58
  }
59
- }
59
+ }
@@ -1,14 +1,23 @@
1
+ export interface PolarFilterZone {
2
+ azMin: number;
3
+ azMax: number;
4
+ edMin: number;
5
+ edMax: number;
6
+ metadata?: any;
7
+ }
1
8
  export declare class PolarFilter {
2
- azimuthMin: number;
3
- azimuthMax: number;
4
- edgeMin: number;
5
- edgeMax: number;
9
+ zones: PolarFilterZone[];
6
10
  constructor(json?: {
7
11
  azimuthMin?: number;
8
12
  azimuthMax?: number;
9
13
  edgeMin?: number;
10
14
  edgeMax?: number;
15
+ zones?: PolarFilterZone[];
11
16
  });
17
+ get azimuthMin(): number;
18
+ get azimuthMax(): number;
19
+ get edgeMin(): number;
20
+ get edgeMax(): number;
12
21
  protected static min(a: number, b: number): number;
13
22
  protected static max(a: number, b: number): number;
14
23
  merging(polarFilter?: PolarFilter): PolarFilter;
@@ -3,19 +3,43 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PolarFilter = void 0;
4
4
  class PolarFilter {
5
5
  constructor(json) {
6
- if (typeof (json === null || json === void 0 ? void 0 : json.azimuthMin) !== 'undefined') {
7
- this.azimuthMin = json.azimuthMin;
6
+ var _a;
7
+ this.zones = [];
8
+ if ((_a = json === null || json === void 0 ? void 0 : json.zones) === null || _a === void 0 ? void 0 : _a.length) {
9
+ this.zones = json.zones;
8
10
  }
9
- if (typeof (json === null || json === void 0 ? void 0 : json.azimuthMax) !== 'undefined') {
10
- this.azimuthMax = json.azimuthMax;
11
- }
12
- if (typeof (json === null || json === void 0 ? void 0 : json.edgeMin) !== 'undefined') {
13
- this.edgeMin = json.edgeMin;
14
- }
15
- if (typeof (json === null || json === void 0 ? void 0 : json.edgeMax) !== 'undefined') {
16
- this.edgeMax = json.edgeMax;
11
+ else if (json &&
12
+ (typeof json.azimuthMin !== 'undefined' ||
13
+ typeof json.azimuthMax !== 'undefined' ||
14
+ typeof json.edgeMin !== 'undefined' ||
15
+ typeof json.edgeMax !== 'undefined')) {
16
+ this.zones = [
17
+ {
18
+ azMin: json.azimuthMin,
19
+ azMax: json.azimuthMax,
20
+ edMin: json.edgeMin,
21
+ edMax: json.edgeMax,
22
+ },
23
+ ];
17
24
  }
18
25
  }
26
+ // Bounding box getters (backward compat + used by buildFromPolar/iterate)
27
+ get azimuthMin() {
28
+ const vals = this.zones.map((z) => z.azMin).filter((v) => typeof v !== 'undefined');
29
+ return vals.length ? Math.min(...vals) : undefined;
30
+ }
31
+ get azimuthMax() {
32
+ const vals = this.zones.map((z) => z.azMax).filter((v) => typeof v !== 'undefined');
33
+ return vals.length ? Math.max(...vals) : undefined;
34
+ }
35
+ get edgeMin() {
36
+ const vals = this.zones.map((z) => z.edMin).filter((v) => typeof v !== 'undefined');
37
+ return vals.length ? Math.min(...vals) : undefined;
38
+ }
39
+ get edgeMax() {
40
+ const vals = this.zones.map((z) => z.edMax).filter((v) => typeof v !== 'undefined');
41
+ return vals.length ? Math.max(...vals) : undefined;
42
+ }
19
43
  static min(a, b) {
20
44
  if (typeof a === 'undefined') {
21
45
  return b;
@@ -34,19 +58,42 @@ class PolarFilter {
34
58
  }
35
59
  return Math.max(a, b);
36
60
  }
61
+ // Intersection semantics: each zone from this × each zone from other
37
62
  merging(polarFilter) {
38
- return new PolarFilter({
39
- azimuthMin: PolarFilter.max(polarFilter === null || polarFilter === void 0 ? void 0 : polarFilter.azimuthMin, this.azimuthMin),
40
- azimuthMax: PolarFilter.min(polarFilter === null || polarFilter === void 0 ? void 0 : polarFilter.azimuthMax, this.azimuthMax),
41
- edgeMin: PolarFilter.max(polarFilter === null || polarFilter === void 0 ? void 0 : polarFilter.edgeMin, this.edgeMin),
42
- edgeMax: PolarFilter.min(polarFilter === null || polarFilter === void 0 ? void 0 : polarFilter.edgeMax, this.edgeMax),
43
- });
63
+ var _a, _b;
64
+ if (!((_a = polarFilter === null || polarFilter === void 0 ? void 0 : polarFilter.zones) === null || _a === void 0 ? void 0 : _a.length)) {
65
+ return new PolarFilter({ zones: this.zones.map((z) => ({ ...z })) });
66
+ }
67
+ if (!((_b = this.zones) === null || _b === void 0 ? void 0 : _b.length)) {
68
+ return new PolarFilter({ zones: polarFilter.zones.map((z) => ({ ...z })) });
69
+ }
70
+ const intersected = [];
71
+ for (const za of this.zones) {
72
+ for (const zb of polarFilter.zones) {
73
+ const zone = {
74
+ azMin: PolarFilter.max(za.azMin, zb.azMin),
75
+ azMax: PolarFilter.min(za.azMax, zb.azMax),
76
+ edMin: PolarFilter.max(za.edMin, zb.edMin),
77
+ edMax: PolarFilter.min(za.edMax, zb.edMax),
78
+ };
79
+ const azValid = typeof zone.azMin === 'undefined' ||
80
+ typeof zone.azMax === 'undefined' ||
81
+ zone.azMin <= zone.azMax;
82
+ const edValid = typeof zone.edMin === 'undefined' ||
83
+ typeof zone.edMax === 'undefined' ||
84
+ zone.edMin <= zone.edMax;
85
+ if (azValid && edValid) {
86
+ if (za.metadata || zb.metadata) {
87
+ zone.metadata = { ...za.metadata, ...zb.metadata };
88
+ }
89
+ intersected.push(zone);
90
+ }
91
+ }
92
+ }
93
+ return new PolarFilter({ zones: intersected });
44
94
  }
45
95
  equal(polarFilter) {
46
- return (this.azimuthMin === polarFilter.azimuthMin &&
47
- this.azimuthMax === polarFilter.azimuthMax &&
48
- this.edgeMin === polarFilter.edgeMin &&
49
- this.edgeMax === polarFilter.edgeMax);
96
+ return JSON.stringify(this.zones) === JSON.stringify(polarFilter.zones);
50
97
  }
51
98
  }
52
99
  exports.PolarFilter = PolarFilter;
@@ -1 +1 @@
1
- {"version":3,"file":"PolarFilter.js","sourceRoot":"","sources":["../../src/polar/PolarFilter.ts"],"names":[],"mappings":";;;AAAA,MAAa,WAAW;IAMpB,YAAY,IAKX;QACG,IAAI,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,CAAA,KAAK,WAAW,EAAE,CAAC;YAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACtC,CAAC;QACD,IAAI,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,CAAA,KAAK,WAAW,EAAE,CAAC;YAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACtC,CAAC;QACD,IAAI,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAA,KAAK,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,CAAC;QACD,IAAI,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAA,KAAK,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,CAAC;IACL,CAAC;IAES,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,CAAS;QACrC,IAAI,OAAO,CAAC,KAAK,WAAW,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC;QACb,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,WAAW,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC;QACb,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;IAES,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,CAAS;QACrC,IAAI,OAAO,CAAC,KAAK,WAAW,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC;QACb,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,WAAW,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC;QACb,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,WAAyB;QAC7B,OAAO,IAAI,WAAW,CAAC;YACnB,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC;YACrE,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC;YACrE,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;YAC5D,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;SAC/D,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,WAAwB;QAC1B,OAAO,CACH,IAAI,CAAC,UAAU,KAAK,WAAW,CAAC,UAAU;YAC1C,IAAI,CAAC,UAAU,KAAK,WAAW,CAAC,UAAU;YAC1C,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO;YACpC,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,CACvC,CAAC;IACN,CAAC;CACJ;AA/DD,kCA+DC"}
1
+ {"version":3,"file":"PolarFilter.js","sourceRoot":"","sources":["../../src/polar/PolarFilter.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { MeasureValuePolarContainer } from './MeasureValuePolarContainer';
2
2
  import { PolarValue } from './PolarValue';
3
3
  import { PolarMeasureValue } from './PolarMeasureValue';
4
- import { PolarFilter } from './PolarFilter';
4
+ import { PolarFilter, PolarFilterZone } from './PolarFilter';
5
5
  /**
6
6
  * PolarMeasureValue Map tools to optimize get/set
7
7
  */
@@ -31,6 +31,7 @@ export declare class PolarMeasureValueMap {
31
31
  iterateOnEachEdge?: boolean;
32
32
  polarFilter?: PolarFilter;
33
33
  minExcludedValue?: number;
34
+ bypass?: boolean;
34
35
  }): void | Promise<void>;
35
36
  countPolar(): number;
36
37
  countPolarWithEdgeFilter(filter: any): number;
@@ -49,4 +50,5 @@ export declare class PolarMeasureValueMap {
49
50
  };
50
51
  protected iterateOnEachAzimuth(azimuthMin: number, azimuthMax: number, edgeMin: number, edgeMax: number, onEachValue: (polarValue: PolarValue, azimuthIndex: number, edgeIndex: number, valueSetter: (newValue: number) => void) => void | Promise<void>, minExcludedValue?: number): Promise<void>;
51
52
  protected iterateOnEachEdge(azimuthMin: number, azimuthMax: number, edgeMin: number, edgeMax: number, onEachValue: (polarValue: PolarValue, azimuthIndex: number, edgeIndex: number, valueSetter: (newValue: number) => void) => void | Promise<void>, minExcludedValue?: number): Promise<void>;
53
+ protected iterateOnZones(zones: PolarFilterZone[], onEachValue: (polarValue: PolarValue, azimuthIndex: number, edgeIndex: number, valueSetter: (newValue: number) => void) => void | Promise<void>, minExcludedValue?: number, edgeFirst?: boolean): Promise<void>;
52
54
  }
@@ -32,11 +32,14 @@ class PolarMeasureValueMap {
32
32
  }
33
33
  }
34
34
  static Duplicate(polarMeasureValueMap) {
35
+ var _a;
35
36
  const pol = new PolarMeasureValueMap(null);
36
37
  pol.polarMeasureValue = new PolarMeasureValue_1.PolarMeasureValue(polarMeasureValueMap.polarMeasureValue);
37
38
  pol.builtMeasureValuePolarContainers =
38
39
  polarMeasureValueMap.builtMeasureValuePolarContainers;
39
- pol.buildPolarFilter = polarMeasureValueMap.buildPolarFilter;
40
+ pol.buildPolarFilter = new PolarFilter_1.PolarFilter({
41
+ zones: (_a = polarMeasureValueMap.buildPolarFilter) === null || _a === void 0 ? void 0 : _a.zones,
42
+ });
40
43
  return pol;
41
44
  }
42
45
  static UpdateIndex(arrayLength, index) {
@@ -165,20 +168,28 @@ class PolarMeasureValueMap {
165
168
  // Iterate over polar values with optional filtering
166
169
  // - iterateOnEachEdge=false (default): azimuth-first (radial lines), more efficient
167
170
  // - iterateOnEachEdge=true: edge-first (concentric circles), useful for ring-based operations
171
+ // - bypass=true: iterate ONLY on zones stored in buildPolarFilter (skips everything else)
168
172
  iterate(onEachValue, options) {
169
- var _a, _b, _c, _d;
173
+ var _a, _b, _c, _d, _e, _f;
170
174
  const start = Date.now();
171
- const azimuthMin = typeof ((_a = options === null || options === void 0 ? void 0 : options.polarFilter) === null || _a === void 0 ? void 0 : _a.azimuthMin) !== 'undefined'
175
+ const useBypass = (options === null || options === void 0 ? void 0 : options.bypass) && ((_b = (_a = this.buildPolarFilter) === null || _a === void 0 ? void 0 : _a.zones) === null || _b === void 0 ? void 0 : _b.length) > 0;
176
+ const azimuthMin = typeof ((_c = options === null || options === void 0 ? void 0 : options.polarFilter) === null || _c === void 0 ? void 0 : _c.azimuthMin) !== 'undefined'
172
177
  ? options === null || options === void 0 ? void 0 : options.polarFilter.azimuthMin
173
178
  : 0;
174
- const azimuthMax = typeof ((_b = options === null || options === void 0 ? void 0 : options.polarFilter) === null || _b === void 0 ? void 0 : _b.azimuthMax) !== 'undefined'
179
+ const azimuthMax = typeof ((_d = options === null || options === void 0 ? void 0 : options.polarFilter) === null || _d === void 0 ? void 0 : _d.azimuthMax) !== 'undefined'
175
180
  ? options === null || options === void 0 ? void 0 : options.polarFilter.azimuthMax
176
181
  : this.polarMeasureValue.getAzimuthsCount();
177
- const edgeMin = typeof ((_c = options === null || options === void 0 ? void 0 : options.polarFilter) === null || _c === void 0 ? void 0 : _c.edgeMin) !== 'undefined' ? options === null || options === void 0 ? void 0 : options.polarFilter.edgeMin : 0;
178
- const edgeMax = typeof ((_d = options === null || options === void 0 ? void 0 : options.polarFilter) === null || _d === void 0 ? void 0 : _d.edgeMax) !== 'undefined'
182
+ const edgeMin = typeof ((_e = options === null || options === void 0 ? void 0 : options.polarFilter) === null || _e === void 0 ? void 0 : _e.edgeMin) !== 'undefined' ? options === null || options === void 0 ? void 0 : options.polarFilter.edgeMin : 0;
183
+ const edgeMax = typeof ((_f = options === null || options === void 0 ? void 0 : options.polarFilter) === null || _f === void 0 ? void 0 : _f.edgeMax) !== 'undefined'
179
184
  ? options === null || options === void 0 ? void 0 : options.polarFilter.edgeMax
180
185
  : this.polarMeasureValue.getPolarEdgesCount();
181
- const mode = (options === null || options === void 0 ? void 0 : options.iterateOnEachEdge) ? 'edge-first' : 'azimuth-first';
186
+ const mode = useBypass
187
+ ? (options === null || options === void 0 ? void 0 : options.iterateOnEachEdge)
188
+ ? 'bypass-zones-edge-first'
189
+ : 'bypass-zones'
190
+ : (options === null || options === void 0 ? void 0 : options.iterateOnEachEdge)
191
+ ? 'edge-first'
192
+ : 'azimuth-first';
182
193
  const totalCells = this.countPolar();
183
194
  let callCount = 0;
184
195
  const wrappedCallback = (polarValue, azimuthIndex, edgeIndex, valueSetter) => {
@@ -203,7 +214,10 @@ class PolarMeasureValueMap {
203
214
  };
204
215
  const minExcludedValue = options === null || options === void 0 ? void 0 : options.minExcludedValue;
205
216
  let result;
206
- if (options === null || options === void 0 ? void 0 : options.iterateOnEachEdge) {
217
+ if (useBypass) {
218
+ result = this.iterateOnZones(this.buildPolarFilter.zones, wrappedCallback, minExcludedValue, options === null || options === void 0 ? void 0 : options.iterateOnEachEdge);
219
+ }
220
+ else if (options === null || options === void 0 ? void 0 : options.iterateOnEachEdge) {
207
221
  result = this.iterateOnEachEdge(azimuthMin, azimuthMax, edgeMin, edgeMax, wrappedCallback, minExcludedValue);
208
222
  }
209
223
  else {
@@ -368,11 +382,15 @@ class PolarMeasureValueMap {
368
382
  }
369
383
  // Azimuth-first iteration (default): iterates radial lines one by one
370
384
  // Order: Az0-Edge0, Az0-Edge1, Az0-Edge2, ..., Az1-Edge0, Az1-Edge1, ...
371
- // Performance: O(containers * edges_per_container) - efficient, only iterates actual data
385
+ // Performance: O(containers * edgeRange) - direct index access, no inner scan
372
386
  iterateOnEachAzimuth(azimuthMin, azimuthMax, edgeMin, edgeMax, onEachValue, minExcludedValue) {
387
+ var _a;
373
388
  const promises = [];
374
389
  let isAsync = false;
375
390
  const hasMinFilter = typeof minExcludedValue === 'number';
391
+ const buildEdgeMin = typeof ((_a = this.buildPolarFilter) === null || _a === void 0 ? void 0 : _a.edgeMin) !== 'undefined'
392
+ ? this.buildPolarFilter.edgeMin
393
+ : 0;
376
394
  let azimuthAbsoluteIndex = -1;
377
395
  let updatedAzimuth = -1;
378
396
  while (updatedAzimuth < 0 && azimuthAbsoluteIndex < azimuthMax) {
@@ -390,24 +408,19 @@ class PolarMeasureValueMap {
390
408
  }
391
409
  const azimuthInDegrees = measureValuePolarContainer.azimuth;
392
410
  const polarEdges = measureValuePolarContainer.polarEdges;
393
- for (const [edgeIndex, value] of polarEdges.entries()) {
394
- // Skip values <= minExcludedValue
411
+ const distance = measureValuePolarContainer.distance || this.polarMeasureValue.getDefaultDistance();
412
+ // Direct index range: convert absolute edge range to local indices
413
+ const localStart = Math.max(edgeMin - buildEdgeMin, 0);
414
+ const localEnd = Math.min(edgeMax - buildEdgeMin, polarEdges.length - 1);
415
+ for (let i = localStart; i <= localEnd; i++) {
416
+ const value = polarEdges[i];
395
417
  if (hasMinFilter && value <= minExcludedValue) {
396
418
  continue;
397
419
  }
398
- const updated = this.updatedEdge(edgeIndex, measureValuePolarContainer, {
399
- reverse: true,
400
- });
401
- const edgeAbsoluteIndex = updated.edgeIndex;
402
- const distanceInMeters = updated.distanceInMeters;
403
- if (edgeAbsoluteIndex < edgeMin) {
404
- continue;
405
- }
406
- if (edgeMax < edgeAbsoluteIndex) {
407
- break;
408
- }
420
+ const edgeAbsoluteIndex = i + buildEdgeMin;
421
+ const distanceInMeters = (edgeAbsoluteIndex + 1) * distance;
409
422
  const valueSetter = (newValue) => {
410
- polarEdges[edgeIndex] = newValue;
423
+ polarEdges[i] = newValue;
411
424
  };
412
425
  const result = onEachValue(new PolarValue_1.PolarValue({
413
426
  value,
@@ -426,20 +439,26 @@ class PolarMeasureValueMap {
426
439
  }
427
440
  // Edge-first iteration: iterates concentric circles one by one
428
441
  // Order: Az0-Edge0, Az1-Edge0, Az2-Edge0, ..., Az0-Edge1, Az1-Edge1, ...
429
- // Performance: O(edgeRange * containers * edges_per_container) - less efficient
430
- // For each target edge, scans ALL containers and ALL their edges to find matches
442
+ // Performance: O(edgeRange * containers) - direct index access per container
431
443
  iterateOnEachEdge(azimuthMin, azimuthMax, edgeMin, edgeMax, onEachValue, minExcludedValue) {
444
+ var _a;
432
445
  const promises = [];
433
446
  let isAsync = false;
434
447
  const hasMinFilter = typeof minExcludedValue === 'number';
448
+ const buildEdgeMin = typeof ((_a = this.buildPolarFilter) === null || _a === void 0 ? void 0 : _a.edgeMin) !== 'undefined'
449
+ ? this.buildPolarFilter.edgeMin
450
+ : 0;
451
+ // Compute azimuth offset once
452
+ let azStartOffset = -1;
453
+ let updatedAzimuth = -1;
454
+ while (updatedAzimuth < 0 && azStartOffset < azimuthMax) {
455
+ const upd = this.updatedAzimuth(++azStartOffset);
456
+ updatedAzimuth = upd.azimuthIndexAbsolute;
457
+ }
458
+ azStartOffset--;
435
459
  for (let edge = edgeMin; edge <= edgeMax; edge++) {
436
- let azimuthAbsoluteIndex = -1;
437
- let updatedAzimuth = -1;
438
- while (updatedAzimuth < 0 && azimuthAbsoluteIndex < azimuthMax) {
439
- const upd = this.updatedAzimuth(++azimuthAbsoluteIndex);
440
- updatedAzimuth = upd.azimuthIndexAbsolute;
441
- }
442
- azimuthAbsoluteIndex--;
460
+ const localEdgeIdx = edge - buildEdgeMin;
461
+ let azimuthAbsoluteIndex = azStartOffset;
443
462
  for (const measureValuePolarContainer of this.builtMeasureValuePolarContainers) {
444
463
  azimuthAbsoluteIndex++;
445
464
  if (azimuthAbsoluteIndex < azimuthMin) {
@@ -448,34 +467,100 @@ class PolarMeasureValueMap {
448
467
  if (azimuthMax < azimuthAbsoluteIndex) {
449
468
  break;
450
469
  }
451
- const azimuthInDegrees = measureValuePolarContainer.azimuth;
452
470
  const polarEdges = measureValuePolarContainer.polarEdges;
453
- for (const [edgeIndex, value] of polarEdges.entries()) {
454
- // Skip values <= minExcludedValue
455
- if (hasMinFilter && value <= minExcludedValue) {
456
- continue;
457
- }
458
- const updated = this.updatedEdge(edgeIndex, measureValuePolarContainer, {
459
- reverse: true,
460
- });
461
- const edgeAbsoluteIndex = updated.edgeIndex;
462
- const distanceInMeters = updated.distanceInMeters;
463
- if (edge === edgeAbsoluteIndex) {
464
- const valueSetter = (newValue) => {
465
- polarEdges[edgeIndex] = newValue;
466
- };
467
- const result = onEachValue(new PolarValue_1.PolarValue({
468
- value,
469
- polarAzimuthInDegrees: azimuthInDegrees,
470
- polarDistanceInMeters: distanceInMeters,
471
- }), azimuthAbsoluteIndex, edgeAbsoluteIndex, valueSetter);
472
- if (result instanceof Promise) {
473
- isAsync = true;
474
- promises.push(result);
475
- }
471
+ if (localEdgeIdx < 0 || localEdgeIdx >= polarEdges.length) {
472
+ continue;
473
+ }
474
+ const value = polarEdges[localEdgeIdx];
475
+ if (hasMinFilter && value <= minExcludedValue) {
476
+ continue;
477
+ }
478
+ const distance = measureValuePolarContainer.distance ||
479
+ this.polarMeasureValue.getDefaultDistance();
480
+ const distanceInMeters = (edge + 1) * distance;
481
+ const valueSetter = (newValue) => {
482
+ polarEdges[localEdgeIdx] = newValue;
483
+ };
484
+ const result = onEachValue(new PolarValue_1.PolarValue({
485
+ value,
486
+ polarAzimuthInDegrees: measureValuePolarContainer.azimuth,
487
+ polarDistanceInMeters: distanceInMeters,
488
+ }), azimuthAbsoluteIndex, edge, valueSetter);
489
+ if (result instanceof Promise) {
490
+ isAsync = true;
491
+ promises.push(result);
492
+ }
493
+ }
494
+ }
495
+ if (isAsync) {
496
+ return Promise.all(promises).then(() => { });
497
+ }
498
+ }
499
+ // Zone-based iteration: only visits cells within defined zones, with deduplication
500
+ // Direct index mapping (no wrapping) for predictable zone traversal
501
+ // edgeFirst=false (default): azimuth-first per zone
502
+ // edgeFirst=true: edge-first per zone
503
+ iterateOnZones(zones, onEachValue, minExcludedValue, edgeFirst) {
504
+ var _a, _b, _c, _d, _e, _f;
505
+ const promises = [];
506
+ let isAsync = false;
507
+ const hasMinFilter = typeof minExcludedValue === 'number';
508
+ const visited = new Set();
509
+ const globalAzMin = (_a = this.buildPolarFilter.azimuthMin) !== null && _a !== void 0 ? _a : 0;
510
+ const globalEdMin = (_b = this.buildPolarFilter.edgeMin) !== null && _b !== void 0 ? _b : 0;
511
+ const azimuthsCount = this.polarMeasureValue.getAzimuthsCount();
512
+ const defaultDistance = this.polarMeasureValue.getDefaultDistance();
513
+ const maxEdKey = this.polarMeasureValue.getPolarEdgesCount() + 1;
514
+ const visitCell = (azIdx, edIdx) => {
515
+ const key = azIdx * maxEdKey + edIdx;
516
+ if (visited.has(key)) {
517
+ return;
518
+ }
519
+ visited.add(key);
520
+ const containerIdx = azIdx - globalAzMin;
521
+ if (containerIdx < 0 || containerIdx >= this.builtMeasureValuePolarContainers.length) {
522
+ return;
523
+ }
524
+ const container = this.builtMeasureValuePolarContainers[containerIdx];
525
+ const polarEdges = container.polarEdges;
526
+ const localEdIdx = edIdx - globalEdMin;
527
+ if (localEdIdx < 0 || localEdIdx >= polarEdges.length) {
528
+ return;
529
+ }
530
+ const value = polarEdges[localEdIdx];
531
+ if (hasMinFilter && value <= minExcludedValue) {
532
+ return;
533
+ }
534
+ const distance = container.distance || defaultDistance;
535
+ const valueSetter = (newValue) => {
536
+ polarEdges[localEdIdx] = newValue;
537
+ };
538
+ const result = onEachValue(new PolarValue_1.PolarValue({
539
+ value,
540
+ polarAzimuthInDegrees: container.azimuth,
541
+ polarDistanceInMeters: (edIdx + 1) * distance,
542
+ }), azIdx, edIdx, valueSetter);
543
+ if (result instanceof Promise) {
544
+ isAsync = true;
545
+ promises.push(result);
546
+ }
547
+ };
548
+ for (const zone of zones) {
549
+ const azMin = Math.max((_c = zone.azMin) !== null && _c !== void 0 ? _c : 0, 0);
550
+ const azMax = Math.min((_d = zone.azMax) !== null && _d !== void 0 ? _d : azimuthsCount - 1, azimuthsCount - 1);
551
+ const edMin = Math.max((_e = zone.edMin) !== null && _e !== void 0 ? _e : 0, 0);
552
+ const edMax = (_f = zone.edMax) !== null && _f !== void 0 ? _f : this.polarMeasureValue.getPolarEdgesCount() - 1;
553
+ if (edgeFirst) {
554
+ for (let edIdx = edMin; edIdx <= edMax; edIdx++) {
555
+ for (let azIdx = azMin; azIdx <= azMax; azIdx++) {
556
+ visitCell(azIdx, edIdx);
476
557
  }
477
- if (edge < edgeAbsoluteIndex) {
478
- break;
558
+ }
559
+ }
560
+ else {
561
+ for (let azIdx = azMin; azIdx <= azMax; azIdx++) {
562
+ for (let edIdx = edMin; edIdx <= edMax; edIdx++) {
563
+ visitCell(azIdx, edIdx);
479
564
  }
480
565
  }
481
566
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PolarMeasureValueMap.js","sourceRoot":"","sources":["../../src/polar/PolarMeasureValueMap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PolarMeasureValueMap.js","sourceRoot":"","sources":["../../src/polar/PolarMeasureValueMap.ts"],"names":[],"mappings":"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"}