NurbsSurface
Represents a Non Uniform Rational B-Splines (NURBS) surface.
Inheritance Hierarchy
System.Object
Rhino.Runtime.CommonObject
Rhino.Geometry.GeometryBase
Rhino.Geometry.Surface
Rhino.Geometry.NurbsSurface
Namespace: Rhino.Geometry
Assembly: RhinoCommon (in RhinoCommon.dll)
Syntax
[SerializableAttribute]public class NurbsSurface : Surface, IEpsilonComparable<NurbsSurface>
The NurbsSurface type exposes the following members.
Constructors
Name
Description
Public Method
NurbsSurface(NurbsSurface)
Initializes a new NURBS surface by copying the values from another surface.
Protected Method
NurbsSurface(SerializationInfo, StreamingContext)
Protected constructor for internal use.
Properties
Name
Description
Public Property
Disposed
Indicates if this object has been disposed or the document it originally belonged to has been disposed.
(Inherited from CommonObject.)
Public Property
HasBrepForm
Returns true if the Brep.TryConvertBrep function will be successful for this object
(Inherited from GeometryBase.)
Public Property
HasUserData
Gets true if this class has any custom information attached to it through UserData.
(Inherited from CommonObject.)
Public Property
IsDeformable
true if object can be accurately modified with “squishy” transformations like projections, shears, and non-uniform scaling.
(Inherited from GeometryBase.)
Public Property
IsDocumentControlled
If true this object may not be modified. Any properties or functions that attempt to modify this object when it is set to “IsReadOnly” will throw a NotSupportedException.
(Inherited from GeometryBase.)
Public Property
IsRational
Gets a value indicating whether or not the NURBS surface is rational.
Public Property
IsSolid
Gets a values indicating whether a surface is solid.
(Inherited from Surface.)
Public Property
IsSubDFriendly
Returns true if the surface is a non-rational, uniform, natural or periodic, cubic NURBS surface. Otherwise, false is returned.
(Inherited from Surface.)
Public Property
IsValid
Tests an object to see if it is valid.
(Inherited from CommonObject.)
Public Property
Code Example
KnotsU
The U direction knot vector.
Public Property
Code Example
KnotsV
The V direction knot vector.
Public Property
ObjectType
Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.
(Inherited from GeometryBase.)
Public Property
OrderU
Gets the order in the U direction.
Public Property
OrderV
Gets the order in the V direction.
Public Property
Code Example
Points
Gets a collection of surface control points that form this surface.
Public Property
UserData
List of custom information that is attached to this class.
(Inherited from CommonObject.)
Public Property
UserDictionary
Dictionary of custom information attached to this class. The dictionary is actually user data provided as an easy to use shareable set of information.
(Inherited from CommonObject.)
Public Property
UserStringCount
Gets the amount of user strings.
(Inherited from GeometryBase.)
Methods
Name
Description
Public Method
Code Example
ClosestPoint
Input the parameters of the point on the surface that is closest to testPoint.
(Inherited from Surface.)
Public Method
ClosestSide
Gets the side that is closest, in terms of 3D-distance, to a U and V parameter.
(Inherited from Surface.)
Public Method
ComponentIndex
If this piece of geometry is a component in something larger, like a BrepEdge in a Brep, then this function returns the component index.
(Inherited from GeometryBase.)
Protected Method
ConstructConstObject
Assigns a parent object and a sub-object index to this.
(Inherited from CommonObject.)
Public Method
ConvertSpanToBezier
Convert a NURBS surface bispan into a Bezier surface.
Public Method
CopyFrom
Copies this NURBS surface from another NURBS surface.
Public Method
Static Member
Code Example
Create
Constructs a new NURBS surface with internal uninitialized arrays.
Public Method
Static Member
CreateCurveOnSurface
Fit a sequence of 2d points on a surface to make a curve on the surface.
Public Method
Static Member
CreateCurveOnSurfacePoints
Computes a discrete spline curve on the surface. In other words, computes a sequence of points on the surface, each with a corresponding parameter value.
Public Method
Static Member
CreateFromCone
Constructs a new NURBS surfaces from cone data.
Public Method
Static Member
CreateFromCorners(Point3d, Point3d, Point3d)
Makes a surface from 3 corner points.
Public Method
Static Member
Code Example
CreateFromCorners(Point3d, Point3d, Point3d, Point3d)
Makes a surface from 4 corner points.
This is the same as calling
CreateFromCorners(Point3d, Point3d, Point3d, Point3d, Double)
with tolerance 0.Public Method
Static Member
CreateFromCorners(Point3d, Point3d, Point3d, Point3d, Double)
Makes a surface from 4 corner points.
Public Method
Static Member
CreateFromCylinder
Constructs a new NURBS surfaces from cylinder data.
Public Method
Static Member
CreateFromPlane
Creates a NURBS surface from a plane and additional parameters.
Public Method
Static Member
CreateFromPoints
Constructs a NURBS surface from a 2D grid of control points.
Public Method
Static Member
CreateFromSphere
Constructs a new NURBS surfaces from sphere data.
Public Method
Static Member
CreateFromTorus
Constructs a new NURBS surfaces from torus data.
Public Method
Static Member
CreateNetworkSurface(IEnumerable.Curve., Int32, Double, Double, Double, Int32.)
Builds a surface from an auto-sorted network of curves/edges.
Public Method
Static Member
CreateNetworkSurface(IEnumerable.Curve., Int32, Int32, IEnumerable.Curve., Int32, Int32, Double, Double, Double, Int32.)
Builds a surface from an ordered network of curves/edges.
Public Method
Static Member
CreateRailRevolvedSurface
Constructs a railed Surface-of-Revolution.
Public Method
Static Member
CreateRuledSurface
Constructs a ruled surface between two curves. Curves must share the same knot-vector.
Public Method
Static Member
CreateSubDFriendly
Create a bi-cubic SubD friendly surface from a surface.
Public Method
Static Member
CreateThroughPoints
Constructs a NURBS surface from a 2D grid of points.
Public Method
Code Example
CurvatureAt
Computes the curvature at the given UV coordinate.
(Inherited from Surface.)
Public Method
DataCRC
Returns a CRC calculated from the information that defines the object. This CRC can be used as a quick way to see if two objects are not identical.
(Inherited from GeometryBase.)
Public Method
Degree
Returns the maximum algebraic degree of any span (or a good estimate if curve spans are not algebraic).
(Inherited from Surface.)
Public Method
DeleteAllUserStrings
(Inherited from GeometryBase.)
Public Method
DeleteUserString
(Inherited from GeometryBase.)
Public Method
Dispose.
Actively reclaims unmanaged resources that this instance uses.
(Inherited from CommonObject.)
Protected Method
Dispose(Boolean)
Overridden in order to destroy local display cache information
(Inherited from GeometryBase.)
Public Method
Domain
Gets the domain in a direction.
(Inherited from Surface.)
Public Method
Duplicate
Constructs a deep (full) copy of this object.
(Inherited from GeometryBase.)
Public Method
DuplicateShallow
Constructs a light copy of this object. By “light”, it is meant that the same underlying data is used until something is done to attempt to change it. For example, you could have a shallow copy of a very heavy mesh object and the same underlying data will be used when doing things like inspecting the number of faces on the mesh. If you modify the location of one of the mesh vertices, the shallow copy will create a full duplicate of the underlying mesh data and the shallow copy will become a deep copy.
(Inherited from GeometryBase.)
Public Method
EnsurePrivateCopy
If you want to keep a copy of this class around by holding onto it in a variable after a command completes, call EnsurePrivateCopy to make sure that this class is not tied to the document. You can call this function as many times as you want.
(Inherited from CommonObject.)
Public Method
EpsilonEquals
Check that all values in other are within epsilon of the values in this
Public Method
Equals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Public Method
Evaluate
Evaluates a surface mathematically.
(Inherited from Surface.)
Public Method
Extend(Int32, Interval)
Analytically extends the surface to include the interval.
(Inherited from Surface.)
Public Method
Extend(IsoStatus, Double, Boolean)
Extends an untrimmed surface along one edge.
(Inherited from Surface.)
Protected Method
Finalize
Passively reclaims unmanaged resources when the class user did not explicitly call Dispose().
(Inherited from CommonObject.)
Public Method
FindClosestIsoCurve
Find the closest isoparamentric curve, given a test point.
Public Method
Fit
Fits a new surface through an existing surface.
(Inherited from Surface.)
Public Method
FitCurveToSurface
(Inherited from Surface.)
Public Method
Code Example
FrameAt
Computes the orient plane on a surface given a U and V parameter.
This is the simple evaluation call with no error handling.
(Inherited from Surface.)
Public Method
Code Example
GetBoundingBox(Boolean)
Bounding box solver. Gets the world axis aligned bounding box for the geometry.
(Inherited from GeometryBase.)
Public Method
Code Example
GetBoundingBox(Plane)
Aligned Bounding box solver. Gets the plane aligned bounding box.
(Inherited from GeometryBase.)
Public Method
GetBoundingBox(Transform)
Aligned Bounding box solver. Gets the world axis aligned bounding box for the transformed geometry.
(Inherited from GeometryBase.)
Public Method
GetBoundingBox(Plane, Box.)
Aligned Bounding box solver. Gets the plane aligned bounding box.
(Inherited from GeometryBase.)
Public Method
GetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public Method
GetNextDiscontinuity(Int32, Continuity, Double, Double, Double.)
Searches for a derivative, tangent, or curvature discontinuity.
(Inherited from Surface.)
Public Method
GetNextDiscontinuity(Int32, Continuity, Double, Double, Double, Double, Double.)
Searches for a derivative, tangent, or curvature discontinuity.
(Inherited from Surface.)
Public Method
GetNurbsFormParameterFromSurfaceParameter
Translates a parameter from the current surface to the parameter space of the surface returned by
ToNurbsSurface.
.(Inherited from Surface.)
Public Method
GetObjectData
Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.
(Inherited from CommonObject.)
Public Method
GetSpanVector
Gets array of span “knots”.
(Inherited from Surface.)
Public Method
GetSurfaceParameterFromNurbsFormParameter
Translates a parameter from a value on the surface returned by
ToNurbsSurface.
to the current surface.(Inherited from Surface.)
Public Method
Code Example
GetSurfaceSize
Gets an estimate of the size of the rectangle that would be created if the 3d surface where flattened into a rectangle.
(Inherited from Surface.)
Public Method
GetType
Gets the Type of the current instance.
(Inherited from Object.)
Public Method
GetUserString
Gets user string from this geometry.
(Inherited from GeometryBase.)
Public Method
GetUserStrings
Gets a copy of all (user key string, user value string) pairs attached to this geometry.
(Inherited from GeometryBase.)
Public Method
HasNurbsForm
Is there a NURBS surface representation of this surface.
(Inherited from Surface.)
Public Method
Code Example
IncreaseDegreeU
Increase the degree of this surface in U direction.
Public Method
Code Example
IncreaseDegreeV
Increase the degree of this surface in V direction.
Public Method
InterpolatedCurveOnSurface
Constructs an interpolated curve on a surface, using 3D points.
(Inherited from Surface.)
Public Method
InterpolatedCurveOnSurfaceUV(IEnumerable.Point2d., Double)
Returns a curve that interpolates points on a surface. The interpolant lies on the surface.
(Inherited from Surface.)
Public Method
InterpolatedCurveOnSurfaceUV(IEnumerable.Point2d., Double, Boolean, Int32)
Returns a curve that interpolates points on a surface. The interpolant lies on the surface.
(Inherited from Surface.)
Public Method
IsAtSeam
Tests if a surface parameter value is at a seam.
(Inherited from Surface.)
Public Method
IsAtSingularity
Tests if a surface parameter value is at a singularity.
(Inherited from Surface.)
Public Method
IsClosed
Gets a value indicating if the surface is closed in a direction.
(Inherited from Surface.)
Public Method
IsCone.
Determines if the surface is a portion of a cone within RhinoMath.ZeroTolerance.
(Inherited from Surface.)
Public Method
IsCone(Double)
Determines if the surface is a portion of a cone within a given tolerance.
(Inherited from Surface.)
Public Method
IsContinuous
Tests continuity at a surface parameter value.
(Inherited from Surface.)
Public Method
IsCylinder.
Determines if the surface is a portion of a cylinder within RhinoMath.ZeroTolerance.
(Inherited from Surface.)
Public Method
IsCylinder(Double)
Determines if the surface is a portion of a cylinder within a given tolerance.
(Inherited from Surface.)
Public Method
IsIsoparametric(BoundingBox)
Determines if a 2d bounding box is isoparametric in the parameter space of this surface.
(Inherited from Surface.)
Public Method
IsIsoparametric(Curve)
Determines if a 2d curve is isoparametric in the parameter space of this surface.
(Inherited from Surface.)
Public Method
IsIsoparametric(Curve, Interval)
Determines if a 2D curve is isoparametric in the parameter space of this surface.
(Inherited from Surface.)
Public Method
Code Example
IsoCurve
Gets isoparametric curve.
(Inherited from Surface.)
Public Method
IsPeriodic
Gets a value indicating if the surface is periodic in a direction (default is false).
(Inherited from Surface.)
Public Method
Code Example
IsPlanar.
Tests a surface to see if it is planar to zero tolerance.
(Inherited from Surface.)
Public Method
IsPlanar(Double)
Tests a surface to see if it is planar to a given tolerance.
(Inherited from Surface.)
Public Method
IsSingular
true if surface side is collapsed to a point.
(Inherited from Surface.)
Public Method
IsSphere.
Determines if the surface is a portion of a sphere within RhinoMath.ZeroTolerance.
(Inherited from Surface.)
Public Method
IsSphere(Double)
Determines if the surface is a portion of a sphere within a given tolerance.
(Inherited from Surface.)
Public Method
IsTorus.
Determines if the surface is a portion of a torus within RhinoMath.ZeroTolerance.
(Inherited from Surface.)
Public Method
IsTorus(Double)
Determines if the surface is a portion of a torus within a given tolerance.
(Inherited from Surface.)
Public Method
IsValidWithLog
Determines if an object is valid. Also provides a report on errors if this object happens not to be valid.
(Inherited from CommonObject.)
Public Method
LocalClosestPoint
Find parameters of the point on a surface that is locally closest to the testPoint. The search for a local close point starts at seed parameters.
(Inherited from Surface.)
Public Method
Static Member
MakeCompatible
For expert use only. Makes a pair of compatible NURBS surfaces based on two input surfaces.
Public Method
MakeDeformable
If possible, converts the object into a form that can be accurately modified with “squishy” transformations like projections, shears, an non-uniform scaling.
(Inherited from GeometryBase.)
Public Method
MakeNonRational
Makes this surface non-rational.
Public Method
MakeRational
Makes this surface rational.
Public Method
MatchToCurve
Constructs a NURBS surface with start and end edge isocurve matching the start and end of targetCurve, and Greville points on targetCurve.
Protected Method
MemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public Method
MemoryEstimate
Computes an estimate of the number of bytes that this object is using in memory.
(Inherited from GeometryBase.)
Protected Method
NonConstOperation
Destroy cache handle
(Inherited from GeometryBase.)
Public Method
Code Example
NormalAt
Computes the surface normal at a point.
This is the simple evaluation call - it does not support error handling.
(Inherited from Surface.)
Public Method
Offset
Constructs a new surface which is offset from the current surface.
(Inherited from Surface.)
Protected Method
OnSwitchToNonConst
Is called when a non-constant operation occurs.
(Inherited from GeometryBase.)
Public Method
PointAt
Evaluates a point at a given parameter.
(Inherited from Surface.)
Public Method
Pullback(Curve, Double)
Pulls a 3d curve back to the surface’s parameter space.
(Inherited from Surface.)
Public Method
Pullback(Curve, Double, Interval)
Pulls a 3d curve back to the surface’s parameter space.
(Inherited from Surface.)
Public Method
Pushup(Curve, Double)
Computes a 3d curve that is the composite of a 2d curve and the surface map.
(Inherited from Surface.)
Public Method
Pushup(Curve, Double, Interval)
Computes a 3d curve that is the composite of a 2d curve and the surface map.
(Inherited from Surface.)
Public Method
Rebuild
Rebuilds an existing surface to a given degree and point count.
(Inherited from Surface.)
Public Method
RebuildOneDirection
Rebuilds an existing surface with a new surface to a given point count in either the u or v directions independently.
(Inherited from Surface.)
Public Method
RefitSimplySplitSurface
This routine accepts a 3-d trim curve (trimCrv3d). The trim curve is assumed to run from one surface edge to the opposite edge; this is referred to as a “simple” trim curve, roughly parallel to one of the srf directions (either u or v). We refer to that parameter as the “trim parameter”. The routine splits the surface via the trim curve, and then refits either side (“upper” = “above the trim”, and “lower” = “below the trim”) as a set of untrimmed Nurbs surfaces. The idea is to retain, as much as possible, the Nurbs structure of srf, especially in the trim parameter.
(Inherited from Surface.)
Public Method
RefitSplit
Splits the surface into two and refits the split edge
(Inherited from Surface.)
Public Method
Reverse(Int32)
Reverses parameterization Domain changes from [a,b] to [-b,-a]
(Inherited from Surface.)
Public Method
Reverse(Int32, Boolean)
Same as Reverse, but if inPlace is set to true this Surface is modified instead of a new copy being created.
(Inherited from Surface.)
Public Method
Rotate
Rotates the object about the specified axis. A positive rotation angle results in a counter-clockwise rotation about the axis (right hand rule).
(Inherited from GeometryBase.)
Public Method
Scale
Scales the object by the specified factor. The scale is centered at the origin.
(Inherited from GeometryBase.)
Public Method
SetDomain
Sets the domain in a direction.
(Inherited from Surface.)
Public Method
SetUserString
Attach a user string (key,value combination) to this geometry.
(Inherited from GeometryBase.)
Public Method
ShortPath
Constructs a geodesic between 2 points, used by ShortPath command in Rhino.
(Inherited from Surface.)
Public Method
Smooth(Double, Boolean, Boolean, Boolean, Boolean, SmoothingCoordinateSystem)
Smooths a surface by averaging the positions of control points in a specified region.
(Inherited from Surface.)
Public Method
Smooth(Double, Boolean, Boolean, Boolean, Boolean, SmoothingCoordinateSystem, Plane)
Smooths a surface by averaging the positions of control points in a specified region.
(Inherited from Surface.)
Public Method
SpanCount
Gets number of smooth nonempty spans in the parameter direction.
(Inherited from Surface.)
Public Method
Split
Splits (divides) the surface into two parts at the specified parameter
(Inherited from Surface.)
Public Method
ToBrep
Converts the surface into a Brep.
(Inherited from Surface.)
Public Method
ToJSON
Create a JSON string representation of this object
(Inherited from CommonObject.)
Public Method
ToNurbsSurface.
Gets a NURBS surface representation of this surface. Default tolerance of 0.0 is used.
(Inherited from Surface.)
Public Method
ToNurbsSurface(Double, Int32.)
Gets a NURBS surface representation of this surface.
(Inherited from Surface.)
Public Method
ToString
Returns a string that represents the current object.
(Inherited from Object.)
Public Method
Transform
Transforms the geometry. If the input Transform has a SimilarityType of OrientationReversing, you may want to consider flipping the transformed geometry after calling this function when it makes sense. For example, you may want to call Flip() on a Brep after transforming it.
(Inherited from GeometryBase.)
Public Method
Translate(Vector3d)
Translates the object along the specified vector.
(Inherited from GeometryBase.)
Public Method
Translate(Double, Double, Double)
Translates the object along the specified vector.
(Inherited from GeometryBase.)
Public Method
Transpose.
Transposes surface parameterization (swap U and V)
(Inherited from Surface.)
Public Method
Transpose(Boolean)
Transposes surface parameterization (swap U and V)
(Inherited from Surface.)
Public Method
Trim
Constructs a sub-surface that covers the specified UV trimming domain.
(Inherited from Surface.)
Public Method
TryGetCone(Cone.)
Tests a surface to see if it is a portion of a cone within RhinoMath.ZeroTolerance and return the cone.
(Inherited from Surface.)
Public Method
TryGetCone(Cone., Double)
Tests a surface to see if it is a portion of a cone and returns the cone.
(Inherited from Surface.)
Public Method
TryGetCylinder(Cylinder.)
Tests a surface to see if it is a portion of a cylinder within RhinoMath.ZeroTolerance and return the cylinder.
(Inherited from Surface.)
Public Method
TryGetCylinder(Cylinder., Double)
Tests a surface to see if it is a portion of a cylinder and return the infinite cylinder.
(Inherited from Surface.)
Public Method
TryGetFiniteCylinder
Tests a surface with the assumption that it might be a right circular cylinder and returns this geometry.
(Inherited from Surface.)
Public Method
TryGetPlane(Plane.)
Tests a surface for planarity and return the plane.
(Inherited from Surface.)
Public Method
Code Example
TryGetPlane(Plane., Double)
Tests a surface for planarity and return the plane.
(Inherited from Surface.)
Public Method
TryGetSphere(Sphere.)
Test a surface to see if it is a portion of a sphere and return the sphere.
(Inherited from Surface.)
Public Method
TryGetSphere(Sphere., Double)
Test a surface to see if it is a portion of a sphere and return the sphere.
(Inherited from Surface.)
Public Method
TryGetTorus(Torus.)
Tests a surface to see if it is a portion of a torus within RhinoMath.ZeroTolerance and returns the torus.
(Inherited from Surface.)
Public Method
TryGetTorus(Torus., Double)
Tests a surface to see if it is a portion of a torus and returns the torus.
(Inherited from Surface.)
Public Method
UVNDirectionsAt
Calculates the U, V, and N directions of a NURBS surface at a u,v parameter similar to the method used by Rhino’s MoveUVN command.
Public Method
VariableOffset(Double, Double, Double, Double, Double)
Copies a surface so that all locations at the corners of the copied surface are specified distances from the original surface.
(Inherited from Surface.)
Public Method
VariableOffset(Double, Double, Double, Double, IEnumerable.Point2d., IEnumerable.Double., Double)
Copies a surface so that all locations at the corners, and from specified interior locations, of the copied surface are specified distances from the original surface.
(Inherited from Surface.)