@itwin/measure-tools-react
Version:
Frontend framework and tools for measurements
207 lines • 9.37 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
* See LICENSE.md in the project root for license terms and full copyright notice.
*--------------------------------------------------------------------------------------------*/
import { IModelApp } from "@itwin/core-frontend";
import { SyncUiEventId, ToolItemDef } from "@itwin/appui-react";
import { MeasurementPreferences } from "../api/MeasurementPreferences.js";
import { MeasurementUIEvents } from "../api/MeasurementUIEvents.js";
import { ClearMeasurementsTool } from "./ClearMeasurementsTool.js";
import { MeasureAngleTool } from "./MeasureAngleTool.js";
import { MeasureAreaTool } from "./MeasureAreaTool.js";
import { MeasureDistanceTool } from "./MeasureDistanceTool.js";
import { MeasureLocationTool } from "./MeasureLocationTool.js";
import { MeasurePerpendicularTool } from "./MeasurePerpendicularTool.js";
import { MeasureRadiusTool } from "./MeasureRadiusTool.js";
import { ToggleDisplayMeasurementAxesTool } from "./ToggleDisplayMeasurementAxesTool.js";
import { MeasureTools } from "../MeasureTools.js";
import { ConditionalBooleanValue } from "@itwin/appui-abstract";
export class MeasureToolDefinitions {
/**
* @deprecated in 0.14.2 use getMeasureDistanceToolCommand instead
*/
static get measureDistanceToolCommand() {
return new ToolItemDef({
toolId: MeasureDistanceTool.toolId,
iconSpec: MeasureDistanceTool.iconSpec,
label: () => MeasureDistanceTool.flyover,
tooltip: () => MeasureDistanceTool.description,
execute: () => {
void IModelApp.tools.run(MeasureDistanceTool.toolId);
},
});
}
static getMeasureDistanceToolCommand(allowedViewportCallback = (() => true), enableSheetMeasurements) {
return new ToolItemDef({
toolId: MeasureDistanceTool.toolId,
iconSpec: MeasureDistanceTool.iconSpec,
label: () => MeasureDistanceTool.flyover,
tooltip: () => MeasureDistanceTool.description,
execute: () => {
const tool = new MeasureDistanceTool(enableSheetMeasurements, allowedViewportCallback);
void tool.run();
},
});
}
/**
* @deprecated in 0.14.2 use getMeasureAreaToolCommand instead
*/
static get measureAreaToolCommand() {
return new ToolItemDef({
toolId: MeasureAreaTool.toolId,
iconSpec: MeasureAreaTool.iconSpec,
label: () => MeasureAreaTool.flyover,
tooltip: () => MeasureAreaTool.description,
execute: () => {
void IModelApp.tools.run(MeasureAreaTool.toolId);
},
});
}
static getMeasureAreaToolCommand(allowedViewportCallback = (() => true), enableSheetMeasurements) {
return new ToolItemDef({
toolId: MeasureAreaTool.toolId,
iconSpec: MeasureAreaTool.iconSpec,
label: () => MeasureAreaTool.flyover,
tooltip: () => MeasureAreaTool.description,
execute: () => {
const tool = new MeasureAreaTool(enableSheetMeasurements, allowedViewportCallback);
void tool.run();
},
});
}
/**
* @deprecated in 0.15.0 use getMeasureLocationToolCommand instead
*/
static get measureLocationToolCommand() {
return new ToolItemDef({
toolId: MeasureLocationTool.toolId,
iconSpec: MeasureLocationTool.iconSpec,
label: () => MeasureLocationTool.flyover,
tooltip: () => MeasureLocationTool.description,
execute: () => {
void IModelApp.tools.run(MeasureLocationTool.toolId);
},
});
}
static getMeasureLocationToolCommand(allowedViewportCallback = (() => true), enableSheetMeasurements) {
return new ToolItemDef({
toolId: MeasureLocationTool.toolId,
iconSpec: MeasureLocationTool.iconSpec,
label: () => MeasureLocationTool.flyover,
tooltip: () => MeasureLocationTool.description,
execute: () => {
const tool = new MeasureLocationTool(enableSheetMeasurements, allowedViewportCallback);
void tool.run();
},
});
}
static get clearMeasurementsToolCommand() {
return new ToolItemDef({
toolId: ClearMeasurementsTool.toolId,
iconSpec: ClearMeasurementsTool.iconSpec,
isHidden: !MeasurementUIEvents.isClearMeasurementButtonVisible,
label: () => ClearMeasurementsTool.flyover,
tooltip: () => ClearMeasurementsTool.description,
execute: () => {
void IModelApp.tools.run(ClearMeasurementsTool.toolId);
},
});
}
static get toggleDisplayMeasurementAxesToolCommand() {
return new ToolItemDef({
toolId: ToggleDisplayMeasurementAxesTool.toolId,
iconSpec: ToggleDisplayMeasurementAxesTool.iconSpec,
isHidden: !MeasurementUIEvents.isToggleMeasurementAxesButtonVisible,
label: () => MeasurementPreferences.current.displayMeasurementAxes
? MeasureTools.localization.getLocalizedString("MeasureTools:Generic.hideMeasurementAxes")
: MeasureTools.localization.getLocalizedString("MeasureTools:Generic.displayMeasurementAxes"),
tooltip: () => MeasurementPreferences.current.displayMeasurementAxes
? MeasureTools.localization.getLocalizedString("MeasureTools:Generic.hideMeasurementAxes")
: MeasureTools.localization.getLocalizedString("MeasureTools:Generic.displayMeasurementAxes"),
execute: () => {
void IModelApp.tools.run(ToggleDisplayMeasurementAxesTool.toolId);
},
});
}
/**
* @deprecated in 0.23.1 use getMeasureRadiusToolCommand instead
*/
static get measureRadiusToolCommand() {
return new ToolItemDef({
toolId: MeasureRadiusTool.toolId,
iconSpec: MeasureRadiusTool.iconSpec,
label: () => MeasureRadiusTool.flyover,
tooltip: () => MeasureRadiusTool.description,
execute: () => {
void IModelApp.tools.run(MeasureRadiusTool.toolId);
},
});
}
static getMeasureRadiusToolCommand(allowedViewportCallback = (() => true)) {
return new ToolItemDef({
toolId: MeasureRadiusTool.toolId,
iconSpec: MeasureRadiusTool.iconSpec,
label: () => MeasureRadiusTool.flyover,
tooltip: () => MeasureRadiusTool.description,
execute: () => {
const tool = new MeasureRadiusTool(allowedViewportCallback);
void tool.run();
},
});
}
/**
* @deprecated in 0.23.1 use getMeasureRadiusToolCommand instead
*/
static get measureAngleToolCommand() {
return new ToolItemDef({
toolId: MeasureAngleTool.toolId,
iconSpec: MeasureAngleTool.iconSpec,
label: () => MeasureAngleTool.flyover,
tooltip: () => MeasureAngleTool.description,
execute: () => {
void IModelApp.tools.run(MeasureAngleTool.toolId);
},
});
}
static getMeasureAngleToolCommand(allowedViewportCallback = (() => true)) {
return new ToolItemDef({
toolId: MeasureAngleTool.toolId,
iconSpec: MeasureAngleTool.iconSpec,
label: () => MeasureAngleTool.flyover,
tooltip: () => MeasureAngleTool.description,
execute: () => {
const tool = new MeasureAngleTool(allowedViewportCallback);
void tool.run();
},
});
}
/**
* @deprecated in 0.23.1 use getMeasureRadiusToolCommand instead
*/
static get measurePerpendicularToolCommand() {
return new ToolItemDef({
toolId: MeasurePerpendicularTool.toolId,
iconSpec: MeasurePerpendicularTool.iconSpec,
label: () => MeasurePerpendicularTool.flyover,
tooltip: () => MeasurePerpendicularTool.description,
isHidden: new ConditionalBooleanValue(() => !!IModelApp.viewManager.selectedView?.view?.is2d(), [SyncUiEventId.ViewStateChanged]),
execute: () => {
void IModelApp.tools.run(MeasurePerpendicularTool.toolId);
},
});
}
static getMeasurePerpendicularToolCommand(allowedViewportCallback = (() => true)) {
return new ToolItemDef({
toolId: MeasurePerpendicularTool.toolId,
iconSpec: MeasurePerpendicularTool.iconSpec,
label: () => MeasurePerpendicularTool.flyover,
tooltip: () => MeasurePerpendicularTool.description,
isHidden: new ConditionalBooleanValue(() => !!IModelApp.viewManager.selectedView?.view?.is2d(), [SyncUiEventId.ViewStateChanged]),
execute: () => {
const tool = new MeasurePerpendicularTool(allowedViewportCallback);
void tool.run();
},
});
}
}
//# sourceMappingURL=MeasureToolDefinitions.js.map