Exemple #1
0
        // https://developer.rhino3d.com/guides/cpp/brep-data-structure/
        private Topology ByBrep(Brep ghBrep, double tolerance)
        {
            BrepFaceList ghBrepFaces = ghBrep.Faces;
            List <Face>  faces       = new List <Face>();

            foreach (BrepFace ghBrepFace in ghBrepFaces)
            {
                Face face = ByBrepFace(ghBrepFace);
                faces.Add(face);
            }

            if (faces.Count == 0)
            {
                return(null);
            }
            else if (faces.Count == 1)
            {
                return(faces[0]);
            }
            else
            {
                Shell shell = Shell.ByFaces(faces, tolerance);
                if (ghBrep.IsSolid)
                {
                    Cell cell = Cell.ByShell(shell);
                    return(cell);
                }

                return(shell);
            }
        }