import { Class } from 'ts-browser-helpers'; import { AViewerPluginSync, ThreeViewer } from '../../viewer'; import { BufferGeometry2 } from '../../core/geometry/BufferGeometry2'; import { IGeometry } from '../../core/IGeometry'; import { IMaterial } from '../../core/IMaterial'; import { IMesh, IObject3D, IObject3DEventMap } from '../../core/IObject'; import { ISceneEventMap } from '../../core/IScene'; import { TorusGeometryGenerator } from './primitives/TorusGeometryGenerator'; import { CircleGeometryGenerator } from './primitives/CircleGeometryGenerator'; import { BoxGeometryGenerator } from './primitives/BoxGeometryGenerator'; import { SphereGeometryGenerator } from './primitives/SphereGeometryGenerator'; import { PlaneGeometryGenerator } from './primitives/PlaneGeometryGenerator'; import { CylinderGeometryGenerator } from './primitives/CylinderGeometryGenerator'; import { TubeGeometryGenerator } from './primitives/TubeGeometryGenerator'; import { ShapeGeometryGenerator } from './primitives/ShapeGeometryGenerator'; import { TubeShapeGeometryGenerator } from './primitives/TubeShapeGeometryGenerator'; import { LineGeometryGenerator } from './primitives/LineGeometryGenerator'; import { AGeometryGenerator } from './AGeometryGenerator'; export interface IGeometryGeneratorMap extends Record { plane: PlaneGeometryGenerator; sphere: SphereGeometryGenerator; box: BoxGeometryGenerator; circle: CircleGeometryGenerator; torus: TorusGeometryGenerator; cylinder: CylinderGeometryGenerator; tube: TubeGeometryGenerator; shape: ShapeGeometryGenerator; tubeShape: TubeShapeGeometryGenerator; line: LineGeometryGenerator; } /** * GeometryGeneratorPlugin * * Geometry generator plugin to create updatable parametric objects/geometries. * Built-in generators: plane, sphere, box, circle, torus, cylinder, tube, shape, tubeShape, line. * * Additional generators (text) can be registered at runtime via the `generators` property * or by using `GeometryGeneratorExtrasPlugin` from `@threepipe/plugin-geometry-generator`. * * @category Plugins */ export declare class GeometryGeneratorPlugin extends AViewerPluginSync { static readonly PluginType = "GeometryGeneratorPlugin"; enabled: boolean; toJSON: any; generators: IGeometryGeneratorMap; defaultMeshClass: Class; defaultMaterialClass: Class; defaultGeometryClass: Class; generateObject(type: T, { mesh, geometry, material, ...params }?: Partial & { mesh?: IMesh; geometry?: TGeometry; material?: TMaterial; }): IMesh; generateGeometry(type: string, params: any, geometry?: IGeometry): IGeometry | BufferGeometry2; updateGeometry(geometry: IGeometry, params?: any): void; onAdded(viewer: ThreeViewer): void; onRemove(viewer: ThreeViewer): void; private _objectAdd; private _objectRemove; protected _geometryUpdate: (e: ISceneEventMap["geometryUpdate"]) => void; uiConfig: { type: string; label: string; children: (() => { type: string; uuid: string; label: string; value: () => Promise; }[])[]; }; } //# sourceMappingURL=../../src/plugins/geometry/GeometryGeneratorPlugin.d.ts.map