/// <summary> /// /// </summary> /// <param name="vertexSet"></param> /// <param name="triangleIndex"></param> /// <param name="vertexIndex0"></param> /// <param name="vertexIndex1"></param> /// <param name="sharedVertIndex0"></param> /// <param name="sharedVertIndex1"></param> protected void CreateEdge(int vertexSet, int triangleIndex, int vertexIndex0, int vertexIndex1, int sharedVertIndex0, int sharedVertIndex1) { var vertPair = new UniqueEdge(); vertPair.vertexIndex1 = sharedVertIndex0; vertPair.vertexIndex2 = sharedVertIndex1; if (this.uniqueEdges.Contains(vertPair)) { throw new AxiomException("Edge is shared by too many triangles."); } this.uniqueEdges.Add(vertPair); // create a new edge and initialize as degenerate var e = new EdgeData.Edge(); e.isDegenerate = true; // set only first tri, the other will be completed in ConnectEdges e.triIndex[0] = triangleIndex; e.sharedVertIndex[0] = sharedVertIndex0; e.sharedVertIndex[1] = sharedVertIndex1; e.vertIndex[0] = vertexIndex0; e.vertIndex[1] = vertexIndex1; ((EdgeData.EdgeGroup) this.edgeData.edgeGroups[vertexSet]).edges.Add(e); }
/// <summary> /// /// </summary> /// <param name="vertexSet"></param> /// <param name="triangleIndex"></param> /// <param name="vertexIndex1"></param> /// <param name="vertexIndex2"></param> /// <param name="sharedVertIndex1"></param> /// <param name="sharedVertIndex2"></param> protected void CreateEdge(int vertexSet, int triangleIndex, int vertexIndex0, int vertexIndex1, int sharedVertIndex0, int sharedVertIndex1) { UniqueEdge vertPair = new UniqueEdge(); vertPair.vertexIndex1 = sharedVertIndex0; vertPair.vertexIndex2 = sharedVertIndex1; if (uniqueEdges.Contains(vertPair)) { throw new AxiomException("Edge is shared by too many triangles."); } uniqueEdges.Add(vertPair); // create a new edge and initialize as degenerate EdgeData.Edge e = new EdgeData.Edge(); e.isDegenerate = true; // set only first tri, the other will be completed in ConnectEdges e.triIndex[0] = triangleIndex; e.sharedVertIndex[0] = sharedVertIndex0; e.sharedVertIndex[1] = sharedVertIndex1; e.vertIndex[0] = vertexIndex0; e.vertIndex[1] = vertexIndex1; ((EdgeData.EdgeGroup)edgeData.edgeGroups[vertexSet]).edges.Add(e); }