|
@@ -3,6 +3,7 @@ import { Scene } from "../scene";
|
|
|
import { Vector3, Vector2, Path2 } from "../Maths/math";
|
|
|
import { VertexBuffer } from "../Meshes/buffer";
|
|
|
import { Mesh } from "../Meshes/mesh";
|
|
|
+import { VertexData } from "../Meshes/mesh.vertexData";
|
|
|
|
|
|
declare var earcut: any;
|
|
|
/**
|
|
@@ -224,6 +225,24 @@ export class PolygonMeshBuilder {
|
|
|
build(updatable: boolean = false, depth: number = 0): Mesh {
|
|
|
var result = new Mesh(this._name, this._scene);
|
|
|
|
|
|
+ var vertexData = this.buildVertexData(depth);
|
|
|
+
|
|
|
+ result.setVerticesData(VertexBuffer.PositionKind, <number[]>vertexData.positions, updatable);
|
|
|
+ result.setVerticesData(VertexBuffer.NormalKind, <number[]>vertexData.normals, updatable);
|
|
|
+ result.setVerticesData(VertexBuffer.UVKind, <number[]>vertexData.uvs, updatable);
|
|
|
+ result.setIndices(<number[]>vertexData.indices);
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Creates the polygon
|
|
|
+ * @param depth The depth of the mesh created
|
|
|
+ * @returns the created VertexData
|
|
|
+ */
|
|
|
+ buildVertexData(depth: number = 0): VertexData {
|
|
|
+ var result = new VertexData();
|
|
|
+
|
|
|
var normals = new Array<number>();
|
|
|
var positions = new Array<number>();
|
|
|
var uvs = new Array<number>();
|
|
@@ -271,10 +290,10 @@ export class PolygonMeshBuilder {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- result.setVerticesData(VertexBuffer.PositionKind, positions, updatable);
|
|
|
- result.setVerticesData(VertexBuffer.NormalKind, normals, updatable);
|
|
|
- result.setVerticesData(VertexBuffer.UVKind, uvs, updatable);
|
|
|
- result.setIndices(indices);
|
|
|
+ result.indices = indices;
|
|
|
+ result.positions = positions;
|
|
|
+ result.normals = normals;
|
|
|
+ result.uvs = uvs;
|
|
|
|
|
|
return result;
|
|
|
}
|