@itwin/editor-frontend 4.0.0-dev.46 → 4.0.0-dev.48

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 (92) hide show
  1. package/lib/cjs/CreateElementTool.d.ts +100 -100
  2. package/lib/cjs/CreateElementTool.js +325 -325
  3. package/lib/cjs/CreateElementTool.js.map +1 -1
  4. package/lib/cjs/DeleteElementsTool.d.ts +13 -13
  5. package/lib/cjs/DeleteElementsTool.js +38 -38
  6. package/lib/cjs/DeleteElementsTool.js.map +1 -1
  7. package/lib/cjs/EditTool.d.ts +38 -38
  8. package/lib/cjs/EditTool.js +80 -80
  9. package/lib/cjs/EditTool.js.map +1 -1
  10. package/lib/cjs/EditToolIpc.d.ts +18 -18
  11. package/lib/cjs/EditToolIpc.js +28 -28
  12. package/lib/cjs/EditToolIpc.js.map +1 -1
  13. package/lib/cjs/ElementGeometryTool.d.ts +147 -147
  14. package/lib/cjs/ElementGeometryTool.js +704 -704
  15. package/lib/cjs/ElementGeometryTool.js.map +1 -1
  16. package/lib/cjs/ModifyCurveTools.d.ts +139 -139
  17. package/lib/cjs/ModifyCurveTools.js +776 -776
  18. package/lib/cjs/ModifyCurveTools.js.map +1 -1
  19. package/lib/cjs/ModifyElementTool.d.ts +47 -47
  20. package/lib/cjs/ModifyElementTool.js +177 -177
  21. package/lib/cjs/ModifyElementTool.js.map +1 -1
  22. package/lib/cjs/ProjectLocation/ProjectExtentsDecoration.d.ts +135 -135
  23. package/lib/cjs/ProjectLocation/ProjectExtentsDecoration.js +822 -822
  24. package/lib/cjs/ProjectLocation/ProjectExtentsDecoration.js.map +1 -1
  25. package/lib/cjs/ProjectLocation/ProjectGeolocation.d.ts +135 -135
  26. package/lib/cjs/ProjectLocation/ProjectGeolocation.js +532 -532
  27. package/lib/cjs/ProjectLocation/ProjectGeolocation.js.map +1 -1
  28. package/lib/cjs/SketchTools.d.ts +304 -304
  29. package/lib/cjs/SketchTools.js +1704 -1704
  30. package/lib/cjs/SketchTools.js.map +1 -1
  31. package/lib/cjs/SolidModelingTools.d.ts +380 -380
  32. package/lib/cjs/SolidModelingTools.js +1452 -1452
  33. package/lib/cjs/SolidModelingTools.js.map +1 -1
  34. package/lib/cjs/SolidPrimitiveTools.d.ts +318 -318
  35. package/lib/cjs/SolidPrimitiveTools.js +1372 -1372
  36. package/lib/cjs/SolidPrimitiveTools.js.map +1 -1
  37. package/lib/cjs/TransformElementsTool.d.ts +164 -164
  38. package/lib/cjs/TransformElementsTool.js +652 -652
  39. package/lib/cjs/TransformElementsTool.js.map +1 -1
  40. package/lib/cjs/UndoRedoTool.d.ts +16 -16
  41. package/lib/cjs/UndoRedoTool.js +41 -41
  42. package/lib/cjs/UndoRedoTool.js.map +1 -1
  43. package/lib/cjs/editor-frontend.d.ts +17 -17
  44. package/lib/cjs/editor-frontend.js +33 -33
  45. package/lib/cjs/editor-frontend.js.map +1 -1
  46. package/lib/esm/CreateElementTool.d.ts +100 -100
  47. package/lib/esm/CreateElementTool.js +317 -317
  48. package/lib/esm/CreateElementTool.js.map +1 -1
  49. package/lib/esm/DeleteElementsTool.d.ts +13 -13
  50. package/lib/esm/DeleteElementsTool.js +34 -34
  51. package/lib/esm/DeleteElementsTool.js.map +1 -1
  52. package/lib/esm/EditTool.d.ts +38 -38
  53. package/lib/esm/EditTool.js +76 -76
  54. package/lib/esm/EditTool.js.map +1 -1
  55. package/lib/esm/EditToolIpc.d.ts +18 -18
  56. package/lib/esm/EditToolIpc.js +24 -24
  57. package/lib/esm/EditToolIpc.js.map +1 -1
  58. package/lib/esm/ElementGeometryTool.d.ts +147 -147
  59. package/lib/esm/ElementGeometryTool.js +696 -696
  60. package/lib/esm/ElementGeometryTool.js.map +1 -1
  61. package/lib/esm/ModifyCurveTools.d.ts +139 -139
  62. package/lib/esm/ModifyCurveTools.js +767 -767
  63. package/lib/esm/ModifyCurveTools.js.map +1 -1
  64. package/lib/esm/ModifyElementTool.d.ts +47 -47
  65. package/lib/esm/ModifyElementTool.js +172 -172
  66. package/lib/esm/ModifyElementTool.js.map +1 -1
  67. package/lib/esm/ProjectLocation/ProjectExtentsDecoration.d.ts +135 -135
  68. package/lib/esm/ProjectLocation/ProjectExtentsDecoration.js +814 -814
  69. package/lib/esm/ProjectLocation/ProjectExtentsDecoration.js.map +1 -1
  70. package/lib/esm/ProjectLocation/ProjectGeolocation.d.ts +135 -135
  71. package/lib/esm/ProjectLocation/ProjectGeolocation.js +526 -526
  72. package/lib/esm/ProjectLocation/ProjectGeolocation.js.map +1 -1
  73. package/lib/esm/SketchTools.d.ts +304 -304
  74. package/lib/esm/SketchTools.js +1694 -1694
  75. package/lib/esm/SketchTools.js.map +1 -1
  76. package/lib/esm/SolidModelingTools.d.ts +380 -380
  77. package/lib/esm/SolidModelingTools.js +1427 -1427
  78. package/lib/esm/SolidModelingTools.js.map +1 -1
  79. package/lib/esm/SolidPrimitiveTools.d.ts +318 -318
  80. package/lib/esm/SolidPrimitiveTools.js +1361 -1361
  81. package/lib/esm/SolidPrimitiveTools.js.map +1 -1
  82. package/lib/esm/TransformElementsTool.d.ts +164 -164
  83. package/lib/esm/TransformElementsTool.js +644 -644
  84. package/lib/esm/TransformElementsTool.js.map +1 -1
  85. package/lib/esm/UndoRedoTool.d.ts +16 -16
  86. package/lib/esm/UndoRedoTool.js +35 -35
  87. package/lib/esm/UndoRedoTool.js.map +1 -1
  88. package/lib/esm/editor-frontend.d.ts +17 -17
  89. package/lib/esm/editor-frontend.js +21 -21
  90. package/lib/esm/editor-frontend.js.map +1 -1
  91. package/lib/public/locales/en/Editor.json +490 -490
  92. package/package.json +14 -14
@@ -1 +1 @@
1
- {"version":3,"file":"EditToolIpc.js","sourceRoot":"","sources":["../../src/EditToolIpc.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAA+C,gBAAgB,EAA2B,MAAM,sBAAsB,CAAC;AAE9H;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,MAAM,CAAC,oBAAoB,CAAI,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAChF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,EAA+B,CAAC;AACnF;;EAEE;AACF,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,EAA2B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Editing\r\n */\r\n\r\nimport { PickAsyncMethods } from \"@itwin/core-bentley\";\r\nimport { IpcApp } from \"@itwin/core-frontend\";\r\nimport { BasicManipulationCommandIpc, EditCommandIpc, editorIpcStrings, SolidModelingCommandIpc } from \"@itwin/editor-common\";\r\n\r\n/**\r\n * Create a type safe Proxy object to make IPC calls from an [[EditTool]] to methods of an `EditCommandIpc` interface of the current `EditCommand`.\r\n * @beta\r\n */\r\nexport function makeEditToolIpc<K extends EditCommandIpc>(): PickAsyncMethods<K> {\r\n return IpcApp.makeIpcFunctionProxy<K>(editorIpcStrings.channel, \"callMethod\");\r\n}\r\n\r\n/** Proxy for calling methods in `BasicManipulationCommandIpc`\r\n * @internal\r\n */\r\nexport const basicManipulationIpc = makeEditToolIpc<BasicManipulationCommandIpc>();\r\n/** Proxy for calling methods in `SolidModelingCommandIpc`\r\n* @internal\r\n*/\r\nexport const solidModelingIpc = makeEditToolIpc<SolidModelingCommandIpc>();\r\n"]}
1
+ {"version":3,"file":"EditToolIpc.js","sourceRoot":"","sources":["../../src/EditToolIpc.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAA+C,gBAAgB,EAA2B,MAAM,sBAAsB,CAAC;AAE9H;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,MAAM,CAAC,oBAAoB,CAAI,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAChF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,EAA+B,CAAC;AACnF;;EAEE;AACF,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,EAA2B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Editing\n */\n\nimport { PickAsyncMethods } from \"@itwin/core-bentley\";\nimport { IpcApp } from \"@itwin/core-frontend\";\nimport { BasicManipulationCommandIpc, EditCommandIpc, editorIpcStrings, SolidModelingCommandIpc } from \"@itwin/editor-common\";\n\n/**\n * Create a type safe Proxy object to make IPC calls from an [[EditTool]] to methods of an `EditCommandIpc` interface of the current `EditCommand`.\n * @beta\n */\nexport function makeEditToolIpc<K extends EditCommandIpc>(): PickAsyncMethods<K> {\n return IpcApp.makeIpcFunctionProxy<K>(editorIpcStrings.channel, \"callMethod\");\n}\n\n/** Proxy for calling methods in `BasicManipulationCommandIpc`\n * @internal\n */\nexport const basicManipulationIpc = makeEditToolIpc<BasicManipulationCommandIpc>();\n/** Proxy for calling methods in `SolidModelingCommandIpc`\n* @internal\n*/\nexport const solidModelingIpc = makeEditToolIpc<SolidModelingCommandIpc>();\n"]}
@@ -1,148 +1,148 @@
1
- /** @packageDocumentation
2
- * @module Editing
3
- */
4
- import { Id64Arg, Id64String } from "@itwin/core-bentley";
5
- import { FeatureAppearance } from "@itwin/core-common";
6
- import { BeButtonEvent, BeModifierKeys, CoordinateLockOverrides, DecorateContext, DynamicsContext, ElementSetTool, EventHandled, FeatureOverrideProvider, FeatureSymbology, GraphicBranchOptions, GraphicType, HitDetail, IModelConnection, LocateResponse, RenderGraphicOwner, SelectionMethod, SelectionSet, ToolAssistanceInstruction, Viewport } from "@itwin/core-frontend";
7
- import { Point3d, Ray3d, Transform } from "@itwin/core-geometry";
8
- import { BRepEntityType, ElementGeometryCacheFilter, ElementGeometryResultProps, SubEntityFilter, SubEntityGeometryProps, SubEntityLocationProps, SubEntityProps, SubEntityType } from "@itwin/editor-common";
9
- /** @alpha */
10
- export declare class ElementGeometryGraphicsProvider {
11
- readonly iModel: IModelConnection;
12
- graphic?: RenderGraphicOwner;
13
- constructor(iModel: IModelConnection);
14
- /** Call to request a RenderGraphic for the supplied graphic data.
15
- * @see [[cleanupGraphic]] Must be called when the tool exits.
16
- */
17
- createGraphic(graphicData: Uint8Array): Promise<boolean>;
18
- /** Call to dispose of [[RenderGraphic]] held by [[RenderGraphicOwner]].
19
- * @note Must be called when the tool exits to avoid leaks of graphics memory or other webgl resources.
20
- */
21
- cleanupGraphic(): void;
22
- addGraphic(context: DynamicsContext, transform?: Transform, opts?: GraphicBranchOptions): void;
23
- addDecoration(context: DecorateContext, type: GraphicType, transform?: Transform, opts?: GraphicBranchOptions): void;
24
- }
25
- /** @alpha */
26
- export declare function isSameSubEntity(a: SubEntityProps, b: SubEntityProps): boolean;
27
- /** @alpha */
28
- export declare class SubEntityData {
29
- toolData?: any;
30
- chordTolerance?: number;
31
- private _props;
32
- private _geometry?;
33
- private _graphicsProvider?;
34
- constructor(props: SubEntityProps);
35
- get props(): SubEntityProps;
36
- set props(value: SubEntityProps);
37
- get geometry(): SubEntityGeometryProps | undefined;
38
- set geometry(value: SubEntityGeometryProps | undefined);
39
- isSame(other: SubEntityProps): boolean;
40
- getAppearance(vp: Viewport, accepted: boolean): FeatureAppearance;
41
- createGraphic(iModel: IModelConnection): Promise<boolean>;
42
- cleanupGraphic(): void;
43
- get hasGraphic(): boolean;
44
- display(context: DecorateContext, accepted: boolean): void;
45
- }
46
- /** @alpha Base class for tools that want to use the backend geometry cache. */
47
- export declare abstract class ElementGeometryCacheTool extends ElementSetTool implements FeatureOverrideProvider {
48
- protected _startedCmd?: string;
49
- protected readonly _checkedIds: Map<string, boolean>;
50
- protected _graphicsProvider?: ElementGeometryGraphicsProvider;
51
- protected _graphicsPending?: true;
52
- protected _firstResult: boolean;
53
- protected _agendaAppearanceDefault?: FeatureAppearance;
54
- protected _agendaAppearanceDynamic?: FeatureAppearance;
55
- protected allowView(vp: Viewport): boolean;
56
- isCompatibleViewport(vp: Viewport | undefined, isSelectedViewChange: boolean): boolean;
57
- protected startCommand(): Promise<string>;
58
- protected agendaAppearance(isDynamics: boolean): FeatureAppearance;
59
- protected get wantAgendaAppearanceOverride(): boolean;
60
- addFeatureOverrides(overrides: FeatureSymbology.Overrides, _vp: Viewport): void;
61
- protected updateAgendaAppearanceProvider(drop?: true): void;
62
- protected get geometryCacheFilter(): ElementGeometryCacheFilter | undefined;
63
- protected onGeometryCacheFilterChanged(): void;
64
- protected createElementGeometryCache(id: Id64String): Promise<boolean>;
65
- protected acceptElementForOperation(id: Id64String): Promise<boolean>;
66
- protected isElementValidForOperation(hit: HitDetail, out?: LocateResponse): Promise<boolean>;
67
- protected postFilterIds(arg: Id64Arg): Promise<Id64Arg>;
68
- protected getGroupIds(id: Id64String): Promise<Id64Arg>;
69
- protected getSelectionSetCandidates(ss: SelectionSet): Promise<Id64Arg>;
70
- protected getDragSelectCandidates(vp: Viewport, origin: Point3d, corner: Point3d, method: SelectionMethod, overlap: boolean): Promise<Id64Arg>;
71
- onDynamicFrame(_ev: BeButtonEvent, context: DynamicsContext): void;
72
- onMouseMotion(ev: BeButtonEvent): Promise<void>;
73
- protected getGraphicData(_ev: BeButtonEvent): Promise<Uint8Array | undefined>;
74
- protected updateGraphic(ev: BeButtonEvent, isDynamics: boolean): Promise<void>;
75
- protected createGraphic(graphicData: Uint8Array): Promise<void>;
76
- protected clearGraphic(): void;
77
- protected clearElementGeometryCache(): Promise<void>;
78
- onUnsuspend(): Promise<void>;
79
- onSuspend(): Promise<void>;
80
- onPostInstall(): Promise<void>;
81
- onCleanup(): Promise<void>;
82
- }
83
- /** @alpha Base class for tools that need to locate faces, edges, and vertices. */
84
- export declare abstract class LocateSubEntityTool extends ElementGeometryCacheTool {
85
- protected _currentSubEntity?: SubEntityData;
86
- protected _acceptedSubEntities: SubEntityData[];
87
- protected _locatedSubEntities?: SubEntityLocationProps[];
88
- protected _subEntityGraphicPending?: true;
89
- protected readonly _summaryIds: Map<string, BRepEntityType[]>;
90
- protected provideToolAssistance(mainInstrText?: string, additionalInstr?: ToolAssistanceInstruction[]): void;
91
- protected get wantAgendaAppearanceOverride(): boolean;
92
- protected get wantGeometrySummary(): boolean;
93
- protected get wantSubEntitySnap(): boolean;
94
- protected wantSubEntityType(type: SubEntityType): boolean;
95
- protected getMaximumSubEntityHits(type: SubEntityType): number;
96
- protected get requiredSubEntityCount(): number;
97
- protected get haveAcceptedSubEntities(): boolean;
98
- protected get inhibitSubEntityDisplay(): boolean;
99
- protected get allowSubEntityControlSelect(): boolean;
100
- protected get allowSubEntityControlDeselect(): boolean;
101
- protected get allowSubEntitySelectNext(): boolean;
102
- protected getBRepEntityTypeForSubEntity(id: Id64String, subEntity: SubEntityProps): BRepEntityType;
103
- protected createElementGeometrySummary(id: Id64String): Promise<boolean>;
104
- protected createElementGeometryCache(id: Id64String): Promise<boolean>;
105
- protected getAcceptedSubEntityData(index?: number): SubEntityData | undefined;
106
- protected getAcceptedSubEntities(): SubEntityProps[];
107
- protected drawSubEntity(context: DecorateContext, subEntity: SubEntityData, accepted: boolean): void;
108
- protected drawAcceptedSubEntities(context: DecorateContext): void;
109
- decorate(context: DecorateContext): void;
110
- decorateSuspended(context: DecorateContext): void;
111
- protected getLocateAperture(ev: BeButtonEvent): number;
112
- protected getMaxRayDistance(ev: BeButtonEvent, aperture: number): number;
113
- protected getRayOrigin(ev: BeButtonEvent): Point3d;
114
- protected wantHiddenEdges(vp: Viewport): boolean;
115
- protected getSubEntityFilter(): SubEntityFilter | undefined;
116
- protected pickSubEntities(id: Id64String, boresite: Ray3d, maxFace: number, maxEdge: number, maxVertex: number, maxDistance: number, hiddenEdgesVisible: boolean, filter?: SubEntityFilter): Promise<SubEntityLocationProps[] | undefined>;
117
- protected doPickSubEntities(id: Id64String, ev: BeButtonEvent): Promise<SubEntityLocationProps[] | undefined>;
118
- protected createSubEntityData(id: Id64String, hit: SubEntityLocationProps): Promise<SubEntityData>;
119
- /** Append specified sub-entity to accepted array. */
120
- protected addSubEntity(id: Id64String, props: SubEntityLocationProps): Promise<void>;
121
- /** Remove specified sub-entity from accepted array, or pop last sub-entity if undefined. */
122
- protected removeSubEntity(_id: Id64String, props?: SubEntityLocationProps): Promise<void>;
123
- /** Locate sub-entities for the most recently added (last) agenda entry. Tool sub-classes that wish to identity
124
- * sub-entities from multiple elements are responsible for maintaining the sub-entities per-element.
125
- */
126
- protected doLocateSubEntity(ev: BeButtonEvent, newSearch: boolean): Promise<boolean>;
127
- protected chooseNextHit(ev: BeButtonEvent): Promise<EventHandled>;
128
- protected get wantAdditionalSubEntities(): boolean;
129
- protected gatherInput(ev: BeButtonEvent): Promise<EventHandled | undefined>;
130
- protected getCurrentElement(): Id64String | undefined;
131
- protected clearCurrentSubEntity(): void;
132
- protected setCurrentSubEntity(id: Id64String, hit: SubEntityLocationProps, chordTolerance?: number): Promise<boolean>;
133
- protected changeCurrentSubEntity(id?: Id64String, current?: SubEntityLocationProps, chordTolerance?: number): Promise<boolean>;
134
- protected updateCurrentSubEntity(ev: BeButtonEvent): Promise<boolean>;
135
- protected createSubEntityGraphic(id: Id64String, data: SubEntityData, chordTolerance?: number): Promise<boolean>;
136
- protected updateGraphic(ev: BeButtonEvent, isDynamics: boolean): Promise<void>;
137
- protected getGraphicData(ev: BeButtonEvent): Promise<Uint8Array | undefined>;
138
- protected applyAgendaOperation(_ev: BeButtonEvent, _isAccept: boolean): Promise<ElementGeometryResultProps | undefined>;
139
- processAgenda(ev: BeButtonEvent): Promise<void>;
140
- onModifierKeyTransition(wentDown: boolean, modifier: BeModifierKeys, event: KeyboardEvent): Promise<EventHandled>;
141
- changeLocateState(enableLocate: boolean, enableSnap?: boolean, cursor?: string, coordLockOvr?: CoordinateLockOverrides): void;
142
- protected get shouldEnableSnap(): boolean;
143
- protected setupAccuDraw(): void;
144
- protected setupAndPromptForNextAction(): void;
145
- protected clearSubEntityGraphics(): void;
146
- onCleanup(): Promise<void>;
147
- }
1
+ /** @packageDocumentation
2
+ * @module Editing
3
+ */
4
+ import { Id64Arg, Id64String } from "@itwin/core-bentley";
5
+ import { FeatureAppearance } from "@itwin/core-common";
6
+ import { BeButtonEvent, BeModifierKeys, CoordinateLockOverrides, DecorateContext, DynamicsContext, ElementSetTool, EventHandled, FeatureOverrideProvider, FeatureSymbology, GraphicBranchOptions, GraphicType, HitDetail, IModelConnection, LocateResponse, RenderGraphicOwner, SelectionMethod, SelectionSet, ToolAssistanceInstruction, Viewport } from "@itwin/core-frontend";
7
+ import { Point3d, Ray3d, Transform } from "@itwin/core-geometry";
8
+ import { BRepEntityType, ElementGeometryCacheFilter, ElementGeometryResultProps, SubEntityFilter, SubEntityGeometryProps, SubEntityLocationProps, SubEntityProps, SubEntityType } from "@itwin/editor-common";
9
+ /** @alpha */
10
+ export declare class ElementGeometryGraphicsProvider {
11
+ readonly iModel: IModelConnection;
12
+ graphic?: RenderGraphicOwner;
13
+ constructor(iModel: IModelConnection);
14
+ /** Call to request a RenderGraphic for the supplied graphic data.
15
+ * @see [[cleanupGraphic]] Must be called when the tool exits.
16
+ */
17
+ createGraphic(graphicData: Uint8Array): Promise<boolean>;
18
+ /** Call to dispose of [[RenderGraphic]] held by [[RenderGraphicOwner]].
19
+ * @note Must be called when the tool exits to avoid leaks of graphics memory or other webgl resources.
20
+ */
21
+ cleanupGraphic(): void;
22
+ addGraphic(context: DynamicsContext, transform?: Transform, opts?: GraphicBranchOptions): void;
23
+ addDecoration(context: DecorateContext, type: GraphicType, transform?: Transform, opts?: GraphicBranchOptions): void;
24
+ }
25
+ /** @alpha */
26
+ export declare function isSameSubEntity(a: SubEntityProps, b: SubEntityProps): boolean;
27
+ /** @alpha */
28
+ export declare class SubEntityData {
29
+ toolData?: any;
30
+ chordTolerance?: number;
31
+ private _props;
32
+ private _geometry?;
33
+ private _graphicsProvider?;
34
+ constructor(props: SubEntityProps);
35
+ get props(): SubEntityProps;
36
+ set props(value: SubEntityProps);
37
+ get geometry(): SubEntityGeometryProps | undefined;
38
+ set geometry(value: SubEntityGeometryProps | undefined);
39
+ isSame(other: SubEntityProps): boolean;
40
+ getAppearance(vp: Viewport, accepted: boolean): FeatureAppearance;
41
+ createGraphic(iModel: IModelConnection): Promise<boolean>;
42
+ cleanupGraphic(): void;
43
+ get hasGraphic(): boolean;
44
+ display(context: DecorateContext, accepted: boolean): void;
45
+ }
46
+ /** @alpha Base class for tools that want to use the backend geometry cache. */
47
+ export declare abstract class ElementGeometryCacheTool extends ElementSetTool implements FeatureOverrideProvider {
48
+ protected _startedCmd?: string;
49
+ protected readonly _checkedIds: Map<string, boolean>;
50
+ protected _graphicsProvider?: ElementGeometryGraphicsProvider;
51
+ protected _graphicsPending?: true;
52
+ protected _firstResult: boolean;
53
+ protected _agendaAppearanceDefault?: FeatureAppearance;
54
+ protected _agendaAppearanceDynamic?: FeatureAppearance;
55
+ protected allowView(vp: Viewport): boolean;
56
+ isCompatibleViewport(vp: Viewport | undefined, isSelectedViewChange: boolean): boolean;
57
+ protected startCommand(): Promise<string>;
58
+ protected agendaAppearance(isDynamics: boolean): FeatureAppearance;
59
+ protected get wantAgendaAppearanceOverride(): boolean;
60
+ addFeatureOverrides(overrides: FeatureSymbology.Overrides, _vp: Viewport): void;
61
+ protected updateAgendaAppearanceProvider(drop?: true): void;
62
+ protected get geometryCacheFilter(): ElementGeometryCacheFilter | undefined;
63
+ protected onGeometryCacheFilterChanged(): void;
64
+ protected createElementGeometryCache(id: Id64String): Promise<boolean>;
65
+ protected acceptElementForOperation(id: Id64String): Promise<boolean>;
66
+ protected isElementValidForOperation(hit: HitDetail, out?: LocateResponse): Promise<boolean>;
67
+ protected postFilterIds(arg: Id64Arg): Promise<Id64Arg>;
68
+ protected getGroupIds(id: Id64String): Promise<Id64Arg>;
69
+ protected getSelectionSetCandidates(ss: SelectionSet): Promise<Id64Arg>;
70
+ protected getDragSelectCandidates(vp: Viewport, origin: Point3d, corner: Point3d, method: SelectionMethod, overlap: boolean): Promise<Id64Arg>;
71
+ onDynamicFrame(_ev: BeButtonEvent, context: DynamicsContext): void;
72
+ onMouseMotion(ev: BeButtonEvent): Promise<void>;
73
+ protected getGraphicData(_ev: BeButtonEvent): Promise<Uint8Array | undefined>;
74
+ protected updateGraphic(ev: BeButtonEvent, isDynamics: boolean): Promise<void>;
75
+ protected createGraphic(graphicData: Uint8Array): Promise<void>;
76
+ protected clearGraphic(): void;
77
+ protected clearElementGeometryCache(): Promise<void>;
78
+ onUnsuspend(): Promise<void>;
79
+ onSuspend(): Promise<void>;
80
+ onPostInstall(): Promise<void>;
81
+ onCleanup(): Promise<void>;
82
+ }
83
+ /** @alpha Base class for tools that need to locate faces, edges, and vertices. */
84
+ export declare abstract class LocateSubEntityTool extends ElementGeometryCacheTool {
85
+ protected _currentSubEntity?: SubEntityData;
86
+ protected _acceptedSubEntities: SubEntityData[];
87
+ protected _locatedSubEntities?: SubEntityLocationProps[];
88
+ protected _subEntityGraphicPending?: true;
89
+ protected readonly _summaryIds: Map<string, BRepEntityType[]>;
90
+ protected provideToolAssistance(mainInstrText?: string, additionalInstr?: ToolAssistanceInstruction[]): void;
91
+ protected get wantAgendaAppearanceOverride(): boolean;
92
+ protected get wantGeometrySummary(): boolean;
93
+ protected get wantSubEntitySnap(): boolean;
94
+ protected wantSubEntityType(type: SubEntityType): boolean;
95
+ protected getMaximumSubEntityHits(type: SubEntityType): number;
96
+ protected get requiredSubEntityCount(): number;
97
+ protected get haveAcceptedSubEntities(): boolean;
98
+ protected get inhibitSubEntityDisplay(): boolean;
99
+ protected get allowSubEntityControlSelect(): boolean;
100
+ protected get allowSubEntityControlDeselect(): boolean;
101
+ protected get allowSubEntitySelectNext(): boolean;
102
+ protected getBRepEntityTypeForSubEntity(id: Id64String, subEntity: SubEntityProps): BRepEntityType;
103
+ protected createElementGeometrySummary(id: Id64String): Promise<boolean>;
104
+ protected createElementGeometryCache(id: Id64String): Promise<boolean>;
105
+ protected getAcceptedSubEntityData(index?: number): SubEntityData | undefined;
106
+ protected getAcceptedSubEntities(): SubEntityProps[];
107
+ protected drawSubEntity(context: DecorateContext, subEntity: SubEntityData, accepted: boolean): void;
108
+ protected drawAcceptedSubEntities(context: DecorateContext): void;
109
+ decorate(context: DecorateContext): void;
110
+ decorateSuspended(context: DecorateContext): void;
111
+ protected getLocateAperture(ev: BeButtonEvent): number;
112
+ protected getMaxRayDistance(ev: BeButtonEvent, aperture: number): number;
113
+ protected getRayOrigin(ev: BeButtonEvent): Point3d;
114
+ protected wantHiddenEdges(vp: Viewport): boolean;
115
+ protected getSubEntityFilter(): SubEntityFilter | undefined;
116
+ protected pickSubEntities(id: Id64String, boresite: Ray3d, maxFace: number, maxEdge: number, maxVertex: number, maxDistance: number, hiddenEdgesVisible: boolean, filter?: SubEntityFilter): Promise<SubEntityLocationProps[] | undefined>;
117
+ protected doPickSubEntities(id: Id64String, ev: BeButtonEvent): Promise<SubEntityLocationProps[] | undefined>;
118
+ protected createSubEntityData(id: Id64String, hit: SubEntityLocationProps): Promise<SubEntityData>;
119
+ /** Append specified sub-entity to accepted array. */
120
+ protected addSubEntity(id: Id64String, props: SubEntityLocationProps): Promise<void>;
121
+ /** Remove specified sub-entity from accepted array, or pop last sub-entity if undefined. */
122
+ protected removeSubEntity(_id: Id64String, props?: SubEntityLocationProps): Promise<void>;
123
+ /** Locate sub-entities for the most recently added (last) agenda entry. Tool sub-classes that wish to identity
124
+ * sub-entities from multiple elements are responsible for maintaining the sub-entities per-element.
125
+ */
126
+ protected doLocateSubEntity(ev: BeButtonEvent, newSearch: boolean): Promise<boolean>;
127
+ protected chooseNextHit(ev: BeButtonEvent): Promise<EventHandled>;
128
+ protected get wantAdditionalSubEntities(): boolean;
129
+ protected gatherInput(ev: BeButtonEvent): Promise<EventHandled | undefined>;
130
+ protected getCurrentElement(): Id64String | undefined;
131
+ protected clearCurrentSubEntity(): void;
132
+ protected setCurrentSubEntity(id: Id64String, hit: SubEntityLocationProps, chordTolerance?: number): Promise<boolean>;
133
+ protected changeCurrentSubEntity(id?: Id64String, current?: SubEntityLocationProps, chordTolerance?: number): Promise<boolean>;
134
+ protected updateCurrentSubEntity(ev: BeButtonEvent): Promise<boolean>;
135
+ protected createSubEntityGraphic(id: Id64String, data: SubEntityData, chordTolerance?: number): Promise<boolean>;
136
+ protected updateGraphic(ev: BeButtonEvent, isDynamics: boolean): Promise<void>;
137
+ protected getGraphicData(ev: BeButtonEvent): Promise<Uint8Array | undefined>;
138
+ protected applyAgendaOperation(_ev: BeButtonEvent, _isAccept: boolean): Promise<ElementGeometryResultProps | undefined>;
139
+ processAgenda(ev: BeButtonEvent): Promise<void>;
140
+ onModifierKeyTransition(wentDown: boolean, modifier: BeModifierKeys, event: KeyboardEvent): Promise<EventHandled>;
141
+ changeLocateState(enableLocate: boolean, enableSnap?: boolean, cursor?: string, coordLockOvr?: CoordinateLockOverrides): void;
142
+ protected get shouldEnableSnap(): boolean;
143
+ protected setupAccuDraw(): void;
144
+ protected setupAndPromptForNextAction(): void;
145
+ protected clearSubEntityGraphics(): void;
146
+ onCleanup(): Promise<void>;
147
+ }
148
148
  //# sourceMappingURL=ElementGeometryTool.d.ts.map