public void Flip() { //List<CSGVertex> vertices = m_vertices.GetRange(0, m_vertices.Count); //m_vertices.Clear(); //m_vertices.Add(vertices[0]); //m_vertices.Add(vertices[2]); //m_vertices.Add(vertices[1]); //vertices.Clear(); m_vertices.Reverse(); for (int vertexIter = 0; vertexIter < m_vertices.Count; vertexIter++) { m_vertices[vertexIter].Flip(); } m_plane.Flip(); }
// Convert solid space to empty space and empty space to solid space. public void Invert() { for (int i = 0; i < m_polygons.Count; i++) { m_polygons[i].Flip(); } m_plane.Flip(); if (m_frontNode != null) { m_frontNode.Invert(); } if (m_backNode != null) { m_backNode.Invert(); } CSGNode tempNode = m_frontNode; m_frontNode = m_backNode; m_backNode = tempNode; }