浏览代码

Update forceSharedVertices

Guide 6 年之前
父节点
当前提交
65eed4c410
共有 1 个文件被更改,包括 19 次插入6 次删除
  1. 19 6
      src/Meshes/mesh.ts

+ 19 - 6
src/Meshes/mesh.ts

@@ -2612,15 +2612,16 @@ export class Mesh extends AbstractMesh implements IGetSetVerticesData {
         var currentUVs = vertex_data.uvs;
         var currentIndices = vertex_data.indices;
         var currentPositions = vertex_data.positions;
-        var currentNormals = vertex_data.normals;
+        var currentColors = vertex_data.colors;
 
-        if (currentIndices === null || currentPositions === null || currentNormals === null || currentUVs === null) {
-            Logger.Warn("VertexData contains null entries");
+        if (currentIndices === void 0 || currentPositions === void 0 || currentIndices === null || currentPositions === null) {
+            Logger.Warn("VertexData contains empty entries");
         }
         else {
             var positions: Array<number> = new Array();
             var indices: Array<number> = new Array();
             var uvs: Array<number> = new Array();
+            var colors: Array<number> = new Array();
             var pstring: Array<string> = new Array(); //lists facet vertex positions (a,b,c) as string "a|b|c"
 
             var indexPtr: number = 0; // pointer to next available index value
@@ -2657,8 +2658,15 @@ export class Mesh extends AbstractMesh implements IGetSetVerticesData {
                             for (var k = 0; k < 3; k++) {
                                 positions.push(currentPositions[3 * facet[j] + k]);
                             }
-                            for (var k = 0; k < 2; k++) {
-                                uvs.push(currentUVs[2 * facet[j] + k]);
+                            if (currentColors !== null && currentColors !== void 0) {
+                                for (var k = 0; k < 4; k++) {
+                                    colors.push(currentColors[4 * facet[j] + k]);
+                                }
+                            }
+                            if (currentUVs !== null && currentUVs !== void 0) {
+                                for (var k = 0; k < 2; k++) {
+                                    uvs.push(currentUVs[2 * facet[j] + k]);
+                                }
                             }
                         }
                         // add new index pointer to indices array
@@ -2674,7 +2682,12 @@ export class Mesh extends AbstractMesh implements IGetSetVerticesData {
             vertex_data.positions = positions;
             vertex_data.indices = indices;
             vertex_data.normals = normals;
-            vertex_data.uvs = uvs;
+            if (currentUVs !== null && currentUVs !== void 0) {
+                vertex_data.uvs = uvs;
+            }
+            if (currentColors !== null && currentColors !== void 0) {
+             vertex_data.colors = colors;
+            }
 
             vertex_data.applyToMesh(this, this.isVertexBufferUpdatable(VertexBuffer.PositionKind));
         }