Surface Class

Surface Class

Represents a base class that is common to most RhinoCommon surface types.

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

Inheritance Hierarchy
SystemObject
  Rhino.RuntimeCommonObject
    Rhino.GeometryGeometryBase
      Rhino.GeometrySurface
        More...

Namespace:  Rhino.Geometry
Assembly:  RhinoCommon (in RhinoCommon.dll)
Syntax
[SerializableAttribute]
public class Surface : GeometryBase
<SerializableAttribute>
Public Class Surface
	Inherits GeometryBase

The Surface type exposes the following members.

Constructors
  NameDescription
Protected methodSurface
Protected constructor for internal use.
Protected methodSurface(SerializationInfo, StreamingContext)
Protected constructor for internal use.
Top
Properties
  NameDescription
Public propertyDisposed
Indicates if this object has been disposed or the document it originally belonged to has been disposed.
(Inherited from CommonObject.)
Public propertyHasBrepForm
Returns true if the Brep.TryConvertBrep function will be successful for this object
(Inherited from GeometryBase.)
Public propertyHasUserData
Gets true if this class has any custom information attached to it through UserData.
(Inherited from CommonObject.)
Public propertyIsDeformable
true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.
(Inherited from GeometryBase.)
Public propertyIsDocumentControlled
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 propertyIsSolid
Gets a values indicating whether a surface is solid.
Public propertyIsValid
Tests an object to see if it is valid.
(Inherited from CommonObject.)
Public propertyObjectType
Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.
(Inherited from GeometryBase.)
Public propertyUserData
List of custom information that is attached to this class.
(Inherited from CommonObject.)
Public propertyUserDictionary
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.)
Public propertyUserStringCount
Gets the amount of user strings.
(Inherited from GeometryBase.)
Top
Methods
  NameDescription
Public methodCode exampleClosestPoint
Input the parameters of the point on the surface that is closest to testPoint.
Public methodClosestSide
Gets the side that is closest, in terms of 3D-distance, to a U and V parameter.
Public methodComponentIndex
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 methodConstructConstObject
Assigns a parent object and a subobject index to this.
(Inherited from CommonObject.)
Public methodStatic memberCreateExtrusion
Constructs a surface by extruding a curve along a vector.
Public methodStatic memberCreateExtrusionToPoint
Constructs a surface by extruding a curve to a point.
Public methodStatic memberCreatePeriodicSurface(Surface, Int32)
Constructs a periodic surface from a base surface and a direction.
Public methodStatic memberCreatePeriodicSurface(Surface, Int32, Boolean)
Constructs a periodic surface from a base surface and a direction.
Public methodStatic memberCreateRollingBallFillet(Surface, Surface, Double, Double)
Constructs a rolling ball fillet between two surfaces.
Public methodStatic memberCreateRollingBallFillet(Surface, Point2d, Surface, Point2d, Double, Double)
Constructs a rolling ball fillet between two surfaces.
Public methodStatic memberCreateRollingBallFillet(Surface, Boolean, Surface, Boolean, Double, Double)
Constructs a rolling ball fillet between two surfaces.
Public methodStatic memberCreateSoftEditSurface
Creates a soft edited surface from an exising surface using a smooth field of influence.
Public methodCode exampleCurvatureAt
Computes the curvature at the given UV coordinate.
Public methodDegree
Returns the maximum algebraic degree of any span (or a good estimate if curve spans are not algebraic).
Public methodDispose
Actively reclaims unmanaged resources that this instance uses.
(Inherited from CommonObject.)
Protected methodDispose(Boolean)
For derived class implementers.

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.

(Inherited from CommonObject.)

In Rhino for Windows, this member is overridden by Dispose(Boolean).
Public methodDomain
Gets the domain in a direction.
Public methodDuplicate
Constructs a deep (full) copy of this object.
(Inherited from GeometryBase.)
Public methodDuplicateShallow
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 methodEnsurePrivateCopy
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 methodEquals (Inherited from Object.)
Public methodEvaluate
Evaluates a surface mathematically.
Public methodExtend
Extends an untrimmed surface along one edge.
Protected methodFinalize
Passively reclaims unmanaged resources when the class user did not explicitly call Dispose().
(Inherited from CommonObject.)
Public methodFit
Fits a new surface through an existing surface.
Public methodCode exampleFrameAt
Computes the orient plane on a surface given a U and V parameter.

This is the simple evaluation call with no error handling.

Public methodCode exampleGetBoundingBox(Boolean)
Boundingbox solver. Gets the world axis aligned boundingbox for the geometry.
(Inherited from GeometryBase.)
Public methodCode exampleGetBoundingBox(Plane)
Aligned Boundingbox solver. Gets the plane aligned boundingbox.
(Inherited from GeometryBase.)
Public methodGetBoundingBox(Transform)
Aligned Boundingbox solver. Gets the world axis aligned boundingbox for the transformed geometry.
(Inherited from GeometryBase.)
Public methodGetBoundingBox(Plane, Box)
Aligned Boundingbox solver. Gets the plane aligned boundingbox.
(Inherited from GeometryBase.)
Public methodGetHashCode (Inherited from Object.)
Public methodGetNextDiscontinuity
Searches for a derivative, tangent, or curvature discontinuity.
Public methodGetNurbsFormParameterFromSurfaceParameter
Translates a parameter from the current surface to the parameter space of the surface returned by ToNurbsSurface.
Public methodGetObjectData
Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.
(Inherited from CommonObject.)
Public methodGetSpanVector
Gets array of span "knots".
Public methodGetSurfaceParameterFromNurbsFormParameter
Translates a parameter from a value on the surface returned by ToNurbsSurface to the current surface.
Public methodCode exampleGetSurfaceSize
Gets an estimate of the size of the rectangle that would be created if the 3d surface where flattened into a rectangle.
Public methodGetType (Inherited from Object.)
Public methodGetUserString
Gets user string from this geometry.
(Inherited from GeometryBase.)
Public methodGetUserStrings
Gets a copy of all (user key string, user value string) pairs attached to this geometry.
(Inherited from GeometryBase.)
Public methodHasNurbsForm
Is there a NURBS surface representation of this surface.
Public methodInterpolatedCurveOnSurface
Constructs an interpolated curve on a surface, using 3D points.
Public methodInterpolatedCurveOnSurfaceUV
Constructs an interpolated curve on a surface, using 2D surface points.
Public methodIsAtSeam
Tests if a surface parameter value is at a seam.
Public methodIsAtSingularity
Tests if a surface parameter value is at a singularity.
Public methodIsClosed
Gets a value indicating if the surface is closed in a direction.
Public methodIsCone
Determines if the surface is a portion of a cone within RhinoMath.ZeroTolerance.
Public methodIsCone(Double)
Determines if the surface is a portion of a cone within a given tolerance.
Public methodIsContinuous
Tests continuity at a surface parameter value.
Public methodIsCylinder
Determines if the surface is a portion of a cylinder within RhinoMath.ZeroTolerance.
Public methodIsCylinder(Double)
Determines if the surface is a portion of a cylinder within a given tolerance.
Public methodIsIsoparametric(BoundingBox)
Determines if a 2d bounding box is iso-parameteric in the parameter space of this surface.
Public methodIsIsoparametric(Curve)
Determines if a 2d curve is iso-parameteric in the parameter space of this surface.
Public methodIsIsoparametric(Curve, Interval)
Determines if a 2D curve is iso-parameteric in the parameter space of this surface.
Public methodCode exampleIsoCurve
Gets isoparametric curve.
Public methodIsPeriodic
Gets a value indicating if thr surface is periodic in a direction (default is false).
Public methodCode exampleIsPlanar
Tests a surface to see if it is planar to zero tolerance.
Public methodIsPlanar(Double)
Tests a surface to see if it is planar to a given tolerance.
Public methodIsSingular
true if surface side is collapsed to a point.
Public methodIsSphere
Determines if the surface is a portion of a sphere within RhinoMath.ZeroTolerance.
Public methodIsSphere(Double)
Determines if the surface is a portion of a sphere within a given tolerance.
Public methodIsTorus
Determines if the surface is a portion of a torus within RhinoMath.ZeroTolerance.
Public methodIsTorus(Double)
Determines if the surface is a portion of a torus within a given tolerance.
Public methodIsValidWithLog
Determines if an object is valid. Also provides a report on errors if this object happens not to be valid.
(Inherited from CommonObject.)
Public methodLocalClosestPoint
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.
Public methodMakeDeformable
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.)
Protected methodMemberwiseClone (Inherited from Object.)
Public methodMemoryEstimate
Computes an estimate of the number of bytes that this object is using in memory.
(Inherited from GeometryBase.)
Protected methodNonConstOperation
For derived classes implementers.

Defines the necessary implementation to free the instance from being const.

(Inherited from CommonObject.)

In Rhino for Windows, this member is overridden by NonConstOperation.
Public methodCode exampleNormalAt
Computes the surface normal at a point.

This is the simple evaluation call - it does not support error handling.

Public methodOffset
Constructs a new surface which is offset from the current surface.
Protected methodOnSwitchToNonConst
Is called when a non-const operation occurs.
(Inherited from GeometryBase.)
Public methodPointAt
Evaluates a point at a given parameter.
Public methodPullback(Curve, Double)
Pulls a 3d curve back to the surface's parameter space.
Public methodPullback(Curve, Double, Interval)
Pulls a 3d curve back to the surface's parameter space.
Public methodPushup(Curve, Double)
Computes a 3d curve that is the composite of a 2d curve and the surface map.
Public methodPushup(Curve, Double, Interval)
Computes a 3d curve that is the composite of a 2d curve and the surface map.
Public methodRebuild
Rebuilds an existing surface to a given degree and point count.
Public methodRebuildOneDirection
Rebuilds an existing surface with a new surface to a given point count in either the u or v directions independently.
Public methodReverse(Int32)
Reverses parameterization Domain changes from [a,b] to [-b,-a]
Public methodReverse(Int32, Boolean)
Same as Reverse, but if inPlace is set to true this Surface is modified instead of a new copy being created.
Public methodRotate
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 methodScale
Scales the object by the specified factor. The scale is centered at the origin.
(Inherited from GeometryBase.)
Public methodSetDomain
Sets the domain in a direction.
Public methodSetUserString
Attach a user string (key,value combination) to this geometry.
(Inherited from GeometryBase.)
Public methodShortPath
Constructs a geodesic between 2 points, used by ShortPath command in Rhino.
Public methodSmooth(Double, Boolean, Boolean, Boolean, Boolean, SmoothingCoordinateSystem)
Smooths a surface by averaging the positions of control points in a specified region.
Public methodSmooth(Double, Boolean, Boolean, Boolean, Boolean, SmoothingCoordinateSystem, Plane)
Smooths a surface by averaging the positions of control points in a specified region.
Public methodSpanCount
Gets number of smooth nonempty spans in the parameter direction.
Public methodSplit
Splits (divides) the surface into two parts at the specified parameter
Public methodToBrep
Converts the surface into a Brep.
Public methodToNurbsSurface
Gets a NURBS surface representation of this surface. Default tolerance of 0.0 is used.
Public methodToNurbsSurface(Double, Int32)
Gets a NURBS surface representation of this surface.
Public methodToString (Inherited from Object.)
Public methodTransform
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 methodTranslate(Vector3d)
Translates the object along the specified vector.
(Inherited from GeometryBase.)
Public methodTranslate(Double, Double, Double)
Translates the object along the specified vector.
(Inherited from GeometryBase.)
Public methodTranspose
Transposes surface parameterization (swap U and V)
Public methodTranspose(Boolean)
Transposes surface parameterization (swap U and V)
Public methodTrim
Constructs a sub-surface that covers the specified UV trimming domain.
Public methodTryGetCone(Cone)
Tests a surface to see if it is a portion of a cone within RhinoMath.ZeroTolerance and return the cone.
Public methodTryGetCone(Cone, Double)
Tests a surface to see if it is a portion of a cone and returns the cone.
Public methodTryGetCylinder(Cylinder)
Tests a surface to see if it is a portion of a cylinder within RhinoMath.ZeroTolerance and return the cylinder.
Public methodTryGetCylinder(Cylinder, Double)
Tests a surface to see if it is a portion of a cylinder and return the infinite cylinder.
Public methodTryGetFiniteCylinder
Tests a surface with the assumption that it might be a right circular cylinder and returns this geometry.
Public methodTryGetPlane(Plane)
Tests a surface for planarity and return the plane.
Public methodCode exampleTryGetPlane(Plane, Double)
Tests a surface for planarity and return the plane.
Public methodTryGetSphere(Sphere)
Test a surface to see if it is a portion of a sphere and return the sphere.
Public methodTryGetSphere(Sphere, Double)
Test a surface to see if it is a portion of a sphere and return the sphere.
Public methodTryGetTorus(Torus)
Tests a surface to see if it is a portion of a torus within RhinoMath.ZeroTolerance and returns the torus.
Public methodTryGetTorus(Torus, Double)
Tests a surface to see if it is a portion of a torus and returns the torus.
Top
Version Information

Rhino for Mac

Supported in: 5.4

Rhino for Windows

Supported in: 6.8
See Also
Inheritance Hierarchy