@dp_unity/dpu-gis-viewer
Version:
DPU GIS Viewer version Beta
140 lines (139 loc) • 4.23 kB
TypeScript
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;
}