@itwin/editor-frontend 4.0.0-dev.52 → 4.0.0-dev.55

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 (82) hide show
  1. package/lib/cjs/CreateElementTool.d.ts +100 -100
  2. package/lib/cjs/CreateElementTool.js +325 -325
  3. package/lib/cjs/DeleteElementsTool.d.ts +13 -13
  4. package/lib/cjs/DeleteElementsTool.js +38 -38
  5. package/lib/cjs/DeleteElementsTool.js.map +1 -1
  6. package/lib/cjs/EditTool.d.ts +38 -38
  7. package/lib/cjs/EditTool.js +80 -80
  8. package/lib/cjs/EditTool.js.map +1 -1
  9. package/lib/cjs/EditToolIpc.d.ts +18 -18
  10. package/lib/cjs/EditToolIpc.js +28 -28
  11. package/lib/cjs/ElementGeometryTool.d.ts +147 -147
  12. package/lib/cjs/ElementGeometryTool.js +704 -704
  13. package/lib/cjs/ModifyCurveTools.d.ts +139 -139
  14. package/lib/cjs/ModifyCurveTools.js +776 -776
  15. package/lib/cjs/ModifyCurveTools.js.map +1 -1
  16. package/lib/cjs/ModifyElementTool.d.ts +47 -47
  17. package/lib/cjs/ModifyElementTool.js +177 -177
  18. package/lib/cjs/ProjectLocation/ProjectExtentsDecoration.d.ts +135 -135
  19. package/lib/cjs/ProjectLocation/ProjectExtentsDecoration.js +822 -822
  20. package/lib/cjs/ProjectLocation/ProjectExtentsDecoration.js.map +1 -1
  21. package/lib/cjs/ProjectLocation/ProjectGeolocation.d.ts +135 -135
  22. package/lib/cjs/ProjectLocation/ProjectGeolocation.js +532 -532
  23. package/lib/cjs/ProjectLocation/ProjectGeolocation.js.map +1 -1
  24. package/lib/cjs/SketchTools.d.ts +304 -304
  25. package/lib/cjs/SketchTools.js +1704 -1704
  26. package/lib/cjs/SketchTools.js.map +1 -1
  27. package/lib/cjs/SolidModelingTools.d.ts +380 -380
  28. package/lib/cjs/SolidModelingTools.js +1452 -1452
  29. package/lib/cjs/SolidModelingTools.js.map +1 -1
  30. package/lib/cjs/SolidPrimitiveTools.d.ts +318 -318
  31. package/lib/cjs/SolidPrimitiveTools.js +1372 -1372
  32. package/lib/cjs/SolidPrimitiveTools.js.map +1 -1
  33. package/lib/cjs/TransformElementsTool.d.ts +164 -164
  34. package/lib/cjs/TransformElementsTool.js +652 -652
  35. package/lib/cjs/TransformElementsTool.js.map +1 -1
  36. package/lib/cjs/UndoRedoTool.d.ts +16 -16
  37. package/lib/cjs/UndoRedoTool.js +41 -41
  38. package/lib/cjs/UndoRedoTool.js.map +1 -1
  39. package/lib/cjs/editor-frontend.d.ts +17 -17
  40. package/lib/cjs/editor-frontend.js +37 -33
  41. package/lib/cjs/editor-frontend.js.map +1 -1
  42. package/lib/esm/CreateElementTool.d.ts +100 -100
  43. package/lib/esm/CreateElementTool.js +317 -317
  44. package/lib/esm/DeleteElementsTool.d.ts +13 -13
  45. package/lib/esm/DeleteElementsTool.js +35 -34
  46. package/lib/esm/DeleteElementsTool.js.map +1 -1
  47. package/lib/esm/EditTool.d.ts +38 -38
  48. package/lib/esm/EditTool.js +77 -76
  49. package/lib/esm/EditTool.js.map +1 -1
  50. package/lib/esm/EditToolIpc.d.ts +18 -18
  51. package/lib/esm/EditToolIpc.js +24 -24
  52. package/lib/esm/ElementGeometryTool.d.ts +147 -147
  53. package/lib/esm/ElementGeometryTool.js +696 -696
  54. package/lib/esm/ModifyCurveTools.d.ts +139 -139
  55. package/lib/esm/ModifyCurveTools.js +771 -767
  56. package/lib/esm/ModifyCurveTools.js.map +1 -1
  57. package/lib/esm/ModifyElementTool.d.ts +47 -47
  58. package/lib/esm/ModifyElementTool.js +172 -172
  59. package/lib/esm/ProjectLocation/ProjectExtentsDecoration.d.ts +135 -135
  60. package/lib/esm/ProjectLocation/ProjectExtentsDecoration.js +818 -814
  61. package/lib/esm/ProjectLocation/ProjectExtentsDecoration.js.map +1 -1
  62. package/lib/esm/ProjectLocation/ProjectGeolocation.d.ts +135 -135
  63. package/lib/esm/ProjectLocation/ProjectGeolocation.js +529 -526
  64. package/lib/esm/ProjectLocation/ProjectGeolocation.js.map +1 -1
  65. package/lib/esm/SketchTools.d.ts +304 -304
  66. package/lib/esm/SketchTools.js +1700 -1694
  67. package/lib/esm/SketchTools.js.map +1 -1
  68. package/lib/esm/SolidModelingTools.d.ts +380 -380
  69. package/lib/esm/SolidModelingTools.js +1444 -1427
  70. package/lib/esm/SolidModelingTools.js.map +1 -1
  71. package/lib/esm/SolidPrimitiveTools.d.ts +318 -318
  72. package/lib/esm/SolidPrimitiveTools.js +1368 -1361
  73. package/lib/esm/SolidPrimitiveTools.js.map +1 -1
  74. package/lib/esm/TransformElementsTool.d.ts +164 -164
  75. package/lib/esm/TransformElementsTool.js +647 -644
  76. package/lib/esm/TransformElementsTool.js.map +1 -1
  77. package/lib/esm/UndoRedoTool.d.ts +16 -16
  78. package/lib/esm/UndoRedoTool.js +38 -35
  79. package/lib/esm/UndoRedoTool.js.map +1 -1
  80. package/lib/esm/editor-frontend.d.ts +17 -17
  81. package/lib/esm/editor-frontend.js +21 -21
  82. package/package.json +16 -16
@@ -1,305 +1,305 @@
1
- import { DialogItem, DialogProperty, DialogPropertySyncItem } from "@itwin/appui-abstract";
2
- import { Id64String } from "@itwin/core-bentley";
3
- import { ElementGeometryBuilderParams, ElementGeometryInfo, FlatBufferGeometryStream, GeometricElementProps, GeometryParams, GeometryStreamProps, JsonGeometryStream, PlacementProps } from "@itwin/core-common";
4
- import { BeButtonEvent, BeModifierKeys, DecorateContext, DynamicsContext, EventHandled, HitDetail, SnapDetail, ToolAssistanceInstruction } from "@itwin/core-frontend";
5
- import { CurvePrimitive, GeometryQuery, Matrix3d, Path, Point3d, Transform, Vector3d } from "@itwin/core-geometry";
6
- import { CreateElementWithDynamicsTool } from "./CreateElementTool";
7
- /** @alpha Values for [[CreateOrContinueTool.createCurvePhase] to support join and closure. */
8
- export declare enum CreateCurvePhase {
9
- /** Current tool phase changes CurvePrimitive startPoint.
10
- * ex. Arc defined by center, start would return this when accepted length is 1.
11
- */
12
- DefineStart = 0,
13
- /** Current tool phase changes CurvePrimitive endPoint.
14
- * ex. Arc defined by start, end, mid would return this when accepted length is 1.
15
- */
16
- DefineEnd = 1,
17
- /** Current tool phase does NOT change CurvePrimitive startPoint or endPoint.
18
- * ex. When defining arc mid point, or start and end tangents for a bcurve return this.
19
- */
20
- DefineOther = 2
21
- }
22
- /** @alpha Base class for creating open and closed paths. */
23
- export declare abstract class CreateOrContinuePathTool extends CreateElementWithDynamicsTool {
24
- protected _createCurvePhase: CreateCurvePhase;
25
- protected readonly accepted: Point3d[];
26
- protected current?: CurvePrimitive;
27
- protected continuationData?: {
28
- props: GeometricElementProps;
29
- path: Path;
30
- params: GeometryParams;
31
- };
32
- protected isClosed: boolean;
33
- protected isConstruction: boolean;
34
- protected _snapGeomId?: Id64String;
35
- protected _startedCmd?: string;
36
- protected startCommand(): Promise<string>;
37
- protected get allowJoin(): boolean;
38
- protected get allowClosure(): boolean;
39
- protected get allowSimplify(): boolean;
40
- protected get wantSmartRotation(): boolean;
41
- protected get wantPickableDynamics(): boolean;
42
- protected get wantJoin(): boolean;
43
- protected get wantClosure(): boolean;
44
- protected get wantSimplify(): boolean;
45
- protected get showCurveConstructions(): boolean;
46
- protected get showJoin(): boolean;
47
- protected get showClosure(): boolean;
48
- protected get createCurvePhase(): CreateCurvePhase;
49
- /** Sub-classes should override unless they don't support join or closure. */
50
- protected updateCurvePhase(): void;
51
- /** Implemented by sub-classes to create the new curve or construction curve for placement dynamics.
52
- * @param ev The current button event from a click or motion event.
53
- * @param isDynamics true when called for dynamics and the point from ev should be included in the result curve.
54
- * @internal
55
- */
56
- protected abstract createNewCurvePrimitive(ev: BeButtonEvent, isDynamics: boolean): CurvePrimitive | undefined;
57
- protected getCurrentRotation(ev: BeButtonEvent): Matrix3d;
58
- protected getUpVector(ev: BeButtonEvent): Vector3d;
59
- protected updateCurveAndContinuationData(ev: BeButtonEvent, isDynamics: boolean): Promise<void>;
60
- protected updateElementData(ev: BeButtonEvent, isDynamics: boolean): Promise<void>;
61
- protected updateDynamicData(ev: BeButtonEvent): Promise<boolean>;
62
- protected get isContinueExistingPath(): boolean;
63
- protected isValidForContinue(snap: SnapDetail): Promise<{
64
- props: GeometricElementProps;
65
- path: Path;
66
- params: GeometryParams;
67
- } | undefined>;
68
- protected isValidForJoin(): Promise<boolean>;
69
- protected isValidForClosure(): Promise<boolean>;
70
- static isSingleOpenPath(info: ElementGeometryInfo): {
71
- path: Path;
72
- params: GeometryParams;
73
- } | undefined;
74
- static isPathEndPoint(curve: CurvePrimitive, path: Path): boolean;
75
- static isPathClosurePoint(curve: CurvePrimitive, path?: Path): boolean;
76
- protected addConstructionGraphics(curve: CurvePrimitive, showCurve: boolean, context: DynamicsContext): void;
77
- protected showConstructionGraphics(_ev: BeButtonEvent, context: DynamicsContext): boolean;
78
- onDynamicFrame(ev: BeButtonEvent, context: DynamicsContext): void;
79
- protected showJoinIndicator(context: DecorateContext, pt: Point3d): void;
80
- protected showClosureIndicator(context: DecorateContext, pt: Point3d): void;
81
- testDecorationHit(id: Id64String): boolean;
82
- getToolTip(hit: HitDetail): Promise<HTMLElement | string>;
83
- protected getSnapGeometry(): GeometryQuery | undefined;
84
- getDecorationGeometry(_hit: HitDetail): GeometryStreamProps | undefined;
85
- protected addPickableGraphics(context: DecorateContext): void;
86
- decorate(context: DecorateContext): void;
87
- onModifierKeyTransition(_wentDown: boolean, modifier: BeModifierKeys, _event: KeyboardEvent): Promise<EventHandled>;
88
- protected getPlacementProps(): PlacementProps | undefined;
89
- protected createNewPath(placement: PlacementProps): JsonGeometryStream | FlatBufferGeometryStream | undefined;
90
- protected continueExistingPath(placement: PlacementProps): JsonGeometryStream | FlatBufferGeometryStream | undefined;
91
- protected getGeometryProps(placement: PlacementProps): JsonGeometryStream | FlatBufferGeometryStream | undefined;
92
- protected getElementProps(placement: PlacementProps): GeometricElementProps | undefined;
93
- protected doCreateElement(props: GeometricElementProps, data?: ElementGeometryBuilderParams): Promise<void>;
94
- protected setupAccuDraw(): void;
95
- onUndoPreviousStep(): Promise<boolean>;
96
- onPostInstall(): Promise<void>;
97
- }
98
- /** @alpha Creates a line string or shape. Uses model and category from [[BriefcaseConnection.editorToolSettings]]. */
99
- export declare class CreateLineStringTool extends CreateOrContinuePathTool {
100
- static toolId: string;
101
- static iconSpec: string;
102
- protected get wantPickableDynamics(): boolean;
103
- protected provideToolAssistance(_mainInstrText?: string, _additionalInstr?: ToolAssistanceInstruction[]): void;
104
- protected get wantClosure(): boolean;
105
- protected updateCurvePhase(): void;
106
- protected isComplete(ev: BeButtonEvent): boolean;
107
- protected createNewCurvePrimitive(ev: BeButtonEvent, isDynamics: boolean): CurvePrimitive | undefined;
108
- protected cancelPoint(ev: BeButtonEvent): Promise<boolean>;
109
- onRestartTool(): Promise<void>;
110
- }
111
- /** @alpha */
112
- export declare enum ArcMethod {
113
- CenterStart = 0,
114
- StartCenter = 1,
115
- StartMidEnd = 2,
116
- StartEndMid = 3
117
- }
118
- /** @alpha Creates an arc. Uses model and category from [[BriefcaseConnection.editorToolSettings]]. */
119
- export declare class CreateArcTool extends CreateOrContinuePathTool {
120
- static toolId: string;
121
- static iconSpec: string;
122
- static get minArgs(): number;
123
- static get maxArgs(): number;
124
- protected get showCurveConstructions(): boolean;
125
- protected provideToolAssistance(mainInstrText?: string, additionalInstr?: ToolAssistanceInstruction[]): void;
126
- protected setupAccuDraw(): void;
127
- private static methodMessage;
128
- private static getMethodChoices;
129
- private _methodProperty;
130
- get methodProperty(): DialogProperty<number>;
131
- get method(): ArcMethod;
132
- set method(method: ArcMethod);
133
- private _useRadiusProperty;
134
- get useRadiusProperty(): DialogProperty<boolean>;
135
- get useRadius(): boolean;
136
- set useRadius(value: boolean);
137
- private _radiusProperty;
138
- get radiusProperty(): DialogProperty<number>;
139
- get radius(): number;
140
- set radius(value: number);
141
- private _useSweepProperty;
142
- get useSweepProperty(): DialogProperty<boolean>;
143
- get useSweep(): boolean;
144
- set useSweep(value: boolean);
145
- private _sweepProperty;
146
- get sweepProperty(): DialogProperty<number>;
147
- get sweep(): number;
148
- set sweep(value: number);
149
- protected isComplete(_ev: BeButtonEvent): boolean;
150
- protected updateCurvePhase(): void;
151
- protected createConstructionCurve(ev: BeButtonEvent, isDynamics: boolean): CurvePrimitive | undefined;
152
- protected createNewCurvePrimitive(ev: BeButtonEvent, isDynamics: boolean): CurvePrimitive | undefined;
153
- private syncToolSettingsRadiusAndSweep;
154
- protected getToolSettingPropertyLocked(property: DialogProperty<any>): DialogProperty<any> | undefined;
155
- applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise<boolean>;
156
- supplyToolSettingsProperties(): DialogItem[] | undefined;
157
- onRestartTool(): Promise<void>;
158
- onInstall(): Promise<boolean>;
159
- /** The keyin takes the following arguments, all of which are optional:
160
- * - `method=0|1|2|3` How arc will be defined. 0 for center/start, 1 for start/center, 2 for start/mid/end, and 3 for start/end/mid.
161
- * - `radius=number` Arc radius for start/center or center/start, 0 to define by points.
162
- * - `sweep=number` Arc sweep angle in degrees for start/center or center/start, 0 to define by points.
163
- */
164
- parseAndRun(...inputArgs: string[]): Promise<boolean>;
165
- }
166
- /** @alpha */
167
- export declare enum CircleMethod {
168
- Center = 0,
169
- Edge = 1
170
- }
171
- /** @alpha Creates a circle. Uses model and category from [[BriefcaseConnection.editorToolSettings]]. */
172
- export declare class CreateCircleTool extends CreateOrContinuePathTool {
173
- static toolId: string;
174
- static iconSpec: string;
175
- static get minArgs(): number;
176
- static get maxArgs(): number;
177
- protected get showCurveConstructions(): boolean;
178
- protected provideToolAssistance(mainInstrText?: string, additionalInstr?: ToolAssistanceInstruction[]): void;
179
- protected setupAccuDraw(): void;
180
- private static methodMessage;
181
- private static getMethodChoices;
182
- private _methodProperty;
183
- get methodProperty(): DialogProperty<number>;
184
- get method(): CircleMethod;
185
- set method(method: CircleMethod);
186
- private _useRadiusProperty;
187
- get useRadiusProperty(): DialogProperty<boolean>;
188
- get useRadius(): boolean;
189
- set useRadius(value: boolean);
190
- private _radiusProperty;
191
- get radiusProperty(): DialogProperty<number>;
192
- get radius(): number;
193
- set radius(value: number);
194
- protected isComplete(_ev: BeButtonEvent): boolean;
195
- protected createNewCurvePrimitive(ev: BeButtonEvent, isDynamics: boolean): CurvePrimitive | undefined;
196
- protected cancelPoint(_ev: BeButtonEvent): Promise<boolean>;
197
- protected getToolSettingPropertyLocked(property: DialogProperty<any>): DialogProperty<any> | undefined;
198
- applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise<boolean>;
199
- supplyToolSettingsProperties(): DialogItem[] | undefined;
200
- onRestartTool(): Promise<void>;
201
- onReinitialize(): Promise<void>;
202
- onPostInstall(): Promise<void>;
203
- onInstall(): Promise<boolean>;
204
- /** The keyin takes the following arguments, all of which are optional:
205
- * - `method=0|1` How circle will be defined. 0 for center, 1 for edge.
206
- * - `radius=number` Circle radius, 0 to define by points.
207
- */
208
- parseAndRun(...inputArgs: string[]): Promise<boolean>;
209
- }
210
- /** @alpha Creates an ellipse. Uses model and category from [[BriefcaseConnection.editorToolSettings]]. */
211
- export declare class CreateEllipseTool extends CreateOrContinuePathTool {
212
- static toolId: string;
213
- static iconSpec: string;
214
- protected isComplete(_ev: BeButtonEvent): boolean;
215
- protected provideToolAssistance(mainInstrText?: string, additionalInstr?: ToolAssistanceInstruction[]): void;
216
- protected setupAccuDraw(): void;
217
- protected createNewCurvePrimitive(ev: BeButtonEvent, isDynamics: boolean): CurvePrimitive | undefined;
218
- onRestartTool(): Promise<void>;
219
- }
220
- /** @alpha Creates a rectangle by corner points. Uses model and category from [[BriefcaseConnection.editorToolSettings]]. */
221
- export declare class CreateRectangleTool extends CreateOrContinuePathTool {
222
- static toolId: string;
223
- static iconSpec: string;
224
- protected localToWorld: Transform;
225
- protected originLocal?: Point3d;
226
- protected cornerLocal?: Point3d;
227
- static get minArgs(): number;
228
- static get maxArgs(): number;
229
- protected provideToolAssistance(mainInstrText?: string, additionalInstr?: ToolAssistanceInstruction[]): void;
230
- protected setupAccuDraw(): void;
231
- private _useRadiusProperty;
232
- get useRadiusProperty(): DialogProperty<boolean>;
233
- get useRadius(): boolean;
234
- set useRadius(value: boolean);
235
- private _radiusProperty;
236
- get radiusProperty(): DialogProperty<number>;
237
- get radius(): number;
238
- set radius(value: number);
239
- protected isComplete(_ev: BeButtonEvent): boolean;
240
- protected createNewCurvePrimitive(ev: BeButtonEvent, isDynamics: boolean): CurvePrimitive | undefined;
241
- protected createNewPath(placement: PlacementProps): JsonGeometryStream | FlatBufferGeometryStream | undefined;
242
- protected getToolSettingPropertyLocked(property: DialogProperty<any>): DialogProperty<any> | undefined;
243
- applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise<boolean>;
244
- supplyToolSettingsProperties(): DialogItem[] | undefined;
245
- onRestartTool(): Promise<void>;
246
- onInstall(): Promise<boolean>;
247
- /** The keyin takes the following arguments, all of which are optional:
248
- * - `radius=number` Corner radius, 0 for sharp corners.
249
- */
250
- parseAndRun(...inputArgs: string[]): Promise<boolean>;
251
- }
252
- /** @alpha */
253
- export declare enum BCurveMethod {
254
- ControlPoints = 0,
255
- ThroughPoints = 1
256
- }
257
- /** @alpha Creates a bspline curve by poles or through points. Uses model and category from [[BriefcaseConnection.editorToolSettings]]. */
258
- export declare class CreateBCurveTool extends CreateOrContinuePathTool {
259
- static toolId: string;
260
- static iconSpec: string;
261
- protected _isPhysicallyClosedOrComplete: boolean;
262
- protected _tangentPhase: CreateCurvePhase;
263
- static get minArgs(): number;
264
- static get maxArgs(): number;
265
- protected get wantPickableDynamics(): boolean;
266
- protected get showCurveConstructions(): boolean;
267
- protected provideToolAssistance(_mainInstrText?: string, _additionalInstr?: ToolAssistanceInstruction[]): void;
268
- private static methodMessage;
269
- private static getMethodChoices;
270
- private _methodProperty;
271
- get methodProperty(): DialogProperty<number>;
272
- get method(): BCurveMethod;
273
- set method(method: BCurveMethod);
274
- private _orderProperty;
275
- get orderProperty(): DialogProperty<number>;
276
- get order(): number;
277
- set order(value: number);
278
- protected get minOrder(): number;
279
- protected get maxOrder(): number;
280
- private _tangentsProperty;
281
- get tangentsProperty(): DialogProperty<boolean>;
282
- get tangents(): boolean;
283
- set tangents(value: boolean);
284
- protected get wantClosure(): boolean;
285
- protected get requiredPointCount(): number;
286
- protected get createCurvePhase(): CreateCurvePhase;
287
- protected updateCurvePhase(): void;
288
- protected isComplete(ev: BeButtonEvent): boolean;
289
- protected showConstructionGraphics(ev: BeButtonEvent, context: DynamicsContext): boolean;
290
- protected createNewCurvePrimitive(ev: BeButtonEvent, isDynamics: boolean): CurvePrimitive | undefined;
291
- protected getSnapGeometry(): GeometryQuery | undefined;
292
- protected acceptPoint(ev: BeButtonEvent): Promise<boolean>;
293
- protected cancelPoint(ev: BeButtonEvent): Promise<boolean>;
294
- applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise<boolean>;
295
- supplyToolSettingsProperties(): DialogItem[] | undefined;
296
- onRestartTool(): Promise<void>;
297
- onInstall(): Promise<boolean>;
298
- /** The keyin takes the following arguments, all of which are optional:
299
- * - `method=0|1` How bcurve will be defined. 0 for control points, 1 for through points.
300
- * - `order=number` bcurve order from 2 to 16.
301
- * - 'tangents=0|1 Whether to specify start/end tangents for through points construction.
302
- */
303
- parseAndRun(...inputArgs: string[]): Promise<boolean>;
304
- }
1
+ import { DialogItem, DialogProperty, DialogPropertySyncItem } from "@itwin/appui-abstract";
2
+ import { Id64String } from "@itwin/core-bentley";
3
+ import { ElementGeometryBuilderParams, ElementGeometryInfo, FlatBufferGeometryStream, GeometricElementProps, GeometryParams, GeometryStreamProps, JsonGeometryStream, PlacementProps } from "@itwin/core-common";
4
+ import { BeButtonEvent, BeModifierKeys, DecorateContext, DynamicsContext, EventHandled, HitDetail, SnapDetail, ToolAssistanceInstruction } from "@itwin/core-frontend";
5
+ import { CurvePrimitive, GeometryQuery, Matrix3d, Path, Point3d, Transform, Vector3d } from "@itwin/core-geometry";
6
+ import { CreateElementWithDynamicsTool } from "./CreateElementTool";
7
+ /** @alpha Values for [[CreateOrContinueTool.createCurvePhase] to support join and closure. */
8
+ export declare enum CreateCurvePhase {
9
+ /** Current tool phase changes CurvePrimitive startPoint.
10
+ * ex. Arc defined by center, start would return this when accepted length is 1.
11
+ */
12
+ DefineStart = 0,
13
+ /** Current tool phase changes CurvePrimitive endPoint.
14
+ * ex. Arc defined by start, end, mid would return this when accepted length is 1.
15
+ */
16
+ DefineEnd = 1,
17
+ /** Current tool phase does NOT change CurvePrimitive startPoint or endPoint.
18
+ * ex. When defining arc mid point, or start and end tangents for a bcurve return this.
19
+ */
20
+ DefineOther = 2
21
+ }
22
+ /** @alpha Base class for creating open and closed paths. */
23
+ export declare abstract class CreateOrContinuePathTool extends CreateElementWithDynamicsTool {
24
+ protected _createCurvePhase: CreateCurvePhase;
25
+ protected readonly accepted: Point3d[];
26
+ protected current?: CurvePrimitive;
27
+ protected continuationData?: {
28
+ props: GeometricElementProps;
29
+ path: Path;
30
+ params: GeometryParams;
31
+ };
32
+ protected isClosed: boolean;
33
+ protected isConstruction: boolean;
34
+ protected _snapGeomId?: Id64String;
35
+ protected _startedCmd?: string;
36
+ protected startCommand(): Promise<string>;
37
+ protected get allowJoin(): boolean;
38
+ protected get allowClosure(): boolean;
39
+ protected get allowSimplify(): boolean;
40
+ protected get wantSmartRotation(): boolean;
41
+ protected get wantPickableDynamics(): boolean;
42
+ protected get wantJoin(): boolean;
43
+ protected get wantClosure(): boolean;
44
+ protected get wantSimplify(): boolean;
45
+ protected get showCurveConstructions(): boolean;
46
+ protected get showJoin(): boolean;
47
+ protected get showClosure(): boolean;
48
+ protected get createCurvePhase(): CreateCurvePhase;
49
+ /** Sub-classes should override unless they don't support join or closure. */
50
+ protected updateCurvePhase(): void;
51
+ /** Implemented by sub-classes to create the new curve or construction curve for placement dynamics.
52
+ * @param ev The current button event from a click or motion event.
53
+ * @param isDynamics true when called for dynamics and the point from ev should be included in the result curve.
54
+ * @internal
55
+ */
56
+ protected abstract createNewCurvePrimitive(ev: BeButtonEvent, isDynamics: boolean): CurvePrimitive | undefined;
57
+ protected getCurrentRotation(ev: BeButtonEvent): Matrix3d;
58
+ protected getUpVector(ev: BeButtonEvent): Vector3d;
59
+ protected updateCurveAndContinuationData(ev: BeButtonEvent, isDynamics: boolean): Promise<void>;
60
+ protected updateElementData(ev: BeButtonEvent, isDynamics: boolean): Promise<void>;
61
+ protected updateDynamicData(ev: BeButtonEvent): Promise<boolean>;
62
+ protected get isContinueExistingPath(): boolean;
63
+ protected isValidForContinue(snap: SnapDetail): Promise<{
64
+ props: GeometricElementProps;
65
+ path: Path;
66
+ params: GeometryParams;
67
+ } | undefined>;
68
+ protected isValidForJoin(): Promise<boolean>;
69
+ protected isValidForClosure(): Promise<boolean>;
70
+ static isSingleOpenPath(info: ElementGeometryInfo): {
71
+ path: Path;
72
+ params: GeometryParams;
73
+ } | undefined;
74
+ static isPathEndPoint(curve: CurvePrimitive, path: Path): boolean;
75
+ static isPathClosurePoint(curve: CurvePrimitive, path?: Path): boolean;
76
+ protected addConstructionGraphics(curve: CurvePrimitive, showCurve: boolean, context: DynamicsContext): void;
77
+ protected showConstructionGraphics(_ev: BeButtonEvent, context: DynamicsContext): boolean;
78
+ onDynamicFrame(ev: BeButtonEvent, context: DynamicsContext): void;
79
+ protected showJoinIndicator(context: DecorateContext, pt: Point3d): void;
80
+ protected showClosureIndicator(context: DecorateContext, pt: Point3d): void;
81
+ testDecorationHit(id: Id64String): boolean;
82
+ getToolTip(hit: HitDetail): Promise<HTMLElement | string>;
83
+ protected getSnapGeometry(): GeometryQuery | undefined;
84
+ getDecorationGeometry(_hit: HitDetail): GeometryStreamProps | undefined;
85
+ protected addPickableGraphics(context: DecorateContext): void;
86
+ decorate(context: DecorateContext): void;
87
+ onModifierKeyTransition(_wentDown: boolean, modifier: BeModifierKeys, _event: KeyboardEvent): Promise<EventHandled>;
88
+ protected getPlacementProps(): PlacementProps | undefined;
89
+ protected createNewPath(placement: PlacementProps): JsonGeometryStream | FlatBufferGeometryStream | undefined;
90
+ protected continueExistingPath(placement: PlacementProps): JsonGeometryStream | FlatBufferGeometryStream | undefined;
91
+ protected getGeometryProps(placement: PlacementProps): JsonGeometryStream | FlatBufferGeometryStream | undefined;
92
+ protected getElementProps(placement: PlacementProps): GeometricElementProps | undefined;
93
+ protected doCreateElement(props: GeometricElementProps, data?: ElementGeometryBuilderParams): Promise<void>;
94
+ protected setupAccuDraw(): void;
95
+ onUndoPreviousStep(): Promise<boolean>;
96
+ onPostInstall(): Promise<void>;
97
+ }
98
+ /** @alpha Creates a line string or shape. Uses model and category from [[BriefcaseConnection.editorToolSettings]]. */
99
+ export declare class CreateLineStringTool extends CreateOrContinuePathTool {
100
+ static toolId: string;
101
+ static iconSpec: string;
102
+ protected get wantPickableDynamics(): boolean;
103
+ protected provideToolAssistance(_mainInstrText?: string, _additionalInstr?: ToolAssistanceInstruction[]): void;
104
+ protected get wantClosure(): boolean;
105
+ protected updateCurvePhase(): void;
106
+ protected isComplete(ev: BeButtonEvent): boolean;
107
+ protected createNewCurvePrimitive(ev: BeButtonEvent, isDynamics: boolean): CurvePrimitive | undefined;
108
+ protected cancelPoint(ev: BeButtonEvent): Promise<boolean>;
109
+ onRestartTool(): Promise<void>;
110
+ }
111
+ /** @alpha */
112
+ export declare enum ArcMethod {
113
+ CenterStart = 0,
114
+ StartCenter = 1,
115
+ StartMidEnd = 2,
116
+ StartEndMid = 3
117
+ }
118
+ /** @alpha Creates an arc. Uses model and category from [[BriefcaseConnection.editorToolSettings]]. */
119
+ export declare class CreateArcTool extends CreateOrContinuePathTool {
120
+ static toolId: string;
121
+ static iconSpec: string;
122
+ static get minArgs(): number;
123
+ static get maxArgs(): number;
124
+ protected get showCurveConstructions(): boolean;
125
+ protected provideToolAssistance(mainInstrText?: string, additionalInstr?: ToolAssistanceInstruction[]): void;
126
+ protected setupAccuDraw(): void;
127
+ private static methodMessage;
128
+ private static getMethodChoices;
129
+ private _methodProperty;
130
+ get methodProperty(): DialogProperty<number>;
131
+ get method(): ArcMethod;
132
+ set method(method: ArcMethod);
133
+ private _useRadiusProperty;
134
+ get useRadiusProperty(): DialogProperty<boolean>;
135
+ get useRadius(): boolean;
136
+ set useRadius(value: boolean);
137
+ private _radiusProperty;
138
+ get radiusProperty(): DialogProperty<number>;
139
+ get radius(): number;
140
+ set radius(value: number);
141
+ private _useSweepProperty;
142
+ get useSweepProperty(): DialogProperty<boolean>;
143
+ get useSweep(): boolean;
144
+ set useSweep(value: boolean);
145
+ private _sweepProperty;
146
+ get sweepProperty(): DialogProperty<number>;
147
+ get sweep(): number;
148
+ set sweep(value: number);
149
+ protected isComplete(_ev: BeButtonEvent): boolean;
150
+ protected updateCurvePhase(): void;
151
+ protected createConstructionCurve(ev: BeButtonEvent, isDynamics: boolean): CurvePrimitive | undefined;
152
+ protected createNewCurvePrimitive(ev: BeButtonEvent, isDynamics: boolean): CurvePrimitive | undefined;
153
+ private syncToolSettingsRadiusAndSweep;
154
+ protected getToolSettingPropertyLocked(property: DialogProperty<any>): DialogProperty<any> | undefined;
155
+ applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise<boolean>;
156
+ supplyToolSettingsProperties(): DialogItem[] | undefined;
157
+ onRestartTool(): Promise<void>;
158
+ onInstall(): Promise<boolean>;
159
+ /** The keyin takes the following arguments, all of which are optional:
160
+ * - `method=0|1|2|3` How arc will be defined. 0 for center/start, 1 for start/center, 2 for start/mid/end, and 3 for start/end/mid.
161
+ * - `radius=number` Arc radius for start/center or center/start, 0 to define by points.
162
+ * - `sweep=number` Arc sweep angle in degrees for start/center or center/start, 0 to define by points.
163
+ */
164
+ parseAndRun(...inputArgs: string[]): Promise<boolean>;
165
+ }
166
+ /** @alpha */
167
+ export declare enum CircleMethod {
168
+ Center = 0,
169
+ Edge = 1
170
+ }
171
+ /** @alpha Creates a circle. Uses model and category from [[BriefcaseConnection.editorToolSettings]]. */
172
+ export declare class CreateCircleTool extends CreateOrContinuePathTool {
173
+ static toolId: string;
174
+ static iconSpec: string;
175
+ static get minArgs(): number;
176
+ static get maxArgs(): number;
177
+ protected get showCurveConstructions(): boolean;
178
+ protected provideToolAssistance(mainInstrText?: string, additionalInstr?: ToolAssistanceInstruction[]): void;
179
+ protected setupAccuDraw(): void;
180
+ private static methodMessage;
181
+ private static getMethodChoices;
182
+ private _methodProperty;
183
+ get methodProperty(): DialogProperty<number>;
184
+ get method(): CircleMethod;
185
+ set method(method: CircleMethod);
186
+ private _useRadiusProperty;
187
+ get useRadiusProperty(): DialogProperty<boolean>;
188
+ get useRadius(): boolean;
189
+ set useRadius(value: boolean);
190
+ private _radiusProperty;
191
+ get radiusProperty(): DialogProperty<number>;
192
+ get radius(): number;
193
+ set radius(value: number);
194
+ protected isComplete(_ev: BeButtonEvent): boolean;
195
+ protected createNewCurvePrimitive(ev: BeButtonEvent, isDynamics: boolean): CurvePrimitive | undefined;
196
+ protected cancelPoint(_ev: BeButtonEvent): Promise<boolean>;
197
+ protected getToolSettingPropertyLocked(property: DialogProperty<any>): DialogProperty<any> | undefined;
198
+ applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise<boolean>;
199
+ supplyToolSettingsProperties(): DialogItem[] | undefined;
200
+ onRestartTool(): Promise<void>;
201
+ onReinitialize(): Promise<void>;
202
+ onPostInstall(): Promise<void>;
203
+ onInstall(): Promise<boolean>;
204
+ /** The keyin takes the following arguments, all of which are optional:
205
+ * - `method=0|1` How circle will be defined. 0 for center, 1 for edge.
206
+ * - `radius=number` Circle radius, 0 to define by points.
207
+ */
208
+ parseAndRun(...inputArgs: string[]): Promise<boolean>;
209
+ }
210
+ /** @alpha Creates an ellipse. Uses model and category from [[BriefcaseConnection.editorToolSettings]]. */
211
+ export declare class CreateEllipseTool extends CreateOrContinuePathTool {
212
+ static toolId: string;
213
+ static iconSpec: string;
214
+ protected isComplete(_ev: BeButtonEvent): boolean;
215
+ protected provideToolAssistance(mainInstrText?: string, additionalInstr?: ToolAssistanceInstruction[]): void;
216
+ protected setupAccuDraw(): void;
217
+ protected createNewCurvePrimitive(ev: BeButtonEvent, isDynamics: boolean): CurvePrimitive | undefined;
218
+ onRestartTool(): Promise<void>;
219
+ }
220
+ /** @alpha Creates a rectangle by corner points. Uses model and category from [[BriefcaseConnection.editorToolSettings]]. */
221
+ export declare class CreateRectangleTool extends CreateOrContinuePathTool {
222
+ static toolId: string;
223
+ static iconSpec: string;
224
+ protected localToWorld: Transform;
225
+ protected originLocal?: Point3d;
226
+ protected cornerLocal?: Point3d;
227
+ static get minArgs(): number;
228
+ static get maxArgs(): number;
229
+ protected provideToolAssistance(mainInstrText?: string, additionalInstr?: ToolAssistanceInstruction[]): void;
230
+ protected setupAccuDraw(): void;
231
+ private _useRadiusProperty;
232
+ get useRadiusProperty(): DialogProperty<boolean>;
233
+ get useRadius(): boolean;
234
+ set useRadius(value: boolean);
235
+ private _radiusProperty;
236
+ get radiusProperty(): DialogProperty<number>;
237
+ get radius(): number;
238
+ set radius(value: number);
239
+ protected isComplete(_ev: BeButtonEvent): boolean;
240
+ protected createNewCurvePrimitive(ev: BeButtonEvent, isDynamics: boolean): CurvePrimitive | undefined;
241
+ protected createNewPath(placement: PlacementProps): JsonGeometryStream | FlatBufferGeometryStream | undefined;
242
+ protected getToolSettingPropertyLocked(property: DialogProperty<any>): DialogProperty<any> | undefined;
243
+ applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise<boolean>;
244
+ supplyToolSettingsProperties(): DialogItem[] | undefined;
245
+ onRestartTool(): Promise<void>;
246
+ onInstall(): Promise<boolean>;
247
+ /** The keyin takes the following arguments, all of which are optional:
248
+ * - `radius=number` Corner radius, 0 for sharp corners.
249
+ */
250
+ parseAndRun(...inputArgs: string[]): Promise<boolean>;
251
+ }
252
+ /** @alpha */
253
+ export declare enum BCurveMethod {
254
+ ControlPoints = 0,
255
+ ThroughPoints = 1
256
+ }
257
+ /** @alpha Creates a bspline curve by poles or through points. Uses model and category from [[BriefcaseConnection.editorToolSettings]]. */
258
+ export declare class CreateBCurveTool extends CreateOrContinuePathTool {
259
+ static toolId: string;
260
+ static iconSpec: string;
261
+ protected _isPhysicallyClosedOrComplete: boolean;
262
+ protected _tangentPhase: CreateCurvePhase;
263
+ static get minArgs(): number;
264
+ static get maxArgs(): number;
265
+ protected get wantPickableDynamics(): boolean;
266
+ protected get showCurveConstructions(): boolean;
267
+ protected provideToolAssistance(_mainInstrText?: string, _additionalInstr?: ToolAssistanceInstruction[]): void;
268
+ private static methodMessage;
269
+ private static getMethodChoices;
270
+ private _methodProperty;
271
+ get methodProperty(): DialogProperty<number>;
272
+ get method(): BCurveMethod;
273
+ set method(method: BCurveMethod);
274
+ private _orderProperty;
275
+ get orderProperty(): DialogProperty<number>;
276
+ get order(): number;
277
+ set order(value: number);
278
+ protected get minOrder(): number;
279
+ protected get maxOrder(): number;
280
+ private _tangentsProperty;
281
+ get tangentsProperty(): DialogProperty<boolean>;
282
+ get tangents(): boolean;
283
+ set tangents(value: boolean);
284
+ protected get wantClosure(): boolean;
285
+ protected get requiredPointCount(): number;
286
+ protected get createCurvePhase(): CreateCurvePhase;
287
+ protected updateCurvePhase(): void;
288
+ protected isComplete(ev: BeButtonEvent): boolean;
289
+ protected showConstructionGraphics(ev: BeButtonEvent, context: DynamicsContext): boolean;
290
+ protected createNewCurvePrimitive(ev: BeButtonEvent, isDynamics: boolean): CurvePrimitive | undefined;
291
+ protected getSnapGeometry(): GeometryQuery | undefined;
292
+ protected acceptPoint(ev: BeButtonEvent): Promise<boolean>;
293
+ protected cancelPoint(ev: BeButtonEvent): Promise<boolean>;
294
+ applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise<boolean>;
295
+ supplyToolSettingsProperties(): DialogItem[] | undefined;
296
+ onRestartTool(): Promise<void>;
297
+ onInstall(): Promise<boolean>;
298
+ /** The keyin takes the following arguments, all of which are optional:
299
+ * - `method=0|1` How bcurve will be defined. 0 for control points, 1 for through points.
300
+ * - `order=number` bcurve order from 2 to 16.
301
+ * - 'tangents=0|1 Whether to specify start/end tangents for through points construction.
302
+ */
303
+ parseAndRun(...inputArgs: string[]): Promise<boolean>;
304
+ }
305
305
  //# sourceMappingURL=SketchTools.d.ts.map