Click or drag to resize

NurbsSurfaceIncreaseDegreeV Method

Increase the degree of this surface in V direction.

Namespace:  Rhino.Geometry
Assembly:  RhinoCommon (in RhinoCommon.dll)
Since: 5.10
public bool IncreaseDegreeV(
	int desiredDegree


Type: SystemInt32
The desired degree. Degrees should be number between and including 1 and 11.

Return Value

Type: Boolean
true on success, false on failure.
using Rhino;
using Rhino.Commands;
using Rhino.Input;
using Rhino.DocObjects;

namespace examples_cs
  public class NurbsSurfaceIncreaseDegreeCommand : Command
    public override string EnglishName { get { return "csNurbsSrfIncreaseDegree"; } }

    protected override Result RunCommand(RhinoDoc doc, RunMode mode)
      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());
      return rc;
from Rhino import *
from Rhino.Commands import *
from Rhino.Input import *
from Rhino.DocObjects import *
from scriptcontext import doc

def RunCommand():
  rc, obj_ref = RhinoGet.GetOneObject("Select surface", False, ObjectType.Surface)
  if rc != Result.Success: return rc
  if obj_ref == None: return Result.Failure
  surface = obj_ref.Surface()
  if surface == None: return Result.Failure
  nurbs_surface = surface.ToNurbsSurface()

  new_u_degree = -1
  rc, new_u_degree = RhinoGet.GetInteger(
    "New U degree <{0}...11>".format(nurbs_surface.Degree(0)), True, new_u_degree, nurbs_surface.Degree(0), 11)
  if rc != Result.Success: return rc

  new_v_degree = -1
  rc, new_v_degree = RhinoGet.GetInteger(
    "New V degree <{0}...11>".format(nurbs_surface.Degree(1)), True, 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

  print "Result: {0}".format(rc)
  return rc

if __name__=="__main__":
See Also