@mlightcad/cad-simple-viewer 1.0.0 → 1.0.1
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/README.md +296 -2
- package/dist/index.js +1347 -122
- package/dist/index.umd.cjs +2 -2
- package/lib/app/AcApContext.d.ts +45 -3
- package/lib/app/AcApContext.d.ts.map +1 -1
- package/lib/app/AcApContext.js +43 -3
- package/lib/app/AcApContext.js.map +1 -1
- package/lib/app/AcApDocCreator.d.ts +68 -2
- package/lib/app/AcApDocCreator.d.ts.map +1 -1
- package/lib/app/AcApDocCreator.js +67 -2
- package/lib/app/AcApDocCreator.js.map +1 -1
- package/lib/app/AcApDocManager.d.ts +227 -12
- package/lib/app/AcApDocManager.d.ts.map +1 -1
- package/lib/app/AcApDocManager.js +228 -17
- package/lib/app/AcApDocManager.js.map +1 -1
- package/lib/app/AcApDocument.d.ts +77 -3
- package/lib/app/AcApDocument.d.ts.map +1 -1
- package/lib/app/AcApDocument.js +75 -3
- package/lib/app/AcApDocument.js.map +1 -1
- package/lib/app/AcApFontLoader.d.ts +32 -0
- package/lib/app/AcApFontLoader.d.ts.map +1 -1
- package/lib/app/AcApFontLoader.js +30 -0
- package/lib/app/AcApFontLoader.js.map +1 -1
- package/lib/app/AcApSettingManager.d.ts +191 -3
- package/lib/app/AcApSettingManager.d.ts.map +1 -1
- package/lib/app/AcApSettingManager.js +161 -0
- package/lib/app/AcApSettingManager.js.map +1 -1
- package/lib/command/AcApConvertToSvgCmd.d.ts +26 -0
- package/lib/command/AcApConvertToSvgCmd.d.ts.map +1 -1
- package/lib/command/AcApConvertToSvgCmd.js +26 -0
- package/lib/command/AcApConvertToSvgCmd.js.map +1 -1
- package/lib/command/AcApOpenCmd.d.ts +31 -0
- package/lib/command/AcApOpenCmd.d.ts.map +1 -1
- package/lib/command/AcApOpenCmd.js +31 -0
- package/lib/command/AcApOpenCmd.js.map +1 -1
- package/lib/command/AcApPanCmd.d.ts +25 -0
- package/lib/command/AcApPanCmd.d.ts.map +1 -1
- package/lib/command/AcApPanCmd.js +25 -0
- package/lib/command/AcApPanCmd.js.map +1 -1
- package/lib/command/AcApQNewCmd.d.ts +26 -0
- package/lib/command/AcApQNewCmd.d.ts.map +1 -1
- package/lib/command/AcApQNewCmd.js +26 -0
- package/lib/command/AcApQNewCmd.js.map +1 -1
- package/lib/command/AcApSelectCmd.d.ts +26 -0
- package/lib/command/AcApSelectCmd.d.ts.map +1 -1
- package/lib/command/AcApSelectCmd.js +26 -0
- package/lib/command/AcApSelectCmd.js.map +1 -1
- package/lib/command/AcApSvgConvertor.d.ts +48 -0
- package/lib/command/AcApSvgConvertor.d.ts.map +1 -1
- package/lib/command/AcApSvgConvertor.js +48 -0
- package/lib/command/AcApSvgConvertor.js.map +1 -1
- package/lib/command/AcApZoomCmd.d.ts +29 -0
- package/lib/command/AcApZoomCmd.d.ts.map +1 -1
- package/lib/command/AcApZoomCmd.js +29 -0
- package/lib/command/AcApZoomCmd.js.map +1 -1
- package/lib/command/AcApZoomToBoxCmd.d.ts +57 -0
- package/lib/command/AcApZoomToBoxCmd.d.ts.map +1 -1
- package/lib/command/AcApZoomToBoxCmd.js +57 -0
- package/lib/command/AcApZoomToBoxCmd.js.map +1 -1
- package/lib/editor/command/AcEdCommand.d.ts +118 -9
- package/lib/editor/command/AcEdCommand.d.ts.map +1 -1
- package/lib/editor/command/AcEdCommand.js +113 -9
- package/lib/editor/command/AcEdCommand.js.map +1 -1
- package/lib/editor/command/AcEdCommandStack.d.ts +59 -5
- package/lib/editor/command/AcEdCommandStack.d.ts.map +1 -1
- package/lib/editor/command/AcEdCommandStack.js +48 -5
- package/lib/editor/command/AcEdCommandStack.js.map +1 -1
- package/lib/editor/global/eventBus.d.ts +69 -1
- package/lib/editor/global/eventBus.d.ts.map +1 -1
- package/lib/editor/global/eventBus.js +37 -0
- package/lib/editor/global/eventBus.js.map +1 -1
- package/lib/editor/input/AcEdBaseInput.d.ts +65 -1
- package/lib/editor/input/AcEdBaseInput.d.ts.map +1 -1
- package/lib/editor/input/AcEdBaseInput.js +62 -1
- package/lib/editor/input/AcEdBaseInput.js.map +1 -1
- package/lib/editor/input/AcEdBoxSelector.d.ts +81 -0
- package/lib/editor/input/AcEdBoxSelector.d.ts.map +1 -1
- package/lib/editor/input/AcEdBoxSelector.js +80 -0
- package/lib/editor/input/AcEdBoxSelector.js.map +1 -1
- package/lib/editor/input/AcEdCursorManager.d.ts +95 -8
- package/lib/editor/input/AcEdCursorManager.d.ts.map +1 -1
- package/lib/editor/input/AcEdCursorManager.js +95 -11
- package/lib/editor/input/AcEdCursorManager.js.map +1 -1
- package/lib/editor/input/AcEdInputPoint.d.ts +38 -1
- package/lib/editor/input/AcEdInputPoint.d.ts.map +1 -1
- package/lib/editor/input/AcEdInputPoint.js +38 -1
- package/lib/editor/input/AcEdInputPoint.js.map +1 -1
- package/lib/editor/input/AcEdJig.d.ts +166 -0
- package/lib/editor/input/AcEdJig.d.ts.map +1 -1
- package/lib/editor/input/AcEdJig.js +164 -0
- package/lib/editor/input/AcEdJig.js.map +1 -1
- package/lib/editor/input/AcEdJigLoop.d.ts +49 -0
- package/lib/editor/input/AcEdJigLoop.d.ts.map +1 -1
- package/lib/editor/input/AcEdJigLoop.js +48 -0
- package/lib/editor/input/AcEdJigLoop.js.map +1 -1
- package/lib/editor/input/AcEdSelectionSet.d.ts +122 -2
- package/lib/editor/input/AcEdSelectionSet.d.ts.map +1 -1
- package/lib/editor/input/AcEdSelectionSet.js +117 -1
- package/lib/editor/input/AcEdSelectionSet.js.map +1 -1
- package/lib/editor/input/AcEditor.d.ts +90 -6
- package/lib/editor/input/AcEditor.d.ts.map +1 -1
- package/lib/editor/input/AcEditor.js +86 -6
- package/lib/editor/input/AcEditor.js.map +1 -1
- package/lib/editor/view/AcEdBaseView.d.ts +163 -16
- package/lib/editor/view/AcEdBaseView.d.ts.map +1 -1
- package/lib/editor/view/AcEdBaseView.js +94 -5
- package/lib/editor/view/AcEdBaseView.js.map +1 -1
- package/lib/util/AcTrGeometryUtil.d.ts +65 -0
- package/lib/util/AcTrGeometryUtil.d.ts.map +1 -1
- package/lib/util/AcTrGeometryUtil.js +65 -0
- package/lib/util/AcTrGeometryUtil.js.map +1 -1
- package/lib/view/AcTrLayer.d.ts +40 -5
- package/lib/view/AcTrLayer.d.ts.map +1 -1
- package/lib/view/AcTrLayer.js +34 -5
- package/lib/view/AcTrLayer.js.map +1 -1
- package/lib/view/AcTrLayout.d.ts +122 -23
- package/lib/view/AcTrLayout.d.ts.map +1 -1
- package/lib/view/AcTrLayout.js +103 -23
- package/lib/view/AcTrLayout.js.map +1 -1
- package/lib/view/AcTrLayoutView.d.ts +74 -16
- package/lib/view/AcTrLayoutView.d.ts.map +1 -1
- package/lib/view/AcTrLayoutView.js +65 -16
- package/lib/view/AcTrLayoutView.js.map +1 -1
- package/lib/view/AcTrLayoutViewManager.d.ts +58 -12
- package/lib/view/AcTrLayoutViewManager.d.ts.map +1 -1
- package/lib/view/AcTrLayoutViewManager.js +56 -12
- package/lib/view/AcTrLayoutViewManager.js.map +1 -1
- package/lib/view/AcTrScene.d.ts +48 -4
- package/lib/view/AcTrScene.d.ts.map +1 -1
- package/lib/view/AcTrScene.js +44 -4
- package/lib/view/AcTrScene.js.map +1 -1
- package/lib/view/AcTrView2d.d.ts +71 -0
- package/lib/view/AcTrView2d.d.ts.map +1 -1
- package/lib/view/AcTrView2d.js +65 -0
- package/lib/view/AcTrView2d.js.map +1 -1
- package/package.json +8 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcEdSelectionSet.js","sourceRoot":"","sources":["../../../src/editor/input/AcEdSelectionSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"AcEdSelectionSet.js","sourceRoot":"","sources":["../../../src/editor/input/AcEdSelectionSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAaxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH;IAYE;;;;;;;;;;;;;OAaG;IACH,0BAAY,GAAwB;QAAxB,oBAAA,EAAA,QAAwB;QAtBpC,0CAA0C;QAC1B,WAAM,GAAG;YACvB,qDAAqD;YACrD,cAAc,EAAE,IAAI,gBAAgB,EAA0B;YAC9D,yDAAyD;YACzD,gBAAgB,EAAE,IAAI,gBAAgB,EAA0B;SACjE,CAAA;QAiBC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAe,GAAG,CAAC,CAAA;IACxC,CAAC;IAOD,sBAAI,iCAAG;QALP;;;;WAIG;aACH;YACE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;;;OAAA;IAOD,sBAAI,mCAAK;QALT;;;;WAIG;aACH;YACE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;QACvB,CAAC;;;OAAA;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,8BAAG,GAAH,UAAI,KAAoC;QAAxC,iBAQC;QAPC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,OAAO,CAAC,UAAA,IAAI,IAAI,OAAA,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAnB,CAAmB,CAAC,CAAA;YAC1C,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;QACrD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACpB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,iCAAM,GAAN,UAAO,KAAoC;QAA3C,iBAQC;QAPC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,OAAO,CAAC,UAAA,IAAI,IAAI,OAAA,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAtB,CAAsB,CAAC,CAAA;YAC7C,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;QACvD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACvB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACzD,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,8BAAG,GAAH,UAAI,EAAgB;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC;IAED;;;;;;;;;OASG;IACH,gCAAK,GAAL;QACE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACvB,IAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;YACjB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAA,EAAE,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAxID,IAwIC"}
|
|
@@ -1,26 +1,110 @@
|
|
|
1
1
|
import { AcEdBaseView } from '../view/AcEdBaseView';
|
|
2
2
|
import { AcEdCorsorType } from './AcEdCursorManager';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Advanced input handler for CAD operations providing high-level user interaction methods.
|
|
5
|
+
*
|
|
6
|
+
* This class serves as a wrapper for all types of user input including:
|
|
7
|
+
* - Point input (mouse clicks, coordinates)
|
|
8
|
+
* - Entity selection (single or multiple entities)
|
|
9
|
+
* - String, number, angle, and distance input
|
|
10
|
+
* - Cursor management and visual feedback
|
|
11
|
+
*
|
|
12
|
+
* The editor abstracts away low-level mouse and keyboard events, providing a clean API
|
|
13
|
+
* for command implementations. Instead of listening to raw DOM events, commands should
|
|
14
|
+
* use the methods provided by this class.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* // Get user input for a point
|
|
19
|
+
* const point = await editor.getPoint();
|
|
20
|
+
* console.log('User clicked at:', point);
|
|
21
|
+
*
|
|
22
|
+
* // Get entity selection
|
|
23
|
+
* const selection = await editor.getSelection();
|
|
24
|
+
* console.log('Selected entities:', selection.ids);
|
|
25
|
+
*
|
|
26
|
+
* // Change cursor appearance
|
|
27
|
+
* editor.setCursor(AcEdCorsorType.Crosshair);
|
|
28
|
+
* ```
|
|
8
29
|
*/
|
|
9
30
|
export declare class AcEditor {
|
|
31
|
+
/** Previously set cursor type for restoration */
|
|
10
32
|
private _previousCursor?;
|
|
33
|
+
/** Currently active cursor type */
|
|
11
34
|
private _currentCursor?;
|
|
35
|
+
/** Manager for cursor appearance and behavior */
|
|
12
36
|
private _cursorManager;
|
|
37
|
+
/** The view this editor is associated with */
|
|
13
38
|
protected _view: AcEdBaseView;
|
|
39
|
+
/**
|
|
40
|
+
* Creates a new editor instance for the specified view.
|
|
41
|
+
*
|
|
42
|
+
* @param view - The view that this editor will handle input for
|
|
43
|
+
*/
|
|
14
44
|
constructor(view: AcEdBaseView);
|
|
45
|
+
/**
|
|
46
|
+
* Gets the currently active cursor type.
|
|
47
|
+
*
|
|
48
|
+
* @returns The current cursor type, or undefined if none is set
|
|
49
|
+
*/
|
|
15
50
|
get currentCursor(): AcEdCorsorType | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* Restores the previously set cursor.
|
|
53
|
+
*
|
|
54
|
+
* This is useful for temporarily changing the cursor and then reverting
|
|
55
|
+
* to the previous state.
|
|
56
|
+
*/
|
|
16
57
|
restoreCursor(): void;
|
|
58
|
+
/**
|
|
59
|
+
* Sets the cursor appearance for the view.
|
|
60
|
+
*
|
|
61
|
+
* The previous cursor type is stored for potential restoration.
|
|
62
|
+
*
|
|
63
|
+
* @param cursorType - The cursor type to set
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```typescript
|
|
67
|
+
* editor.setCursor(AcEdCorsorType.Crosshair); // For precise point input
|
|
68
|
+
* editor.setCursor(AcEdCorsorType.Grab); // For pan operations
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
17
71
|
setCursor(cursorType: AcEdCorsorType): void;
|
|
18
72
|
/**
|
|
19
|
-
*
|
|
73
|
+
* Prompts the user to input a point by clicking on the view.
|
|
74
|
+
*
|
|
75
|
+
* This method returns a promise that resolves when the user clicks
|
|
76
|
+
* on the view, providing the world coordinates of the click point.
|
|
77
|
+
*
|
|
78
|
+
* @returns Promise that resolves to the input point coordinates
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* const startPoint = await editor.getPoint();
|
|
83
|
+
* const endPoint = await editor.getPoint();
|
|
84
|
+
* // Now you can create a line from startPoint to endPoint
|
|
85
|
+
* ```
|
|
20
86
|
*/
|
|
21
87
|
getPoint(): Promise<import("@mlightcad/geometry-engine").AcGePoint2d>;
|
|
22
88
|
/**
|
|
23
|
-
*
|
|
89
|
+
* Prompts the user to select entities using box selection.
|
|
90
|
+
*
|
|
91
|
+
* This method allows the user to drag a selection box to select
|
|
92
|
+
* multiple entities at once. The selection behavior follows CAD
|
|
93
|
+
* conventions (left-to-right for crossing, right-to-left for window).
|
|
94
|
+
*
|
|
95
|
+
* @returns Promise that resolves to the selection set containing selected entity IDs
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* const selection = await editor.getSelection();
|
|
100
|
+
* if (selection.count > 0) {
|
|
101
|
+
* console.log(`Selected ${selection.count} entities`);
|
|
102
|
+
* // Process the selected entities
|
|
103
|
+
* for (const id of selection.ids) {
|
|
104
|
+
* // Do something with each selected entity
|
|
105
|
+
* }
|
|
106
|
+
* }
|
|
107
|
+
* ```
|
|
24
108
|
*/
|
|
25
109
|
getSelection(): Promise<import("@mlightcad/geometry-engine").AcGeBox2d>;
|
|
26
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcEditor.d.ts","sourceRoot":"","sources":["../../../src/editor/input/AcEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,EAAE,cAAc,EAAqB,MAAM,qBAAqB,CAAA;AAGvE
|
|
1
|
+
{"version":3,"file":"AcEditor.d.ts","sourceRoot":"","sources":["../../../src/editor/input/AcEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,EAAE,cAAc,EAAqB,MAAM,qBAAqB,CAAA;AAGvE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,QAAQ;IACnB,iDAAiD;IACjD,OAAO,CAAC,eAAe,CAAC,CAAgB;IACxC,mCAAmC;IACnC,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,iDAAiD;IACjD,OAAO,CAAC,cAAc,CAAmB;IACzC,8CAA8C;IAC9C,SAAS,CAAC,KAAK,EAAE,YAAY,CAAA;IAE7B;;;;OAIG;gBACS,IAAI,EAAE,YAAY;IAK9B;;;;OAIG;IACH,IAAI,aAAa,+BAEhB;IAED;;;;;OAKG;IACH,aAAa;IAMb;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,UAAU,EAAE,cAAc;IAMpC;;;;;;;;;;;;;;OAcG;IACG,QAAQ;IAKd;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,YAAY;CAInB"}
|
|
@@ -38,35 +38,97 @@ import { AcEdBoxSelector } from './AcEdBoxSelector';
|
|
|
38
38
|
import { AcEdCursorManager } from './AcEdCursorManager';
|
|
39
39
|
import { AcEdInputPoint } from './AcEdInputPoint';
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
41
|
+
* Advanced input handler for CAD operations providing high-level user interaction methods.
|
|
42
|
+
*
|
|
43
|
+
* This class serves as a wrapper for all types of user input including:
|
|
44
|
+
* - Point input (mouse clicks, coordinates)
|
|
45
|
+
* - Entity selection (single or multiple entities)
|
|
46
|
+
* - String, number, angle, and distance input
|
|
47
|
+
* - Cursor management and visual feedback
|
|
48
|
+
*
|
|
49
|
+
* The editor abstracts away low-level mouse and keyboard events, providing a clean API
|
|
50
|
+
* for command implementations. Instead of listening to raw DOM events, commands should
|
|
51
|
+
* use the methods provided by this class.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* // Get user input for a point
|
|
56
|
+
* const point = await editor.getPoint();
|
|
57
|
+
* console.log('User clicked at:', point);
|
|
58
|
+
*
|
|
59
|
+
* // Get entity selection
|
|
60
|
+
* const selection = await editor.getSelection();
|
|
61
|
+
* console.log('Selected entities:', selection.ids);
|
|
62
|
+
*
|
|
63
|
+
* // Change cursor appearance
|
|
64
|
+
* editor.setCursor(AcEdCorsorType.Crosshair);
|
|
65
|
+
* ```
|
|
45
66
|
*/
|
|
46
67
|
var AcEditor = /** @class */ (function () {
|
|
68
|
+
/**
|
|
69
|
+
* Creates a new editor instance for the specified view.
|
|
70
|
+
*
|
|
71
|
+
* @param view - The view that this editor will handle input for
|
|
72
|
+
*/
|
|
47
73
|
function AcEditor(view) {
|
|
48
74
|
this._view = view;
|
|
49
75
|
this._cursorManager = new AcEdCursorManager();
|
|
50
76
|
}
|
|
51
77
|
Object.defineProperty(AcEditor.prototype, "currentCursor", {
|
|
78
|
+
/**
|
|
79
|
+
* Gets the currently active cursor type.
|
|
80
|
+
*
|
|
81
|
+
* @returns The current cursor type, or undefined if none is set
|
|
82
|
+
*/
|
|
52
83
|
get: function () {
|
|
53
84
|
return this._currentCursor;
|
|
54
85
|
},
|
|
55
86
|
enumerable: false,
|
|
56
87
|
configurable: true
|
|
57
88
|
});
|
|
89
|
+
/**
|
|
90
|
+
* Restores the previously set cursor.
|
|
91
|
+
*
|
|
92
|
+
* This is useful for temporarily changing the cursor and then reverting
|
|
93
|
+
* to the previous state.
|
|
94
|
+
*/
|
|
58
95
|
AcEditor.prototype.restoreCursor = function () {
|
|
59
96
|
if (this._previousCursor != null) {
|
|
60
97
|
this.setCursor(this._previousCursor);
|
|
61
98
|
}
|
|
62
99
|
};
|
|
100
|
+
/**
|
|
101
|
+
* Sets the cursor appearance for the view.
|
|
102
|
+
*
|
|
103
|
+
* The previous cursor type is stored for potential restoration.
|
|
104
|
+
*
|
|
105
|
+
* @param cursorType - The cursor type to set
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```typescript
|
|
109
|
+
* editor.setCursor(AcEdCorsorType.Crosshair); // For precise point input
|
|
110
|
+
* editor.setCursor(AcEdCorsorType.Grab); // For pan operations
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
63
113
|
AcEditor.prototype.setCursor = function (cursorType) {
|
|
64
114
|
this._cursorManager.setCursor(cursorType, this._view.canvas);
|
|
65
115
|
this._previousCursor = this._currentCursor;
|
|
66
116
|
this._currentCursor = cursorType;
|
|
67
117
|
};
|
|
68
118
|
/**
|
|
69
|
-
*
|
|
119
|
+
* Prompts the user to input a point by clicking on the view.
|
|
120
|
+
*
|
|
121
|
+
* This method returns a promise that resolves when the user clicks
|
|
122
|
+
* on the view, providing the world coordinates of the click point.
|
|
123
|
+
*
|
|
124
|
+
* @returns Promise that resolves to the input point coordinates
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* const startPoint = await editor.getPoint();
|
|
129
|
+
* const endPoint = await editor.getPoint();
|
|
130
|
+
* // Now you can create a line from startPoint to endPoint
|
|
131
|
+
* ```
|
|
70
132
|
*/
|
|
71
133
|
AcEditor.prototype.getPoint = function () {
|
|
72
134
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -82,7 +144,25 @@ var AcEditor = /** @class */ (function () {
|
|
|
82
144
|
});
|
|
83
145
|
};
|
|
84
146
|
/**
|
|
85
|
-
*
|
|
147
|
+
* Prompts the user to select entities using box selection.
|
|
148
|
+
*
|
|
149
|
+
* This method allows the user to drag a selection box to select
|
|
150
|
+
* multiple entities at once. The selection behavior follows CAD
|
|
151
|
+
* conventions (left-to-right for crossing, right-to-left for window).
|
|
152
|
+
*
|
|
153
|
+
* @returns Promise that resolves to the selection set containing selected entity IDs
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* const selection = await editor.getSelection();
|
|
158
|
+
* if (selection.count > 0) {
|
|
159
|
+
* console.log(`Selected ${selection.count} entities`);
|
|
160
|
+
* // Process the selected entities
|
|
161
|
+
* for (const id of selection.ids) {
|
|
162
|
+
* // Do something with each selected entity
|
|
163
|
+
* }
|
|
164
|
+
* }
|
|
165
|
+
* ```
|
|
86
166
|
*/
|
|
87
167
|
AcEditor.prototype.getSelection = function () {
|
|
88
168
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcEditor.js","sourceRoot":"","sources":["../../../src/editor/input/AcEditor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAkB,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD
|
|
1
|
+
{"version":3,"file":"AcEditor.js","sourceRoot":"","sources":["../../../src/editor/input/AcEditor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAkB,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH;IAUE;;;;OAIG;IACH,kBAAY,IAAkB;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,cAAc,GAAG,IAAI,iBAAiB,EAAE,CAAA;IAC/C,CAAC;IAOD,sBAAI,mCAAa;QALjB;;;;WAIG;aACH;YACE,OAAO,IAAI,CAAC,cAAc,CAAA;QAC5B,CAAC;;;OAAA;IAED;;;;;OAKG;IACH,gCAAa,GAAb;QACE,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,4BAAS,GAAT,UAAU,UAA0B;QAClC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC5D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAA;QAC1C,IAAI,CAAC,cAAc,GAAG,UAAU,CAAA;IAClC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACG,2BAAQ,GAAd;;;;;;wBACQ,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;wBACxC,qBAAM,QAAQ,CAAC,KAAK,EAAE,EAAA;4BAA7B,sBAAO,SAAsB,EAAA;;;;KAC9B;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,+BAAY,GAAlB;;;;;;wBACQ,QAAQ,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;wBACzC,qBAAM,QAAQ,CAAC,KAAK,EAAE,EAAA;4BAA7B,sBAAO,SAAsB,EAAA;;;;KAC9B;IACH,eAAC;AAAD,CAAC,AAzGD,IAyGC"}
|
|
@@ -55,15 +55,38 @@ export interface AcEdViewHoverEventArgs {
|
|
|
55
55
|
id: AcDbObjectId;
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
58
|
-
*
|
|
58
|
+
* Enumeration of view interaction modes.
|
|
59
|
+
*
|
|
60
|
+
* The view mode determines how the view responds to user mouse interactions:
|
|
61
|
+
* - In SELECTION mode, clicks select entities
|
|
62
|
+
* - In PAN mode, clicks and drags pan the view
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* // Set to selection mode for entity picking
|
|
67
|
+
* view.mode = AcEdViewMode.SELECTION;
|
|
68
|
+
*
|
|
69
|
+
* // Set to pan mode for view navigation
|
|
70
|
+
* view.mode = AcEdViewMode.PAN;
|
|
71
|
+
* ```
|
|
59
72
|
*/
|
|
60
73
|
export declare enum AcEdViewMode {
|
|
61
74
|
/**
|
|
62
|
-
*
|
|
75
|
+
* Selection mode - mouse clicks select entities.
|
|
76
|
+
*
|
|
77
|
+
* In this mode:
|
|
78
|
+
* - Single clicks select individual entities
|
|
79
|
+
* - Drag operations can create selection boxes
|
|
80
|
+
* - Selected entities are highlighted with grip points
|
|
63
81
|
*/
|
|
64
82
|
SELECTION = 0,
|
|
65
83
|
/**
|
|
66
|
-
*
|
|
84
|
+
* Pan mode - mouse interactions pan the view.
|
|
85
|
+
*
|
|
86
|
+
* In this mode:
|
|
87
|
+
* - Click and drag operations move the view
|
|
88
|
+
* - The cursor typically changes to indicate pan mode
|
|
89
|
+
* - Entity selection is disabled
|
|
67
90
|
*/
|
|
68
91
|
PAN = 1
|
|
69
92
|
}
|
|
@@ -81,62 +104,186 @@ export type AcEdCalculateSizeCallback = () => {
|
|
|
81
104
|
width: number;
|
|
82
105
|
height: number;
|
|
83
106
|
};
|
|
107
|
+
/**
|
|
108
|
+
* Abstract base class for all CAD view implementations.
|
|
109
|
+
*
|
|
110
|
+
* This class provides the foundation for rendering and interacting with CAD drawings.
|
|
111
|
+
* It manages:
|
|
112
|
+
* - Canvas and viewport dimensions
|
|
113
|
+
* - Mouse event handling and coordinate conversion
|
|
114
|
+
* - Entity selection and highlighting
|
|
115
|
+
* - View modes (selection, pan, etc.)
|
|
116
|
+
* - Spatial queries for entity picking
|
|
117
|
+
* - Hover/unhover detection with timing
|
|
118
|
+
*
|
|
119
|
+
* Concrete implementations must provide specific rendering logic and coordinate
|
|
120
|
+
* transformations appropriate for their rendering technology (e.g., Three.js, SVG).
|
|
121
|
+
*
|
|
122
|
+
* ## Key Responsibilities
|
|
123
|
+
* - **Input Management**: Handles mouse events and user interactions
|
|
124
|
+
* - **Selection**: Manages selected entities and visual feedback
|
|
125
|
+
* - **Coordinate Systems**: Converts between screen and world coordinates
|
|
126
|
+
* - **Spatial Queries**: Finds entities at specific locations
|
|
127
|
+
* - **View State**: Tracks current position, zoom, and view mode
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```typescript
|
|
131
|
+
* class MyView extends AcEdBaseView {
|
|
132
|
+
* // Implement required abstract methods
|
|
133
|
+
* get missedData() { return { fonts: {}, images: new Map() }; }
|
|
134
|
+
* get mode() { return this._mode; }
|
|
135
|
+
* set mode(value) { this._mode = value; }
|
|
136
|
+
* // ... other abstract methods
|
|
137
|
+
* }
|
|
138
|
+
*
|
|
139
|
+
* const view = new MyView(canvasElement);
|
|
140
|
+
* view.events.mouseMove.addEventListener(args => {
|
|
141
|
+
* console.log('Mouse at world coords:', args.x, args.y);
|
|
142
|
+
* });
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
84
145
|
export declare abstract class AcEdBaseView {
|
|
146
|
+
/** Current viewport width in pixels */
|
|
85
147
|
private _width;
|
|
148
|
+
/** Current viewport height in pixels */
|
|
86
149
|
private _height;
|
|
150
|
+
/** Optional callback to calculate canvas size on resize */
|
|
87
151
|
private _calculateSizeCallback?;
|
|
152
|
+
/** Bounding box of all entities in the view */
|
|
88
153
|
private _bbox;
|
|
154
|
+
/** Current mouse position in world coordinates */
|
|
89
155
|
private _curPos;
|
|
156
|
+
/** Current mouse position in screen coordinates */
|
|
90
157
|
private _curScreenPos;
|
|
158
|
+
/** Set of currently selected entities */
|
|
91
159
|
private _selectionSet;
|
|
160
|
+
/** Input manager for handling user interactions */
|
|
92
161
|
private _editor;
|
|
162
|
+
/** Size of selection box in pixels for entity picking */
|
|
93
163
|
private _selectionBoxSize;
|
|
164
|
+
/** Timer for hover detection delay */
|
|
94
165
|
private _hoverTimer;
|
|
166
|
+
/** Timer for hover pause detection */
|
|
95
167
|
private _pauseTimer;
|
|
168
|
+
/** ID of currently hovered entity */
|
|
96
169
|
private _hoveredObjectId;
|
|
170
|
+
/** The HTML canvas element for rendering */
|
|
97
171
|
protected _canvas: HTMLCanvasElement;
|
|
172
|
+
/** Events fired by the view for various interactions */
|
|
98
173
|
readonly events: {
|
|
174
|
+
/** Fired when mouse moves over the view */
|
|
99
175
|
mouseMove: AcCmEventManager<AcEdMouseEventArgs>;
|
|
176
|
+
/** Fired when the view is resized */
|
|
100
177
|
viewResize: AcCmEventManager<AcEdViewResizedEventArgs>;
|
|
178
|
+
/** Fired when mouse hovers over an entity */
|
|
101
179
|
hover: AcCmEventManager<AcEdViewHoverEventArgs>;
|
|
180
|
+
/** Fired when mouse stops hovering over an entity */
|
|
102
181
|
unhover: AcCmEventManager<AcEdViewHoverEventArgs>;
|
|
103
182
|
};
|
|
183
|
+
/**
|
|
184
|
+
* Creates a new base view instance.
|
|
185
|
+
*
|
|
186
|
+
* Sets up the canvas, initializes internal state, and registers event listeners
|
|
187
|
+
* for mouse interactions and window resize events.
|
|
188
|
+
*
|
|
189
|
+
* @param canvas - The HTML canvas element to render into
|
|
190
|
+
*/
|
|
104
191
|
constructor(canvas: HTMLCanvasElement);
|
|
105
192
|
/**
|
|
106
|
-
*
|
|
193
|
+
* Gets the input manager for handling user interactions.
|
|
194
|
+
*
|
|
195
|
+
* The editor provides high-level methods for getting user input like
|
|
196
|
+
* point selection, entity selection, and cursor management.
|
|
197
|
+
*
|
|
198
|
+
* @returns The editor instance
|
|
107
199
|
*/
|
|
108
200
|
get editor(): AcEditor;
|
|
109
201
|
/**
|
|
110
|
-
*
|
|
202
|
+
* Gets the size of the selection box used for entity picking.
|
|
203
|
+
*
|
|
204
|
+
* This determines how close the mouse needs to be to an entity
|
|
205
|
+
* to select it, measured in screen pixels.
|
|
206
|
+
*
|
|
207
|
+
* @returns Selection box size in pixels
|
|
111
208
|
*/
|
|
112
209
|
get selectionBoxSize(): number;
|
|
210
|
+
/**
|
|
211
|
+
* Sets the size of the selection box used for entity picking.
|
|
212
|
+
*
|
|
213
|
+
* @param value - Selection box size in pixels
|
|
214
|
+
*/
|
|
113
215
|
set selectionBoxSize(value: number);
|
|
114
216
|
/**
|
|
115
|
-
*
|
|
217
|
+
* Gets information about missing data during rendering.
|
|
218
|
+
*
|
|
219
|
+
* This includes fonts that couldn't be loaded and images that are
|
|
220
|
+
* missing or inaccessible. Implementations should track and report
|
|
221
|
+
* this information to help users understand rendering issues.
|
|
222
|
+
*
|
|
223
|
+
* @returns Object containing missing fonts and images
|
|
116
224
|
*/
|
|
117
225
|
abstract get missedData(): AcEdMissedData;
|
|
118
226
|
/**
|
|
119
|
-
*
|
|
227
|
+
* Gets the current view mode.
|
|
228
|
+
*
|
|
229
|
+
* The view mode determines how the view responds to user interactions:
|
|
230
|
+
* - SELECTION: Click to select entities
|
|
231
|
+
* - PAN: Click and drag to pan the view
|
|
232
|
+
*
|
|
233
|
+
* @returns The current view mode
|
|
120
234
|
*/
|
|
121
235
|
abstract get mode(): AcEdViewMode;
|
|
236
|
+
/**
|
|
237
|
+
* Sets the current view mode.
|
|
238
|
+
*
|
|
239
|
+
* @param value - The view mode to set
|
|
240
|
+
*/
|
|
122
241
|
abstract set mode(value: AcEdViewMode);
|
|
123
242
|
/**
|
|
124
|
-
*
|
|
243
|
+
* Gets the center point of the current view in world coordinates.
|
|
244
|
+
*
|
|
245
|
+
* @returns The view center point
|
|
125
246
|
*/
|
|
126
247
|
abstract get center(): AcGePoint2d;
|
|
248
|
+
/**
|
|
249
|
+
* Sets the center point of the current view in world coordinates.
|
|
250
|
+
*
|
|
251
|
+
* @param value - The new center point
|
|
252
|
+
*/
|
|
127
253
|
abstract set center(value: AcGePoint2d);
|
|
128
254
|
/**
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
255
|
+
* Converts a point from client window coordinates to world coordinates.
|
|
256
|
+
*
|
|
257
|
+
* The client window coordinate system has its origin at the top-left corner
|
|
258
|
+
* of the canvas, with Y increasing downward. World coordinates use the
|
|
259
|
+
* CAD coordinate system with Y typically increasing upward.
|
|
260
|
+
*
|
|
261
|
+
* @param point - Point in client window coordinates
|
|
262
|
+
* @returns Point in world coordinates
|
|
263
|
+
*
|
|
264
|
+
* @example
|
|
265
|
+
* ```typescript
|
|
266
|
+
* const screenPoint = { x: 100, y: 200 }; // 100px right, 200px down
|
|
267
|
+
* const worldPoint = view.cwcs2Wcs(screenPoint);
|
|
268
|
+
* console.log('World coordinates:', worldPoint.x, worldPoint.y);
|
|
269
|
+
* ```
|
|
133
270
|
*/
|
|
134
271
|
abstract cwcs2Wcs(point: AcGePoint2dLike): AcGePoint2d;
|
|
135
272
|
/**
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
273
|
+
* Converts a point from world coordinates to client window coordinates.
|
|
274
|
+
*
|
|
275
|
+
* This is the inverse of `cwcs2Wcs()`, converting from the CAD world
|
|
276
|
+
* coordinate system to screen pixel coordinates.
|
|
277
|
+
*
|
|
278
|
+
* @param point - Point in world coordinates
|
|
279
|
+
* @returns Point in client window coordinates
|
|
280
|
+
*
|
|
281
|
+
* @example
|
|
282
|
+
* ```typescript
|
|
283
|
+
* const worldPoint = new AcGePoint2d(10, 20); // CAD coordinates
|
|
284
|
+
* const screenPoint = view.wcs2Cwcs(worldPoint);
|
|
285
|
+
* console.log('Screen position:', screenPoint.x, screenPoint.y);
|
|
286
|
+
* ```
|
|
140
287
|
*/
|
|
141
288
|
abstract wcs2Cwcs(point: AcGePoint2dLike): AcGePoint2d;
|
|
142
289
|
abstract zoomTo(box: AcGeBox2d, margin: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcEdBaseView.d.ts","sourceRoot":"","sources":["../../../src/editor/view/AcEdBaseView.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,SAAS,EACT,SAAS,EACT,WAAW,EACX,eAAe,EAChB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,YAAY,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,CAAC,EAAE,MAAM,CAAA;IACT;;OAEG;IACH,CAAC,EAAE,MAAM,CAAA;CACV;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,CAAC,EAAE,MAAM,CAAA;IACT;;OAEG;IACH,CAAC,EAAE,MAAM,CAAA;IACT;;OAEG;IACH,EAAE,EAAE,YAAY,CAAA;CACjB;AAED
|
|
1
|
+
{"version":3,"file":"AcEdBaseView.d.ts","sourceRoot":"","sources":["../../../src/editor/view/AcEdBaseView.ts"],"names":[],"mappings":"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"}
|