/***************************************************/ public static BHG.ISurface FromRhino(this RHG.NurbsSurface surface) { if (surface == null) { return(null); } if (surface.IsPlanar(BH.oM.Geometry.Tolerance.Distance)) { BHG.ICurve externalEdge = RHG.Curve.JoinCurves(surface.ToBrep().DuplicateNakedEdgeCurves(true, false)).FirstOrDefault().FromRhino(); return(new BHG.PlanarSurface(externalEdge, new List <BHG.ICurve>())); } BHG.NurbsSurface bhs = new BHG.NurbsSurface ( surface.Points.Select(x => x.Location.FromRhino()).ToList(), surface.Points.Select(x => x.Weight).ToList(), surface.KnotsU.ToList(), surface.KnotsV.ToList(), surface.Degree(0), surface.Degree(1), new List <BHG.SurfaceTrim>(), new List <BHG.SurfaceTrim>() ); return(bhs); }
/***************************************************/ public static void RenderRhinoMeshes(RHG.NurbsSurface surface, Rhino.Display.DisplayPipeline pipeline, DisplayMaterial material) { pipeline.DrawBrepShaded(surface.ToBrep(), material); }
/***************************************************/ public static RHG.Mesh CreatePreviewMesh(RHG.NurbsSurface surface, RHG.MeshingParameters parameters) { return(CreatePreviewMesh(surface.ToBrep(), parameters)); }