genFace method
dynamic
genFace()
Implementation
genFace(
Map buffers,
Map geoInfo,
facePositionIndexes,
materialIndex,
faceNormals,
faceColors,
faceUVs,
faceWeights,
faceWeightIndices,
faceLength) {
for (var i = 2; i < faceLength; i++) {
buffers["vertex"].add(geoInfo["vertexPositions"][facePositionIndexes[0]]);
buffers["vertex"].add(geoInfo["vertexPositions"][facePositionIndexes[1]]);
buffers["vertex"].add(geoInfo["vertexPositions"][facePositionIndexes[2]]);
buffers["vertex"]
.add(geoInfo["vertexPositions"][facePositionIndexes[(i - 1) * 3]]);
buffers["vertex"].add(
geoInfo["vertexPositions"][facePositionIndexes[(i - 1) * 3 + 1]]);
buffers["vertex"].add(
geoInfo["vertexPositions"][facePositionIndexes[(i - 1) * 3 + 2]]);
buffers["vertex"]
.add(geoInfo["vertexPositions"][facePositionIndexes[i * 3]]);
buffers["vertex"]
.add(geoInfo["vertexPositions"][facePositionIndexes[i * 3 + 1]]);
buffers["vertex"]
.add(geoInfo["vertexPositions"][facePositionIndexes[i * 3 + 2]]);
if (geoInfo["skeleton"] != null) {
buffers["vertexWeights"].add(faceWeights[0]);
buffers["vertexWeights"].add(faceWeights[1]);
buffers["vertexWeights"].add(faceWeights[2]);
buffers["vertexWeights"].add(faceWeights[3]);
buffers["vertexWeights"].add(faceWeights[(i - 1) * 4]);
buffers["vertexWeights"].add(faceWeights[(i - 1) * 4 + 1]);
buffers["vertexWeights"].add(faceWeights[(i - 1) * 4 + 2]);
buffers["vertexWeights"].add(faceWeights[(i - 1) * 4 + 3]);
buffers["vertexWeights"].add(faceWeights[i * 4]);
buffers["vertexWeights"].add(faceWeights[i * 4 + 1]);
buffers["vertexWeights"].add(faceWeights[i * 4 + 2]);
buffers["vertexWeights"].add(faceWeights[i * 4 + 3]);
buffers["weightsIndices"].add(faceWeightIndices[0]);
buffers["weightsIndices"].add(faceWeightIndices[1]);
buffers["weightsIndices"].add(faceWeightIndices[2]);
buffers["weightsIndices"].add(faceWeightIndices[3]);
buffers["weightsIndices"].add(faceWeightIndices[(i - 1) * 4]);
buffers["weightsIndices"].add(faceWeightIndices[(i - 1) * 4 + 1]);
buffers["weightsIndices"].add(faceWeightIndices[(i - 1) * 4 + 2]);
buffers["weightsIndices"].add(faceWeightIndices[(i - 1) * 4 + 3]);
buffers["weightsIndices"].add(faceWeightIndices[i * 4]);
buffers["weightsIndices"].add(faceWeightIndices[i * 4 + 1]);
buffers["weightsIndices"].add(faceWeightIndices[i * 4 + 2]);
buffers["weightsIndices"].add(faceWeightIndices[i * 4 + 3]);
}
if (geoInfo["color"] != null) {
buffers["colors"].add(faceColors[0]);
buffers["colors"].add(faceColors[1]);
buffers["colors"].add(faceColors[2]);
buffers["colors"].add(faceColors[(i - 1) * 3]);
buffers["colors"].add(faceColors[(i - 1) * 3 + 1]);
buffers["colors"].add(faceColors[(i - 1) * 3 + 2]);
buffers["colors"].add(faceColors[i * 3]);
buffers["colors"].add(faceColors[i * 3 + 1]);
buffers["colors"].add(faceColors[i * 3 + 2]);
}
if (geoInfo["material"] != null &&
geoInfo["material"]["mappingType"] != 'AllSame') {
buffers["materialIndex"].add(materialIndex);
buffers["materialIndex"].add(materialIndex);
buffers["materialIndex"].add(materialIndex);
}
if (geoInfo["normal"] != null) {
buffers["normal"].add(faceNormals[0]);
buffers["normal"].add(faceNormals[1]);
buffers["normal"].add(faceNormals[2]);
buffers["normal"].add(faceNormals[(i - 1) * 3]);
buffers["normal"].add(faceNormals[(i - 1) * 3 + 1]);
buffers["normal"].add(faceNormals[(i - 1) * 3 + 2]);
buffers["normal"].add(faceNormals[i * 3]);
buffers["normal"].add(faceNormals[i * 3 + 1]);
buffers["normal"].add(faceNormals[i * 3 + 2]);
}
if (geoInfo["uv"] != null) {
geoInfo["uv"].asMap().forEach((j, uv) {
if (buffers["uvs"].length == j) buffers["uvs"].add([]);
buffers["uvs"][j].add(faceUVs[j][0]);
buffers["uvs"][j].add(faceUVs[j][1]);
buffers["uvs"][j].add(faceUVs[j][(i - 1) * 2]);
buffers["uvs"][j].add(faceUVs[j][(i - 1) * 2 + 1]);
buffers["uvs"][j].add(faceUVs[j][i * 2]);
buffers["uvs"][j].add(faceUVs[j][i * 2 + 1]);
});
}
}
}