int index = splitMap.get(edgeRev);
ia = index;
indices.add(index);
} else {
assert(!splitMap.containsKey(edge));
Ray3 ray = new Ray3(v1.position, v3.position);
Point3 p = ray.pointAt(plane.intersect(ray));
int index = addVertex(p);
ia = index;
vertices.get(index).tempInt = -1;
vertices.get(index).flag = true;
indices.add(index);
splitMap.put(edge, index);
}
}
if (v2.flag) {
Edge edge = new Edge(i1, i2);
Edge edgeRev = edge.reverse();
if (splitMap.containsKey(edgeRev)) {
int index = splitMap.get(edgeRev);
assert(ia >= 0);
vertices.get(index).tempInt = ia;
ia = -1;
indices.add(index);
} else {
assert(!splitMap.containsKey(edge));
Ray3 ray = new Ray3(v1.position, v2.position);
Point3 p = ray.pointAt(plane.intersect(ray));
int index = addVertex(p);
assert(ia >= 0);
if (ia < 0) {
ia = -1;
}