raain-model 3.2.3 → 3.2.5

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,10 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Added
11
+
12
+ - `buildPolarFilterFromMinValue(minValue = 0)` method on `PolarMeasureValueMap`: scans all values and returns a
13
+ `PolarFilter` with zones where values > minValue, using row-run compression per azimuth. Handles pre-filtered maps
14
+ with azimuth/edge offsets.
15
+
16
+ ## [3.2.4] - 2026-03-09
17
+
10
18
  ### Changed
11
19
 
12
- - **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.
13
- - **PolarMeasureValueMap**: `iterate()` supports `bypass` option when true, iterates only on zones stored in `buildPolarFilter` with deduplication. Throws if combined with `iterateOnEachEdge`.
20
+ - **PolarFilter**: unified `azimuthMin/Max, edgeMin/Max` fields into `zones: PolarFilterZone[]` with free-form
21
+ `metadata` per zone. Backward-compatible constructor. Bounding box exposed via getters. `merging()` uses intersection
22
+ semantics.
23
+ - **PolarMeasureValueMap**: `iterate()` supports `bypass` option — when true, iterates only on zones stored in
24
+ `buildPolarFilter` with deduplication. Throws if combined with `iterateOnEachEdge`.
14
25
 
15
26
  ### Added
16
27
 
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.3' };
4
+ exports.bpInfo = { version: 'v3.2.5' };
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.3",
3
+ "version": "3.2.5",
4
4
  "author": "contact@radartorain.com",
5
5
  "homepage": "https://github.com/raainio/raain-model",
6
6
  "description": "radartorain.com api model",
@@ -33,6 +33,7 @@ export declare class PolarMeasureValueMap {
33
33
  minExcludedValue?: number;
34
34
  bypass?: boolean;
35
35
  }): void | Promise<void>;
36
+ buildPolarFilterFromMinValue(minValue?: number): PolarFilter;
36
37
  countPolar(): number;
37
38
  countPolarWithEdgeFilter(filter: any): number;
38
39
  filter(polarFilter: PolarFilter): void;
@@ -50,5 +51,5 @@ export declare class PolarMeasureValueMap {
50
51
  };
51
52
  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>;
52
53
  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): Promise<void>;
54
+ protected iterateOnZones(zones: PolarFilterZone[], onEachValue: (polarValue: PolarValue, azimuthIndex: number, edgeIndex: number, valueSetter: (newValue: number) => void) => void | Promise<void>, minExcludedValue?: number, edgeFirst?: boolean): Promise<void>;
54
55
  }
@@ -173,9 +173,6 @@ class PolarMeasureValueMap {
173
173
  var _a, _b, _c, _d, _e, _f;
174
174
  const start = Date.now();
175
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
- if ((options === null || options === void 0 ? void 0 : options.bypass) && (options === null || options === void 0 ? void 0 : options.iterateOnEachEdge)) {
177
- throw new Error('Cannot combine bypass and iterateOnEachEdge options');
178
- }
179
176
  const azimuthMin = typeof ((_c = options === null || options === void 0 ? void 0 : options.polarFilter) === null || _c === void 0 ? void 0 : _c.azimuthMin) !== 'undefined'
180
177
  ? options === null || options === void 0 ? void 0 : options.polarFilter.azimuthMin
181
178
  : 0;
@@ -186,7 +183,13 @@ class PolarMeasureValueMap {
186
183
  const edgeMax = typeof ((_f = options === null || options === void 0 ? void 0 : options.polarFilter) === null || _f === void 0 ? void 0 : _f.edgeMax) !== 'undefined'
187
184
  ? options === null || options === void 0 ? void 0 : options.polarFilter.edgeMax
188
185
  : this.polarMeasureValue.getPolarEdgesCount();
189
- const mode = useBypass ? 'bypass-zones' : (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';
190
193
  const totalCells = this.countPolar();
191
194
  let callCount = 0;
192
195
  const wrappedCallback = (polarValue, azimuthIndex, edgeIndex, valueSetter) => {
@@ -212,7 +215,7 @@ class PolarMeasureValueMap {
212
215
  const minExcludedValue = options === null || options === void 0 ? void 0 : options.minExcludedValue;
213
216
  let result;
214
217
  if (useBypass) {
215
- result = this.iterateOnZones(this.buildPolarFilter.zones, wrappedCallback, minExcludedValue);
218
+ result = this.iterateOnZones(this.buildPolarFilter.zones, wrappedCallback, minExcludedValue, options === null || options === void 0 ? void 0 : options.iterateOnEachEdge);
216
219
  }
217
220
  else if (options === null || options === void 0 ? void 0 : options.iterateOnEachEdge) {
218
221
  result = this.iterateOnEachEdge(azimuthMin, azimuthMax, edgeMin, edgeMax, wrappedCallback, minExcludedValue);
@@ -229,6 +232,46 @@ class PolarMeasureValueMap {
229
232
  logPerf();
230
233
  }
231
234
  }
235
+ // Scans all built values and returns a PolarFilter with zones where values > minValue.
236
+ // Uses row-run compression: consecutive above-threshold edges on the same azimuth
237
+ // are merged into a single zone.
238
+ buildPolarFilterFromMinValue(minValue = 0) {
239
+ var _a, _b, _c, _d;
240
+ const zones = [];
241
+ const globalAzMin = (_b = (_a = this.buildPolarFilter) === null || _a === void 0 ? void 0 : _a.azimuthMin) !== null && _b !== void 0 ? _b : 0;
242
+ const globalEdMin = (_d = (_c = this.buildPolarFilter) === null || _c === void 0 ? void 0 : _c.edgeMin) !== null && _d !== void 0 ? _d : 0;
243
+ for (let ci = 0; ci < this.builtMeasureValuePolarContainers.length; ci++) {
244
+ const container = this.builtMeasureValuePolarContainers[ci];
245
+ const azIdx = ci + globalAzMin;
246
+ const polarEdges = container.polarEdges;
247
+ let runStart = -1;
248
+ for (let ei = 0; ei < polarEdges.length; ei++) {
249
+ const above = polarEdges[ei] > minValue;
250
+ if (above && runStart < 0) {
251
+ runStart = ei;
252
+ }
253
+ else if (!above && runStart >= 0) {
254
+ zones.push({
255
+ azMin: azIdx,
256
+ azMax: azIdx,
257
+ edMin: runStart + globalEdMin,
258
+ edMax: ei - 1 + globalEdMin,
259
+ });
260
+ runStart = -1;
261
+ }
262
+ }
263
+ // Close trailing run
264
+ if (runStart >= 0) {
265
+ zones.push({
266
+ azMin: azIdx,
267
+ azMax: azIdx,
268
+ edMin: runStart + globalEdMin,
269
+ edMax: polarEdges.length - 1 + globalEdMin,
270
+ });
271
+ }
272
+ }
273
+ return new PolarFilter_1.PolarFilter({ zones });
274
+ }
232
275
  countPolar() {
233
276
  return this.builtMeasureValuePolarContainers.reduce((p, c) => {
234
277
  return p + (c.getPolarEdgesCount ? c.getPolarEdgesCount() : c.polarEdges.length);
@@ -379,11 +422,15 @@ class PolarMeasureValueMap {
379
422
  }
380
423
  // Azimuth-first iteration (default): iterates radial lines one by one
381
424
  // Order: Az0-Edge0, Az0-Edge1, Az0-Edge2, ..., Az1-Edge0, Az1-Edge1, ...
382
- // Performance: O(containers * edges_per_container) - efficient, only iterates actual data
425
+ // Performance: O(containers * edgeRange) - direct index access, no inner scan
383
426
  iterateOnEachAzimuth(azimuthMin, azimuthMax, edgeMin, edgeMax, onEachValue, minExcludedValue) {
427
+ var _a;
384
428
  const promises = [];
385
429
  let isAsync = false;
386
430
  const hasMinFilter = typeof minExcludedValue === 'number';
431
+ const buildEdgeMin = typeof ((_a = this.buildPolarFilter) === null || _a === void 0 ? void 0 : _a.edgeMin) !== 'undefined'
432
+ ? this.buildPolarFilter.edgeMin
433
+ : 0;
387
434
  let azimuthAbsoluteIndex = -1;
388
435
  let updatedAzimuth = -1;
389
436
  while (updatedAzimuth < 0 && azimuthAbsoluteIndex < azimuthMax) {
@@ -401,24 +448,19 @@ class PolarMeasureValueMap {
401
448
  }
402
449
  const azimuthInDegrees = measureValuePolarContainer.azimuth;
403
450
  const polarEdges = measureValuePolarContainer.polarEdges;
404
- for (const [edgeIndex, value] of polarEdges.entries()) {
405
- // Skip values <= minExcludedValue
451
+ const distance = measureValuePolarContainer.distance || this.polarMeasureValue.getDefaultDistance();
452
+ // Direct index range: convert absolute edge range to local indices
453
+ const localStart = Math.max(edgeMin - buildEdgeMin, 0);
454
+ const localEnd = Math.min(edgeMax - buildEdgeMin, polarEdges.length - 1);
455
+ for (let i = localStart; i <= localEnd; i++) {
456
+ const value = polarEdges[i];
406
457
  if (hasMinFilter && value <= minExcludedValue) {
407
458
  continue;
408
459
  }
409
- const updated = this.updatedEdge(edgeIndex, measureValuePolarContainer, {
410
- reverse: true,
411
- });
412
- const edgeAbsoluteIndex = updated.edgeIndex;
413
- const distanceInMeters = updated.distanceInMeters;
414
- if (edgeAbsoluteIndex < edgeMin) {
415
- continue;
416
- }
417
- if (edgeMax < edgeAbsoluteIndex) {
418
- break;
419
- }
460
+ const edgeAbsoluteIndex = i + buildEdgeMin;
461
+ const distanceInMeters = (edgeAbsoluteIndex + 1) * distance;
420
462
  const valueSetter = (newValue) => {
421
- polarEdges[edgeIndex] = newValue;
463
+ polarEdges[i] = newValue;
422
464
  };
423
465
  const result = onEachValue(new PolarValue_1.PolarValue({
424
466
  value,
@@ -437,20 +479,26 @@ class PolarMeasureValueMap {
437
479
  }
438
480
  // Edge-first iteration: iterates concentric circles one by one
439
481
  // Order: Az0-Edge0, Az1-Edge0, Az2-Edge0, ..., Az0-Edge1, Az1-Edge1, ...
440
- // Performance: O(edgeRange * containers * edges_per_container) - less efficient
441
- // For each target edge, scans ALL containers and ALL their edges to find matches
482
+ // Performance: O(edgeRange * containers) - direct index access per container
442
483
  iterateOnEachEdge(azimuthMin, azimuthMax, edgeMin, edgeMax, onEachValue, minExcludedValue) {
484
+ var _a;
443
485
  const promises = [];
444
486
  let isAsync = false;
445
487
  const hasMinFilter = typeof minExcludedValue === 'number';
488
+ const buildEdgeMin = typeof ((_a = this.buildPolarFilter) === null || _a === void 0 ? void 0 : _a.edgeMin) !== 'undefined'
489
+ ? this.buildPolarFilter.edgeMin
490
+ : 0;
491
+ // Compute azimuth offset once
492
+ let azStartOffset = -1;
493
+ let updatedAzimuth = -1;
494
+ while (updatedAzimuth < 0 && azStartOffset < azimuthMax) {
495
+ const upd = this.updatedAzimuth(++azStartOffset);
496
+ updatedAzimuth = upd.azimuthIndexAbsolute;
497
+ }
498
+ azStartOffset--;
446
499
  for (let edge = edgeMin; edge <= edgeMax; edge++) {
447
- let azimuthAbsoluteIndex = -1;
448
- let updatedAzimuth = -1;
449
- while (updatedAzimuth < 0 && azimuthAbsoluteIndex < azimuthMax) {
450
- const upd = this.updatedAzimuth(++azimuthAbsoluteIndex);
451
- updatedAzimuth = upd.azimuthIndexAbsolute;
452
- }
453
- azimuthAbsoluteIndex--;
500
+ const localEdgeIdx = edge - buildEdgeMin;
501
+ let azimuthAbsoluteIndex = azStartOffset;
454
502
  for (const measureValuePolarContainer of this.builtMeasureValuePolarContainers) {
455
503
  azimuthAbsoluteIndex++;
456
504
  if (azimuthAbsoluteIndex < azimuthMin) {
@@ -459,35 +507,28 @@ class PolarMeasureValueMap {
459
507
  if (azimuthMax < azimuthAbsoluteIndex) {
460
508
  break;
461
509
  }
462
- const azimuthInDegrees = measureValuePolarContainer.azimuth;
463
510
  const polarEdges = measureValuePolarContainer.polarEdges;
464
- for (const [edgeIndex, value] of polarEdges.entries()) {
465
- // Skip values <= minExcludedValue
466
- if (hasMinFilter && value <= minExcludedValue) {
467
- continue;
468
- }
469
- const updated = this.updatedEdge(edgeIndex, measureValuePolarContainer, {
470
- reverse: true,
471
- });
472
- const edgeAbsoluteIndex = updated.edgeIndex;
473
- const distanceInMeters = updated.distanceInMeters;
474
- if (edge === edgeAbsoluteIndex) {
475
- const valueSetter = (newValue) => {
476
- polarEdges[edgeIndex] = newValue;
477
- };
478
- const result = onEachValue(new PolarValue_1.PolarValue({
479
- value,
480
- polarAzimuthInDegrees: azimuthInDegrees,
481
- polarDistanceInMeters: distanceInMeters,
482
- }), azimuthAbsoluteIndex, edgeAbsoluteIndex, valueSetter);
483
- if (result instanceof Promise) {
484
- isAsync = true;
485
- promises.push(result);
486
- }
487
- }
488
- if (edge < edgeAbsoluteIndex) {
489
- break;
490
- }
511
+ if (localEdgeIdx < 0 || localEdgeIdx >= polarEdges.length) {
512
+ continue;
513
+ }
514
+ const value = polarEdges[localEdgeIdx];
515
+ if (hasMinFilter && value <= minExcludedValue) {
516
+ continue;
517
+ }
518
+ const distance = measureValuePolarContainer.distance ||
519
+ this.polarMeasureValue.getDefaultDistance();
520
+ const distanceInMeters = (edge + 1) * distance;
521
+ const valueSetter = (newValue) => {
522
+ polarEdges[localEdgeIdx] = newValue;
523
+ };
524
+ const result = onEachValue(new PolarValue_1.PolarValue({
525
+ value,
526
+ polarAzimuthInDegrees: measureValuePolarContainer.azimuth,
527
+ polarDistanceInMeters: distanceInMeters,
528
+ }), azimuthAbsoluteIndex, edge, valueSetter);
529
+ if (result instanceof Promise) {
530
+ isAsync = true;
531
+ promises.push(result);
491
532
  }
492
533
  }
493
534
  }
@@ -497,7 +538,9 @@ class PolarMeasureValueMap {
497
538
  }
498
539
  // Zone-based iteration: only visits cells within defined zones, with deduplication
499
540
  // Direct index mapping (no wrapping) for predictable zone traversal
500
- iterateOnZones(zones, onEachValue, minExcludedValue) {
541
+ // edgeFirst=false (default): azimuth-first per zone
542
+ // edgeFirst=true: edge-first per zone
543
+ iterateOnZones(zones, onEachValue, minExcludedValue, edgeFirst) {
501
544
  var _a, _b, _c, _d, _e, _f;
502
545
  const promises = [];
503
546
  let isAsync = false;
@@ -508,45 +551,56 @@ class PolarMeasureValueMap {
508
551
  const azimuthsCount = this.polarMeasureValue.getAzimuthsCount();
509
552
  const defaultDistance = this.polarMeasureValue.getDefaultDistance();
510
553
  const maxEdKey = this.polarMeasureValue.getPolarEdgesCount() + 1;
554
+ const visitCell = (azIdx, edIdx) => {
555
+ const key = azIdx * maxEdKey + edIdx;
556
+ if (visited.has(key)) {
557
+ return;
558
+ }
559
+ visited.add(key);
560
+ const containerIdx = azIdx - globalAzMin;
561
+ if (containerIdx < 0 || containerIdx >= this.builtMeasureValuePolarContainers.length) {
562
+ return;
563
+ }
564
+ const container = this.builtMeasureValuePolarContainers[containerIdx];
565
+ const polarEdges = container.polarEdges;
566
+ const localEdIdx = edIdx - globalEdMin;
567
+ if (localEdIdx < 0 || localEdIdx >= polarEdges.length) {
568
+ return;
569
+ }
570
+ const value = polarEdges[localEdIdx];
571
+ if (hasMinFilter && value <= minExcludedValue) {
572
+ return;
573
+ }
574
+ const distance = container.distance || defaultDistance;
575
+ const valueSetter = (newValue) => {
576
+ polarEdges[localEdIdx] = newValue;
577
+ };
578
+ const result = onEachValue(new PolarValue_1.PolarValue({
579
+ value,
580
+ polarAzimuthInDegrees: container.azimuth,
581
+ polarDistanceInMeters: (edIdx + 1) * distance,
582
+ }), azIdx, edIdx, valueSetter);
583
+ if (result instanceof Promise) {
584
+ isAsync = true;
585
+ promises.push(result);
586
+ }
587
+ };
511
588
  for (const zone of zones) {
512
589
  const azMin = Math.max((_c = zone.azMin) !== null && _c !== void 0 ? _c : 0, 0);
513
590
  const azMax = Math.min((_d = zone.azMax) !== null && _d !== void 0 ? _d : azimuthsCount - 1, azimuthsCount - 1);
514
591
  const edMin = Math.max((_e = zone.edMin) !== null && _e !== void 0 ? _e : 0, 0);
515
592
  const edMax = (_f = zone.edMax) !== null && _f !== void 0 ? _f : this.polarMeasureValue.getPolarEdgesCount() - 1;
516
- for (let azIdx = azMin; azIdx <= azMax; azIdx++) {
517
- const containerIdx = azIdx - globalAzMin;
518
- if (containerIdx < 0 || containerIdx >= this.builtMeasureValuePolarContainers.length) {
519
- continue;
520
- }
521
- const container = this.builtMeasureValuePolarContainers[containerIdx];
522
- const azimuthInDegrees = container.azimuth;
523
- const polarEdges = container.polarEdges;
524
- const distance = container.distance || defaultDistance;
593
+ if (edgeFirst) {
525
594
  for (let edIdx = edMin; edIdx <= edMax; edIdx++) {
526
- const key = azIdx * maxEdKey + edIdx;
527
- if (visited.has(key)) {
528
- continue;
529
- }
530
- visited.add(key);
531
- const localEdIdx = edIdx - globalEdMin;
532
- if (localEdIdx < 0 || localEdIdx >= polarEdges.length) {
533
- continue;
534
- }
535
- const value = polarEdges[localEdIdx];
536
- if (hasMinFilter && value <= minExcludedValue) {
537
- continue;
595
+ for (let azIdx = azMin; azIdx <= azMax; azIdx++) {
596
+ visitCell(azIdx, edIdx);
538
597
  }
539
- const valueSetter = (newValue) => {
540
- polarEdges[localEdIdx] = newValue;
541
- };
542
- const result = onEachValue(new PolarValue_1.PolarValue({
543
- value,
544
- polarAzimuthInDegrees: azimuthInDegrees,
545
- polarDistanceInMeters: (edIdx + 1) * distance,
546
- }), azIdx, edIdx, valueSetter);
547
- if (result instanceof Promise) {
548
- isAsync = true;
549
- promises.push(result);
598
+ }
599
+ }
600
+ else {
601
+ for (let azIdx = azMin; azIdx <= azMax; azIdx++) {
602
+ for (let edIdx = edMin; edIdx <= edMax; edIdx++) {
603
+ visitCell(azIdx, edIdx);
550
604
  }
551
605
  }
552
606
  }
@@ -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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"}