import { type EventsHandler } from '../../Events'; import type { CoordinatesType, IGeometryStyle } from "../../entity/Geometry"; import type { IGeoObjectParams } from "../../entity/GeoObject"; import type { IPolylineParams } from "../../entity/Polyline"; import { Entity } from '../../entity/Entity'; import type { IMouseState } from "../../renderer/RendererEvents"; import { Planet } from '../../scene/Planet'; import { RenderNode } from '../../scene/RenderNode'; import { Vec2 } from '../../math/Vec2'; import { Vec3 } from '../../math/Vec3'; import { Vector } from '../../layer/Vector'; type PolygonDrawingSceneEventsList = ["change", "startpoint"]; export interface IPolygonDrawingSceneParams { coordinates?: CoordinatesType[]; cornerStyle?: IGeoObjectParams; centerStyle?: IGeoObjectParams; outlineStyle?: IPolylineParams; fillStyle?: IGeometryStyle; name: string; } export declare const NUM_SEGMENTS = 200; export declare const OUTLINE_ALT = 0.3; declare class PolygonDrawingScene extends RenderNode { events: EventsHandler; _planet: Planet | null; _cornerStyle: IGeoObjectParams; _centerStyle: IGeoObjectParams; _outlineStyle: IPolylineParams; _fillStyle: IGeometryStyle; protected _initCoordinates: CoordinatesType[]; protected _pickedCorner: Entity | null; protected _pickedCenter: Entity | null; protected _startPos: Vec2 | null; protected _startClick: Vec2; protected _geometryLayer: Vector; protected _cornerLayer: Vector; protected _centerLayer: Vector; protected _outlineLayer: Vector; protected _ghostCorner: Entity; protected _ghostOutlineLayer: Vector; protected _showGhostPointer: boolean; protected _isStartPoint: boolean; protected _insertCornerIndex: number; protected _cornerDblClick: boolean; constructor(options: IPolygonDrawingSceneParams); get geometryType(): string; getCoordinates(): CoordinatesType[]; bindPlanet(planet: Planet): void; init(): void; protected _onChange: (e: PolygonDrawingScene) => void; onremove(): void; clear(): void; setCoordinates(coords: CoordinatesType[]): void; stopNewPoint(): void; startNewPoint(): void; showGhostPointer(): void; hideGhostPointer(): void; setGhostPointerPosition(groundPos: Vec3): void; protected _onCornerMouseEnter: (e: IMouseState) => void; _onCornerMouseLeave: (e: IMouseState) => void; _onCenterMouseEnter: (e: IMouseState) => void; _onCenterMouseLeave: (e: IMouseState) => void; protected _onLup: (e: IMouseState) => void; protected _getLdown(e: IMouseState): Entity | null; protected _onCornerLdown: (e: IMouseState) => void; protected _onCenterLdown: (e: IMouseState) => void; protected _onMouseMove: (e: IMouseState) => void; protected _onCornerLdblclick: (e: IMouseState) => void; protected _onMouseDblClick: (e: IMouseState) => void; protected _initEvents(): void; protected _clearEvents(): void; protected _drawCorners(): void; protected _drawCenters(): void; protected _drawGhostCorner(): void; frame(): void; protected _checkTerrainCollision(entity: Entity): void; protected _moveCenterPoint(): void; protected _addNew(cart: Vec3): void; protected _appendCart(cart: Vec3): void; protected _clearGhostPointer(): void; protected _moveCornerPoint(e: Vec2): void; protected _updateGhostOutlinePointer(groundPos: Vec3): void; protected _initGhostLayerPointer(): void; } export { PolygonDrawingScene };