/// <summary>
        /// Recorta el portal en base al frustum.
        /// Este método se realiza haciendo un clipping del Frustum contra la cara del portal.
        /// El recorte se hace en 3D.
        /// Existen técnicas más eficientes para realizar el clipping en 2D, utilizando la proyección del BoundingBox del portal.
        /// Ver Capítulo 13 - Portal Rendering, del libro Core Techniques and Algorithms in Game Programming, para optimizar la estrategia.
        /// </summary>
        private Vector3[] doPortalClipping(Plane[] frustumPlanes, TgcConvexPolygon portalPoly)
        {
            Vector3[] clippedPortalVerts = portalPoly.BoundingVertices;
            foreach (Plane plane in frustumPlanes)
            {
                //Clipping con algoritmo de Sutherland-Hodgman
                if (!TgcCollisionUtils.clipConvexPolygon(clippedPortalVerts, plane, out clippedPortalVerts))
                {
                    return(null);
                }
            }

            return(clippedPortalVerts);
        }