UNPKG

1.74 kBTypeScriptView Raw
1import { Curve } from './../extras/core/Curve';
2import { Vector2 } from './../math/Vector2';
3import { Vector3 } from './../math/Vector3';
4import { Shape } from './../extras/core/Shape';
5import { BufferGeometry } from './../core/BufferGeometry';
6
7export interface ExtrudeGeometryOptions {
8 /**
9 * @default 12
10 */
11 curveSegments?: number | undefined;
12 /**
13 * @default 1
14 */
15 steps?: number | undefined;
16 /**
17 * @default 100
18 */
19 depth?: number | undefined;
20 /**
21 * @default true
22 */
23 bevelEnabled?: boolean | undefined;
24 /**
25 * @default 6
26 */
27 bevelThickness?: number | undefined;
28 bevelSize?: number | undefined;
29 /**
30 * @default 0
31 */
32 bevelOffset?: number | undefined;
33 /**
34 * @default 3
35 */
36 bevelSegments?: number | undefined;
37 extrudePath?: Curve<Vector3> | undefined;
38 UVGenerator?: UVGenerator | undefined;
39}
40
41export interface UVGenerator {
42 generateTopUV(
43 geometry: ExtrudeGeometry,
44 vertices: number[],
45 indexA: number,
46 indexB: number,
47 indexC: number,
48 ): Vector2[];
49 generateSideWallUV(
50 geometry: ExtrudeGeometry,
51 vertices: number[],
52 indexA: number,
53 indexB: number,
54 indexC: number,
55 indexD: number,
56 ): Vector2[];
57}
58
59export class ExtrudeGeometry extends BufferGeometry {
60 constructor(shapes: Shape | Shape[], options?: ExtrudeGeometryOptions);
61
62 /**
63 * @default 'ExtrudeGeometry'
64 */
65 type: string;
66
67 addShapeList(shapes: Shape[], options?: any): void;
68 addShape(shape: Shape, options?: any): void;
69
70 static fromJSON(data: any): ExtrudeGeometry;
71}
72
73export { ExtrudeGeometry as ExtrudeBufferGeometry };