public void Remove() { isRemoved = true; v0.triangles.Remove(this); v1.triangles.Remove(this); v2.triangles.Remove(this); v0.RemoveNeighbor(v1); v0.RemoveNeighbor(v2); v1.RemoveNeighbor(v2); }
public void RemoveNeighbor(SimplifyVertex vertex) { if (!neighbors.Contains(vertex)) { return; } foreach (SimplifyTriangle triangle in triangles) { if (triangle.Contains(vertex)) { return; } } neighbors.Remove(vertex); vertex.RemoveNeighbor(this); }
public void ReplaceSimplifyVertex(SimplifyVertex vold, SimplifyVertex vnew) { if (vold == null || vnew == null) { return; } if (vold != v0 && vold != v1 && vold != v2) { return; } if (vnew == v0 || vnew == v1 || vnew == v2) { return; } if (vold == v0) { v0 = vnew; } if (vold == v1) { v1 = vnew; } if (vold == v2) { v2 = vnew; } int i; vold.triangles.Remove(this); if (vnew.triangles.Contains(this)) { return; } vnew.triangles.Add(this); vold.RemoveNeighbor(v0); vold.RemoveNeighbor(v1); vold.RemoveNeighbor(v2); if (v0.GetSimplifyTriangleCount(this) == 1) { v0.AppendUniqueNeighbor(v1); v0.AppendUniqueNeighbor(v2); } if (v1.GetSimplifyTriangleCount(this) == 1) { v1.AppendUniqueNeighbor(v0); v1.AppendUniqueNeighbor(v2); } if (v2.GetSimplifyTriangleCount(this) == 1) { v2.AppendUniqueNeighbor(v0); v2.AppendUniqueNeighbor(v1); } ComputeNormal(); }