Surface Class |
A surface represents an entity that can be all visited by providing two independent parameters, usually called (u, v), or sometimes (s, t).

Namespace: Rhino.Geometry
Assembly: RhinoCommon (in RhinoCommon.dll)

The Surface type exposes the following members.

Name | Description | |
---|---|---|
![]() | Surface |
Protected constructor for internal use.
|
![]() | Surface(SerializationInfo, StreamingContext) |
Protected constructor for internal use.
|

Name | Description | |
---|---|---|
![]() | Disposed |
Indicates if this object has been disposed or the
document it originally belonged to has been disposed.
(Inherited from CommonObject.) |
![]() | HasBrepForm |
Returns true if the Brep.TryConvertBrep function will be successful for this object
(Inherited from GeometryBase.) |
![]() | HasUserData |
Gets true if this class has any custom information attached to it through UserData.
(Inherited from CommonObject.) |
![]() | IsDeformable |
true if object can be accurately modified with "squishy" transformations like
projections, shears, and non-uniform scaling.
(Inherited from GeometryBase.) |
![]() | 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.) |
![]() | IsSolid |
Gets a values indicating whether a surface is solid.
|
![]() | IsValid | Tests an object to see if it is valid. (Inherited from CommonObject.) |
![]() | ObjectType |
Useful for switch statements that need to differentiate between
basic object types like points, curves, surfaces, and so on.
(Inherited from GeometryBase.) |
![]() | UserData |
List of custom information that is attached to this class.
(Inherited from CommonObject.) |
![]() | UserDictionary |
Dictionary of custom information attached to this class. The dictionary is actually user
data provided as an easy to use sharable set of information.
(Inherited from CommonObject.) |
![]() | UserStringCount |
Gets the amount of user strings.
(Inherited from GeometryBase.) |

Name | Description | |
---|---|---|
![]() ![]() | ClosestPoint |
Input the parameters of the point on the surface that is closest to testPoint.
|
![]() | ClosestSide |
Gets the side that is closest, in terms of 3D-distance, to a U and V parameter.
|
![]() | 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.) |
![]() | ConstructConstObject |
Assigns a parent object and a subobject index to this.
(Inherited from CommonObject.) |
![]() ![]() | CreateExtrusion |
Constructs a surface by extruding a curve along a vector.
|
![]() ![]() | CreateExtrusionToPoint |
Constructs a surface by extruding a curve to a point.
|
![]() ![]() | CreatePeriodicSurface(Surface, Int32) |
Constructs a periodic surface from a base surface and a direction.
|
![]() ![]() | CreatePeriodicSurface(Surface, Int32, Boolean) |
Constructs a periodic surface from a base surface and a direction.
|
![]() ![]() | CreateRollingBallFillet(Surface, Surface, Double, Double) |
Constructs a rolling ball fillet between two surfaces.
|
![]() ![]() | CreateRollingBallFillet(Surface, Point2d, Surface, Point2d, Double, Double) |
Constructs a rolling ball fillet between two surfaces.
|
![]() ![]() | CreateRollingBallFillet(Surface, Boolean, Surface, Boolean, Double, Double) |
Constructs a rolling ball fillet between two surfaces.
|
![]() ![]() | CreateSoftEditSurface |
Creates a soft edited surface from an exising surface using a smooth field of influence.
|
![]() ![]() | CurvatureAt |
Computes the curvature at the given UV coordinate.
|
![]() | Degree |
Returns the maximum algebraic degree of any span
(or a good estimate if curve spans are not algebraic).
|
![]() | Dispose |
Actively reclaims unmanaged resources that this instance uses.
(Inherited from CommonObject.) |
![]() | Dispose(Boolean) |
For derived class implementers.
(Inherited from CommonObject.)This method is called with argument true when class user calls Dispose(), while with argument false when the Garbage Collector invokes the finalizer, or Finalize() method. You must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true. Also, you must call the base virtual method within your overriding method. In Rhino for Windows, this member is overridden by Dispose(Boolean). |
![]() | Domain | Gets the domain in a direction. |
![]() | Duplicate |
Constructs a deep (full) copy of this object.
(Inherited from GeometryBase.) |
![]() | 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.) |
![]() | 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.) |
![]() | Equals | (Inherited from Object.) |
![]() | Evaluate |
Evaluates a surface mathematically.
|
![]() | Extend |
Extends an untrimmed surface along one edge.
|
![]() | Finalize |
Passively reclaims unmanaged resources when the class user did not explicitly call Dispose().
(Inherited from CommonObject.) |
![]() | Fit | Fits a new surface through an existing surface. |
![]() ![]() | FrameAt |
Computes the orient plane on a surface given a U and V parameter.
This is the simple evaluation call with no error handling. |
![]() ![]() | GetBoundingBox(Boolean) |
Boundingbox solver. Gets the world axis aligned boundingbox for the geometry.
(Inherited from GeometryBase.) |
![]() ![]() | GetBoundingBox(Plane) |
Aligned Boundingbox solver. Gets the plane aligned boundingbox.
(Inherited from GeometryBase.) |
![]() | GetBoundingBox(Transform) |
Aligned Boundingbox solver. Gets the world axis aligned boundingbox for the transformed geometry.
(Inherited from GeometryBase.) |
![]() | GetBoundingBox(Plane, Box) |
Aligned Boundingbox solver. Gets the plane aligned boundingbox.
(Inherited from GeometryBase.) |
![]() | GetHashCode | (Inherited from Object.) |
![]() | GetNextDiscontinuity |
Searches for a derivative, tangent, or curvature discontinuity.
|
![]() | GetNurbsFormParameterFromSurfaceParameter |
Translates a parameter from the current surface to the parameter space of the surface returned by ToNurbsSurface.
|
![]() | GetObjectData |
Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.
(Inherited from CommonObject.) |
![]() | GetSpanVector |
Gets array of span "knots".
|
![]() | GetSurfaceParameterFromNurbsFormParameter |
Translates a parameter from a value on the surface returned by ToNurbsSurface to the current surface.
|
![]() ![]() | GetSurfaceSize |
Gets an estimate of the size of the rectangle that would be created
if the 3d surface where flattened into a rectangle.
|
![]() | GetType | (Inherited from Object.) |
![]() | GetUserString |
Gets user string from this geometry.
(Inherited from GeometryBase.) |
![]() | GetUserStrings |
Gets a copy of all (user key string, user value string) pairs attached to this geometry.
(Inherited from GeometryBase.) |
![]() | HasNurbsForm |
Is there a NURBS surface representation of this surface.
|
![]() | InterpolatedCurveOnSurface |
Constructs an interpolated curve on a surface, using 3D points.
|
![]() | InterpolatedCurveOnSurfaceUV |
Constructs an interpolated curve on a surface, using 2D surface points.
|
![]() | IsAtSeam |
Tests if a surface parameter value is at a seam.
|
![]() | IsAtSingularity |
Tests if a surface parameter value is at a singularity.
|
![]() | IsClosed |
Gets a value indicating if the surface is closed in a direction.
|
![]() | IsCone |
Determines if the surface is a portion of a cone within RhinoMath.ZeroTolerance.
|
![]() | IsCone(Double) | Determines if the surface is a portion of a cone within a given tolerance. |
![]() | IsContinuous |
Tests continuity at a surface parameter value.
|
![]() | IsCylinder |
Determines if the surface is a portion of a cylinder within RhinoMath.ZeroTolerance.
|
![]() | IsCylinder(Double) | Determines if the surface is a portion of a cylinder within a given tolerance. |
![]() | IsIsoparametric(BoundingBox) |
Determines if a 2d bounding box is iso-parameteric in the parameter space of this surface.
|
![]() | IsIsoparametric(Curve) |
Determines if a 2d curve is iso-parameteric in the parameter space of this surface.
|
![]() | IsIsoparametric(Curve, Interval) |
Determines if a 2D curve is iso-parameteric in the parameter space of this surface.
|
![]() ![]() | IsoCurve | Gets isoparametric curve. |
![]() | IsPeriodic |
Gets a value indicating if thr surface is periodic in a direction (default is false).
|
![]() ![]() | IsPlanar |
Tests a surface to see if it is planar to zero tolerance.
|
![]() | IsPlanar(Double) |
Tests a surface to see if it is planar to a given tolerance.
|
![]() | IsSingular |
true if surface side is collapsed to a point.
|
![]() | IsSphere |
Determines if the surface is a portion of a sphere within RhinoMath.ZeroTolerance.
|
![]() | IsSphere(Double) |
Determines if the surface is a portion of a sphere within a given tolerance.
|
![]() | IsTorus | Determines if the surface is a portion of a torus within RhinoMath.ZeroTolerance. |
![]() | IsTorus(Double) | Determines if the surface is a portion of a torus within a given tolerance. |
![]() | IsValidWithLog |
Determines if an object is valid. Also provides a report on errors if this
object happens not to be valid.
(Inherited from CommonObject.) |
![]() | 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.
|
![]() | 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.) |
![]() | MemberwiseClone | (Inherited from Object.) |
![]() | MemoryEstimate |
Computes an estimate of the number of bytes that this object is using in memory.
(Inherited from GeometryBase.) |
![]() | NonConstOperation |
For derived classes implementers.
(Inherited from CommonObject.)Defines the necessary implementation to free the instance from being const. In Rhino for Windows, this member is overridden by NonConstOperation. |
![]() ![]() | NormalAt |
Computes the surface normal at a point.
This is the simple evaluation call - it does not support error handling. |
![]() | Offset |
Constructs a new surface which is offset from the current surface.
|
![]() | OnSwitchToNonConst |
Is called when a non-const operation occurs.
(Inherited from GeometryBase.) |
![]() | PointAt |
Evaluates a point at a given parameter.
|
![]() | Pullback(Curve, Double) |
Pulls a 3d curve back to the surface's parameter space.
|
![]() | Pullback(Curve, Double, Interval) |
Pulls a 3d curve back to the surface's parameter space.
|
![]() | Pushup(Curve, Double) |
Computes a 3d curve that is the composite of a 2d curve and the surface map.
|
![]() | Pushup(Curve, Double, Interval) |
Computes a 3d curve that is the composite of a 2d curve and the surface map.
|
![]() | Rebuild |
Rebuilds an existing surface to a given degree and point count.
|
![]() | RebuildOneDirection |
Rebuilds an existing surface with a new surface to a given point count in either the u or v directions independently.
|
![]() | Reverse(Int32) |
Reverses parameterization Domain changes from [a,b] to [-b,-a]
|
![]() | Reverse(Int32, Boolean) |
Same as Reverse, but if inPlace is set to true this Surface is modified
instead of a new copy being created.
|
![]() | 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.) |
![]() | Scale |
Scales the object by the specified factor. The scale is centered at the origin.
(Inherited from GeometryBase.) |
![]() | SetDomain |
Sets the domain in a direction.
|
![]() | SetUserString |
Attach a user string (key,value combination) to this geometry.
(Inherited from GeometryBase.) |
![]() | ShortPath |
Constructs a geodesic between 2 points, used by ShortPath command in Rhino.
|
![]() | Smooth(Double, Boolean, Boolean, Boolean, Boolean, SmoothingCoordinateSystem) |
Smooths a surface by averaging the positions of control points in a specified region.
|
![]() | Smooth(Double, Boolean, Boolean, Boolean, Boolean, SmoothingCoordinateSystem, Plane) |
Smooths a surface by averaging the positions of control points in a specified region.
|
![]() | SpanCount |
Gets number of smooth nonempty spans in the parameter direction.
|
![]() | Split |
Splits (divides) the surface into two parts at the specified parameter
|
![]() | ToBrep |
Converts the surface into a Brep.
|
![]() | ToNurbsSurface |
Gets a NURBS surface representation of this surface. Default
tolerance of 0.0 is used.
|
![]() | ToNurbsSurface(Double, Int32) |
Gets a NURBS surface representation of this surface.
|
![]() | ToString | (Inherited from Object.) |
![]() | 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.) |
![]() | Translate(Vector3d) | Translates the object along the specified vector. (Inherited from GeometryBase.) |
![]() | Translate(Double, Double, Double) | Translates the object along the specified vector. (Inherited from GeometryBase.) |
![]() | Transpose |
Transposes surface parameterization (swap U and V)
|
![]() | Transpose(Boolean) |
Transposes surface parameterization (swap U and V)
|
![]() | Trim |
Constructs a sub-surface that covers the specified UV trimming domain.
|
![]() | TryGetCone(Cone) | Tests a surface to see if it is a portion of a cone within RhinoMath.ZeroTolerance and return the cone. |
![]() | TryGetCone(Cone, Double) | Tests a surface to see if it is a portion of a cone and returns the cone. |
![]() | TryGetCylinder(Cylinder) | Tests a surface to see if it is a portion of a cylinder within RhinoMath.ZeroTolerance and return the cylinder. |
![]() | TryGetCylinder(Cylinder, Double) | Tests a surface to see if it is a portion of a cylinder and return the infinite cylinder. |
![]() | TryGetFiniteCylinder | Tests a surface with the assumption that it might be a right circular cylinder and returns this geometry. |
![]() | TryGetPlane(Plane) | Tests a surface for planarity and return the plane. |
![]() ![]() | TryGetPlane(Plane, Double) | Tests a surface for planarity and return the plane. |
![]() | TryGetSphere(Sphere) | Test a surface to see if it is a portion of a sphere and return the sphere. |
![]() | TryGetSphere(Sphere, Double) | Test a surface to see if it is a portion of a sphere and return the sphere. |
![]() | TryGetTorus(Torus) | Tests a surface to see if it is a portion of a torus within RhinoMath.ZeroTolerance and returns the torus. |
![]() | TryGetTorus(Torus, Double) | Tests a surface to see if it is a portion of a torus and returns the torus. |

Rhino for Mac
Supported in: 5.4Rhino for Windows
Supported in: 6.8
Reference
