UNPKG

threepipe

Version:

A modern 3D viewer framework built on top of three.js, written in TypeScript, designed to make creating high-quality, modular, and extensible 3D experiences on the web simple and enjoyable.

73 lines 3.79 kB
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<string, AGeometryGenerator> { 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<IObject3D>; defaultMaterialClass: Class<IMaterial>; defaultGeometryClass: Class<IGeometry>; generateObject<T extends keyof IGeometryGeneratorMap & string = string, TGeometry extends IGeometry = IGeometry, TMaterial extends IMaterial = IMaterial, TG extends AGeometryGenerator = IGeometryGeneratorMap[T]>(type: T, { mesh, geometry, material, ...params }?: Partial<TG['defaultParams']> & { mesh?: IMesh<IObject3DEventMap, TGeometry, TMaterial>; geometry?: TGeometry; material?: TMaterial; }): IMesh<IObject3DEventMap, TGeometry, TMaterial>; generateGeometry(type: string, params: any, geometry?: IGeometry): IGeometry<import('three').NormalBufferAttributes, import('three').BufferGeometryEventMap> | BufferGeometry2<import('three').NormalBufferAttributes, import('three').BufferGeometryEventMap>; 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<void>; }[])[]; }; } //# sourceMappingURL=../../src/plugins/geometry/GeometryGeneratorPlugin.d.ts.map