@itwin/editor-frontend 3.5.0-dev.8 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/CHANGELOG.md +68 -1
  2. package/lib/cjs/DeleteElementsTool.d.ts +0 -2
  3. package/lib/cjs/DeleteElementsTool.d.ts.map +1 -1
  4. package/lib/cjs/DeleteElementsTool.js +3 -5
  5. package/lib/cjs/DeleteElementsTool.js.map +1 -1
  6. package/lib/cjs/EditTool.d.ts +0 -1
  7. package/lib/cjs/EditTool.d.ts.map +1 -1
  8. package/lib/cjs/EditTool.js +6 -7
  9. package/lib/cjs/EditTool.js.map +1 -1
  10. package/lib/cjs/EditToolIpc.d.ts +18 -0
  11. package/lib/cjs/EditToolIpc.d.ts.map +1 -0
  12. package/lib/cjs/EditToolIpc.js +28 -0
  13. package/lib/cjs/EditToolIpc.js.map +1 -0
  14. package/lib/cjs/ElementGeometryTool.d.ts +2 -3
  15. package/lib/cjs/ElementGeometryTool.d.ts.map +1 -1
  16. package/lib/cjs/ElementGeometryTool.js +8 -10
  17. package/lib/cjs/ElementGeometryTool.js.map +1 -1
  18. package/lib/cjs/ModifyCurveTools.d.ts +19 -43
  19. package/lib/cjs/ModifyCurveTools.d.ts.map +1 -1
  20. package/lib/cjs/ModifyCurveTools.js +127 -188
  21. package/lib/cjs/ModifyCurveTools.js.map +1 -1
  22. package/lib/cjs/ModifyElementTool.d.ts +43 -0
  23. package/lib/cjs/ModifyElementTool.d.ts.map +1 -0
  24. package/lib/cjs/ModifyElementTool.js +161 -0
  25. package/lib/cjs/ModifyElementTool.js.map +1 -0
  26. package/lib/cjs/ProjectLocation/ProjectExtentsDecoration.d.ts +0 -2
  27. package/lib/cjs/ProjectLocation/ProjectExtentsDecoration.d.ts.map +1 -1
  28. package/lib/cjs/ProjectLocation/ProjectExtentsDecoration.js +3 -5
  29. package/lib/cjs/ProjectLocation/ProjectExtentsDecoration.js.map +1 -1
  30. package/lib/cjs/SketchTools.d.ts +2 -4
  31. package/lib/cjs/SketchTools.d.ts.map +1 -1
  32. package/lib/cjs/SketchTools.js +8 -10
  33. package/lib/cjs/SketchTools.js.map +1 -1
  34. package/lib/cjs/SolidModelingTools.d.ts +3 -3
  35. package/lib/cjs/SolidModelingTools.d.ts.map +1 -1
  36. package/lib/cjs/SolidModelingTools.js +30 -29
  37. package/lib/cjs/SolidModelingTools.js.map +1 -1
  38. package/lib/cjs/SolidPrimitiveTools.d.ts +69 -5
  39. package/lib/cjs/SolidPrimitiveTools.d.ts.map +1 -1
  40. package/lib/cjs/SolidPrimitiveTools.js +291 -8
  41. package/lib/cjs/SolidPrimitiveTools.js.map +1 -1
  42. package/lib/cjs/TransformElementsTool.d.ts +3 -5
  43. package/lib/cjs/TransformElementsTool.d.ts.map +1 -1
  44. package/lib/cjs/TransformElementsTool.js +10 -12
  45. package/lib/cjs/TransformElementsTool.js.map +1 -1
  46. package/lib/cjs/UndoRedoTool.js +1 -1
  47. package/lib/cjs/UndoRedoTool.js.map +1 -1
  48. package/lib/cjs/editor-frontend.d.ts +5 -3
  49. package/lib/cjs/editor-frontend.d.ts.map +1 -1
  50. package/lib/cjs/editor-frontend.js +5 -3
  51. package/lib/cjs/editor-frontend.js.map +1 -1
  52. package/lib/esm/DeleteElementsTool.d.ts +0 -2
  53. package/lib/esm/DeleteElementsTool.d.ts.map +1 -1
  54. package/lib/esm/DeleteElementsTool.js +3 -5
  55. package/lib/esm/DeleteElementsTool.js.map +1 -1
  56. package/lib/esm/EditTool.d.ts +0 -1
  57. package/lib/esm/EditTool.d.ts.map +1 -1
  58. package/lib/esm/EditTool.js +7 -8
  59. package/lib/esm/EditTool.js.map +1 -1
  60. package/lib/esm/EditToolIpc.d.ts +18 -0
  61. package/lib/esm/EditToolIpc.d.ts.map +1 -0
  62. package/lib/esm/EditToolIpc.js +24 -0
  63. package/lib/esm/EditToolIpc.js.map +1 -0
  64. package/lib/esm/ElementGeometryTool.d.ts +2 -3
  65. package/lib/esm/ElementGeometryTool.d.ts.map +1 -1
  66. package/lib/esm/ElementGeometryTool.js +8 -10
  67. package/lib/esm/ElementGeometryTool.js.map +1 -1
  68. package/lib/esm/ModifyCurveTools.d.ts +19 -43
  69. package/lib/esm/ModifyCurveTools.d.ts.map +1 -1
  70. package/lib/esm/ModifyCurveTools.js +127 -188
  71. package/lib/esm/ModifyCurveTools.js.map +1 -1
  72. package/lib/esm/ModifyElementTool.d.ts +43 -0
  73. package/lib/esm/ModifyElementTool.d.ts.map +1 -0
  74. package/lib/esm/ModifyElementTool.js +156 -0
  75. package/lib/esm/ModifyElementTool.js.map +1 -0
  76. package/lib/esm/ProjectLocation/ProjectExtentsDecoration.d.ts +0 -2
  77. package/lib/esm/ProjectLocation/ProjectExtentsDecoration.d.ts.map +1 -1
  78. package/lib/esm/ProjectLocation/ProjectExtentsDecoration.js +3 -5
  79. package/lib/esm/ProjectLocation/ProjectExtentsDecoration.js.map +1 -1
  80. package/lib/esm/SketchTools.d.ts +2 -4
  81. package/lib/esm/SketchTools.d.ts.map +1 -1
  82. package/lib/esm/SketchTools.js +8 -10
  83. package/lib/esm/SketchTools.js.map +1 -1
  84. package/lib/esm/SolidModelingTools.d.ts +3 -3
  85. package/lib/esm/SolidModelingTools.d.ts.map +1 -1
  86. package/lib/esm/SolidModelingTools.js +30 -29
  87. package/lib/esm/SolidModelingTools.js.map +1 -1
  88. package/lib/esm/SolidPrimitiveTools.d.ts +69 -5
  89. package/lib/esm/SolidPrimitiveTools.d.ts.map +1 -1
  90. package/lib/esm/SolidPrimitiveTools.js +289 -8
  91. package/lib/esm/SolidPrimitiveTools.js.map +1 -1
  92. package/lib/esm/TransformElementsTool.d.ts +3 -5
  93. package/lib/esm/TransformElementsTool.d.ts.map +1 -1
  94. package/lib/esm/TransformElementsTool.js +10 -12
  95. package/lib/esm/TransformElementsTool.js.map +1 -1
  96. package/lib/esm/UndoRedoTool.js +1 -1
  97. package/lib/esm/UndoRedoTool.js.map +1 -1
  98. package/lib/esm/editor-frontend.d.ts +5 -3
  99. package/lib/esm/editor-frontend.d.ts.map +1 -1
  100. package/lib/esm/editor-frontend.js +5 -3
  101. package/lib/esm/editor-frontend.js.map +1 -1
  102. package/lib/public/locales/en/Editor.json +26 -0
  103. package/package.json +15 -15
@@ -1,9 +1,9 @@
1
- import { GeometryQuery, Matrix3d, Point3d } from "@itwin/core-geometry";
1
+ import { DialogItem, DialogProperty, DialogPropertySyncItem } from "@itwin/appui-abstract";
2
2
  import { ElementGeometryBuilderParams, FlatBufferGeometryStream, GeometricElementProps, JsonGeometryStream, PlacementProps } from "@itwin/core-common";
3
- import { BeButtonEvent, ToolAssistanceInstruction, Viewport } from "@itwin/core-frontend";
4
- import { BasicManipulationCommandIpc } from "@itwin/editor-common";
3
+ import { BeButtonEvent, DynamicsContext, EventHandled, ToolAssistanceInstruction, Viewport } from "@itwin/core-frontend";
4
+ import { CurveCollection, CurvePrimitive, GeometryQuery, Matrix3d, Point3d } from "@itwin/core-geometry";
5
5
  import { CreateElementWithDynamicsTool } from "./CreateElementTool";
6
- import { DialogItem, DialogProperty, DialogPropertySyncItem } from "@itwin/appui-abstract";
6
+ import { ModifyCurveTool } from "./ModifyCurveTools";
7
7
  /** @alpha Base class for creating a capped or uncapped SolidPrimitive. */
8
8
  export declare abstract class SolidPrimitiveTool extends CreateElementWithDynamicsTool {
9
9
  protected readonly accepted: Point3d[];
@@ -13,7 +13,6 @@ export declare abstract class SolidPrimitiveTool extends CreateElementWithDynami
13
13
  protected allowView(vp: Viewport): boolean;
14
14
  isCompatibleViewport(vp: Viewport | undefined, isSelectedViewChange: boolean): boolean;
15
15
  protected startCommand(): Promise<string>;
16
- static callCommand<T extends keyof BasicManipulationCommandIpc>(method: T, ...args: Parameters<BasicManipulationCommandIpc[T]>): ReturnType<BasicManipulationCommandIpc[T]>;
17
16
  protected getPlacementProps(): PlacementProps | undefined;
18
17
  protected getGeometryProps(placement: PlacementProps): JsonGeometryStream | FlatBufferGeometryStream | undefined;
19
18
  protected getElementProps(placement: PlacementProps): GeometricElementProps | undefined;
@@ -252,4 +251,69 @@ export declare class CreateTorusTool extends SolidPrimitiveTool {
252
251
  supplyToolSettingsProperties(): DialogItem[] | undefined;
253
252
  onRestartTool(): Promise<void>;
254
253
  }
254
+ /** @alpha Tool for extruding paths and regions. */
255
+ export declare class ExtrudeCurveTool extends ModifyCurveTool {
256
+ static toolId: string;
257
+ static iconSpec: string;
258
+ protected allowView(vp: Viewport): boolean;
259
+ private _useLengthProperty;
260
+ get useLengthProperty(): DialogProperty<boolean>;
261
+ get useLength(): boolean;
262
+ set useLength(value: boolean);
263
+ private _lengthProperty;
264
+ get lengthProperty(): DialogProperty<number>;
265
+ get length(): number;
266
+ set length(value: number);
267
+ private _cappedProperty;
268
+ get cappedProperty(): DialogProperty<boolean>;
269
+ get capped(): boolean;
270
+ set capped(value: boolean);
271
+ private _orthogonalProperty;
272
+ get orthogonalProperty(): DialogProperty<boolean>;
273
+ get orthogonal(): boolean;
274
+ set orthogonal(value: boolean);
275
+ private _keepProfileProperty;
276
+ get keepProfileProperty(): DialogProperty<boolean>;
277
+ get keepProfile(): boolean;
278
+ set keepProfile(value: boolean);
279
+ protected getToolSettingPropertyLocked(property: DialogProperty<any>): DialogProperty<any> | undefined;
280
+ applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise<boolean>;
281
+ supplyToolSettingsProperties(): DialogItem[] | undefined;
282
+ protected acceptCurve(curve: CurveCollection | CurvePrimitive): boolean;
283
+ protected modifyCurve(ev: BeButtonEvent, isAccept: boolean): GeometryQuery | undefined;
284
+ protected get wantModifyOriginal(): boolean;
285
+ protected setupAccuDraw(): void;
286
+ protected provideToolAssistance(_mainInstrText?: string, _additionalInstr?: ToolAssistanceInstruction[]): void;
287
+ onRestartTool(): Promise<void>;
288
+ }
289
+ /** @alpha Tool for revolving paths and regions. */
290
+ export declare class RevolveCurveTool extends ModifyCurveTool {
291
+ static toolId: string;
292
+ static iconSpec: string;
293
+ protected points: Point3d[];
294
+ protected allowView(vp: Viewport): boolean;
295
+ private _angleProperty;
296
+ get angleProperty(): DialogProperty<number>;
297
+ get angle(): number;
298
+ set angle(value: number);
299
+ private _cappedProperty;
300
+ get cappedProperty(): DialogProperty<boolean>;
301
+ get capped(): boolean;
302
+ set capped(value: boolean);
303
+ private _keepProfileProperty;
304
+ get keepProfileProperty(): DialogProperty<boolean>;
305
+ get keepProfile(): boolean;
306
+ set keepProfile(value: boolean);
307
+ applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise<boolean>;
308
+ supplyToolSettingsProperties(): DialogItem[] | undefined;
309
+ protected acceptCurve(curve: CurveCollection | CurvePrimitive): boolean;
310
+ protected modifyCurve(ev: BeButtonEvent, isAccept: boolean): GeometryQuery | undefined;
311
+ onDynamicFrame(ev: BeButtonEvent, context: DynamicsContext): void;
312
+ protected get wantModifyOriginal(): boolean;
313
+ protected get wantAdditionalInput(): boolean;
314
+ protected gatherInput(ev: BeButtonEvent): Promise<EventHandled | undefined>;
315
+ protected setupAccuDraw(): void;
316
+ protected provideToolAssistance(_mainInstrText?: string, _additionalInstr?: ToolAssistanceInstruction[]): void;
317
+ onRestartTool(): Promise<void>;
318
+ }
255
319
  //# sourceMappingURL=SolidPrimitiveTools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidPrimitiveTools.d.ts","sourceRoot":"","sources":["../../src/SolidPrimitiveTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SolidPrimitiveTools.d.ts","sourceRoot":"","sources":["../../src/SolidPrimitiveTools.ts"],"names":[],"mappings":"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"}
@@ -2,14 +2,16 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
+ import { DialogProperty, PropertyDescriptionHelper } from "@itwin/appui-abstract";
5
6
  import { BentleyError } from "@itwin/core-bentley";
6
- import { Angle, Arc3d, Box, Cone, FrameBuilder, LineSegment3d, LineString3d, Loop, Matrix3d, Sphere, TorusPipe, Vector3d, YawPitchRollAngles } from "@itwin/core-geometry";
7
- import { Code, ElementGeometry } from "@itwin/core-common";
8
- import { AccuDrawHintBuilder, AngleDescription, IModelApp, LengthDescription, NotifyMessageDetails, OutputMessagePriority } from "@itwin/core-frontend";
7
+ import { Code, ColorDef, ElementGeometry, } from "@itwin/core-common";
8
+ import { AccuDrawHintBuilder, AngleDescription, GraphicType, IModelApp, LengthDescription, NotifyMessageDetails, OutputMessagePriority, } from "@itwin/core-frontend";
9
+ import { Angle, Arc3d, AxisOrder, Box, Cone, CurvePrimitive, FrameBuilder, Geometry, LinearSweep, LineSegment3d, LineString3d, Loop, Matrix3d, Path, Ray3d, RotationalSweep, Sphere, TorusPipe, Vector3d, YawPitchRollAngles, } from "@itwin/core-geometry";
9
10
  import { editorBuiltInCmdIds } from "@itwin/editor-common";
10
11
  import { CreateElementWithDynamicsTool } from "./CreateElementTool";
11
12
  import { EditTools } from "./EditTool";
12
- import { DialogProperty, PropertyDescriptionHelper } from "@itwin/appui-abstract";
13
+ import { basicManipulationIpc } from "./EditToolIpc";
14
+ import { ModifyCurveTool } from "./ModifyCurveTools";
13
15
  /** @alpha Base class for creating a capped or uncapped SolidPrimitive. */
14
16
  export class SolidPrimitiveTool extends CreateElementWithDynamicsTool {
15
17
  constructor() {
@@ -23,9 +25,6 @@ export class SolidPrimitiveTool extends CreateElementWithDynamicsTool {
23
25
  return this._startedCmd;
24
26
  return EditTools.startCommand(editorBuiltInCmdIds.cmdBasicManipulation, this.iModel.key);
25
27
  }
26
- static callCommand(method, ...args) {
27
- return EditTools.callCommand(method, ...args);
28
- }
29
28
  getPlacementProps() {
30
29
  var _a;
31
30
  if (undefined === this.current)
@@ -55,7 +54,7 @@ export class SolidPrimitiveTool extends CreateElementWithDynamicsTool {
55
54
  async doCreateElement(props, data) {
56
55
  try {
57
56
  this._startedCmd = await this.startCommand();
58
- await SolidPrimitiveTool.callCommand("insertGeometricElement", props, data);
57
+ await basicManipulationIpc.insertGeometricElement(props, data);
59
58
  await this.saveChanges();
60
59
  }
61
60
  catch (err) {
@@ -1084,4 +1083,286 @@ export class CreateTorusTool extends SolidPrimitiveTool {
1084
1083
  }
1085
1084
  CreateTorusTool.toolId = "CreateTorus";
1086
1085
  CreateTorusTool.iconSpec = "icon-circle"; // TODO: Need better icon...
1086
+ /** @alpha Tool for extruding paths and regions. */
1087
+ export class ExtrudeCurveTool extends ModifyCurveTool {
1088
+ allowView(vp) { return vp.view.is3d(); }
1089
+ get useLengthProperty() {
1090
+ if (!this._useLengthProperty)
1091
+ this._useLengthProperty = new DialogProperty(PropertyDescriptionHelper.buildLockPropertyDescription("useExtrudeLength"), false);
1092
+ return this._useLengthProperty;
1093
+ }
1094
+ get useLength() { return this.useLengthProperty.value; }
1095
+ set useLength(value) { this.useLengthProperty.value = value; }
1096
+ get lengthProperty() {
1097
+ if (!this._lengthProperty)
1098
+ this._lengthProperty = new DialogProperty(new LengthDescription("extrudeLength", EditTools.translate("ExtrudeCurve.Label.Length")), 0.1, undefined, !this.useLength);
1099
+ return this._lengthProperty;
1100
+ }
1101
+ get length() { return this.lengthProperty.value; }
1102
+ set length(value) { this.lengthProperty.value = value; }
1103
+ get cappedProperty() {
1104
+ if (!this._cappedProperty)
1105
+ this._cappedProperty = new DialogProperty(PropertyDescriptionHelper.buildToggleDescription("extrudeCapped", EditTools.translate("ExtrudeCurve.Label.Capped")), true);
1106
+ return this._cappedProperty;
1107
+ }
1108
+ get capped() { return this.cappedProperty.value; }
1109
+ set capped(value) { this.cappedProperty.value = value; }
1110
+ get orthogonalProperty() {
1111
+ if (!this._orthogonalProperty)
1112
+ this._orthogonalProperty = new DialogProperty(PropertyDescriptionHelper.buildToggleDescription("extrudeOrthogonal", EditTools.translate("ExtrudeCurve.Label.Orthogonal")), true);
1113
+ return this._orthogonalProperty;
1114
+ }
1115
+ get orthogonal() { return this.orthogonalProperty.value; }
1116
+ set orthogonal(value) { this.orthogonalProperty.value = value; }
1117
+ get keepProfileProperty() {
1118
+ if (!this._keepProfileProperty)
1119
+ this._keepProfileProperty = new DialogProperty(PropertyDescriptionHelper.buildToggleDescription("extrudeKeepProfile", EditTools.translate("ExtrudeCurve.Label.KeepProfile")), false);
1120
+ return this._keepProfileProperty;
1121
+ }
1122
+ get keepProfile() { return this.keepProfileProperty.value; }
1123
+ set keepProfile(value) { this.keepProfileProperty.value = value; }
1124
+ getToolSettingPropertyLocked(property) {
1125
+ return (property === this.useLengthProperty ? this.lengthProperty : undefined);
1126
+ }
1127
+ async applyToolSettingPropertyChange(updatedValue) {
1128
+ return this.changeToolSettingPropertyValue(updatedValue);
1129
+ }
1130
+ supplyToolSettingsProperties() {
1131
+ this.initializeToolSettingPropertyValues([this.keepProfileProperty, this.orthogonalProperty, this.cappedProperty, this.useLengthProperty, this.lengthProperty]);
1132
+ const toolSettings = new Array();
1133
+ // ensure controls are enabled/disabled based on current lock property state
1134
+ this.lengthProperty.isDisabled = !this.useLength;
1135
+ const useLengthLock = this.useLengthProperty.toDialogItem({ rowPriority: 1, columnIndex: 0 });
1136
+ toolSettings.push(this.lengthProperty.toDialogItem({ rowPriority: 1, columnIndex: 1 }, useLengthLock));
1137
+ toolSettings.push(this.orthogonalProperty.toDialogItem({ rowPriority: 2, columnIndex: 0 }));
1138
+ toolSettings.push(this.cappedProperty.toDialogItem({ rowPriority: 3, columnIndex: 0 }));
1139
+ toolSettings.push(this.keepProfileProperty.toDialogItem({ rowPriority: 4, columnIndex: 0 }));
1140
+ return toolSettings;
1141
+ }
1142
+ acceptCurve(curve) {
1143
+ if ("curvePrimitive" === curve.geometryCategory)
1144
+ return true;
1145
+ switch (curve.curveCollectionType) {
1146
+ case "path":
1147
+ case "loop":
1148
+ case "parityRegion":
1149
+ return true;
1150
+ default:
1151
+ return false;
1152
+ }
1153
+ }
1154
+ modifyCurve(ev, isAccept) {
1155
+ var _a;
1156
+ if (undefined === ev.viewport || undefined === this.anchorPoint)
1157
+ return undefined;
1158
+ const geom = (_a = this.curveData) === null || _a === void 0 ? void 0 : _a.geom;
1159
+ if (undefined === geom)
1160
+ return undefined;
1161
+ const matrix = AccuDrawHintBuilder.getCurrentRotation(ev.viewport, true, true);
1162
+ const localToWorld = FrameBuilder.createRightHandedFrame(matrix === null || matrix === void 0 ? void 0 : matrix.getColumn(2), geom);
1163
+ if (undefined === localToWorld)
1164
+ return undefined;
1165
+ const spacePoint = this.orthogonal ? AccuDrawHintBuilder.projectPointToLineInView(ev.point, this.anchorPoint, localToWorld.matrix.getColumn(2), ev.viewport, true) : ev.point;
1166
+ if (undefined === spacePoint)
1167
+ return undefined;
1168
+ const direction = Vector3d.createStartEnd(this.anchorPoint, spacePoint);
1169
+ if (this.useLength && undefined === direction.scaleToLength(this.length, direction))
1170
+ return undefined;
1171
+ if (direction.magnitude() < Geometry.smallMetricDistance)
1172
+ return undefined;
1173
+ if (!this.useLength) {
1174
+ this.length = direction.magnitude();
1175
+ this.syncToolSettingPropertyValue(this.lengthProperty);
1176
+ if (isAccept)
1177
+ this.saveToolSettingPropertyValue(this.lengthProperty, this.lengthProperty.dialogItemValue);
1178
+ }
1179
+ const contour = (geom instanceof CurvePrimitive) ? Path.create(geom) : geom;
1180
+ return LinearSweep.create(contour, direction, this.capped && contour.isAnyRegionType);
1181
+ }
1182
+ get wantModifyOriginal() {
1183
+ return !this.keepProfile;
1184
+ }
1185
+ setupAccuDraw() {
1186
+ var _a;
1187
+ const hints = new AccuDrawHintBuilder();
1188
+ if (this.agenda.isEmpty) {
1189
+ hints.enableSmartRotation = true;
1190
+ }
1191
+ else if (undefined !== this.anchorPoint && undefined !== this.targetView) {
1192
+ const geom = (_a = this.curveData) === null || _a === void 0 ? void 0 : _a.geom;
1193
+ const matrix = AccuDrawHintBuilder.getCurrentRotation(this.targetView, true, true);
1194
+ const localToWorld = FrameBuilder.createRightHandedFrame(matrix === null || matrix === void 0 ? void 0 : matrix.getColumn(2), geom);
1195
+ hints.setModeRectangular();
1196
+ hints.setOrigin(this.anchorPoint);
1197
+ hints.setOriginFixed = true;
1198
+ if (undefined !== localToWorld) {
1199
+ hints.setXAxis2(localToWorld.matrix.getColumn(2));
1200
+ if (this.orthogonal) {
1201
+ hints.setLockY = true;
1202
+ hints.setLockZ = true;
1203
+ }
1204
+ }
1205
+ }
1206
+ hints.sendHints(false);
1207
+ }
1208
+ provideToolAssistance(_mainInstrText, _additionalInstr) {
1209
+ let mainMsg;
1210
+ if (!this.agenda.isEmpty)
1211
+ mainMsg = EditTools.translate("ExtrudeCurve.Prompts.DefineLength");
1212
+ super.provideToolAssistance(mainMsg);
1213
+ }
1214
+ async onRestartTool() {
1215
+ const tool = new ExtrudeCurveTool();
1216
+ if (!await tool.run())
1217
+ return this.exitTool();
1218
+ }
1219
+ }
1220
+ ExtrudeCurveTool.toolId = "ExtrudeCurve";
1221
+ ExtrudeCurveTool.iconSpec = "icon-scale"; // Need better icon...
1222
+ /** @alpha Tool for revolving paths and regions. */
1223
+ export class RevolveCurveTool extends ModifyCurveTool {
1224
+ constructor() {
1225
+ super(...arguments);
1226
+ this.points = [];
1227
+ }
1228
+ allowView(vp) { return vp.view.is3d(); }
1229
+ get angleProperty() {
1230
+ if (!this._angleProperty)
1231
+ this._angleProperty = new DialogProperty(new AngleDescription("revolveAngle", EditTools.translate("RevolveCurve.Label.Angle")), Angle.piOver2Radians, undefined, false);
1232
+ return this._angleProperty;
1233
+ }
1234
+ get angle() { return this.angleProperty.value; }
1235
+ set angle(value) { this.angleProperty.value = value; }
1236
+ get cappedProperty() {
1237
+ if (!this._cappedProperty)
1238
+ this._cappedProperty = new DialogProperty(PropertyDescriptionHelper.buildToggleDescription("revolveCapped", EditTools.translate("RevolveCurve.Label.Capped")), true);
1239
+ return this._cappedProperty;
1240
+ }
1241
+ get capped() { return this.cappedProperty.value; }
1242
+ set capped(value) { this.cappedProperty.value = value; }
1243
+ get keepProfileProperty() {
1244
+ if (!this._keepProfileProperty)
1245
+ this._keepProfileProperty = new DialogProperty(PropertyDescriptionHelper.buildToggleDescription("revolveKeepProfile", EditTools.translate("RevolveCurve.Label.KeepProfile")), false);
1246
+ return this._keepProfileProperty;
1247
+ }
1248
+ get keepProfile() { return this.keepProfileProperty.value; }
1249
+ set keepProfile(value) { this.keepProfileProperty.value = value; }
1250
+ async applyToolSettingPropertyChange(updatedValue) {
1251
+ return this.changeToolSettingPropertyValue(updatedValue);
1252
+ }
1253
+ supplyToolSettingsProperties() {
1254
+ this.initializeToolSettingPropertyValues([this.keepProfileProperty, this.cappedProperty, this.angleProperty]);
1255
+ const toolSettings = new Array();
1256
+ toolSettings.push(this.angleProperty.toDialogItem({ rowPriority: 1, columnIndex: 1 }));
1257
+ toolSettings.push(this.cappedProperty.toDialogItem({ rowPriority: 3, columnIndex: 0 }));
1258
+ toolSettings.push(this.keepProfileProperty.toDialogItem({ rowPriority: 4, columnIndex: 0 }));
1259
+ return toolSettings;
1260
+ }
1261
+ acceptCurve(curve) {
1262
+ if ("curvePrimitive" === curve.geometryCategory)
1263
+ return true;
1264
+ switch (curve.curveCollectionType) {
1265
+ case "path":
1266
+ case "loop":
1267
+ case "parityRegion":
1268
+ return true;
1269
+ default:
1270
+ return false;
1271
+ }
1272
+ }
1273
+ modifyCurve(ev, isAccept) {
1274
+ var _a;
1275
+ if (undefined === ev.viewport || this.points.length < (isAccept ? 2 : 1))
1276
+ return undefined;
1277
+ const geom = (_a = this.curveData) === null || _a === void 0 ? void 0 : _a.geom;
1278
+ if (undefined === geom)
1279
+ return undefined;
1280
+ const direction = Vector3d.createStartEnd(this.points[0], isAccept ? this.points[1] : ev.point);
1281
+ if (direction.magnitude() < Geometry.smallMetricDistance)
1282
+ return undefined;
1283
+ const axis = Ray3d.create(this.points[0], direction);
1284
+ const angle = Angle.createRadians(this.angle);
1285
+ const contour = (geom instanceof CurvePrimitive) ? Path.create(geom) : geom;
1286
+ const sweep = RotationalSweep.create(contour, axis, angle, this.capped && contour.isAnyRegionType);
1287
+ // Detect a self-intersection...contour should not intersect axis of revolution...
1288
+ const localToWorld = sweep === null || sweep === void 0 ? void 0 : sweep.getConstructiveFrame();
1289
+ if (undefined === localToWorld)
1290
+ return undefined;
1291
+ const xVec = localToWorld.matrix.columnX(); // NOTE: Not always towards contour...
1292
+ const xAxis = Ray3d.create(localToWorld.getOrigin(), xVec);
1293
+ // Check parameter range of radial axis ray, if low is negative and high is positive reject result...
1294
+ const paramRange = sweep === null || sweep === void 0 ? void 0 : sweep.getCurves().projectedParameterRange(xAxis);
1295
+ if (undefined === paramRange || (paramRange.low < -Geometry.smallMetricDistanceSquared && paramRange.high > Geometry.smallMetricDistanceSquared))
1296
+ return undefined;
1297
+ return sweep;
1298
+ }
1299
+ onDynamicFrame(ev, context) {
1300
+ if (0 === this.points.length)
1301
+ return;
1302
+ const pts = this.points.slice();
1303
+ pts.push(ev.point.clone());
1304
+ const builder = context.createGraphic({ type: GraphicType.WorldOverlay });
1305
+ builder.setSymbology(context.viewport.getContrastToBackgroundColor(), ColorDef.black, 3);
1306
+ builder.addLineString(pts);
1307
+ context.addGraphic(builder.finish());
1308
+ super.onDynamicFrame(ev, context);
1309
+ }
1310
+ get wantModifyOriginal() {
1311
+ return !this.keepProfile;
1312
+ }
1313
+ get wantAdditionalInput() {
1314
+ return this.points.length < 2;
1315
+ }
1316
+ async gatherInput(ev) {
1317
+ if (undefined !== this.anchorPoint)
1318
+ this.points.push(ev.point.clone());
1319
+ return super.gatherInput(ev);
1320
+ }
1321
+ setupAccuDraw() {
1322
+ var _a;
1323
+ const hints = new AccuDrawHintBuilder();
1324
+ if (this.agenda.isEmpty) {
1325
+ hints.enableSmartRotation = true;
1326
+ }
1327
+ else if (0 !== this.points.length) {
1328
+ hints.setOrigin(this.points[0]);
1329
+ hints.setOriginFixed = true;
1330
+ hints.setLockZ = true;
1331
+ }
1332
+ else if (undefined !== this.anchorPoint && undefined !== this.targetView) {
1333
+ const geom = (_a = this.curveData) === null || _a === void 0 ? void 0 : _a.geom;
1334
+ const closeDetail = (geom instanceof CurvePrimitive) ? geom.closestPoint(this.anchorPoint, false) : geom === null || geom === void 0 ? void 0 : geom.closestPoint(this.anchorPoint);
1335
+ if (undefined === (closeDetail === null || closeDetail === void 0 ? void 0 : closeDetail.curve))
1336
+ return;
1337
+ const unitX = closeDetail.curve.fractionToPointAndUnitTangent(closeDetail.fraction).direction;
1338
+ if (undefined === unitX)
1339
+ return;
1340
+ const matrix = AccuDrawHintBuilder.getCurrentRotation(this.targetView, true, true);
1341
+ const localToWorld = FrameBuilder.createRightHandedFrame(matrix === null || matrix === void 0 ? void 0 : matrix.getColumn(2), geom);
1342
+ if (undefined === localToWorld)
1343
+ return;
1344
+ const unitZ = localToWorld.matrix.getColumn(2);
1345
+ const frame = Matrix3d.createRigidFromColumns(unitX, unitZ, AxisOrder.XZY);
1346
+ if (undefined === frame)
1347
+ return;
1348
+ hints.setModeRectangular();
1349
+ hints.setOrigin(closeDetail.point);
1350
+ hints.setMatrix(frame);
1351
+ }
1352
+ hints.sendHints(false);
1353
+ }
1354
+ provideToolAssistance(_mainInstrText, _additionalInstr) {
1355
+ let mainMsg;
1356
+ if (!this.agenda.isEmpty)
1357
+ mainMsg = EditTools.translate(0 === this.points.length ? "RevolveCurve.Prompts.AxisPoint" : "RevolveCurve.Prompts.AxisDirection");
1358
+ super.provideToolAssistance(mainMsg);
1359
+ }
1360
+ async onRestartTool() {
1361
+ const tool = new RevolveCurveTool();
1362
+ if (!await tool.run())
1363
+ return this.exitTool();
1364
+ }
1365
+ }
1366
+ RevolveCurveTool.toolId = "RevolveCurve";
1367
+ RevolveCurveTool.iconSpec = "icon-scale"; // Need better icon...
1087
1368
  //# sourceMappingURL=SolidPrimitiveTools.js.map