diff --git a/MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/MeshObjLoader.java b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/MeshObjLoader.java index 210616d4f472673037af0ce2d981ee75a514a5bd..250dacd9516e7a56619223b499cdc994887ff2bf 100644 --- a/MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/MeshObjLoader.java +++ b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/MeshObjLoader.java @@ -85,9 +85,9 @@ public class MeshObjLoader { } /** - * Parse OBJMesh into MeshFacet containig corner table data + * Parse OBJMesh into MeshFacet containing corner table data * @param model Model is needed in future. It's holding data pools - * @param mesh Mesh to parse. It corespond to our MeshFacet + * @param mesh Mesh to parse. It correspond to our MeshFacet * @return Returns complete facet * @throws IOException Data are corrupted */ @@ -117,8 +117,9 @@ public class MeshObjLoader { private static void processFace(OBJModel model, OBJFace face, MeshFacet meshFacet, Map<MeshPoint, Integer> vertices, Map<Edge, Integer> edges) throws IOException { List<MeshPoint> trianglePoints = parseFaceToTriangle(model, face); - List<Integer> vertexIndicies = new ArrayList(); - + + int actRow = meshFacet.getCornerTable().getSize(); + // This cycle adds integer indices of new mesh points and add them to CornerTable for (MeshPoint vertex : trianglePoints) { Integer vertIndex = vertices.get(vertex); @@ -128,18 +129,17 @@ public class MeshObjLoader { meshFacet.addVertex(vertex); vertIndex = newIndex; } - vertexIndicies.add(vertIndex); CornerTableRow cornerTableRow = new CornerTableRow(vertIndex, -1); meshFacet.getCornerTable().addRow(cornerTableRow); } List<Edge> triangleEdges = new ArrayList(); triangleEdges.add(new Edge(trianglePoints.get(0).getPosition(), - trianglePoints.get(1).getPosition(), vertexIndicies.get(2))); + trianglePoints.get(1).getPosition(), actRow + 2)); triangleEdges.add(new Edge(trianglePoints.get(1).getPosition(), - trianglePoints.get(2).getPosition(), vertexIndicies.get(0))); + trianglePoints.get(2).getPosition(), actRow + 0)); triangleEdges.add(new Edge(trianglePoints.get(2).getPosition(), - trianglePoints.get(0).getPosition(), vertexIndicies.get(1))); + trianglePoints.get(0).getPosition(), actRow + 1)); for (Edge e : triangleEdges) { // We are processing edge which we already found