Mesh Methods 
The Mesh type exposes the following members.
Name  Description  

Append(Mesh) 
Appends a copy of another mesh to this one and updates indices of appended mesh parts.
 
Append(IEnumerableMesh) 
Append a list of meshes. This function is much more efficient than making
repeated calls to Mesh.Append(Mesh) when lots of meshes are being joined
into a single large mesh.
 
Check 
Examines the mesh and logs a description of what it finds right or wrong.
The various properties the function checks for are described in MeshCheckParameters.
 
ClearSurfaceData 
Removes surface parameters, curvature parameters and surface statistics from the mesh.
 
ClearTextureData 
Removes all texture coordinate information from this mesh.
 
ClosestMeshPoint 
Gets the point on the mesh that is closest to a given test point. Similar to the
ClosestPoint function except this returns a MeshPoint class which includes
extra information beyond just the location of the closest point.
 
ClosestPoint(Point3d) 
Gets the point on the mesh that is closest to a given test point.
 
ClosestPoint(Point3d, Point3d, Double) 
Gets the point on the mesh that is closest to a given test point.
 
ClosestPoint(Point3d, Point3d, Vector3d, Double) 
Gets the point on the mesh that is closest to a given test point.
 
CollapseFacesByArea 
Collapses multiple mesh faces, with areas less than LessThanArea and greater than GreaterThanArea,
based on the principles found in Stan Melax's mesh reduction PDF,
see http://pomax.nihongoresources.com/downloads/PolygonReduction.pdf
 
CollapseFacesByByAspectRatio 
Collapses a multiple mesh faces, determined by face aspect ratio, based on criteria found in Stan Melax's polygon reduction,
see http://pomax.nihongoresources.com/downloads/PolygonReduction.pdf
 
CollapseFacesByEdgeLength 
Collapses multiple mesh faces, with greater/less than edge length, based on the principles
found in Stan Melax's mesh reduction PDF,
see http://pomax.nihongoresources.com/downloads/PolygonReduction.pdf
 
ColorAt(MeshPoint) 
Evaluate a mesh color at a set of barycentric coordinates.
 
ColorAt(Int32, Double, Double, Double, Double) 
Evaluate a mesh normal at a set of barycentric coordinates. Barycentric coordinates must
be assigned in accordance with the rules as defined by MeshPoint.T.
 
Compact 
Removes any unreferenced objects from arrays, reindexes as needed
and shrinks arrays to minimum required size.
 
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.)  
ComputeThickness(IEnumerableMesh, Double) 
Compute thickness metrics for this mesh.
 
ComputeThickness(IEnumerableMesh, Double, CancellationToken) 
Compute thickness metrics for this mesh.
 
ComputeThickness(IEnumerableMesh, Double, Double, CancellationToken) 
Compute thickness metrics for this mesh.
 
ConstructConstObject 
Assigns a parent object and a subobject index to this.
(Inherited from CommonObject.)  
CopyFrom 
Copies mesh values into this mesh from another mesh.
 
CreateBooleanDifference 
Computes the solid difference of two sets of Meshes.
 
CreateBooleanIntersection 
Computes the solid intersection of two sets of meshes.
 
CreateBooleanSplit 
Splits a set of meshes with another set.
 
CreateBooleanUnion 
Computes the solid union of a set of meshes.
 
CreateContourCurves(Mesh, Plane) 
Constructs contour curves for a mesh, sectioned at a plane.
 
CreateContourCurves(Mesh, Point3d, Point3d, Double) 
Constructs contour curves for a mesh, sectioned along a linear axis.
 
CreateFromBox(BoundingBox, Int32, Int32, Int32) 
Constructs new mesh that matches a bounding box.
 
CreateFromBox(Box, Int32, Int32, Int32) 
Constructs new mesh that matches an aligned box.
 
CreateFromBox(IEnumerablePoint3d, Int32, Int32, Int32) 
Constructs new mesh from 8 corner points.
 
CreateFromBrep(Brep)  Obsolete.
Constructs a mesh from a brep.
 
CreateFromBrep(Brep, MeshingParameters) 
Constructs a mesh from a brep.
 
CreateFromClosedPolyline 
Attempts to create a Mesh that is a triangulation of a simple closed polyline that projects onto a plane.
 
CreateFromCone(Cone, Int32, Int32)  Constructs a solid mesh cone.  
CreateFromCone(Cone, Int32, Int32, Boolean)  Constructs a mesh cone.  
CreateFromCone(Cone, Int32, Int32, Boolean, Boolean)  Constructs a mesh cone.  
CreateFromCurveExtrusion 
Constructs a new extrusion from a curve.
 
CreateFromCurvePipe 
Constructs a new mesh pipe from a curve.
 
CreateFromCylinder(Cylinder, Int32, Int32)  Constructs a capped mesh cylinder.  
CreateFromCylinder(Cylinder, Int32, Int32, Boolean, Boolean)  Constructs a mesh cylinder.  
CreateFromCylinder(Cylinder, Int32, Int32, Boolean, Boolean, Boolean)  Constructs a mesh cylinder.  
CreateFromCylinder(Cylinder, Int32, Int32, Boolean, Boolean, Boolean, Boolean)  Constructs a mesh cylinder.  
CreateFromFilteredFaceList 
Constructs a submesh, that contains a filtered list of faces.
 
CreateFromIterativeCleanup  Repairs meshes with vertices that are too near, using a tolerance value.  
CreateFromLines 
Creates a mesh by analizing the edge structure. Input lines could be from the extraction
of edges from an original mesh.
 
CreateFromPlanarBoundary(Curve, MeshingParameters)  Obsolete.
Do not use this overload. Use version that takes a tolerance parameter instead.
 
CreateFromPlanarBoundary(Curve, MeshingParameters, Double) 
Attempts to construct a mesh from a closed planar curve.RhinoMakePlanarMeshes
 
CreateFromPlane 
Constructs a planar mesh grid.
 
CreateFromSphere 
Constructs a mesh sphere.
 
CreateFromSubD 
Create a mesh from a SubD limit surface
 
CreateFromSubDControlNet  Create a mesh from a SubD control net  
CreateFromSurface(Surface) 
Constructs a mesh from a surface
 
CreateFromSurface(Surface, MeshingParameters) 
Constructs a mesh from a surface
 
CreateFromTessellation 
Attempts to create a mesh that is a triangulation of a list of points, projected on a plane,
including its holes and fixed edges.
 
CreateFromTorus 
Constructs a mesh torus.
 
CreateIcoSphere 
Constructs a icospherical mesh. A mesh icosphere differs from a standard
UV mesh sphere in that it's vertices are evenly distributed. A mesh icosphere
starts from an icosahedron (a regular polyhedron with 20 equilateral triangles).
It is then refined by splitting each triangle into 4 smaller triangles.
This splitting can be done several times.
 
CreatePartitions 
In ancient times (or modern smart phone times), some rendering engines
were only able to process small batches of triangles and the
CreatePartitions() function was provided to partition the mesh into
subsets of vertices and faces that those rendering engines could handle.
 
CreatePatch 
Construct a mesh patch from a variety of input geometry.
 
CreateQuadSphere 
Constructs a quad mesh sphere. A quad mesh sphere differs from a standard
UV mesh sphere in that it's vertices are evenly distributed. A quad mesh sphere
starts from a cube (a regular polyhedron with 6 square sides).
It is then refined by splitting each quad into 4 smaller quads.
This splitting can be done several times.
 
DestroyPartition 
Destroys mesh partition.
 
DestroyTopology 
Removes topology data, forcing all topology information to be recomputed.
 
DestroyTree 
Destroys the mesh vertex access tree.
 
Dispose 
Actively reclaims unmanaged resources that this instance uses.
(Inherited from CommonObject.)  
Dispose(Boolean) 
Overridden in order to destroy local display cache information
(Inherited from GeometryBase.)  
Duplicate 
Constructs a copy of this mesh.
This is the same as DuplicateMesh.
(Overrides GeometryBaseDuplicate.)  
DuplicateMesh  Constructs a copy of this mesh.
This is the same as Duplicate.
 
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  Determines whether the specified object is equal to the current object. (Inherited from Object.)  
EvaluateMeshGeometry 
If the mesh has SurfaceParameters, the surface is evaluated at
these parameters and the mesh geometry is updated.
 
ExplodeAtUnweldedEdges 
Explode the mesh into submeshes where a submesh is a collection of faces that are contained
within a closed loop of "unwelded" edges. Unwelded edges are edges where the faces that share
the edge have unique mesh vertexes (not mesh topology vertexes) at both ends of the edge.
 
ExtendSelectionByEdgeRidge 
Suggests an extension of a selection set by using information related with topology and alignment.
 
ExtendSelectionByFaceLoop 
Suggests an extension of a face selection set by using information related with topology and alignment.
 
ExtractNonManifoldEdges 
Extracts, or removes, nonmanifold mesh edges.
 
FileHole 
Given a starting "naked" edge index, this function attempts to determine a "hole"
by chaining additional naked edges together until if returns to the start index.
Then it triangulates the closed polygon and either adds the faces to the mesh.
 
FillHoles 
Attempts to determine "holes" in the mesh by chaining naked edges together.
Then it triangulates the closed polygons adds the faces to the mesh.
 
Finalize 
Passively reclaims unmanaged resources when the class user did not explicitly call Dispose().
(Inherited from CommonObject.)  
Flip(Boolean, Boolean, Boolean)  Reverses the direction of the mesh.  
Flip(Boolean, Boolean, Boolean, Boolean)  Reverses the direction of the mesh.  
GetBoundingBox(Boolean) 
Bounding box solver. Gets the world axis aligned bounding box for the geometry.
(Inherited from GeometryBase.)  
GetBoundingBox(Plane) 
Aligned Bounding box solver. Gets the plane aligned bounding box.
(Inherited from GeometryBase.)  
GetBoundingBox(Transform) 
Aligned Bounding box solver. Gets the world axis aligned bounding box for the transformed geometry.
(Inherited from GeometryBase.)  
GetBoundingBox(Plane, Box) 
Aligned Bounding box solver. Gets the plane aligned bounding box.
(Inherited from GeometryBase.)  
GetCachedTextureCoordinates 
Call this method to get cached texture coordinates for a texture
mapping with the specified Id.
 
GetHashCode  Serves as the default hash function. (Inherited from Object.)  
GetNakedEdgePointStatus 
Returns an array of Boolean values equal in length to the number of vertices in this
mesh. Each value corresponds to a mesh vertex and is set to true if the vertex is
not completely surrounded by faces.
 
GetNakedEdges 
Returns all edges of a mesh that are considered "naked" in the
sense that the edge only has one face.
 
GetNgonAndFacesCount 
Retrieves the count of items that GetNgonAndFacesEnumerable will provide.
 
GetNgonAndFacesEnumerable 
Retrieves a complete enumerable, i.e., one that provides an iterator over every face that is present,
no matter if defined as a triangle, a quad, or a strictly overfoursided ngon.
 
GetObjectData 
Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.
(Inherited from CommonObject.)  
GetOutlines(Plane) 
Constructs the outlines of a mesh projected against a plane.
 
GetOutlines(RhinoViewport) 
Constructs the outlines of a mesh. The projection information in the
viewport is used to determine how the outlines are projected.
 
GetOutlines(ViewportInfo, Plane) 
Constructs the outlines of a mesh.
 
GetPartition 
Retrieves a partition. See CreatePartitions(Int32, Int32) for details.
 
GetSelfIntersections 
Gets the intersections of this mesh with itself.
 
GetType  Gets the Type of the current instance. (Inherited from Object.)  
GetUnsafeLock 
Allows to obtain unsafe pointers to the underlying unmanaged data structures of the mesh.
 
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.)  
HealNakedEdges 
Attempts to "heal" naked edges in a mesh based on a given distance.
First attempts to move vertexes to neighboring vertexes that are within that
distance away. Then it finds edges that have a closest point to the vertex within
the distance and splits the edge. When it finds one it splits the edge and
makes two new edges using that point.
 
IsManifold 
Returns true if every mesh "edge" has at most two faces.
 
IsManifold(Boolean, Boolean, Boolean) 
Gets a value indicating whether or not the mesh is manifold.
A manifold mesh does not have any edge that borders more than two faces.
 
IsPointInside 
Determines if a point is inside a solid mesh.
 
IsValidWithLog 
Determines if an object is valid. Also provides a report on errors if this
object happens not to be valid.
(Inherited from CommonObject.)  
MakeDeformable 
If possible, converts the object into a form that can be accurately modified
with "squishy" transformations like projections, shears, an nonuniform scaling.
(Inherited from GeometryBase.)  
MatchEdges 
Moves face edges of an open mesh to meet adjacent face edges.
The method will first try to match vertices, and then then it will try to split edges to make the edges match.
 
MemberwiseClone  Creates a shallow copy of the current Object. (Inherited from Object.)  
MemoryEstimate 
Computes an estimate of the number of bytes that this object is using in memory.
(Inherited from GeometryBase.)  
NonConstOperation  Clear local cache on non constant calls (Overrides GeometryBaseNonConstOperation.)  
NormalAt(MeshPoint) 
Evaluate a mesh normal at a set of barycentric coordinates.
 
NormalAt(Int32, Double, Double, Double, Double) 
Evaluate a mesh normal at a set of barycentric coordinates. Barycentric coordinates must
be assigned in accordance with the rules as defined by MeshPoint.T.
 
Offset(Double) 
Makes a new mesh with vertices offset a distance in the opposite direction of the existing vertex normals.
Same as Mesh.Offset(distance, false)
 
Offset(Double, Boolean) 
Makes a new mesh with vertices offset a distance in the opposite direction of the existing vertex normals.
Optionally, based on the value of solidify, adds the input mesh and a ribbon of faces along any naked edges.
If solidify is false it acts exactly as the Offset(distance) function.
 
Offset(Double, Boolean, Vector3d) 
Makes a new mesh with vertices offset a distance along the direction parameter.
Optionally, based on the value of solidify, adds the input mesh and a ribbon of faces along any naked edges.
If solidify is false it acts exactly as the Offset(distance) function.
 
Offset(Double, Boolean, Vector3d, ListInt32) 
Makes a new mesh with vertices offset a distance along the direction parameter.
Optionally, based on the value of solidify, adds the input mesh and a ribbon of faces along any naked edges.
If solidify is false it acts exactly as the Offset(distance) function. Returns list of wall faces, i.e. the
faces that connect original and offset mesh when solidified.
 
OnSwitchToNonConst 
Performs some memory cleanup if necessary
(Overrides GeometryBaseOnSwitchToNonConst.)  
PointAt(MeshPoint) 
Evaluate a mesh at a set of barycentric coordinates.
 
PointAt(Int32, Double, Double, Double, Double) 
Evaluates a mesh at a set of barycentric coordinates. Barycentric coordinates must
be assigned in accordance with the rules as defined by MeshPoint.T.
 
PullCurve 
Gets a polyline approximation of the input curve and then moves its control points to the closest point on the mesh.
Then it "connects the points" over edges so that a polyline on the mesh is formed.
 
PullPointsToMesh 
Pulls a collection of points to a mesh.
 
QuadRemesh(QuadRemeshParameters) 
Quad remesh this mesh.
 
QuadRemesh(QuadRemeshParameters, IEnumerableCurve) 
Quad remesh this mesh.
 
QuadRemeshAsync(QuadRemeshParameters, IProgressInt32, CancellationToken) 
Quad remesh this mesh asynchronously.
 
QuadRemeshAsync(QuadRemeshParameters, IEnumerableCurve, IProgressInt32, CancellationToken) 
Quad remesh this mesh asynchronously.
 
QuadRemeshAsync(IEnumerableInt32, QuadRemeshParameters, IEnumerableCurve, IProgressInt32, CancellationToken) 
Quad remesh this mesh asynchronously.
 
QuadRemeshBrep(Brep, QuadRemeshParameters) 
Create QuadRemesh from a Brep
Set Brep Face Mode by setting QuadRemeshParameters.PreserveMeshArrayEdgesMode
 
QuadRemeshBrep(Brep, QuadRemeshParameters, IEnumerableCurve) 
Create Quad Remesh from a Brep
 
QuadRemeshBrepAsync(Brep, QuadRemeshParameters, IProgressInt32, CancellationToken) 
Quad remesh this Brep asynchronously.
 
QuadRemeshBrepAsync(Brep, QuadRemeshParameters, IEnumerableCurve, IProgressInt32, CancellationToken) 
Quad remesh this Brep asynchronously.
 
RebuildNormals 
Removes mesh normals and reconstructs the face and vertex normals based
on the orientation of the faces.
 
Reduce(ReduceMeshParameters)  Reduce polygon count  
Reduce(ReduceMeshParameters, Boolean)  Reduce polygon count  
Reduce(Int32, Boolean, Int32, Boolean) 
Reduce polygon count
 
Reduce(Int32, Boolean, Int32, Boolean, Boolean) 
Reduce polygon count
 
Reduce(Int32, Boolean, Int32, Boolean, CancellationToken, IProgressDouble, String)  Reduce polygon count  
Reduce(Int32, Boolean, Int32, Boolean, CancellationToken, IProgressDouble, String, Boolean)  Reduce polygon count  
ReleaseUnsafeLock 
Updates the Mesh data with the information that was stored via the MeshUnsafeLock.
 
RequireIterativeCleanup 
Analyzes some meshes, and determines if a pass of CreateFromIterativeCleanup would change the array.
All available cleanup steps are used. Currently available cleanup steps are:  mending of single precision coincidence even though double precision vertices differ.  union of nearly identical vertices, irrespectively of their origin.  removal of tjoints along edges.  
Rotate 
Rotates the object about the specified axis. A positive rotation
angle results in a counterclockwise 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.)  
SetCachedTextureCoordinates 
Set cached texture coordinates using the specified mapping.
 
SetTextureCoordinates(TextureMapping, Transform, Boolean) 
Set texture coordinates using given mapping and applying given transform.
Set lazy to false to generate texture coordinates right away.
 
SetTextureCoordinates(TextureMapping, Transform, Boolean, Boolean) 
Set texture coordinates using given mapping and applying given transform.
Set lazy to false to generate texture coordinates right away.
 
SetUserString 
Attach a user string (key,value combination) to this geometry.
(Inherited from GeometryBase.)  
Smooth(Double, Boolean, Boolean, Boolean, Boolean, SmoothingCoordinateSystem) 
Smooths a mesh by averaging the positions of mesh vertices in a specified region.
 
Smooth(Double, Boolean, Boolean, Boolean, Boolean, SmoothingCoordinateSystem, Plane) 
Smooths a mesh by averaging the positions of mesh vertices in a specified region.
 
Smooth(IEnumerableInt32, Double, Boolean, Boolean, Boolean, Boolean, SmoothingCoordinateSystem, Plane) 
Smooths part of a mesh by averaging the positions of mesh vertices in a specified region.
 
SolidOrientation 
Determines orientation of a "solid" mesh.
 
Split(Mesh) 
Split a mesh with another mesh. Suggestion: upgrade to overload with tolerance.
 
Split(IEnumerableMesh) 
Split a mesh with a collection of meshes. Suggestion: upgrade to overload with tolerance.
Does not split at coplanar intersections.
 
Split(Plane) 
Split a mesh by an infinite plane.
 
Split(IEnumerableMesh, Double, Boolean, TextLog, CancellationToken, IProgressDouble) 
Split a mesh with a collection of meshes.
 
Split(IEnumerableMesh, Double, Boolean, Boolean, TextLog, CancellationToken, IProgressDouble) 
Split a mesh with a collection of meshes.
 
SplitDisjointPieces 
Splits up the mesh into its unconnected pieces.
 
SplitWithProjectedPolylines(IEnumerablePolylineCurve, Double) 
Splits a mesh by adding edges in correspondence with input polylines, and divides the mesh at partitioned areas.
Polyline segments that are measured not to be on the mesh will be ignored.
 
SplitWithProjectedPolylines(IEnumerablePolylineCurve, Double, TextLog, CancellationToken, IProgressDouble) 
Splits a mesh by adding edges in correspondence with input polylines, and divides the mesh at partitioned areas.
Polyline segments that are measured not to be on the mesh will be ignored.
 
ToJSON 
Create a JSON string representation of this object
(Inherited from CommonObject.)  
ToString  Returns a string that represents the current object. (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.)  
UnifyNormals 
Attempts to fix inconsistencies in the directions of mesh faces in a mesh. This function
does not modify mesh vertex normals, it rearranges the mesh face winding and face
normals to make them all consistent. Note, you may want to call Mesh.Normals.ComputeNormals()
to recompute vertex normals after calling this functions.
 
UnifyNormals(Boolean) 
Attempts to fix inconsistencies in the directions of mesh faces in a mesh. This function
does not modify mesh vertex normals, it rearranges the mesh face winding and face
normals to make them all consistent. Note, you may want to call Mesh.Normals.ComputeNormals()
to recompute vertex normals after calling this functions.
 
Unweld 
Makes sure that faces sharing an edge and having a difference of normal greater
than or equal to angleToleranceRadians have unique vertexes along that edge,
adding vertices if necessary.
 
UnweldEdge 
Adds creases to a smooth mesh by creating coincident vertices along selected edges.
 
UnweldVertices 
Ensures that faces sharing a common topological vertex have unique indices into the MeshVertexList collection.
 
Volume 
Compute volume of the mesh.
 
Weld 
Makes sure that faces sharing an edge and having a difference of normal greater
than or equal to angleToleranceRadians share vertexes along that edge, vertex normals
are averaged.
 
WithDisplacement 
Constructs new mesh from the current one, with displacement applied to it.
 
WithEdgeSoftening 
Constructs new mesh from the current one, with edge softening applied to it.
 
WithShutLining 
Constructs new mesh from the current one, with shut lining applied to it.
