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();
        }
예제 #2
0
        // 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;
        }