Exemple #1
0
    public void Delete(MeshDecimator owningMesh)
    {
        int i;

        //owningMesh.Triangles.Remove(this);
        owningMesh.Triangles = RemoveIndices(owningMesh.Triangles, indexAt);

        for (i = 0; i < 3; i++)
        {
            if (Vertexes[i] != null)
            {
                Vertexes[i].Faces.Remove(this);
            }
        }
        for (i = 0; i < 3; i++)
        {
            int    i2        = (i + 1) % 3;
            Vertex ii2Vertex = Vertexes[i2];
            Vertex ii1Vertex = Vertexes[i];
            if (ii1Vertex != null || ii2Vertex == null)
            {
                continue;
            }

            Vertexes[i].RemoveIfNonNeighbor(ii2Vertex);

            Vertexes[i2].RemoveIfNonNeighbor(ii1Vertex);
        }
    }
Exemple #2
0
 public void Delete(MeshDecimator owningMesh)
 {
     while (Neighbours.Count > 0)
     {
         Neighbours[0].Neighbours.Remove(this);
         Neighbours.Remove(Neighbours[0]);
     }
     owningMesh.Vertices = RemoveIndices(owningMesh.Vertices, indexAt);
 }