whs
Version:
Super-fast 3D framework for Web Applications & Games. Based on Three.js
111 lines (91 loc) • 2.33 kB
TypeScript
import {
MeshComponent,
MeshComponentParams
} from '../../core/MeshComponent';
import {
BufferGeometry,
CurvePath,
ExtrudeGeometry,
Mesh,
Shape,
Vector
} from 'three';
export interface ExtrudeParams extends MeshComponentParams {
/** Geometry parameters */
geometry: {
shapes: Shape | Array<Shape>,
options?: {
/**
* Number of points on the curves.
* Default is 12.
*/
curveSegments?: number;
/**
* Number of points used for subdividing segments along the depth of the extruded spline.
* Default is 1.
*/
steps?: number;
/**
* Depth to extrude the shape. Default is 100.
*/
amount?: number;
/**
* Apply beveling to the shape.
* Default is true.
*/
bevelEnabled?: boolean;
/**
* How deep into the original shape the bevel goes.
* Default is 6.
*/
bevelThickness?: number;
/**
* Distance from the shape outline that the bevel extends.
* Default is bevelThickness minus 2.
*/
bevelSize?: number;
/**
* Number of bevel layers.
* Default is 3.
*/
bevelSegments?: number;
/**
* A 3D spline path along which the shape should be extruded (creates Frames if frames aren't defined).
*/
extrudePath?: CurvePath<Vector>;
/**
* An object containing arrays of tangents, normals, binormals for each step along the extrudePath.
*/
frames?: Object;
/**
* An object that provides UV generator functions
*/
UVGenerator?: Object;
}
};
/**
* Whether to create buffered geometry or not.
* Default is false.
*/
buffer?: boolean;
}
export interface ExtrudeParamsOptions {
}
export class Extrude extends MeshComponent {
/**
* @description Creates an extruded geometry from a path shape.
* @constructor
* @param params parameters
*/
constructor(params?: ExtrudeParams);
/**
* Build lifecycle creates a mesh using input params.
* @param params
*/
build(params?: ExtrudeParams): Mesh;
/**
* Builds the geometry
* @param params
*/
buildGeometry(params?: ExtrudeParams): ExtrudeGeometry | BufferGeometry;
}