UNPKG

@itwin/measure-tools-react

Version:
78 lines 3.49 kB
/*--------------------------------------------------------------------------------------------- * 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 { MeasureDistanceTool } from "./tools/MeasureDistanceTool.js"; import { MeasureAreaTool } from "./tools/MeasureAreaTool.js"; import { MeasureLocationTool } from "./tools/MeasureLocationTool.js"; import { ClearMeasurementsTool } from "./tools/ClearMeasurementsTool.js"; import { ToggleDisplayMeasurementAxesTool } from "./tools/ToggleDisplayMeasurementAxesTool.js"; import { MeasurementManager } from "./api/MeasurementManager.js"; import { MeasureRadiusTool } from "./tools/MeasureRadiusTool.js"; import { MeasureAngleTool } from "./tools/MeasureAngleTool.js"; import { MeasurePerpendicularTool } from "./tools/MeasurePerpendicularTool.js"; import { DrawingDataCache } from "./api/DrawingTypeDataCache.js"; export class MeasureTools { static get isInitialized() { return MeasureTools._isInitialized; } static get localization() { return MeasureTools._localization; } static get featureFlags() { return MeasureTools._featureFlags; } static async startup(options) { if (MeasureTools.isInitialized) return; MeasureTools._localization = options?.localization ?? IModelApp.localization; await MeasureTools._localization.registerNamespace(MeasureTools._i18nNamespace); const { featureFlags } = options ?? {}; MeasureTools._featureFlags = featureFlags; const toolsToRegister = []; if (!featureFlags?.hideDistanceTool) { toolsToRegister.push(MeasureDistanceTool); } if (!featureFlags?.hideDistanceTool) { toolsToRegister.push(MeasureDistanceTool); } if (!featureFlags?.hideAreaTool) { toolsToRegister.push(MeasureAreaTool); } if (!featureFlags?.hideLocationTool) { toolsToRegister.push(MeasureLocationTool); } if (!featureFlags?.hideRadiusTool) { toolsToRegister.push(MeasureRadiusTool); } if (!featureFlags?.hideAngleTool) { toolsToRegister.push(MeasureAngleTool); } if (!featureFlags?.hidePerpendicularTool) { toolsToRegister.push(MeasurePerpendicularTool); } if (!featureFlags?.hideToggleDisplayAxesTool) { toolsToRegister.push(ToggleDisplayMeasurementAxesTool); } if (toolsToRegister.length > 0) { toolsToRegister.push(ClearMeasurementsTool); } for (const tool of toolsToRegister) { tool.register(MeasureTools._i18nNamespace); } // Register measurement decoration MeasurementManager.instance.startDecorator(); // Initialize the measurementDrawingDataCache DrawingDataCache.getInstance(); MeasureTools._isInitialized = true; } /** Unregisters internationalization service namespace and UiItemManager */ static terminate() { IModelApp.localization.unregisterNamespace(MeasureTools._i18nNamespace); } } MeasureTools._isInitialized = false; MeasureTools._i18nNamespace = "MeasureTools"; //# sourceMappingURL=MeasureTools.js.map