SubD
Subdivision surface
Inheritance Hierarchy
System.Object
Rhino.Runtime.CommonObject
Rhino.Geometry.GeometryBase
Rhino.Geometry.SubD
Namespace: Rhino.Geometry
Assembly: RhinoCommon (in RhinoCommon.dll)
Syntax
[SerializableAttribute]public class SubD : GeometryBase
The SubD type exposes the following members.
Constructors
Name
Description
Public Method
SubD.
Create a new instance of SubD geometry
Protected Method
SubD(SerializationInfo, StreamingContext)
Protected constructor used in serialization.
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
Edges
All edges in this SubD
Public Property
Static Member
Empty
Get a new, empty SubD object.
Public Property
Faces
All faces in this SubD
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
IsSolid
Test SubD to see if the active level is a solid. A “solid” is a closed oriented manifold, or a closed oriented manifold.
Public Property
IsValid
Tests an object to see if it is valid.
(Inherited from CommonObject.)
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
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.)
Public Property
Vertices
All vertices in this SubD
Methods
Name
Description
Public Method
ClearEvaluationCache
Clear all cached evaluation information (meshes, surface points, bounding boxes, …) that depends on edge tags, vertex tags, and the location of vertex control points.
Public Method
ComponentFromComponentIndex
Returns a SubDComponent, either a SubDEdge, SubDFace, or SubDVertex, from a component index.
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
CopyEvaluationCache
Expert function that copies cached evaluations of component subdivision points and limit surface information from src to this. Typically this is done for performance critical situations like control point editing: - Copy a SubD to be modified (this does not copy the evaluation cache) - Copy the evaluation cache from the unmodified SubD - Modify the SubD copy - Update the surface mesh cache so that only the modified parts are recalculated - Display, meshing, bounding boxes on the modified SubD are now available
Public Method
Static Member
CreateFromCylinder
Creates a SubD form of a cylinder.
Public Method
Static Member
CreateFromLoft
Creates a SubD lofted through shape curves.
Public Method
Static Member
CreateFromMesh(Mesh)
Create a new SubD from a mesh.
Public Method
Static Member
CreateFromMesh(Mesh, SubDCreationOptions)
Create a new SubD from a mesh.
Public Method
Static Member
CreateFromSurface
Create a SubD that approximates the surface. If the surface is a SubD friendly NURBS surface and withCorners is true, then the SubD and input surface will have the same geometry.
Public Method
Static Member
CreateFromSweep(NurbsCurve, NurbsCurve, IEnumerable.NurbsCurve., Boolean, Boolean)
Fits a SubD through a series of profile curves that define the SubD cross-sections and two curves that defines SubD edges.
Public Method
Static Member
CreateFromSweep(NurbsCurve, IEnumerable.NurbsCurve., Boolean, Boolean, Boolean, Vector3d)
Fits a SubD through a series of profile curves that define the SubD cross-sections and one curve that defines a SubD edge.
Public Method
Static Member
CreateGlobeSphere
Creates a SubD sphere made from polar triangle fans and bands of quads. The result resembles a globe with triangle fans at the poles and the edges forming latitude parallels and longitude meridians.
Public Method
Static Member
CreateIcosahedron
Creates a SubD sphere based on an icosohedron (20 triangular faces and 5 valent vertices). This is a goofy topology for a Catmull-Clark subdivision surface (all triangles, all vertices have 5 edges). You may want to consider using the much behaved result from CreateSubDQuadSphere(sphere, vertexLocation, 1) or even the result from CreateSubDGlobeSphere().
Public Method
Static Member
CreateQuadSphere
Creates a SubD sphere made from quad faces.
Public Method
Static Member
CreateTriSphere
Creates a SubD sphere made from triangular faces. This is a goofy topology for a Catmull-Clark subdivision surface (all triangles and all vertices have 5 or 6 edges). You may want to consider using the much behaved result from CreateSubDQuadSphere() or even the result from CreateSubDGlobeSphere().
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
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)
Deletes the underlying native pointer during a Dispose call or GC collection
(Overrides
GeometryBase.Dispose(Boolean)
.)Public Method
Duplicate
Constructs a deep (full) copy of this object.
(Inherited from GeometryBase.)
Public Method
DuplicateEdgeCurves.
Gets Nurbs form of all edges in this SubD, with clamped knots. NB: Does not update the SubD evaluation cache before getting the edges.
Public Method
DuplicateEdgeCurves(Boolean, Boolean, Boolean, Boolean, Boolean, Boolean)
Gets Nurbs form of edges in this SubD. NB: Does not update the SubD evaluation cache before getting the edges.
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
Equals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected Method
Finalize
Passively reclaims unmanaged resources when the class user did not explicitly call Dispose().
(Inherited from CommonObject.)
Public Method
Flip
Reverses the orientation of all SubD normals.
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
GetObjectData
Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.
(Inherited from CommonObject.)
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
InterpolateSurfacePoints(.Point3d.)
Modifies the SubD so that the SubD vertex limit surface points are equal to surface_points[]
Public Method
InterpolateSurfacePoints(.UInt32., .Point3d.)
Modifies the SubD so that the SubD vertex limit surface points of the listed vertices are equal to surface_points[].
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
Static Member
JoinSubDs(IEnumerable.SubD., Double, Boolean)
Joins an enumeration of SubDs to form as few as possible resulting SubDs. There may be more than one SubD in the result array.
Public Method
Static Member
JoinSubDs(IEnumerable.SubD., Double, Boolean, Boolean)
Joins an enumeration of SubDs to form as few as possible resulting SubDs. There may be more than one SubD in the result array.
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.)
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.)
Public Method
MergeAllCoplanarFaces(Double)
Merges adjacent coplanar faces into single faces.
Public Method
MergeAllCoplanarFaces(Double, Double)
Merges adjacent coplanar faces into single faces.
Protected Method
NonConstOperation
Destroy cache handle
(Overrides
GeometryBase.NonConstOperation.
.)Public Method
Offset
Makes a new SubD with vertices offset at distance in the direction of the control net vertex normals. Optionally, based on the value of solidify, adds the input SubD and a ribbon of faces along any naked edges.
Protected Method
OnSwitchToNonConst
Called when this object switches from being considered “owned by the document” to being an independent instance.
(Overrides
GeometryBase.OnSwitchToNonConst.
.)Public Method
PackFaces
Resets the SubD to the default face packing if adding creases or deleting faces breaks the quad grids. It does not change the topology or geometry of the SubD. SubD face packs always stop at creases.
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
SetUserString
Attach a user string (key,value combination) to this geometry.
(Inherited from GeometryBase.)
Public Method
SetVertexSurfacePoint
Set the location of a single vertex surface point. This function is not suitable for setting the locations of multiple vertex surface points that are topologically near to each other.
Public Method
Subdivide.
Apply the Catmull-Clark subdivision algorithm and save the results in this SubD.
Public Method
Subdivide(IEnumerable.Int32.)
Apply the Catmull-Clark subdivision algorithm and save the results in this SubD.
Public Method
Subdivide(Int32)
Apply the Catmull-Clark subdivision algorithm and save the results in this SubD.
Public Method
SurfaceMeshCacheExists
Checks that a surface mesh evaluation cache exists, and that it has the required options. This cache is used by -
SurfacePoint.
, - ToNurbsCurve(Boolean), and -CreateFromSubD(SubD, Int32)
.Public Method
ToBrep.
Create a Brep based on this SubD geometry, based on SubDToBrepOptions.Default options.
Public Method
ToBrep(SubDToBrepOptions)
Create a Brep based on this SubD geometry.
Public Method
ToJSON
Create a JSON string representation of this object
(Inherited from CommonObject.)
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
TransformComponents
Transforms an enumerable of SubD components.
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
UpdateAllTagsAndSectorCoefficients
Updates vertex tag, edge tag, and edge coefficient values on the active level. After completing custom editing operations that modify the topology of the SubD control net or changing values of vertex or edge tags, the tag and sector coefficients information on nearby components in the edited areas need to be updated.
Public Method
UpdateSurfaceMeshCache
Updates limit surface information returned by -
SurfacePoint.
, - ToNurbsCurve(Boolean), and -CreateFromSubD(SubD, Int32)
. The density of the mesh cache isDefault.
.