Skip to content

Commit 00121e4

Browse files
Feature/feature tracking for sheet measurements (#1068)
* Added feature tracking * cleaner and more precise
1 parent fa1bda9 commit 00121e4

File tree

5 files changed

+40
-7
lines changed

5 files changed

+40
-7
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "patch",
3+
"comment": "fixed imports and naming",
4+
"packageName": "@itwin/measure-tools-react",
5+
"email": "email not defined",
6+
"dependentChangeType": "patch"
7+
}

packages/itwin/measure-tools/src/api/FeatureTracking.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,4 +216,24 @@ export class MeasureToolsFeatures {
216216
guid: "ef4bba9e-69f1-4f73-9db9-e176dd9335a4",
217217
};
218218
}
219+
220+
// Sheet measurement tools
221+
public static get Tools_MeasureDistance_createdInSheet(): Feature {
222+
return {
223+
name: "SMT_Tools_MeasureDistance_createdInSheet",
224+
guid: "f3fde39b-c9d6-488a-a39a-2a253ff106d5"
225+
}
226+
}
227+
public static get Tools_MeasureArea_createdInSheet(): Feature {
228+
return {
229+
name: "SMT_Tools_MeasureArea_createdInSheet",
230+
guid: "cd36e911-a472-4560-94e6-2128fd95f31c"
231+
}
232+
}
233+
public static get Tools_MeasureLocation_createdInSheet(): Feature {
234+
return {
235+
name: "SMT_Tools_MeasureLocation_createdInSheet",
236+
guid: "10237379-3f9f-4f4a-93f7-fe453cb730a6"
237+
}
238+
}
219239
}

packages/itwin/measure-tools/src/tools/MeasureAreaTool.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ import {
1919
ToolAssistanceInputMethod,
2020
} from "@itwin/core-frontend";
2121
import type { Feature } from "../api/FeatureTracking";
22-
import { MeasureToolsFeatures } from "../api/FeatureTracking";
22+
import { FeatureTracking, MeasureToolsFeatures } from "../api/FeatureTracking";
2323
import { MeasurementToolBase } from "../api/MeasurementTool";
2424
import { MeasurementViewTarget } from "../api/MeasurementViewTarget";
2525
import type { AreaMeasurement } from "../measurements/AreaMeasurement";
2626
import { MeasureAreaToolModel } from "../toolmodels/MeasureAreaToolModel";
2727
import { MeasureTools } from "../MeasureTools";
2828
import { SheetMeasurementsHelper } from "../api/SheetMeasurementHelper";
2929
import type { DrawingMetadata } from "../api/Measurement";
30-
import { DrawingDataCache } from "../api/DrawingTypeDataCache";
30+
import { ViewHelper } from "../api/ViewHelper";
3131

3232
export class MeasureAreaTool extends MeasurementToolBase<
3333
AreaMeasurement,
@@ -198,6 +198,8 @@ MeasureAreaToolModel
198198
): Promise<EventHandled> {
199199
// Attempt to close polygon
200200
if (this.toolModel.tryCommitMeasurement()) {
201+
if (this._enableSheetMeasurements && ev.viewport !== undefined && ViewHelper.isSheetView(ev.viewport))
202+
FeatureTracking.notifyFeature(MeasureToolsFeatures.Tools_MeasureDistance_createdInSheet)
201203
await this.onReinitialize();
202204
return EventHandled.Yes;
203205
}

packages/itwin/measure-tools/src/tools/MeasureDistanceTool.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
ToolAssistanceInputMethod,
1919
} from "@itwin/core-frontend";
2020
import type { Feature } from "../api/FeatureTracking";
21-
import { MeasureToolsFeatures } from "../api/FeatureTracking";
21+
import { FeatureTracking, MeasureToolsFeatures } from "../api/FeatureTracking";
2222
import { MeasurementToolBase } from "../api/MeasurementTool";
2323
import { MeasurementViewTarget } from "../api/MeasurementViewTarget";
2424
import type { DistanceMeasurement } from "../measurements/DistanceMeasurement";
@@ -27,6 +27,7 @@ import { MeasureDistanceToolModel } from "../toolmodels/MeasureDistanceToolModel
2727
import { SheetMeasurementsHelper } from "../api/SheetMeasurementHelper";
2828
import type { DrawingMetadata } from "../api/Measurement";
2929
import { type DialogItem, type DialogItemValue, type DialogPropertySyncItem, PropertyDescriptionHelper } from "@itwin/appui-abstract";
30+
import { ViewHelper } from "../api/ViewHelper";
3031

3132
export class MeasureDistanceTool extends MeasurementToolBase<
3233
DistanceMeasurement,
@@ -100,6 +101,8 @@ MeasureDistanceToolModel
100101
MeasureDistanceToolModel.State.SetEndPoint === this.toolModel.currentState
101102
) {
102103
this.toolModel.setEndPoint(viewType, ev.point, false);
104+
if (this._enableSheetMeasurements && ViewHelper.isSheetView(ev.viewport))
105+
FeatureTracking.notifyFeature(MeasureToolsFeatures.Tools_MeasureDistance_createdInSheet)
103106
await this.onReinitialize();
104107

105108
// Trigger another button event to use as the start point of the next measurement

packages/itwin/measure-tools/src/tools/MeasureLocationTool.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import { GeoServiceStatus } from "@itwin/core-bentley";
7-
import type { CurvePrimitive } from "@itwin/core-geometry";
8-
import { GeometryQuery, IModelJson, Vector3d } from "@itwin/core-geometry";
7+
import { Vector3d } from "@itwin/core-geometry";
98
import { IModelError } from "@itwin/core-common";
109
import type {
1110
BeButtonEvent,
@@ -23,7 +22,7 @@ import {
2322
ToolAssistanceInputMethod,
2423
} from "@itwin/core-frontend";
2524
import type { Feature } from "../api/FeatureTracking";
26-
import { MeasureToolsFeatures } from "../api/FeatureTracking";
25+
import { FeatureTracking, MeasureToolsFeatures } from "../api/FeatureTracking";
2726
import { MeasurementToolBase } from "../api/MeasurementTool";
2827
import { MeasurementViewTarget } from "../api/MeasurementViewTarget";
2928
import type { LocationMeasurement } from "../measurements/LocationMeasurement";
@@ -34,7 +33,7 @@ import type { DialogItem, DialogItemValue, DialogPropertySyncItem } from "@itwin
3433
import { PropertyDescriptionHelper } from "@itwin/appui-abstract";
3534
import { SheetMeasurementsHelper } from "../api/SheetMeasurementHelper";
3635
import type { DrawingMetadata, DrawingMetadataProps } from "../api/Measurement";
37-
import { DrawingDataCache } from "../api/DrawingTypeDataCache";
36+
import { ViewHelper } from "../api/ViewHelper";
3837

3938
/** Tool that measure precise locations */
4039
export class MeasureLocationTool extends MeasurementToolBase<
@@ -92,6 +91,8 @@ MeasureLocationToolModel
9291

9392
const props = await this.createLocationProps(ev, true);
9493
this.toolModel.addLocation(props, false);
94+
if (this._enableSheetMeasurements && ViewHelper.isSheetView(ev.viewport))
95+
FeatureTracking.notifyFeature(MeasureToolsFeatures.Tools_MeasureDistance_createdInSheet)
9596
this.updateToolAssistance();
9697
return EventHandled.Yes;
9798
}

0 commit comments

Comments
 (0)