UNPKG

@orca-fe/x-map

Version:
37 lines (36 loc) 1.5 kB
import { Color, MaterialParameters, Mesh, RawShaderMaterial, Shape } from 'three'; import { LineMaterial, LineMaterialParameters } from 'three/examples/jsm/lines/LineMaterial'; import { Line2 } from 'three/examples/jsm/lines/Line2'; import { MultiPolygon, Polygon } from '@turf/turf'; import ThreeObject, { ThreeObjectOptions } from './ThreeObject'; export interface PolygonParams extends ThreeObjectOptions { polygonGeoJson?: MultiPolygon | Polygon; border?: LineMaterialParameters; fill?: { color: Color | string | number; opacity?: number; }; polygonMaterialParameters?: MaterialParameters; } export default class PolygonObject extends ThreeObject { protected readonly polygonMaterial: RawShaderMaterial; protected readonly lineMaterial?: LineMaterial; protected polygonGeoJson?: MultiPolygon | Polygon; object3D: Mesh<import("three").BufferGeometry, import("three").Material | import("three").Material[]>; constructor(options?: PolygonParams); protected createNormalPolygonShape(polygonJson: Polygon): { shape: Shape; line?: undefined; } | { shape: Shape; line: Line2 | undefined; }; createObject(): void; setPolygon(polygon: PolygonParams['polygonGeoJson']): void; updatePosition(): void; updateBorder(border: LineMaterialParameters): void; updateFill(fill: { color: Color | string | number; opacity: number; }): void; }