1 | import { Curve } from './../extras/core/Curve';
|
2 | import { Vector2 } from './../math/Vector2';
|
3 | import { Vector3 } from './../math/Vector3';
|
4 | import { Shape } from './../extras/core/Shape';
|
5 | import { BufferGeometry } from './../core/BufferGeometry';
|
6 |
|
7 | export interface ExtrudeGeometryOptions {
|
8 | |
9 |
|
10 |
|
11 | curveSegments?: number | undefined;
|
12 | |
13 |
|
14 |
|
15 | steps?: number | undefined;
|
16 | |
17 |
|
18 |
|
19 | depth?: number | undefined;
|
20 | |
21 |
|
22 |
|
23 | bevelEnabled?: boolean | undefined;
|
24 | |
25 |
|
26 |
|
27 | bevelThickness?: number | undefined;
|
28 | bevelSize?: number | undefined;
|
29 | |
30 |
|
31 |
|
32 | bevelOffset?: number | undefined;
|
33 | |
34 |
|
35 |
|
36 | bevelSegments?: number | undefined;
|
37 | extrudePath?: Curve<Vector3> | undefined;
|
38 | UVGenerator?: UVGenerator | undefined;
|
39 | }
|
40 |
|
41 | export 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 |
|
59 | export 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 |
|
73 | export { ExtrudeGeometry as ExtrudeBufferGeometry };
|