@mlightcad/cad-simple-viewer 1.7.5 → 1.7.6-preview.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 (80) hide show
  1. package/dist/cad-simple-viewer.js +8295 -7508
  2. package/dist/cad-simple-viewer.umd.cjs +83 -83
  3. package/dist/mtext-renderer-worker.js +2987 -2815
  4. package/find.ts +7 -0
  5. package/lib/app/AcApDocManager.d.ts +5 -0
  6. package/lib/app/AcApDocManager.d.ts.map +1 -1
  7. package/lib/app/AcApDocManager.js +28 -15
  8. package/lib/app/AcApDocManager.js.map +1 -1
  9. package/lib/app/AcApOpenDatabaseOptions.d.ts +8 -6
  10. package/lib/app/AcApOpenDatabaseOptions.d.ts.map +1 -1
  11. package/lib/app/AcApOpenFileProgressController.d.ts +17 -9
  12. package/lib/app/AcApOpenFileProgressController.d.ts.map +1 -1
  13. package/lib/app/AcApOpenFileProgressController.js +41 -20
  14. package/lib/app/AcApOpenFileProgressController.js.map +1 -1
  15. package/lib/app/AcApProgress.d.ts +5 -0
  16. package/lib/app/AcApProgress.d.ts.map +1 -1
  17. package/lib/app/AcApProgress.js +10 -0
  18. package/lib/app/AcApProgress.js.map +1 -1
  19. package/lib/app/openFileProgress.d.ts +8 -1
  20. package/lib/app/openFileProgress.d.ts.map +1 -1
  21. package/lib/app/openFileProgress.js +13 -2
  22. package/lib/app/openFileProgress.js.map +1 -1
  23. package/lib/app/syncCurrentSpaceFromTileMode.d.ts +25 -0
  24. package/lib/app/syncCurrentSpaceFromTileMode.d.ts.map +1 -0
  25. package/lib/app/syncCurrentSpaceFromTileMode.js +85 -0
  26. package/lib/app/syncCurrentSpaceFromTileMode.js.map +1 -0
  27. package/lib/find/AcApFindNavigator.d.ts +59 -0
  28. package/lib/find/AcApFindNavigator.d.ts.map +1 -0
  29. package/lib/find/AcApFindNavigator.js +145 -0
  30. package/lib/find/AcApFindNavigator.js.map +1 -0
  31. package/lib/find/findDrawing.d.ts +100 -0
  32. package/lib/find/findDrawing.d.ts.map +1 -0
  33. package/lib/find/findDrawing.js +183 -0
  34. package/lib/find/findDrawing.js.map +1 -0
  35. package/lib/find/findText.d.ts +147 -0
  36. package/lib/find/findText.d.ts.map +1 -0
  37. package/lib/find/findText.js +527 -0
  38. package/lib/find/findText.js.map +1 -0
  39. package/lib/find/index.d.ts +3 -0
  40. package/lib/find/index.d.ts.map +1 -0
  41. package/lib/find/index.js +3 -0
  42. package/lib/find/index.js.map +1 -0
  43. package/lib/index.d.ts +2 -0
  44. package/lib/index.d.ts.map +1 -1
  45. package/lib/index.js +2 -0
  46. package/lib/index.js.map +1 -1
  47. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts +29 -7
  48. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts.map +1 -1
  49. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js +77 -38
  50. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js.map +1 -1
  51. package/lib/view/AcTrConvertQueue.d.ts +78 -0
  52. package/lib/view/AcTrConvertQueue.d.ts.map +1 -0
  53. package/lib/view/AcTrConvertQueue.js +143 -0
  54. package/lib/view/AcTrConvertQueue.js.map +1 -0
  55. package/lib/view/AcTrGroupWcsBboxAssert.d.ts +9 -0
  56. package/lib/view/AcTrGroupWcsBboxAssert.d.ts.map +1 -1
  57. package/lib/view/AcTrGroupWcsBboxAssert.js +12 -0
  58. package/lib/view/AcTrGroupWcsBboxAssert.js.map +1 -1
  59. package/lib/view/AcTrLayer.d.ts.map +1 -1
  60. package/lib/view/AcTrLayer.js +5 -1
  61. package/lib/view/AcTrLayer.js.map +1 -1
  62. package/lib/view/AcTrLayout.d.ts.map +1 -1
  63. package/lib/view/AcTrLayout.js +15 -0
  64. package/lib/view/AcTrLayout.js.map +1 -1
  65. package/lib/view/AcTrLayoutView.d.ts.map +1 -1
  66. package/lib/view/AcTrLayoutView.js +3 -1
  67. package/lib/view/AcTrLayoutView.js.map +1 -1
  68. package/lib/view/AcTrProgressiveOpenFitController.d.ts +1 -0
  69. package/lib/view/AcTrProgressiveOpenFitController.d.ts.map +1 -1
  70. package/lib/view/AcTrProgressiveOpenFitController.js +2 -1
  71. package/lib/view/AcTrProgressiveOpenFitController.js.map +1 -1
  72. package/lib/view/AcTrView2d.d.ts +167 -18
  73. package/lib/view/AcTrView2d.d.ts.map +1 -1
  74. package/lib/view/AcTrView2d.js +746 -212
  75. package/lib/view/AcTrView2d.js.map +1 -1
  76. package/package.json +17 -10
  77. package/src/find/AcApFindNavigator.ts +190 -0
  78. package/src/find/findDrawing.ts +211 -0
  79. package/src/find/findText.ts +595 -0
  80. package/src/find/index.ts +2 -0
@@ -1,5 +1,6 @@
1
1
  import { AcDbObjectId } from '@mlightcad/data-model';
2
2
  import { AcTrGroup } from '@mlightcad/three-renderer';
3
+ import * as THREE from 'three';
3
4
  import { AcEdSpatialQueryResultItem, AcEdSpatialQueryResultItemEx } from '../editor/view/AcEdSpatialQueryResult';
4
5
  import { AcTrSpatialIndex, AcTrSpatialIndexBBox, AcTrSpatialIndexStats, AcTrSpatialSearchOptions } from './AcTrSpatialIndex';
5
6
  /**
@@ -32,10 +33,21 @@ import { AcTrSpatialIndex, AcTrSpatialIndexBBox, AcTrSpatialIndexStats, AcTrSpat
32
33
  * where entities are grouped hierarchically but still require fast
33
34
  * spatial queries such as selection, picking, and hit-testing.
34
35
  */
36
+ /**
37
+ * Block-local child boxes plus the INSERT matrix that maps them into WCS.
38
+ *
39
+ * Stored once per block reference until a spatial query needs the expanded
40
+ * child index. The box array is shared across instances of one template.
41
+ */
42
+ export interface AcTrLazySpatialChildren {
43
+ boxes: readonly AcEdSpatialQueryResultItem[];
44
+ matrix: THREE.Matrix4;
45
+ }
35
46
  export declare class AcTrHierarchicalSpatialIndex implements AcTrSpatialIndex {
36
47
  static THRESHOLD: number;
37
48
  private readonly rootIndex;
38
49
  private readonly childIndexes;
50
+ private readonly lazyChildren;
39
51
  /**
40
52
  * Creates a hierarchical spatial index instance.
41
53
  *
@@ -136,6 +148,7 @@ export declare class AcTrHierarchicalSpatialIndex implements AcTrSpatialIndex {
136
148
  *
137
149
  * A fast root-level rejection is performed first. If root-level candidates
138
150
  * exist, each candidate is checked as follows:
151
+ * - deferred INSERT children are expanded first, same as {@link search};
139
152
  * - without child index: treated as colliding immediately;
140
153
  * - with child index: delegated to child-level `collides`.
141
154
  *
@@ -171,6 +184,17 @@ export declare class AcTrHierarchicalSpatialIndex implements AcTrSpatialIndex {
171
184
  * @returns `true` if a child index is registered for `id`.
172
185
  */
173
186
  hasChildIndex(id: AcDbObjectId): boolean;
187
+ /**
188
+ * Remembers block-local child boxes for one INSERT without copying them.
189
+ *
190
+ * {@link search} expands the boxes into a child index the first time a query
191
+ * hits this id. Extents queries that only read {@link all} stay on the root
192
+ * box.
193
+ *
194
+ * @param id - INSERT object id.
195
+ * @param source - Shared template boxes and this instance's matrix.
196
+ */
197
+ setLazyChildSource(id: AcDbObjectId, source: AcTrLazySpatialChildren): void;
174
198
  /**
175
199
  * Returns the first-level (root) item for {@link id}, when present.
176
200
  *
@@ -209,16 +233,14 @@ export declare class AcTrHierarchicalSpatialIndex implements AcTrSpatialIndex {
209
233
  */
210
234
  createChildIndex(group: AcTrGroup): AcTrSpatialIndex<AcEdSpatialQueryResultItem> | undefined;
211
235
  /**
212
- * Chooses a child index implementation by item count.
236
+ * Expands a deferred INSERT into a child index.
213
237
  *
214
- * Selection strategy:
215
- * - `size > THRESHOLD`: use R-tree index for better large-set query performance;
216
- * - `0 < size <= THRESHOLD`: use linear index to minimize setup overhead;
217
- * - `size <= 0`: return `undefined` (no index required).
238
+ * No-op when the id was already expanded or has no lazy source. Does not
239
+ * insert another root box; the caller registered the aggregate bbox.
218
240
  *
219
- * @param size Number of child items.
220
- * @returns A child index instance or `undefined` for empty datasets.
241
+ * @param id - INSERT object id whose query hit needs child boxes.
221
242
  */
243
+ private materializeLazyChildren;
222
244
  private createIndexBySize;
223
245
  }
224
246
  //# sourceMappingURL=AcTrHierarchicalSpatialIndex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AcTrHierarchicalSpatialIndex.d.ts","sourceRoot":"","sources":["../../src/spatialIndex/AcTrHierarchicalSpatialIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAErD,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAG7B,MAAM,uCAAuC,CAAA;AAI9C,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EAEzB,MAAM,oBAAoB,CAAA;AAE3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,4BAA6B,YAAW,gBAAgB;IACnE,MAAM,CAAC,SAAS,SAAM;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8C;IACxE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;IAEnE;;;;;;;;OAQG;gBACS,SAAS,CAAC,EAAE,gBAAgB,CAAC,0BAA0B,CAAC;IAIpE;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAIxD;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIlC;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,EAAE,0BAA0B,GAAG,IAAI;IAI9C;;;;;;OAMG;IACH,IAAI,CAAC,KAAK,EAAE,SAAS,0BAA0B,EAAE,GAAG,IAAI;IAIxD;;;;;;;;OAQG;IACH,MAAM,CACJ,IAAI,EAAE,0BAA0B,EAChC,MAAM,CAAC,EAAE,CACP,CAAC,EAAE,0BAA0B,EAC7B,CAAC,EAAE,0BAA0B,KAC1B,OAAO,GACX,IAAI;IAKP;;;;OAIG;IACH,UAAU,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;IAKlC;;;;;OAKG;IACH,KAAK,IAAI,IAAI;IAMb;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CACJ,IAAI,EAAE,oBAAoB,EAC1B,OAAO,CAAC,EAAE,wBAAwB,GACjC,4BAA4B,EAAE;IAgCjC;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAiB5B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO;IAU7C;;;;;;;;OAQG;IACH,GAAG,IAAI,0BAA0B,EAAE;IAYnC;;;;;;;OAOG;IACG,QAAQ,CAAC,IAAI,CAAC,EAAE;QACpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;KAC5B,GAAG,OAAO,CAAC,0BAA0B,EAAE,CAAC;IA6BzC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,EAAE,YAAY;IAI9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,YAAY,GAAG,0BAA0B,GAAG,SAAS;IAOrE;;OAEG;IACH,QAAQ,IAAI,qBAAqB;IA8BjC;;;;;;;;;;;;;;;OAeG;IACH,gBAAgB,CACd,EAAE,EAAE,YAAY,EAChB,KAAK,EAAE,SAAS,0BAA0B,EAAE;IAgC9C;;;;;;;;OAQG;IACH,gBAAgB,CAAC,KAAK,EAAE,SAAS;IAIjC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB;CAS1B"}
1
+ {"version":3,"file":"AcTrHierarchicalSpatialIndex.d.ts","sourceRoot":"","sources":["../../src/spatialIndex/AcTrHierarchicalSpatialIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAG7B,MAAM,uCAAuC,CAAA;AAI9C,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EAEzB,MAAM,oBAAoB,CAAA;AAE3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,SAAS,0BAA0B,EAAE,CAAA;IAC5C,MAAM,EAAE,KAAK,CAAC,OAAO,CAAA;CACtB;AAED,qBAAa,4BAA6B,YAAW,gBAAgB;IACnE,MAAM,CAAC,SAAS,SAAM;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8C;IACxE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6C;IAE1E;;;;;;;;OAQG;gBACS,SAAS,CAAC,EAAE,gBAAgB,CAAC,0BAA0B,CAAC;IAIpE;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAIxD;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIlC;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,EAAE,0BAA0B,GAAG,IAAI;IAI9C;;;;;;OAMG;IACH,IAAI,CAAC,KAAK,EAAE,SAAS,0BAA0B,EAAE,GAAG,IAAI;IAIxD;;;;;;;;OAQG;IACH,MAAM,CACJ,IAAI,EAAE,0BAA0B,EAChC,MAAM,CAAC,EAAE,CACP,CAAC,EAAE,0BAA0B,EAC7B,CAAC,EAAE,0BAA0B,KAC1B,OAAO,GACX,IAAI;IAMP;;;;OAIG;IACH,UAAU,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;IAMlC;;;;;OAKG;IACH,KAAK,IAAI,IAAI;IAOb;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CACJ,IAAI,EAAE,oBAAoB,EAC1B,OAAO,CAAC,EAAE,wBAAwB,GACjC,4BAA4B,EAAE;IAiCjC;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAiB5B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO;IAW7C;;;;;;;;OAQG;IACH,GAAG,IAAI,0BAA0B,EAAE;IAYnC;;;;;;;OAOG;IACG,QAAQ,CAAC,IAAI,CAAC,EAAE;QACpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;KAC5B,GAAG,OAAO,CAAC,0BAA0B,EAAE,CAAC;IA6BzC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,EAAE,YAAY;IAI9B;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,uBAAuB;IAIpE;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,YAAY,GAAG,0BAA0B,GAAG,SAAS;IAOrE;;OAEG;IACH,QAAQ,IAAI,qBAAqB;IA8BjC;;;;;;;;;;;;;;;OAeG;IACH,gBAAgB,CACd,EAAE,EAAE,YAAY,EAChB,KAAK,EAAE,SAAS,0BAA0B,EAAE;IAgC9C;;;;;;;;OAQG;IACH,gBAAgB,CAAC,KAAK,EAAE,SAAS;IAIjC;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAmB/B,OAAO,CAAC,iBAAiB;CAS1B"}
@@ -86,36 +86,6 @@ import { isFiniteSpatialBBox } from '../view/AcTrGroupWcsBboxAssert';
86
86
  import { AcTrLinearSpatialIndex } from './AcTrLinearSpatialIndex';
87
87
  import { AcTrRBushSpatialIndex } from './AcTrRBushSpatialIndex';
88
88
  import { isSpatialBoxFullyInside } from './AcTrSpatialIndex';
89
- /**
90
- * A two-level (hierarchical) spatial index designed for complex CAD
91
- * scene structures such as blocks, groups, layers, or nested entities.
92
- *
93
- * The index consists of:
94
- *
95
- * 1. A first-level spatial index that stores coarse bounding boxes
96
- * (AcEdSpatialQueryResultItem) and maps each result to an `id`.
97
- *
98
- * 2. A second-level map from `id` to another spatial index, which
99
- * contains more detailed spatial data for that specific entity,
100
- * block, or group.
101
- *
102
- * Spatial queries are executed in two phases:
103
- * - First, the query is performed against the root spatial index to
104
- * find candidate items.
105
- * - Then, for each candidate, the corresponding second-level spatial
106
- * index (if present) is queried for more precise results.
107
- * - Results from both levels are merged into a single query result.
108
- *
109
- * This design allows:
110
- * - Mixing different spatial index implementations (e.g. R-tree and
111
- * linear scan) at different hierarchy levels
112
- * - Efficient querying of large, nested CAD datasets
113
- * - Lazy or selective construction of fine-grained spatial indexes
114
- *
115
- * This class is particularly suitable for CAD viewers and editors
116
- * where entities are grouped hierarchically but still require fast
117
- * spatial queries such as selection, picking, and hit-testing.
118
- */
119
89
  var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
120
90
  /**
121
91
  * Creates a hierarchical spatial index instance.
@@ -128,6 +98,7 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
128
98
  */
129
99
  function AcTrHierarchicalSpatialIndex(rootIndex) {
130
100
  this.childIndexes = new Map();
101
+ this.lazyChildren = new Map();
131
102
  this.rootIndex = rootIndex !== null && rootIndex !== void 0 ? rootIndex : new AcTrRBushSpatialIndex();
132
103
  }
133
104
  /**
@@ -184,6 +155,7 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
184
155
  AcTrHierarchicalSpatialIndex.prototype.remove = function (item, equals) {
185
156
  this.rootIndex.remove(item, equals);
186
157
  this.childIndexes.delete(item.id);
158
+ this.lazyChildren.delete(item.id);
187
159
  };
188
160
  /**
189
161
  * Removes one first-level item by id and clears its child index.
@@ -193,6 +165,7 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
193
165
  AcTrHierarchicalSpatialIndex.prototype.removeById = function (id) {
194
166
  this.rootIndex.removeById(id);
195
167
  this.childIndexes.delete(id);
168
+ this.lazyChildren.delete(id);
196
169
  };
197
170
  /**
198
171
  * Clears all indexed data from both hierarchy levels.
@@ -204,6 +177,7 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
204
177
  this.rootIndex.clear();
205
178
  this.childIndexes.forEach(function (i) { return i.clear(); });
206
179
  this.childIndexes.clear();
180
+ this.lazyChildren.clear();
207
181
  };
208
182
  /**
209
183
  * Performs a hierarchical search against the given bounding box.
@@ -232,6 +206,7 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
232
206
  try {
233
207
  for (var level1_1 = __values(level1), level1_1_1 = level1_1.next(); !level1_1_1.done; level1_1_1 = level1_1.next()) {
234
208
  var hit = level1_1_1.value;
209
+ this.materializeLazyChildren(hit.id);
235
210
  var child = this.childIndexes.get(hit.id);
236
211
  if (!child) {
237
212
  if ((options === null || options === void 0 ? void 0 : options.selectionMode) !== 'window' ||
@@ -279,6 +254,7 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
279
254
  *
280
255
  * A fast root-level rejection is performed first. If root-level candidates
281
256
  * exist, each candidate is checked as follows:
257
+ * - deferred INSERT children are expanded first, same as {@link search};
282
258
  * - without child index: treated as colliding immediately;
283
259
  * - with child index: delegated to child-level `collides`.
284
260
  *
@@ -291,6 +267,7 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
291
267
  return false;
292
268
  var level1 = this.rootIndex.search(bbox);
293
269
  return level1.some(function (hit) {
270
+ _this.materializeLazyChildren(hit.id);
294
271
  var child = _this.childIndexes.get(hit.id);
295
272
  return child ? child.collides(bbox) : true;
296
273
  });
@@ -389,7 +366,20 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
389
366
  * @returns `true` if a child index is registered for `id`.
390
367
  */
391
368
  AcTrHierarchicalSpatialIndex.prototype.hasChildIndex = function (id) {
392
- return this.childIndexes.has(id);
369
+ return this.childIndexes.has(id) || this.lazyChildren.has(id);
370
+ };
371
+ /**
372
+ * Remembers block-local child boxes for one INSERT without copying them.
373
+ *
374
+ * {@link search} expands the boxes into a child index the first time a query
375
+ * hits this id. Extents queries that only read {@link all} stay on the root
376
+ * box.
377
+ *
378
+ * @param id - INSERT object id.
379
+ * @param source - Shared template boxes and this instance's matrix.
380
+ */
381
+ AcTrHierarchicalSpatialIndex.prototype.setLazyChildSource = function (id, source) {
382
+ this.lazyChildren.set(id, source);
393
383
  };
394
384
  /**
395
385
  * Returns the first-level (root) item for {@link id}, when present.
@@ -497,16 +487,36 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
497
487
  return this.ensureChildIndex(group.objectId, group.wcsChildBoxes);
498
488
  };
499
489
  /**
500
- * Chooses a child index implementation by item count.
490
+ * Expands a deferred INSERT into a child index.
501
491
  *
502
- * Selection strategy:
503
- * - `size > THRESHOLD`: use R-tree index for better large-set query performance;
504
- * - `0 < size <= THRESHOLD`: use linear index to minimize setup overhead;
505
- * - `size <= 0`: return `undefined` (no index required).
492
+ * No-op when the id was already expanded or has no lazy source. Does not
493
+ * insert another root box; the caller registered the aggregate bbox.
506
494
  *
507
- * @param size Number of child items.
508
- * @returns A child index instance or `undefined` for empty datasets.
495
+ * @param id - INSERT object id whose query hit needs child boxes.
509
496
  */
497
+ AcTrHierarchicalSpatialIndex.prototype.materializeLazyChildren = function (id) {
498
+ if (this.childIndexes.has(id))
499
+ return;
500
+ var source = this.lazyChildren.get(id);
501
+ if (!source)
502
+ return;
503
+ this.lazyChildren.delete(id);
504
+ var items = [];
505
+ for (var i = 0; i < source.boxes.length; i++) {
506
+ var box = source.boxes[i];
507
+ if (!box || !isFiniteSpatialBBox(box))
508
+ continue;
509
+ items.push(transformSpatialBox(box, source.matrix));
510
+ }
511
+ var finiteItems = uniquifySpatialItemIds(items);
512
+ if (finiteItems.length === 0)
513
+ return;
514
+ var spatialIndex = this.createIndexBySize(finiteItems.length);
515
+ if (!spatialIndex)
516
+ return;
517
+ spatialIndex.load(finiteItems);
518
+ this.setChildIndex(id, spatialIndex);
519
+ };
510
520
  AcTrHierarchicalSpatialIndex.prototype.createIndexBySize = function (size) {
511
521
  if (size > AcTrHierarchicalSpatialIndex.THRESHOLD) {
512
522
  return new AcTrRBushSpatialIndex();
@@ -520,4 +530,33 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
520
530
  return AcTrHierarchicalSpatialIndex;
521
531
  }());
522
532
  export { AcTrHierarchicalSpatialIndex };
533
+ /**
534
+ * Maps one block-local AABB through an INSERT matrix into a WCS AABB.
535
+ *
536
+ * @param box - Axis-aligned box in block space.
537
+ * @param matrix - INSERT transform.
538
+ * @returns The transformed axis-aligned box, with the same id.
539
+ */
540
+ function transformSpatialBox(box, matrix) {
541
+ var e = matrix.elements;
542
+ var minX = Infinity;
543
+ var minY = Infinity;
544
+ var maxX = -Infinity;
545
+ var maxY = -Infinity;
546
+ var xs = [box.minX, box.maxX];
547
+ var ys = [box.minY, box.maxY];
548
+ for (var i = 0; i < 2; i++) {
549
+ for (var j = 0; j < 2; j++) {
550
+ var x = xs[i];
551
+ var y = ys[j];
552
+ var wx = e[0] * x + e[4] * y + e[12];
553
+ var wy = e[1] * x + e[5] * y + e[13];
554
+ minX = Math.min(minX, wx);
555
+ minY = Math.min(minY, wy);
556
+ maxX = Math.max(maxX, wx);
557
+ maxY = Math.max(maxY, wy);
558
+ }
559
+ }
560
+ return { minX: minX, minY: minY, maxX: maxX, maxY: maxY, id: box.id };
561
+ }
523
562
  //# sourceMappingURL=AcTrHierarchicalSpatialIndex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AcTrHierarchicalSpatialIndex.js","sourceRoot":"","sources":["../../src/spatialIndex/AcTrHierarchicalSpatialIndex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcTrHierarchicalSpatialIndex.js","sourceRoot":"","sources":["../../src/spatialIndex/AcTrHierarchicalSpatialIndex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Entity waiting in {@link AcTrView2d}'s convert queue.
3
+ *
4
+ * Only `ownerId` matters for scheduling: paper-space sheets must be converted
5
+ * before the model-space block references queued ahead of them.
6
+ */
7
+ export interface AcTrConvertQueueEntity {
8
+ ownerId?: string;
9
+ }
10
+ /**
11
+ * Remainder of a convert batch plus the active layout that ordered it.
12
+ */
13
+ export interface AcTrConvertPendingState<T extends AcTrConvertQueueEntity> {
14
+ pending: T[];
15
+ /** Index of the next entity in {@link pending} to convert. */
16
+ cursor: number;
17
+ activeOwnerId: string;
18
+ }
19
+ /**
20
+ * Stable-partitions `entities` so those owned by `activeOwnerId` come first.
21
+ *
22
+ * Returns the same array when it is already in that order (or when there is
23
+ * nothing to split) so a large model-space queue is not copied on every slice.
24
+ *
25
+ * @param entities - Queue contents in arrival order.
26
+ * @param activeOwnerId - Block table record id of the layout on screen.
27
+ * @returns `entities`, or a new array with the active layout's entities first.
28
+ */
29
+ export declare function orderActiveLayoutFirst<T extends AcTrConvertQueueEntity>(entities: T[], activeOwnerId: string): T[];
30
+ /**
31
+ * Seeds a drain from the entities queued so far.
32
+ *
33
+ * @param entities - Everything currently in the convert queue.
34
+ * @param activeOwnerId - Layout that should convert first.
35
+ */
36
+ export declare function createConvertPending<T extends AcTrConvertQueueEntity>(entities: T[], activeOwnerId: string): AcTrConvertPendingState<T>;
37
+ /**
38
+ * Folds entities queued during a slice, and a layout activated meanwhile,
39
+ * into the not-yet-converted remainder.
40
+ *
41
+ * Active-layout entities jump ahead of the remainder. Other arrivals stay
42
+ * behind it, without copying the remainder, so a long model-space tail is
43
+ * not recopied on every flush chunk.
44
+ *
45
+ * @param state - Remainder of the current drain.
46
+ * @param queued - Entities appended since the previous slice.
47
+ * @param activeOwnerId - Layout that is active now.
48
+ */
49
+ export declare function absorbConvertQueue<T extends AcTrConvertQueueEntity>(state: AcTrConvertPendingState<T>, queued: T[], activeOwnerId: string): AcTrConvertPendingState<T>;
50
+ /**
51
+ * Whether the not-yet-converted remainder still holds entities owned by the
52
+ * active layout. Used to grow slices more aggressively once only model-space
53
+ * (or other layouts) remain.
54
+ */
55
+ export declare function hasPendingActiveOwner<T extends AcTrConvertQueueEntity>(state: AcTrConvertPendingState<T>): boolean;
56
+ /**
57
+ * Grows or shrinks the next convert slice from the previous slice's wall time.
58
+ *
59
+ * When a paper layout still has pending entities, grow by 2× so the sheet can
60
+ * interleave soon. Once only other owners remain — or the active layout is
61
+ * already model space, where fine interleaving does not help first paint —
62
+ * grow by 4× so a long model-space tail does not pay per-slice overhead.
63
+ *
64
+ * @param slice - Entities converted in the previous slice (≥ 1).
65
+ * @param tookMs - Wall time of that slice.
66
+ * @param budgetMs - Target wall time per slice.
67
+ * @param maxSlice - Upper bound on entities per slice.
68
+ * @param activeLayoutPending - True to prefer responsive 2× growth (paper
69
+ * sheet still converting); false for 4× throughput.
70
+ */
71
+ export declare function adaptConvertSliceSize(options: {
72
+ slice: number;
73
+ tookMs: number;
74
+ budgetMs: number;
75
+ maxSlice: number;
76
+ activeLayoutPending: boolean;
77
+ }): number;
78
+ //# sourceMappingURL=AcTrConvertQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcTrConvertQueue.d.ts","sourceRoot":"","sources":["../../src/view/AcTrConvertQueue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,sBAAsB;IACvE,OAAO,EAAE,CAAC,EAAE,CAAA;IACZ,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,sBAAsB,EACrE,QAAQ,EAAE,CAAC,EAAE,EACb,aAAa,EAAE,MAAM,GACpB,CAAC,EAAE,CAyBL;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,sBAAsB,EACnE,QAAQ,EAAE,CAAC,EAAE,EACb,aAAa,EAAE,MAAM,GACpB,uBAAuB,CAAC,CAAC,CAAC,CAM5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,sBAAsB,EACjE,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,EACjC,MAAM,EAAE,CAAC,EAAE,EACX,aAAa,EAAE,MAAM,GACpB,uBAAuB,CAAC,CAAC,CAAC,CAwC5B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,sBAAsB,EACpE,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAChC,OAAO,CAOT;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,mBAAmB,EAAE,OAAO,CAAA;CAC7B,GAAG,MAAM,CAWT"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Stable-partitions `entities` so those owned by `activeOwnerId` come first.
3
+ *
4
+ * Returns the same array when it is already in that order (or when there is
5
+ * nothing to split) so a large model-space queue is not copied on every slice.
6
+ *
7
+ * @param entities - Queue contents in arrival order.
8
+ * @param activeOwnerId - Block table record id of the layout on screen.
9
+ * @returns `entities`, or a new array with the active layout's entities first.
10
+ */
11
+ export function orderActiveLayoutFirst(entities, activeOwnerId) {
12
+ if (!activeOwnerId || entities.length < 2)
13
+ return entities;
14
+ var firstActive = -1;
15
+ var firstOther = -1;
16
+ for (var i = 0; i < entities.length; i++) {
17
+ if (entities[i].ownerId === activeOwnerId) {
18
+ if (firstActive < 0)
19
+ firstActive = i;
20
+ }
21
+ else if (firstOther < 0) {
22
+ firstOther = i;
23
+ }
24
+ if (firstActive >= 0 && firstOther >= 0)
25
+ break;
26
+ }
27
+ if (firstActive < 0 || firstOther < 0 || firstActive < firstOther) {
28
+ return entities;
29
+ }
30
+ var first = [];
31
+ var rest = [];
32
+ for (var i = 0; i < entities.length; i++) {
33
+ var entity = entities[i];
34
+ if (entity.ownerId === activeOwnerId)
35
+ first.push(entity);
36
+ else
37
+ rest.push(entity);
38
+ }
39
+ return first.concat(rest);
40
+ }
41
+ /**
42
+ * Seeds a drain from the entities queued so far.
43
+ *
44
+ * @param entities - Everything currently in the convert queue.
45
+ * @param activeOwnerId - Layout that should convert first.
46
+ */
47
+ export function createConvertPending(entities, activeOwnerId) {
48
+ return {
49
+ pending: orderActiveLayoutFirst(entities, activeOwnerId),
50
+ cursor: 0,
51
+ activeOwnerId: activeOwnerId
52
+ };
53
+ }
54
+ /**
55
+ * Folds entities queued during a slice, and a layout activated meanwhile,
56
+ * into the not-yet-converted remainder.
57
+ *
58
+ * Active-layout entities jump ahead of the remainder. Other arrivals stay
59
+ * behind it, without copying the remainder, so a long model-space tail is
60
+ * not recopied on every flush chunk.
61
+ *
62
+ * @param state - Remainder of the current drain.
63
+ * @param queued - Entities appended since the previous slice.
64
+ * @param activeOwnerId - Layout that is active now.
65
+ */
66
+ export function absorbConvertQueue(state, queued, activeOwnerId) {
67
+ if (queued.length === 0 && activeOwnerId === state.activeOwnerId) {
68
+ return state;
69
+ }
70
+ var rest = state.cursor === 0 ? state.pending : state.pending.slice(state.cursor);
71
+ if (activeOwnerId !== state.activeOwnerId) {
72
+ return {
73
+ pending: orderActiveLayoutFirst(queued.length > 0 ? queued.concat(rest) : rest, activeOwnerId),
74
+ cursor: 0,
75
+ activeOwnerId: activeOwnerId
76
+ };
77
+ }
78
+ var hasActive = false;
79
+ var front = [];
80
+ var back = [];
81
+ for (var i = 0; i < queued.length; i++) {
82
+ if (activeOwnerId && queued[i].ownerId === activeOwnerId) {
83
+ hasActive = true;
84
+ front.push(queued[i]);
85
+ }
86
+ else {
87
+ back.push(queued[i]);
88
+ }
89
+ }
90
+ if (hasActive) {
91
+ return {
92
+ pending: front.concat(rest, back),
93
+ cursor: 0,
94
+ activeOwnerId: activeOwnerId
95
+ };
96
+ }
97
+ for (var i = 0; i < back.length; i++)
98
+ state.pending.push(back[i]);
99
+ return state;
100
+ }
101
+ /**
102
+ * Whether the not-yet-converted remainder still holds entities owned by the
103
+ * active layout. Used to grow slices more aggressively once only model-space
104
+ * (or other layouts) remain.
105
+ */
106
+ export function hasPendingActiveOwner(state) {
107
+ var pending = state.pending, cursor = state.cursor, activeOwnerId = state.activeOwnerId;
108
+ if (!activeOwnerId)
109
+ return false;
110
+ for (var i = cursor; i < pending.length; i++) {
111
+ if (pending[i].ownerId === activeOwnerId)
112
+ return true;
113
+ }
114
+ return false;
115
+ }
116
+ /**
117
+ * Grows or shrinks the next convert slice from the previous slice's wall time.
118
+ *
119
+ * When a paper layout still has pending entities, grow by 2× so the sheet can
120
+ * interleave soon. Once only other owners remain — or the active layout is
121
+ * already model space, where fine interleaving does not help first paint —
122
+ * grow by 4× so a long model-space tail does not pay per-slice overhead.
123
+ *
124
+ * @param slice - Entities converted in the previous slice (≥ 1).
125
+ * @param tookMs - Wall time of that slice.
126
+ * @param budgetMs - Target wall time per slice.
127
+ * @param maxSlice - Upper bound on entities per slice.
128
+ * @param activeLayoutPending - True to prefer responsive 2× growth (paper
129
+ * sheet still converting); false for 4× throughput.
130
+ */
131
+ export function adaptConvertSliceSize(options) {
132
+ var tookMs = options.tookMs, budgetMs = options.budgetMs, maxSlice = options.maxSlice, activeLayoutPending = options.activeLayoutPending;
133
+ var slice = Math.max(1, options.slice);
134
+ var growBy = activeLayoutPending ? 2 : 4;
135
+ if (tookMs < budgetMs / 2) {
136
+ return Math.min(slice * growBy, maxSlice);
137
+ }
138
+ if (tookMs > budgetMs * 2) {
139
+ return Math.max(1, slice >> 1);
140
+ }
141
+ return slice;
142
+ }
143
+ //# sourceMappingURL=AcTrConvertQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcTrConvertQueue.js","sourceRoot":"","sources":["../../src/view/AcTrConvertQueue.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,12 @@ export declare function isFiniteSpatialBBox(box: {
29
29
  * {@link AcTrGroup.syncWcsBboxFromChildBoxes}.
30
30
  */
31
31
  export declare function unionGroupWcsChildBoxes(group: AcTrGroupWcsBboxLike): THREE.Box3;
32
+ /**
33
+ * Max child boxes checked on the open hot path. Whole-floor INSERTs can have
34
+ * 100k+ children; unioning them in dev-only asserts freezes the main thread
35
+ * after progressive overlay hides (preview/production skips the assert).
36
+ */
37
+ export declare const AC_TR_GROUP_WCS_BBOX_ASSERT_MAX_CHILDREN = 2048;
32
38
  /**
33
39
  * Verifies that a block group's aggregate {@link AcTrGroup.wcsBbox} matches the
34
40
  * union of its per-child {@link AcTrGroup.wcsChildBoxes}.
@@ -36,6 +42,9 @@ export declare function unionGroupWcsChildBoxes(group: AcTrGroupWcsBboxLike): TH
36
42
  * Called from {@link AcTrView2d.handleGroup} in non-production builds. After
37
43
  * {@link AcDbRenderingCache.draw} applies the INSERT transform via
38
44
  * `applyMatrix`, both fields must stay in sync for spatial indexing.
45
+ *
46
+ * Oversized groups are skipped — unit tests still cover the consistency rule
47
+ * with small fixtures.
39
48
  */
40
49
  export declare function assertGroupWcsBboxesConsistent(group: AcTrGroupWcsBboxLike): void;
41
50
  /** @internal Narrow helper for handleGroup dev checks. */
@@ -1 +1 @@
1
- {"version":3,"file":"AcTrGroupWcsBboxAssert.d.ts","sourceRoot":"","sources":["../../src/view/AcTrGroupWcsBboxAssert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAA;IACnB,aAAa,EAAE,aAAa,CAAC;QAC3B,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;KACb,CAAC,CAAA;CACH;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb,GAAG,OAAO,CAOV;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,GAC1B,KAAK,CAAC,IAAI,CAcZ;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,oBAAoB,GAC1B,IAAI,CAsBN;AAED,0DAA0D;AAC1D,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAEzE"}
1
+ {"version":3,"file":"AcTrGroupWcsBboxAssert.d.ts","sourceRoot":"","sources":["../../src/view/AcTrGroupWcsBboxAssert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAA;IACnB,aAAa,EAAE,aAAa,CAAC;QAC3B,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;KACb,CAAC,CAAA;CACH;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb,GAAG,OAAO,CAOV;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,GAC1B,KAAK,CAAC,IAAI,CAcZ;AAED;;;;GAIG;AACH,eAAO,MAAM,wCAAwC,OAAO,CAAA;AAE5D;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,oBAAoB,GAC1B,IAAI,CA2BN;AAED,0DAA0D;AAC1D,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAEzE"}
@@ -51,6 +51,12 @@ export function unionGroupWcsChildBoxes(group) {
51
51
  }
52
52
  return union;
53
53
  }
54
+ /**
55
+ * Max child boxes checked on the open hot path. Whole-floor INSERTs can have
56
+ * 100k+ children; unioning them in dev-only asserts freezes the main thread
57
+ * after progressive overlay hides (preview/production skips the assert).
58
+ */
59
+ export var AC_TR_GROUP_WCS_BBOX_ASSERT_MAX_CHILDREN = 2048;
54
60
  /**
55
61
  * Verifies that a block group's aggregate {@link AcTrGroup.wcsBbox} matches the
56
62
  * union of its per-child {@link AcTrGroup.wcsChildBoxes}.
@@ -58,11 +64,17 @@ export function unionGroupWcsChildBoxes(group) {
58
64
  * Called from {@link AcTrView2d.handleGroup} in non-production builds. After
59
65
  * {@link AcDbRenderingCache.draw} applies the INSERT transform via
60
66
  * `applyMatrix`, both fields must stay in sync for spatial indexing.
67
+ *
68
+ * Oversized groups are skipped — unit tests still cover the consistency rule
69
+ * with small fixtures.
61
70
  */
62
71
  export function assertGroupWcsBboxesConsistent(group) {
63
72
  if (group.wcsChildBoxes.length === 0) {
64
73
  return;
65
74
  }
75
+ if (group.wcsChildBoxes.length > AC_TR_GROUP_WCS_BBOX_ASSERT_MAX_CHILDREN) {
76
+ return;
77
+ }
66
78
  var union = unionGroupWcsChildBoxes(group);
67
79
  var wcs = group.wcsBbox;
68
80
  var cornersMatch = Math.abs(wcs.min.x - union.min.x) <= WCS_BBOX_TOLERANCE &&
@@ -1 +1 @@
1
- {"version":3,"file":"AcTrGroupWcsBboxAssert.js","sourceRoot":"","sources":["../../src/view/AcTrGroupWcsBboxAssert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcTrGroupWcsBboxAssert.js","sourceRoot":"","sources":["../../src/view/AcTrGroupWcsBboxAssert.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AcTrLayer.d.ts","sourceRoot":"","sources":["../../src/view/AcTrLayer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcTrLayer.d.ts","sourceRoot":"","sources":["../../src/view/AcTrLayer.ts"],"names":[],"mappings":"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"}