@mlightcad/cad-simple-viewer 1.2.2 → 1.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/dist/index.js +33647 -0
- package/dist/index.umd.cjs +295 -0
- package/dist/libredwg-parser-worker.js +15458 -0
- package/dist/mtext-renderer-worker.js +29930 -0
- package/lib/app/AcApContext.d.ts +57 -0
- package/lib/app/AcApContext.d.ts.map +1 -0
- package/lib/app/AcApContext.js +106 -0
- package/lib/app/AcApContext.js.map +1 -0
- package/lib/app/AcApDocManager.d.ts +291 -0
- package/lib/app/AcApDocManager.d.ts.map +1 -0
- package/lib/app/AcApDocManager.js +498 -0
- package/lib/app/AcApDocManager.js.map +1 -0
- package/lib/app/AcApDocument.d.ts +101 -0
- package/lib/app/AcApDocument.d.ts.map +1 -0
- package/lib/app/AcApDocument.js +237 -0
- package/lib/app/AcApDocument.js.map +1 -0
- package/lib/app/AcApFontLoader.d.ts +54 -0
- package/lib/app/AcApFontLoader.d.ts.map +1 -0
- package/lib/app/AcApFontLoader.js +151 -0
- package/lib/app/AcApFontLoader.js.map +1 -0
- package/lib/app/AcApGlobalFunc.d.ts +26 -0
- package/lib/app/AcApGlobalFunc.d.ts.map +1 -0
- package/lib/app/AcApGlobalFunc.js +66 -0
- package/lib/app/AcApGlobalFunc.js.map +1 -0
- package/lib/app/AcApSettingManager.d.ts +232 -0
- package/lib/app/AcApSettingManager.d.ts.map +1 -0
- package/lib/app/AcApSettingManager.js +283 -0
- package/lib/app/AcApSettingManager.js.map +1 -0
- package/lib/app/index.d.ts +6 -0
- package/lib/app/index.d.ts.map +1 -0
- package/lib/app/index.js +6 -0
- package/lib/app/index.js.map +1 -0
- package/lib/command/AcApConvertToSvgCmd.d.ts +32 -0
- package/lib/command/AcApConvertToSvgCmd.d.ts.map +1 -0
- package/lib/command/AcApConvertToSvgCmd.js +56 -0
- package/lib/command/AcApConvertToSvgCmd.js.map +1 -0
- package/lib/command/AcApOpenCmd.d.ts +37 -0
- package/lib/command/AcApOpenCmd.d.ts.map +1 -0
- package/lib/command/AcApOpenCmd.js +60 -0
- package/lib/command/AcApOpenCmd.js.map +1 -0
- package/lib/command/AcApPanCmd.d.ts +31 -0
- package/lib/command/AcApPanCmd.d.ts.map +1 -0
- package/lib/command/AcApPanCmd.js +55 -0
- package/lib/command/AcApPanCmd.js.map +1 -0
- package/lib/command/AcApQNewCmd.d.ts +32 -0
- package/lib/command/AcApQNewCmd.d.ts.map +1 -0
- package/lib/command/AcApQNewCmd.js +56 -0
- package/lib/command/AcApQNewCmd.js.map +1 -0
- package/lib/command/AcApRegenCmd.d.ts +21 -0
- package/lib/command/AcApRegenCmd.d.ts.map +1 -0
- package/lib/command/AcApRegenCmd.js +45 -0
- package/lib/command/AcApRegenCmd.js.map +1 -0
- package/lib/command/AcApSelectCmd.d.ts +32 -0
- package/lib/command/AcApSelectCmd.d.ts.map +1 -0
- package/lib/command/AcApSelectCmd.js +56 -0
- package/lib/command/AcApSelectCmd.js.map +1 -0
- package/lib/command/AcApSvgConvertor.d.ts +53 -0
- package/lib/command/AcApSvgConvertor.d.ts.map +1 -0
- package/lib/command/AcApSvgConvertor.js +103 -0
- package/lib/command/AcApSvgConvertor.js.map +1 -0
- package/lib/command/AcApZoomCmd.d.ts +35 -0
- package/lib/command/AcApZoomCmd.d.ts.map +1 -0
- package/lib/command/AcApZoomCmd.js +57 -0
- package/lib/command/AcApZoomCmd.js.map +1 -0
- package/lib/command/AcApZoomToBoxCmd.d.ts +68 -0
- package/lib/command/AcApZoomToBoxCmd.d.ts.map +1 -0
- package/lib/command/AcApZoomToBoxCmd.js +158 -0
- package/lib/command/AcApZoomToBoxCmd.js.map +1 -0
- package/lib/command/index.d.ts +11 -0
- package/lib/command/index.d.ts.map +1 -0
- package/lib/command/index.js +11 -0
- package/lib/command/index.js.map +1 -0
- package/lib/editor/command/AcEdCommand.d.ts +151 -0
- package/lib/editor/command/AcEdCommand.d.ts.map +1 -0
- package/lib/editor/command/AcEdCommand.js +164 -0
- package/lib/editor/command/AcEdCommand.js.map +1 -0
- package/lib/editor/command/AcEdCommandIterator.d.ts +36 -0
- package/lib/editor/command/AcEdCommandIterator.d.ts.map +1 -0
- package/lib/editor/command/AcEdCommandIterator.js +65 -0
- package/lib/editor/command/AcEdCommandIterator.js.map +1 -0
- package/lib/editor/command/AcEdCommandStack.d.ts +120 -0
- package/lib/editor/command/AcEdCommandStack.d.ts.map +1 -0
- package/lib/editor/command/AcEdCommandStack.js +235 -0
- package/lib/editor/command/AcEdCommandStack.js.map +1 -0
- package/lib/editor/command/index.d.ts +3 -0
- package/lib/editor/command/index.d.ts.map +1 -0
- package/lib/editor/command/index.js +3 -0
- package/lib/editor/command/index.js.map +1 -0
- package/lib/editor/global/AcEdConditionWaiter.d.ts +51 -0
- package/lib/editor/global/AcEdConditionWaiter.d.ts.map +1 -0
- package/lib/editor/global/AcEdConditionWaiter.js +87 -0
- package/lib/editor/global/AcEdConditionWaiter.js.map +1 -0
- package/lib/editor/global/AcEdGlobalFunc.d.ts +8 -0
- package/lib/editor/global/AcEdGlobalFunc.d.ts.map +1 -0
- package/lib/editor/global/AcEdGlobalFunc.js +14 -0
- package/lib/editor/global/AcEdGlobalFunc.js.map +1 -0
- package/lib/editor/global/AcEdMessage.d.ts +5 -0
- package/lib/editor/global/AcEdMessage.d.ts.map +1 -0
- package/lib/editor/global/AcEdMessage.js +6 -0
- package/lib/editor/global/AcEdMessage.js.map +1 -0
- package/lib/editor/global/eventBus.d.ts +103 -0
- package/lib/editor/global/eventBus.d.ts.map +1 -0
- package/lib/editor/global/eventBus.js +41 -0
- package/lib/editor/global/eventBus.js.map +1 -0
- package/lib/editor/global/index.d.ts +4 -0
- package/lib/editor/global/index.d.ts.map +1 -0
- package/lib/editor/global/index.js +4 -0
- package/lib/editor/global/index.js.map +1 -0
- package/lib/editor/index.d.ts +5 -0
- package/lib/editor/index.d.ts.map +1 -0
- package/lib/editor/index.js +5 -0
- package/lib/editor/index.js.map +1 -0
- package/lib/editor/input/AcEdBaseInput.d.ts +89 -0
- package/lib/editor/input/AcEdBaseInput.d.ts.map +1 -0
- package/lib/editor/input/AcEdBaseInput.js +166 -0
- package/lib/editor/input/AcEdBaseInput.js.map +1 -0
- package/lib/editor/input/AcEdBoxSelector.d.ts +108 -0
- package/lib/editor/input/AcEdBoxSelector.d.ts.map +1 -0
- package/lib/editor/input/AcEdBoxSelector.js +220 -0
- package/lib/editor/input/AcEdBoxSelector.js.map +1 -0
- package/lib/editor/input/AcEdCursorManager.d.ts +130 -0
- package/lib/editor/input/AcEdCursorManager.d.ts.map +1 -0
- package/lib/editor/input/AcEdCursorManager.js +155 -0
- package/lib/editor/input/AcEdCursorManager.js.map +1 -0
- package/lib/editor/input/AcEdInputPoint.d.ts +51 -0
- package/lib/editor/input/AcEdInputPoint.d.ts.map +1 -0
- package/lib/editor/input/AcEdInputPoint.js +78 -0
- package/lib/editor/input/AcEdInputPoint.js.map +1 -0
- package/lib/editor/input/AcEdJig.d.ts +180 -0
- package/lib/editor/input/AcEdJig.d.ts.map +1 -0
- package/lib/editor/input/AcEdJig.js +256 -0
- package/lib/editor/input/AcEdJig.js.map +1 -0
- package/lib/editor/input/AcEdJigLoop.d.ts +63 -0
- package/lib/editor/input/AcEdJigLoop.d.ts.map +1 -0
- package/lib/editor/input/AcEdJigLoop.js +91 -0
- package/lib/editor/input/AcEdJigLoop.js.map +1 -0
- package/lib/editor/input/AcEdSelectionSet.d.ts +146 -0
- package/lib/editor/input/AcEdSelectionSet.d.ts.map +1 -0
- package/lib/editor/input/AcEdSelectionSet.js +179 -0
- package/lib/editor/input/AcEdSelectionSet.js.map +1 -0
- package/lib/editor/input/AcEditor.d.ts +111 -0
- package/lib/editor/input/AcEditor.d.ts.map +1 -0
- package/lib/editor/input/AcEditor.js +183 -0
- package/lib/editor/input/AcEditor.js.map +1 -0
- package/lib/editor/input/index.d.ts +5 -0
- package/lib/editor/input/index.d.ts.map +1 -0
- package/lib/editor/input/index.js +5 -0
- package/lib/editor/input/index.js.map +1 -0
- package/lib/editor/view/AcEdBaseView.d.ts +457 -0
- package/lib/editor/view/AcEdBaseView.d.ts.map +1 -0
- package/lib/editor/view/AcEdBaseView.js +349 -0
- package/lib/editor/view/AcEdBaseView.js.map +1 -0
- package/lib/editor/view/AcEdLayerInfo.d.ts +21 -0
- package/lib/editor/view/AcEdLayerInfo.d.ts.map +1 -0
- package/lib/editor/view/AcEdLayerInfo.js +2 -0
- package/lib/editor/view/AcEdLayerInfo.js.map +1 -0
- package/lib/editor/view/index.d.ts +3 -0
- package/lib/editor/view/index.d.ts.map +1 -0
- package/lib/editor/view/index.js +3 -0
- package/lib/editor/view/index.js.map +1 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +5 -0
- package/lib/index.js.map +1 -0
- package/lib/util/AcTrGeometryUtil.d.ts +92 -0
- package/lib/util/AcTrGeometryUtil.d.ts.map +1 -0
- package/lib/util/AcTrGeometryUtil.js +109 -0
- package/lib/util/AcTrGeometryUtil.js.map +1 -0
- package/lib/util/index.d.ts +2 -0
- package/lib/util/index.d.ts.map +1 -0
- package/lib/util/index.js +2 -0
- package/lib/util/index.js.map +1 -0
- package/lib/view/AcTrLayer.d.ts +132 -0
- package/lib/view/AcTrLayer.d.ts.map +1 -0
- package/lib/view/AcTrLayer.js +199 -0
- package/lib/view/AcTrLayer.js.map +1 -0
- package/lib/view/AcTrLayout.d.ts +218 -0
- package/lib/view/AcTrLayout.d.ts.map +1 -0
- package/lib/view/AcTrLayout.js +437 -0
- package/lib/view/AcTrLayout.js.map +1 -0
- package/lib/view/AcTrLayoutView.d.ts +115 -0
- package/lib/view/AcTrLayoutView.d.ts.map +1 -0
- package/lib/view/AcTrLayoutView.js +200 -0
- package/lib/view/AcTrLayoutView.js.map +1 -0
- package/lib/view/AcTrLayoutViewManager.d.ts +89 -0
- package/lib/view/AcTrLayoutViewManager.d.ts.map +1 -0
- package/lib/view/AcTrLayoutViewManager.js +118 -0
- package/lib/view/AcTrLayoutViewManager.js.map +1 -0
- package/lib/view/AcTrScene.d.ts +162 -0
- package/lib/view/AcTrScene.d.ts.map +1 -0
- package/lib/view/AcTrScene.js +370 -0
- package/lib/view/AcTrScene.js.map +1 -0
- package/lib/view/AcTrView2d.d.ts +262 -0
- package/lib/view/AcTrView2d.d.ts.map +1 -0
- package/lib/view/AcTrView2d.js +772 -0
- package/lib/view/AcTrView2d.js.map +1 -0
- package/lib/view/index.d.ts +2 -0
- package/lib/view/index.d.ts.map +1 -0
- package/lib/view/index.js +2 -0
- package/lib/view/index.js.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { AcDbObjectId } from '@mlightcad/data-model';
|
|
2
|
+
import { AcTrBatchedGroup, AcTrBatchedGroupStats, AcTrEntity } from '@mlightcad/three-renderer';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
/**
|
|
5
|
+
* Statistics for a CAD layer including name and batched rendering metrics.
|
|
6
|
+
*
|
|
7
|
+
* Extends the standard batched group statistics with layer-specific information.
|
|
8
|
+
*/
|
|
9
|
+
export type AcTrLayerStats = AcTrBatchedGroupStats & {
|
|
10
|
+
/** The name of the layer */
|
|
11
|
+
name: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Represents a CAD layer for organizing and rendering entities in Three.js.
|
|
15
|
+
*
|
|
16
|
+
* This class manages a collection of CAD entities that belong to the same logical layer.
|
|
17
|
+
* It provides:
|
|
18
|
+
* - Entity organization and grouping
|
|
19
|
+
* - Layer visibility control
|
|
20
|
+
* - Efficient batched rendering through Three.js groups
|
|
21
|
+
* - Performance monitoring and statistics
|
|
22
|
+
*
|
|
23
|
+
* ## Technical Notes
|
|
24
|
+
* Unlike Three.js built-in layers (which only support 32 layers), this implementation
|
|
25
|
+
* uses Three.js groups to represent AutoCAD layers, allowing unlimited layer support.
|
|
26
|
+
* Each AutoCAD layer corresponds to one Three.js group containing all entities.
|
|
27
|
+
*
|
|
28
|
+
* ## Performance Benefits
|
|
29
|
+
* - Batched rendering reduces draw calls
|
|
30
|
+
* - Efficient visibility toggling for entire layers
|
|
31
|
+
* - Optimized entity grouping for better GPU performance
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* // Create a new layer
|
|
36
|
+
* const layer = new AcTrLayer('Dimensions');
|
|
37
|
+
*
|
|
38
|
+
* // Add entities to the layer
|
|
39
|
+
* const line = new AcTrLine(startPoint, endPoint);
|
|
40
|
+
* layer.add(line);
|
|
41
|
+
*
|
|
42
|
+
* // Control layer visibility
|
|
43
|
+
* layer.visible = false; // Hide all entities in this layer
|
|
44
|
+
*
|
|
45
|
+
* // Get layer statistics
|
|
46
|
+
* const stats = layer.stats;
|
|
47
|
+
* console.log(`Layer ${stats.name} has ${stats.entityCount} entities`);
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export declare class AcTrLayer {
|
|
51
|
+
/**
|
|
52
|
+
* Layer name
|
|
53
|
+
*/
|
|
54
|
+
private _name;
|
|
55
|
+
/**
|
|
56
|
+
* This group contains all entities in this layer
|
|
57
|
+
*/
|
|
58
|
+
private _group;
|
|
59
|
+
/**
|
|
60
|
+
* Construct one instance of this class
|
|
61
|
+
* @param name Input layer name
|
|
62
|
+
*/
|
|
63
|
+
constructor(name: string);
|
|
64
|
+
/**
|
|
65
|
+
* Layer name
|
|
66
|
+
*/
|
|
67
|
+
get name(): string;
|
|
68
|
+
set name(value: string);
|
|
69
|
+
get visible(): boolean;
|
|
70
|
+
set visible(value: boolean);
|
|
71
|
+
get internalObject(): AcTrBatchedGroup;
|
|
72
|
+
/**
|
|
73
|
+
* The statistics of this layer
|
|
74
|
+
*/
|
|
75
|
+
get stats(): AcTrLayerStats;
|
|
76
|
+
/**
|
|
77
|
+
* The number of entities stored in this layer
|
|
78
|
+
*/
|
|
79
|
+
get entityCount(): number;
|
|
80
|
+
/**
|
|
81
|
+
* Re-render points with latest point style settings
|
|
82
|
+
* @param displayMode Input display mode of points
|
|
83
|
+
*/
|
|
84
|
+
rerenderPoints(displayMode: number): void;
|
|
85
|
+
/**
|
|
86
|
+
* Return true if this layer contains the entity with the specified object id. Otherwise, return false.
|
|
87
|
+
* @param objectId Input the object id of one entity
|
|
88
|
+
* @returns Return true if this layer contains the entity with the specified object id. Otherwise,
|
|
89
|
+
* return false.
|
|
90
|
+
*/
|
|
91
|
+
hasEntity(objectId: AcDbObjectId): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Add one AutoCAD entity into this layer.
|
|
94
|
+
* @param entity Input AutoCAD entity to be added into this layer.
|
|
95
|
+
*/
|
|
96
|
+
addEntity(entity: AcTrEntity): void;
|
|
97
|
+
/**
|
|
98
|
+
* Return true if the object with the specified object id is intersected with the ray by using raycast.
|
|
99
|
+
* @param objectId Input object id of object to check for intersection with the ray.
|
|
100
|
+
* @param raycaster Input raycaster to check intersection
|
|
101
|
+
*/
|
|
102
|
+
isIntersectWith(objectId: string, raycaster: THREE.Raycaster): boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Remove the specified entity from this layer.
|
|
105
|
+
* @param objectId Input the object id of the entity to remove
|
|
106
|
+
* @returns Return true if remove the specified entity successfully. Otherwise, return false.
|
|
107
|
+
*/
|
|
108
|
+
remove(_objectId: AcDbObjectId): boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Update the specified entity in this layer.
|
|
111
|
+
* @param entity Input the entity to update
|
|
112
|
+
* @returns Return true if update the specified entity successfully. Otherwise, return false.
|
|
113
|
+
*/
|
|
114
|
+
update(entity: AcTrEntity): boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Hover the specified entities
|
|
117
|
+
*/
|
|
118
|
+
hover(ids: AcDbObjectId[]): void;
|
|
119
|
+
/**
|
|
120
|
+
* Unhover the specified entities
|
|
121
|
+
*/
|
|
122
|
+
unhover(ids: AcDbObjectId[]): void;
|
|
123
|
+
/**
|
|
124
|
+
* Select the specified entities
|
|
125
|
+
*/
|
|
126
|
+
select(ids: AcDbObjectId[]): void;
|
|
127
|
+
/**
|
|
128
|
+
* Unselect the specified entities
|
|
129
|
+
*/
|
|
130
|
+
unselect(ids: AcDbObjectId[]): void;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=AcTrLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcTrLayer.d.ts","sourceRoot":"","sources":["../../src/view/AcTrLayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACX,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG;IACnD,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,SAAS;IACpB;;OAEG;IACH,OAAO,CAAC,KAAK,CAAQ;IACrB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAkB;IAEhC;;;OAGG;gBACS,IAAI,EAAE,MAAM;IAKxB;;OAEG;IACH,IAAI,IAAI,IAGQ,MAAM,CADrB;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IAED,IAAI,OAAO,IAGQ,OAAO,CADzB;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAEzB;IAED,IAAI,cAAc,qBAEjB;IAED;;OAEG;IACH,IAAI,KAAK,IAKF,cAAc,CACpB;IAED;;OAEG;IACH,IAAI,WAAW,WAEd;IAED;;;OAGG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM;IAIlC;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,YAAY;IAIhC;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,UAAU;IAI5B;;;;OAIG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;IAI5D;;;;OAIG;IACH,MAAM,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO;IAKxC;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAMnC;;OAEG;IACH,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE;IAMzB;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE;IAM3B;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE;IAM1B;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE;CAK7B"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { AcTrBatchedGroup } from '@mlightcad/three-renderer';
|
|
13
|
+
/**
|
|
14
|
+
* Represents a CAD layer for organizing and rendering entities in Three.js.
|
|
15
|
+
*
|
|
16
|
+
* This class manages a collection of CAD entities that belong to the same logical layer.
|
|
17
|
+
* It provides:
|
|
18
|
+
* - Entity organization and grouping
|
|
19
|
+
* - Layer visibility control
|
|
20
|
+
* - Efficient batched rendering through Three.js groups
|
|
21
|
+
* - Performance monitoring and statistics
|
|
22
|
+
*
|
|
23
|
+
* ## Technical Notes
|
|
24
|
+
* Unlike Three.js built-in layers (which only support 32 layers), this implementation
|
|
25
|
+
* uses Three.js groups to represent AutoCAD layers, allowing unlimited layer support.
|
|
26
|
+
* Each AutoCAD layer corresponds to one Three.js group containing all entities.
|
|
27
|
+
*
|
|
28
|
+
* ## Performance Benefits
|
|
29
|
+
* - Batched rendering reduces draw calls
|
|
30
|
+
* - Efficient visibility toggling for entire layers
|
|
31
|
+
* - Optimized entity grouping for better GPU performance
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* // Create a new layer
|
|
36
|
+
* const layer = new AcTrLayer('Dimensions');
|
|
37
|
+
*
|
|
38
|
+
* // Add entities to the layer
|
|
39
|
+
* const line = new AcTrLine(startPoint, endPoint);
|
|
40
|
+
* layer.add(line);
|
|
41
|
+
*
|
|
42
|
+
* // Control layer visibility
|
|
43
|
+
* layer.visible = false; // Hide all entities in this layer
|
|
44
|
+
*
|
|
45
|
+
* // Get layer statistics
|
|
46
|
+
* const stats = layer.stats;
|
|
47
|
+
* console.log(`Layer ${stats.name} has ${stats.entityCount} entities`);
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
var AcTrLayer = /** @class */ (function () {
|
|
51
|
+
/**
|
|
52
|
+
* Construct one instance of this class
|
|
53
|
+
* @param name Input layer name
|
|
54
|
+
*/
|
|
55
|
+
function AcTrLayer(name) {
|
|
56
|
+
this._group = new AcTrBatchedGroup();
|
|
57
|
+
this._name = name;
|
|
58
|
+
}
|
|
59
|
+
Object.defineProperty(AcTrLayer.prototype, "name", {
|
|
60
|
+
/**
|
|
61
|
+
* Layer name
|
|
62
|
+
*/
|
|
63
|
+
get: function () {
|
|
64
|
+
return this._name;
|
|
65
|
+
},
|
|
66
|
+
set: function (value) {
|
|
67
|
+
this._name = value;
|
|
68
|
+
},
|
|
69
|
+
enumerable: false,
|
|
70
|
+
configurable: true
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(AcTrLayer.prototype, "visible", {
|
|
73
|
+
get: function () {
|
|
74
|
+
return this._group.visible;
|
|
75
|
+
},
|
|
76
|
+
set: function (value) {
|
|
77
|
+
this._group.visible = value;
|
|
78
|
+
},
|
|
79
|
+
enumerable: false,
|
|
80
|
+
configurable: true
|
|
81
|
+
});
|
|
82
|
+
Object.defineProperty(AcTrLayer.prototype, "internalObject", {
|
|
83
|
+
get: function () {
|
|
84
|
+
return this._group;
|
|
85
|
+
},
|
|
86
|
+
enumerable: false,
|
|
87
|
+
configurable: true
|
|
88
|
+
});
|
|
89
|
+
Object.defineProperty(AcTrLayer.prototype, "stats", {
|
|
90
|
+
/**
|
|
91
|
+
* The statistics of this layer
|
|
92
|
+
*/
|
|
93
|
+
get: function () {
|
|
94
|
+
var batchedGroupStats = this._group.stats;
|
|
95
|
+
return __assign({ name: this._name }, batchedGroupStats);
|
|
96
|
+
},
|
|
97
|
+
enumerable: false,
|
|
98
|
+
configurable: true
|
|
99
|
+
});
|
|
100
|
+
Object.defineProperty(AcTrLayer.prototype, "entityCount", {
|
|
101
|
+
/**
|
|
102
|
+
* The number of entities stored in this layer
|
|
103
|
+
*/
|
|
104
|
+
get: function () {
|
|
105
|
+
return this._group.entityCount;
|
|
106
|
+
},
|
|
107
|
+
enumerable: false,
|
|
108
|
+
configurable: true
|
|
109
|
+
});
|
|
110
|
+
/**
|
|
111
|
+
* Re-render points with latest point style settings
|
|
112
|
+
* @param displayMode Input display mode of points
|
|
113
|
+
*/
|
|
114
|
+
AcTrLayer.prototype.rerenderPoints = function (displayMode) {
|
|
115
|
+
this._group.rerenderPoints(displayMode);
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Return true if this layer contains the entity with the specified object id. Otherwise, return false.
|
|
119
|
+
* @param objectId Input the object id of one entity
|
|
120
|
+
* @returns Return true if this layer contains the entity with the specified object id. Otherwise,
|
|
121
|
+
* return false.
|
|
122
|
+
*/
|
|
123
|
+
AcTrLayer.prototype.hasEntity = function (objectId) {
|
|
124
|
+
return this._group.hasEntity(objectId);
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Add one AutoCAD entity into this layer.
|
|
128
|
+
* @param entity Input AutoCAD entity to be added into this layer.
|
|
129
|
+
*/
|
|
130
|
+
AcTrLayer.prototype.addEntity = function (entity) {
|
|
131
|
+
this._group.addEntity(entity);
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Return true if the object with the specified object id is intersected with the ray by using raycast.
|
|
135
|
+
* @param objectId Input object id of object to check for intersection with the ray.
|
|
136
|
+
* @param raycaster Input raycaster to check intersection
|
|
137
|
+
*/
|
|
138
|
+
AcTrLayer.prototype.isIntersectWith = function (objectId, raycaster) {
|
|
139
|
+
return this._group.isIntersectWith(objectId, raycaster);
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* Remove the specified entity from this layer.
|
|
143
|
+
* @param objectId Input the object id of the entity to remove
|
|
144
|
+
* @returns Return true if remove the specified entity successfully. Otherwise, return false.
|
|
145
|
+
*/
|
|
146
|
+
AcTrLayer.prototype.remove = function (_objectId) {
|
|
147
|
+
// TODO: Finish it
|
|
148
|
+
throw new Error('Not implemented yet!');
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Update the specified entity in this layer.
|
|
152
|
+
* @param entity Input the entity to update
|
|
153
|
+
* @returns Return true if update the specified entity successfully. Otherwise, return false.
|
|
154
|
+
*/
|
|
155
|
+
AcTrLayer.prototype.update = function (entity) {
|
|
156
|
+
// TODO: Finish it
|
|
157
|
+
this._group.add(entity);
|
|
158
|
+
return true;
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* Hover the specified entities
|
|
162
|
+
*/
|
|
163
|
+
AcTrLayer.prototype.hover = function (ids) {
|
|
164
|
+
var _this = this;
|
|
165
|
+
ids.forEach(function (id) {
|
|
166
|
+
_this._group.hover(id);
|
|
167
|
+
});
|
|
168
|
+
};
|
|
169
|
+
/**
|
|
170
|
+
* Unhover the specified entities
|
|
171
|
+
*/
|
|
172
|
+
AcTrLayer.prototype.unhover = function (ids) {
|
|
173
|
+
var _this = this;
|
|
174
|
+
ids.forEach(function (id) {
|
|
175
|
+
_this._group.unhover(id);
|
|
176
|
+
});
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* Select the specified entities
|
|
180
|
+
*/
|
|
181
|
+
AcTrLayer.prototype.select = function (ids) {
|
|
182
|
+
var _this = this;
|
|
183
|
+
ids.forEach(function (id) {
|
|
184
|
+
_this._group.select(id);
|
|
185
|
+
});
|
|
186
|
+
};
|
|
187
|
+
/**
|
|
188
|
+
* Unselect the specified entities
|
|
189
|
+
*/
|
|
190
|
+
AcTrLayer.prototype.unselect = function (ids) {
|
|
191
|
+
var _this = this;
|
|
192
|
+
ids.forEach(function (id) {
|
|
193
|
+
_this._group.unselect(id);
|
|
194
|
+
});
|
|
195
|
+
};
|
|
196
|
+
return AcTrLayer;
|
|
197
|
+
}());
|
|
198
|
+
export { AcTrLayer };
|
|
199
|
+
//# sourceMappingURL=AcTrLayer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcTrLayer.js","sourceRoot":"","sources":["../../src/view/AcTrLayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { AcDbObjectId, AcGeBox2d, AcGeBox3d } from '@mlightcad/data-model';
|
|
2
|
+
import { AcTrEntity, AcTrObject } from '@mlightcad/three-renderer';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
import { AcEdLayerInfo, AcEdSpatialQueryResultItem } from '../editor';
|
|
5
|
+
import { AcTrLayer, AcTrLayerStats } from './AcTrLayer';
|
|
6
|
+
/**
|
|
7
|
+
* Interface representing statistics for a layout.
|
|
8
|
+
* Provides detailed information about the layout's content including
|
|
9
|
+
* layer statistics and memory usage breakdown.
|
|
10
|
+
*/
|
|
11
|
+
export interface AcTrLayoutStats {
|
|
12
|
+
/** Statistics for each layer in the layout */
|
|
13
|
+
layers: AcTrLayerStats[];
|
|
14
|
+
/** Summary statistics for the entire layout */
|
|
15
|
+
summary: {
|
|
16
|
+
/** Total number of entities across all layers */
|
|
17
|
+
entityCount: number;
|
|
18
|
+
/** Memory usage breakdown by object type */
|
|
19
|
+
totalSize: {
|
|
20
|
+
/** Memory used by line geometries (bytes) */
|
|
21
|
+
line: number;
|
|
22
|
+
/** Memory used by mesh geometries (bytes) */
|
|
23
|
+
mesh: number;
|
|
24
|
+
/** Memory used by point geometries (bytes) */
|
|
25
|
+
point: number;
|
|
26
|
+
/** Total geometry memory usage (bytes) */
|
|
27
|
+
geometry: number;
|
|
28
|
+
/** Memory used by entity mappings (bytes) */
|
|
29
|
+
mapping: number;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* This class represents objects contained in one AutoCAD layout (model space or paper space).
|
|
35
|
+
*
|
|
36
|
+
* A layout manages the organization and rendering of CAD entities within a specific coordinate space.
|
|
37
|
+
* It provides functionality for:
|
|
38
|
+
* - Managing entities organized by layers
|
|
39
|
+
* - Spatial indexing for efficient entity queries
|
|
40
|
+
* - Bounding box management for view operations
|
|
41
|
+
* - Entity selection and highlighting
|
|
42
|
+
* - Memory usage tracking and statistics
|
|
43
|
+
*
|
|
44
|
+
* Layouts use a spatial index (R-tree) for fast entity lookup operations and maintain
|
|
45
|
+
* a hierarchical structure where entities are grouped by layers for efficient rendering
|
|
46
|
+
* and visibility management.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const layout = new AcTrLayout();
|
|
51
|
+
* layout.addEntity(entity);
|
|
52
|
+
* const entities = layout.search(boundingBox);
|
|
53
|
+
* layout.select(['entity1', 'entity2']);
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare class AcTrLayout {
|
|
57
|
+
/** The group that contains all entities in this layout */
|
|
58
|
+
private _group;
|
|
59
|
+
/** Spatial index tree for efficient entity queries */
|
|
60
|
+
private _indexTree;
|
|
61
|
+
/** Bounding box containing all entities in this layout */
|
|
62
|
+
private _box;
|
|
63
|
+
/** Map of layers indexed by layer name */
|
|
64
|
+
private _layers;
|
|
65
|
+
/** Optional object for displaying snap points */
|
|
66
|
+
private _snapPointsObject?;
|
|
67
|
+
/**
|
|
68
|
+
* Creates a new layout instance.
|
|
69
|
+
* Initializes the layout with empty collections and a spatial index.
|
|
70
|
+
*/
|
|
71
|
+
constructor();
|
|
72
|
+
/**
|
|
73
|
+
* The internal THREE.js object to use by scene. This is internally used only. Try to avoid using it.
|
|
74
|
+
* @internal
|
|
75
|
+
*/
|
|
76
|
+
get internalObject(): THREE.Group<THREE.Object3DEventMap>;
|
|
77
|
+
/**
|
|
78
|
+
* Gets the map of layers in this layout.
|
|
79
|
+
*
|
|
80
|
+
* @returns Map of layer names to layer objects
|
|
81
|
+
*/
|
|
82
|
+
get layers(): Map<string, AcTrLayer>;
|
|
83
|
+
/**
|
|
84
|
+
* Gets the bounding box that contains all entities in this layout.
|
|
85
|
+
*
|
|
86
|
+
* @returns The layout's bounding box
|
|
87
|
+
*/
|
|
88
|
+
get box(): THREE.Box3;
|
|
89
|
+
/**
|
|
90
|
+
* The visibility of this layout.
|
|
91
|
+
* When set to false, the entire layout and all its contents are hidden.
|
|
92
|
+
*/
|
|
93
|
+
get visible(): boolean;
|
|
94
|
+
set visible(value: boolean);
|
|
95
|
+
/**
|
|
96
|
+
* The number of entities stored in this layout.
|
|
97
|
+
* Calculates the total by summing entities across all layers.
|
|
98
|
+
*/
|
|
99
|
+
get entityCount(): number;
|
|
100
|
+
/**
|
|
101
|
+
* The statistics of this layout.
|
|
102
|
+
* Provides detailed information about memory usage and entity counts.
|
|
103
|
+
*/
|
|
104
|
+
get stats(): AcTrLayoutStats;
|
|
105
|
+
/**
|
|
106
|
+
* Clears all entities from the layout.
|
|
107
|
+
* Removes all layers, resets the bounding box, and clears the spatial index.
|
|
108
|
+
*
|
|
109
|
+
* @returns This layout instance for method chaining
|
|
110
|
+
*/
|
|
111
|
+
clear(): this;
|
|
112
|
+
/**
|
|
113
|
+
* Re-render points with latest point style settings.
|
|
114
|
+
* Updates the visual representation of all point entities across all layers.
|
|
115
|
+
*
|
|
116
|
+
* @param displayMode - Input display mode of points
|
|
117
|
+
*/
|
|
118
|
+
rerenderPoints(displayMode: number): void;
|
|
119
|
+
/**
|
|
120
|
+
* Return true if the object with the specified object id is intersected with the ray by using raycast.
|
|
121
|
+
*
|
|
122
|
+
* @param objectId - Input object id of object to check for intersection with the ray.
|
|
123
|
+
* @param raycaster - Input raycaster to check intersection
|
|
124
|
+
* @returns True if the object intersects with the ray, false otherwise
|
|
125
|
+
*/
|
|
126
|
+
isIntersectWith(objectId: string, raycaster: THREE.Raycaster): boolean | undefined;
|
|
127
|
+
/**
|
|
128
|
+
* Add one AutoCAD entity into this layout. If layer group referenced by the entity doesn't exist, create one
|
|
129
|
+
* layer group and add this entity this group.
|
|
130
|
+
*
|
|
131
|
+
* @param entity - Input AutoCAD entity to be added into this layout.
|
|
132
|
+
* @param extendBbox - Input the flag whether to extend the bounding box of the scene by union the bounding box
|
|
133
|
+
* of the specified entity. Defaults to true.
|
|
134
|
+
* @returns This layout instance for method chaining
|
|
135
|
+
*
|
|
136
|
+
* @throws {Error} When entity is missing required objectId or layerName
|
|
137
|
+
*/
|
|
138
|
+
addEntity(entity: AcTrEntity, extendBbox?: boolean): this;
|
|
139
|
+
/**
|
|
140
|
+
* Remove the specified entity from this layout.
|
|
141
|
+
*
|
|
142
|
+
* @param objectId - Input the object id of the entity to remove
|
|
143
|
+
* @returns Return true if remove the specified entity successfully. Otherwise, return false.
|
|
144
|
+
*/
|
|
145
|
+
remove(objectId: AcDbObjectId): boolean;
|
|
146
|
+
/**
|
|
147
|
+
* Update the specified entity in this layout.
|
|
148
|
+
*
|
|
149
|
+
* @param entity - Input the entity to update
|
|
150
|
+
* @returns Return true if update the specified entity successfully. Otherwise, return false.
|
|
151
|
+
*/
|
|
152
|
+
updateEntity(entity: AcTrEntity): boolean;
|
|
153
|
+
/**
|
|
154
|
+
* Adds layer group into this layout. If the layer already exist, do nothing.
|
|
155
|
+
*
|
|
156
|
+
* @param name - Input layer name
|
|
157
|
+
* @returns Return added layer group or the existing layer group in this layout if one layer
|
|
158
|
+
* group already exists in this layout.
|
|
159
|
+
*/
|
|
160
|
+
addLayer(layer: AcEdLayerInfo): AcEdLayerInfo;
|
|
161
|
+
/**
|
|
162
|
+
* Updates layer group information (such as visibility). If the layer doesn't exist, do nothing.
|
|
163
|
+
* @param layerName Input layer information
|
|
164
|
+
* @returns Returns the updated layer group.
|
|
165
|
+
*/
|
|
166
|
+
updateLayer(layer: AcEdLayerInfo): AcTrLayer | undefined;
|
|
167
|
+
/**
|
|
168
|
+
* Hover the specified entities.
|
|
169
|
+
* Applies hover highlighting to the entities with the given IDs.
|
|
170
|
+
*
|
|
171
|
+
* @param ids - Array of entity object IDs to hover
|
|
172
|
+
*/
|
|
173
|
+
hover(ids: AcDbObjectId[]): void;
|
|
174
|
+
/**
|
|
175
|
+
* Unhover the specified entities.
|
|
176
|
+
* Removes hover highlighting from the entities with the given IDs.
|
|
177
|
+
*
|
|
178
|
+
* @param ids - Array of entity object IDs to unhover
|
|
179
|
+
*/
|
|
180
|
+
unhover(ids: AcDbObjectId[]): void;
|
|
181
|
+
/**
|
|
182
|
+
* Select the specified entities.
|
|
183
|
+
* Applies selection highlighting to the entities with the given IDs.
|
|
184
|
+
*
|
|
185
|
+
* @param ids - Array of entity object IDs to select
|
|
186
|
+
*/
|
|
187
|
+
select(ids: AcDbObjectId[]): void;
|
|
188
|
+
/**
|
|
189
|
+
* Unselect the specified entities.
|
|
190
|
+
* Removes selection highlighting from the entities with the given IDs.
|
|
191
|
+
*
|
|
192
|
+
* @param ids - Array of entity object IDs to unselect
|
|
193
|
+
*/
|
|
194
|
+
unselect(ids: AcDbObjectId[]): void;
|
|
195
|
+
/**
|
|
196
|
+
* Sets the snap points object for this layout.
|
|
197
|
+
* Replaces any existing snap points object with the new one.
|
|
198
|
+
*
|
|
199
|
+
* @param object - The snap points object to display
|
|
200
|
+
*/
|
|
201
|
+
setSnapObject(object: AcTrObject): void;
|
|
202
|
+
/**
|
|
203
|
+
* Search entities intersected or contained in the specified bounding box.
|
|
204
|
+
* Uses the spatial index for efficient querying of entities within the given bounds.
|
|
205
|
+
*
|
|
206
|
+
* @param box - Input the query bounding box (2D or 3D)
|
|
207
|
+
* @returns Return query results containing entity IDs and their bounds
|
|
208
|
+
*/
|
|
209
|
+
search(box: AcGeBox2d | AcGeBox3d): AcEdSpatialQueryResultItem[];
|
|
210
|
+
/**
|
|
211
|
+
* Finds the layer containing the entity with the specified object ID.
|
|
212
|
+
*
|
|
213
|
+
* @param objectId - The object ID to search for
|
|
214
|
+
* @returns The layer containing the entity, or undefined if not found
|
|
215
|
+
*/
|
|
216
|
+
private getLayerByObjectId;
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=AcTrLayout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcTrLayout.d.ts","sourceRoot":"","sources":["../../src/view/AcTrLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAElE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEvD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,+CAA+C;IAC/C,OAAO,EAAE;QACP,iDAAiD;QACjD,WAAW,EAAE,MAAM,CAAA;QACnB,4CAA4C;QAC5C,SAAS,EAAE;YACT,6CAA6C;YAC7C,IAAI,EAAE,MAAM,CAAA;YACZ,6CAA6C;YAC7C,IAAI,EAAE,MAAM,CAAA;YACZ,8CAA8C;YAC9C,KAAK,EAAE,MAAM,CAAA;YACb,0CAA0C;YAC1C,QAAQ,EAAE,MAAM,CAAA;YAChB,6CAA6C;YAC7C,OAAO,EAAE,MAAM,CAAA;SAChB,CAAA;KACF,CAAA;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,UAAU;IACrB,0DAA0D;IAC1D,OAAO,CAAC,MAAM,CAAa;IAC3B,sDAAsD;IACtD,OAAO,CAAC,UAAU,CAAmC;IACrD,0DAA0D;IAC1D,OAAO,CAAC,IAAI,CAAY;IACxB,0CAA0C;IAC1C,OAAO,CAAC,OAAO,CAAwB;IACvC,iDAAiD;IACjD,OAAO,CAAC,iBAAiB,CAAC,CAAY;IAEtC;;;OAGG;;IAQH;;;OAGG;IACH,IAAI,cAAc,wCAEjB;IAED;;;;OAIG;IACH,IAAI,MAAM,2BAET;IAED;;;;OAIG;IACH,IAAI,GAAG,eAEN;IAED;;;OAGG;IACH,IAAI,OAAO,IAGQ,OAAO,CADzB;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAEzB;IAED;;;OAGG;IACH,IAAI,WAAW,WAId;IAED;;;OAGG;IACH,IAAI,KAAK,IA+BF,eAAe,CACrB;IAED;;;;;OAKG;IACH,KAAK;IAUL;;;;;OAKG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM;IAMlC;;;;;;OAMG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;IAK5D;;;;;;;;;;OAUG;IACH,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,GAAE,OAAc;IA8BxD;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,YAAY;IAO7B;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,UAAU;IAO/B;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa;IAY7B;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,aAAa;IAQhC;;;;;OAKG;IACH,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE;IASzB;;;;;OAKG;IACH,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE;IAS3B;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE;IAS1B;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE;IAS5B;;;;;OAKG;IACH,aAAa,CAAC,MAAM,EAAE,UAAU;IAQhC;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,SAAS;IAUjC;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;CAM3B"}
|