Browse Source

Merge branch 'master' of https://github.com/BabylonJS/Babylon.js

David Catuhe 6 years ago
parent
commit
533b12d154
1 changed files with 23 additions and 4 deletions
  1. 23 4
      src/Meshes/polygonMesh.ts

+ 23 - 4
src/Meshes/polygonMesh.ts

@@ -3,6 +3,7 @@ import { Scene } from "../scene";
 import { Vector3, Vector2, Path2 } from "../Maths/math";
 import { Vector3, Vector2, Path2 } from "../Maths/math";
 import { VertexBuffer } from "../Meshes/buffer";
 import { VertexBuffer } from "../Meshes/buffer";
 import { Mesh } from "../Meshes/mesh";
 import { Mesh } from "../Meshes/mesh";
+import { VertexData } from "../Meshes/mesh.vertexData";
 
 
 declare var earcut: any;
 declare var earcut: any;
 /**
 /**
@@ -224,6 +225,24 @@ export class PolygonMeshBuilder {
     build(updatable: boolean = false, depth: number = 0): Mesh {
     build(updatable: boolean = false, depth: number = 0): Mesh {
         var result = new Mesh(this._name, this._scene);
         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 normals = new Array<number>();
         var positions = new Array<number>();
         var positions = new Array<number>();
         var uvs = 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;
         return result;
     }
     }