|
@@ -2612,15 +2612,16 @@ export class Mesh extends AbstractMesh implements IGetSetVerticesData {
|
|
var currentUVs = vertex_data.uvs;
|
|
var currentUVs = vertex_data.uvs;
|
|
var currentIndices = vertex_data.indices;
|
|
var currentIndices = vertex_data.indices;
|
|
var currentPositions = vertex_data.positions;
|
|
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 {
|
|
else {
|
|
var positions: Array<number> = new Array();
|
|
var positions: Array<number> = new Array();
|
|
var indices: Array<number> = new Array();
|
|
var indices: Array<number> = new Array();
|
|
var uvs: 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 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
|
|
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++) {
|
|
for (var k = 0; k < 3; k++) {
|
|
positions.push(currentPositions[3 * facet[j] + 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
|
|
// add new index pointer to indices array
|
|
@@ -2674,7 +2682,12 @@ export class Mesh extends AbstractMesh implements IGetSetVerticesData {
|
|
vertex_data.positions = positions;
|
|
vertex_data.positions = positions;
|
|
vertex_data.indices = indices;
|
|
vertex_data.indices = indices;
|
|
vertex_data.normals = normals;
|
|
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));
|
|
vertex_data.applyToMesh(this, this.isVertexBufferUpdatable(VertexBuffer.PositionKind));
|
|
}
|
|
}
|