in commons-geometry-io-euclidean/src/main/java/org/apache/commons/geometry/io/euclidean/threed/obj/ObjWriter.java [425:458]
public void flush() {
final int vertexOffset = vertexCount;
final int normalOffset = normalCount;
// write vertices
for (final String vertexStr : vertexMap.keySet()) {
writeVertexLine(vertexStr);
}
// write normals
for (final String normalStr : normalMap.keySet()) {
writeVertexNormalLine(normalStr);
}
// write faces
Integer normalIndex;
int[] normalIndices;
int faceIndex = 0;
for (final int[] vertexIndices : faceVertices) {
normalIndex = faceToNormalMap.get(faceIndex);
if (normalIndex != null) {
normalIndices = new int[vertexIndices.length];
Arrays.fill(normalIndices, normalIndex);
} else {
normalIndices = null;
}
writeFaceWithOffsets(vertexOffset, vertexIndices, normalOffset, normalIndices);
++faceIndex;
}
reset();
}