@orca-fe/x-map
Version:
37 lines (36 loc) • 1.5 kB
TypeScript
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;
}