UNPKG

resium

Version:

React components for Cesium

65 lines (54 loc) 1.55 kB
import { PolylineGraphics as CesiumPolylineGraphics } from "cesium"; import { createCesiumComponent, PickCesiumProps, Merge } from "../core"; /* @summary `PolylineGraphics` is a polyline visualization for the entity. */ /* @scope PolylineGraphics can be mounted only inside[Entity](/components/Entity) components, and can not be mounted more than once for each entity. */ export type PolylineGraphicsCesiumProps = PickCesiumProps< Merge<CesiumPolylineGraphics, CesiumPolylineGraphics.ConstructorOptions>, typeof cesiumProps >; export type PolylineGraphicsCesiumEvents = { onDefinitionChange?: () => void; }; export type PolylineGraphicsProps = PolylineGraphicsCesiumProps & PolylineGraphicsCesiumEvents; const cesiumProps = [ "arcType", "classificationType", "positions", "followSurface", "clampToGround", "width", "show", "material", "depthFailMaterial", "granularity", "shadows", "distanceDisplayCondition", "zIndex", ] as const; export const cesiumEventProps = { onDefinitionChange: "definitionChanged", } as const; const PolylineGraphics = createCesiumComponent<CesiumPolylineGraphics, PolylineGraphicsProps>({ name: "PolylineGraphics", create(context, props) { if (!context.entity) return; const element = new CesiumPolylineGraphics(props); context.entity.polyline = element; return element; }, destroy(_element, context) { if (context.entity) { context.entity.polyline = undefined; } }, cesiumProps, cesiumEventProps, }); export default PolylineGraphics;