@openglobus/og
Version:
[openglobus](https://www.openglobus.org/) is a javascript/typescript library designed to display interactive 3d maps and planets with map tiles, imagery and vector data, markers, and 3D objects. It uses the WebGL technology, open source, and completely fr
86 lines (85 loc) • 3.58 kB
TypeScript
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<PolygonDrawingSceneEventsList>;
_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 };