@orca-fe/x-map
Version:
40 lines (39 loc) • 1.38 kB
TypeScript
import { RawShaderMaterial, Color, Mesh } from 'three';
import { LineMaterial, LineMaterialParameters } from 'three/examples/jsm/lines/LineMaterial';
import { Units } from '@turf/turf';
import ThreeObject, { ThreeObjectOptions } from './ThreeObject';
import { Point } from '../../defs';
export interface CircleObjectParams extends ThreeObjectOptions {
border?: LineMaterialParameters;
fill?: {
color?: Color | string | number;
opacity?: number;
};
center: Point;
radius?: number;
config?: {
steps?: number;
units?: Units;
};
}
export default class CircleObject extends ThreeObject {
object3D: Mesh<import("three").BufferGeometry, import("three").Material | import("three").Material[]>;
protected center: Point;
protected radius: number;
protected readonly config: {
steps?: number;
units?: Units;
};
protected readonly circleMaterial: RawShaderMaterial;
protected readonly lineMaterial?: LineMaterial;
constructor(options: CircleObjectParams);
createObject(): void;
updatePosition(): void;
updateBorder(border: LineMaterialParameters): void;
updateFill(fill: {
color: Color | string | number;
opacity: number;
}): void;
updateCenter(center: Point): void;
updateRadius(radius: number): void;
}