|
|
|
@ -335,17 +335,23 @@ public class Face implements Comparator<Integer> { |
|
|
|
|
return "Face " + indexes; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The method finds the closest vertex to the one specified by <b>index</b>. |
|
|
|
|
* If the vertexToIgnore is positive than it will be ignored in the result. |
|
|
|
|
* The closes vertex must be able to create an edge that is fully contained within the face and does not cross |
|
|
|
|
* any other edges. |
|
|
|
|
* @param index |
|
|
|
|
* the index of the vertex that needs to have found the nearest neighbour |
|
|
|
|
* @param indexToIgnore |
|
|
|
|
* the index to ignore in the result (pass -1 if none is to be ignored) |
|
|
|
|
* @return the index of the closest vertex to the given one |
|
|
|
|
*/ |
|
|
|
|
/** |
|
|
|
|
* The method finds the closest vertex to the one specified by <b>index</b>. |
|
|
|
|
* If the vertexToIgnore is positive than it will be ignored in the result. |
|
|
|
|
* The closest vertex must be able to create an edge that is fully contained |
|
|
|
|
* within the face and does not cross any other edges. Also if the |
|
|
|
|
* vertexToIgnore is not negative then the condition that the edge between |
|
|
|
|
* the found index and the one to ignore is inside the face must also be |
|
|
|
|
* met. |
|
|
|
|
* |
|
|
|
|
* @param index |
|
|
|
|
* the index of the vertex that needs to have found the nearest |
|
|
|
|
* neighbour |
|
|
|
|
* @param indexToIgnore |
|
|
|
|
* the index to ignore in the result (pass -1 if none is to be |
|
|
|
|
* ignored) |
|
|
|
|
* @return the index of the closest vertex to the given one |
|
|
|
|
*/ |
|
|
|
|
private int findClosestVertex(int index, int indexToIgnore) { |
|
|
|
|
int result = -1; |
|
|
|
|
List<Vector3f> vertices = temporalMesh.getVertices(); |
|
|
|
@ -355,7 +361,7 @@ public class Face implements Comparator<Integer> { |
|
|
|
|
if (i != index && i != indexToIgnore) { |
|
|
|
|
Vector3f v2 = vertices.get(i); |
|
|
|
|
float d = v2.distance(v1); |
|
|
|
|
if (d < distance && this.contains(new Edge(index, i, 0, true, temporalMesh))) { |
|
|
|
|
if (d < distance && this.contains(new Edge(index, i, 0, true, temporalMesh)) && (indexToIgnore < 0 || this.contains(new Edge(indexToIgnore, i, 0, true, temporalMesh)))) { |
|
|
|
|
result = i; |
|
|
|
|
distance = d; |
|
|
|
|
} |
|
|
|
|