import * as Cesium from 'cesium'; import { Cartesian2, Cartesian3, Entity } from 'cesium'; import DrawingFeature, { DrawingShape } from './drawingFeature.js'; import MapComponent from '../map/component.js'; import IGirafeContext from '../../tools/context/icontext.js'; export default class CesiumDrawing { toolName: string; activeShapePoints: Cartesian3[]; activeShapes: Entity[]; floatingPoint: Entity | undefined; scene: Cesium.Scene | undefined; handler: Cesium.ScreenSpaceEventHandler | undefined; entities: Cesium.EntityCollection | undefined; fixedLineLength: number; private readonly context; private get state(); private get drawingState(); private get config(); constructor(map: MapComponent, toolName: string, context: IGirafeContext); setFixedLineLength(length: number): void; activateTool(tool: DrawingShape): void; deactivateTool(): void; pickOnGlobe(position: Cartesian2): Cesium.Cartesian3 | undefined; removeLastPointAndTerminateShape(tool: DrawingShape): () => void; terminateShape(tool: DrawingShape): void; fixLastLength(tool: DrawingShape, length: number, coord: Cartesian3[]): void; updateShape(tool: DrawingShape): (event: Cesium.ScreenSpaceEventHandler.MotionEvent) => void; addPoint(tool: DrawingShape): (event: Cesium.ScreenSpaceEventHandler.PositionedEvent) => void; leveledCenterToMouse(pos: Cartesian3[]): Cesium.Cartesian3; makeRectangle(pos: Cartesian3[]): Cesium.Cartesian3[]; makeRegularPolygon(center: Cartesian3, firstPosition: Cartesian3, nbEdges: number): Cesium.Cartesian3[]; getShapes(tool: DrawingShape, pos: Cartesian3[], feature: DrawingFeature): Cesium.Entity[]; registerInteractions(): void; unregisterInteractions(): void; private canExecute; private getPosition; private getLength; private createLabel; private createPoint; private getPolygonCenter; private getPolyLineLabels; private getPolygonArea; private getPolyline; private getPolygonEntity; }