Increase NURBS Surface Degree
Demonstrates how to increase the degree of a NURBS surface.
partial class Examples { public static Result NurbsSurfaceIncreaseDegree(RhinoDoc doc) { ObjRef obj_ref; var rc = RhinoGet.GetOneObject( "Select surface", false, ObjectType.Surface, out obj_ref); if (rc != Result.Success) return rc; if (obj_ref == null) return Result.Failure; var surface = obj_ref.Surface(); if (surface == null) return Result.Failure; var nurbs_surface = surface.ToNurbsSurface(); int new_u_degree = -1; rc = RhinoGet.GetInteger(string.Format("New U degree <{0}...11>", nurbs_surface.Degree(0)), true, ref new_u_degree, nurbs_surface.Degree(0), 11); if (rc != Result.Success) return rc; int new_v_degree = -1; rc = RhinoGet.GetInteger(string.Format("New V degree <{0}...11>", nurbs_surface.Degree(1)), true, ref new_v_degree, nurbs_surface.Degree(1), 11); if (rc != Result.Success) return rc; rc = Result.Failure; if (nurbs_surface.IncreaseDegreeU(new_u_degree)) if (nurbs_surface.IncreaseDegreeV(new_v_degree)) if (doc.Objects.Replace(obj_ref.ObjectId, nurbs_surface)) rc = Result.Success; RhinoApp.WriteLine("Result: {0}", rc.ToString()); doc.Views.Redraw(); return rc; } }