whs
Version:
Super-fast 3D framework for Web Applications & Games. Based on Three.js
74 lines (61 loc) • 1.51 kB
TypeScript
import {
MeshComponent,
MeshComponentParams
} from '../../core/MeshComponent';
import {
BufferGeometry,
Mesh,
ParametricGeometry,
Vector3
} from 'three';
export interface ParametricBufferGeometry extends BufferGeometry {
constructor(func: (u: number, v: number) => Vector3, slices: number, stacks: number): ParametricBufferGeometry;
parameters: {
func: (u: number, v: number) => Vector3;
slices: number;
stacks: number;
};
}
export interface ParametricParams extends MeshComponentParams {
/** Geometry parameters */
geometry?: {
/**
* A function that takes in a u and v value each between 0 and 1 and returns a Vector3
* Default is (u, v) => new Vector3(u, v, 0)
*/
func?: Function;
/**
*
* Default is 10.
*/
slices?: number;
/**
*
* Default is 10.
*/
stacks?: number;
};
/**
* Sets whether to build a buffered geometry
* Default is false.
*/
buffer?: boolean;
}
export class Parametric extends MeshComponent {
/**
* @description Creates a Parametric surface.
* @constructor
* @param params parameters
*/
constructor(params?: ParametricParams);
/**
* Build lifecycle creates a mesh using input params.
* @param params
*/
build(params?: ParametricParams): Mesh;
/**
* Builds the geometry
* @param params
*/
buildGeometry(params?: ParametricParams): ParametricGeometry | ParametricBufferGeometry;
}