UNPKG

@dp_unity/dpu-gis-viewer

Version:

DPU GIS Viewer version Beta

140 lines (139 loc) 4.23 kB
import { Cartesian3, Color, Viewer } from "cesium"; export declare const GIZMO_STYLE: { RING_RADIUS: number; ARROW_WIDTH: number; ARROW_WIDTH_HOVER: number; RING_WIDTH: number; RING_WIDTH_HOVER: number; SCALE_FACTOR_ARROW: number; SCALE_FACTOR_PLANE: number; COLOR_PLANE: Color; COLOR_PLANE_OUTLINE: Color; COLOR_ARROW_X: Color; COLOR_ARROW_Y: Color; COLOR_ARROW_Z: Color; COLOR_RING_X: Color; COLOR_RING_Y: Color; COLOR_RING_Z: Color; COLOR_ARROW_X_HOVER: Color; COLOR_ARROW_Y_HOVER: Color; COLOR_ARROW_Z_HOVER: Color; COLOR_RING_X_HOVER: Color; COLOR_RING_Y_HOVER: Color; COLOR_RING_Z_HOVER: Color; }; export declare const GIZMO_IDS: { PLANE: string; PLANE_OUTLINE: string; ARROW_X: string; ARROW_Y: string; ARROW_Z: string; RING_X: string; RING_Y: string; RING_Z: string; }; export declare const GIZMO_MATH: { EARTH_RADIUS_OFFSET: number; RING_SEGMENTS: number; DENOMINATOR_TOLERANCE: number; NORMAL_TOLERANCE: number; SCREEN_DRAG_SCALE: number; }; export declare class ClippingPlaneCesium { private _viewer; private _handler; private _planePrimitive; private _planeOutlinePrimitive; private _arrowXPrimitive; private _arrowXHoverPrimitive; private _arrowYPrimitive; private _arrowYHoverPrimitive; private _arrowZPrimitive; private _arrowZHoverPrimitive; private _ringXPrimitive; private _ringXHoverPrimitive; private _ringYPrimitive; private _ringYHoverPrimitive; private _ringZPrimitive; private _ringZHoverPrimitive; private _removeListener; private _isActive; private _activeDragAxis; private _hoveredAxis; private _dragNormal; private _dragStartBasePosition; private _dragStartNormal; private _dragStartRotation; private _dragStartPlanePosition; private _basePosition; private _normal; private _planeRotation; private _isDragging; private _dragStartMousePosition; private _dragStartHeight; private _dragStartS; private _dragStartAngle2D; private _currentHeight; private _planePosition; private _primitiveInverseMatrices; private _mode; private _isGizmoVisible; private _isInteractionPaused; private _savedBasePosition; private _savedPlanePosition; private _savedPlaneRotation; private _savedNormal; private _savedCurrentHeight; private _savedMode; private _justRestoredState; private _isClippingActive; private _containerId; private _statusStackItem; onPositionPlaced?: () => void; constructor(input: { viewer: Viewer; containerId: string; }); setInteractionPaused: (paused: boolean) => void; private _saveGizmoState; /** * Restores the gizmo state from saved values. */ private _restoreGizmoState; private _getRotatedLocalAxes; private _getLocalRingPoints; private _removeGizmoPrimitives; private _createPolylineGizmo; private _updateGizmoModelMatrix; /** * Recreates gizmo visuals and reinitializes clipping using current state * (without recalculating rotation/normal - used when restoring saved state) */ private _recreateGizmoVisualsAndClipping; /** * Finds all primitives in the scene that can be clipped (Model or Cesium3DTileset), * including nested ones. */ private _findAllClippablePrimitives; /** * Initializes or toggles the clipping plane interaction. */ createClipping: () => void; private _setupMouseHandlers; /** * Applies a horizontal clipping plane at the specified world position * and clips all models and 3D Tilesets in the scene. */ applyClippingPlane: (position: Cartesian3) => void; private _initClippingForPrimitive; private _syncClippablePrimitives; /** * Clears all clipping planes and removes visual representations from the scene. */ deactivate: () => void; setMode: (mode: "up" | "east" | "north") => void; getMode: () => "up" | "east" | "north"; showHideGizmo: (show: boolean) => void; getGizmoVisibility: () => boolean; resetClipping: () => void; }