UNPKG

resium

Version:

React components for Cesium

71 lines (60 loc) 1.74 kB
import { PolylineVolumeGraphics as CesiumPolylineVolumeGraphics } from "cesium"; import { createCesiumComponent, EventkeyMap, PickCesiumProps, Merge } from "../core"; /* @summary `PolylineVolumeGraphics` is a polyline visualization with volume for the entity. */ /* @scope PolylineVolumeGraphics can be mounted only inside[Entity](/components/Entity) components, and can not be mounted more than once for each entity. */ export type PolylineVolumeGraphicsCesiumProps = PickCesiumProps< Merge<CesiumPolylineVolumeGraphics, CesiumPolylineVolumeGraphics.ConstructorOptions>, typeof cesiumProps >; export type PolylineVolumeGraphicsCesiumEvents = { onDefinitionChange?: () => void; }; export type PolylineVolumeGraphicsProps = PolylineVolumeGraphicsCesiumProps & PolylineVolumeGraphicsCesiumEvents; const cesiumProps = [ "positions", "shape", "cornerType", "show", "fill", "material", "outline", "outlineColor", "outlineWidth", "granularity", "shadows", "distanceDisplayCondition", ] as const; export const cesiumEventProps: EventkeyMap< CesiumPolylineVolumeGraphics, PolylineVolumeGraphicsCesiumEvents > = { onDefinitionChange: "definitionChanged", }; const PolylineVolumeGraphics = createCesiumComponent< CesiumPolylineVolumeGraphics, PolylineVolumeGraphicsProps >({ name: "PolylineVolumeGraphics", create(context, props) { if (!context.entity) return; const element = new CesiumPolylineVolumeGraphics(props); context.entity.polylineVolume = element; return element; }, destroy(_contextelement, context) { if (context.entity) { context.entity.polylineVolume = undefined; } }, cesiumProps, cesiumEventProps, }); export default PolylineVolumeGraphics;