﻿Mesh Methods

# Mesh Methods

The Mesh type exposes the following members.

Methods
NameDescription
Append
Appends a copy of another mesh to this one and updates indices of appended mesh parts.
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.)
ComputeAutoCreaseInformation
Do not use this method. Length: top.Mesh.Vertices.Count
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)
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 closed polyline.
CreateFromCone
Constructs a mesh cone
CreateFromCurvePipe
Constructs a new mesh pipe from a curve.
CreateFromCylinder
Constructs a mesh cylinder
CreateFromLines
Creates a mesh by analizing the edge structure that could result from the extraction of edges from an original mesh.
CreateFromPlanarBoundary(Curve, MeshingParameters)
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.
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.
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 smartphone 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.
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.
CreateRefinedCatmullClarkMesh
Instantiates a new mesh that represents a Catmull-Clark subdivision of the mesh.
CreateRefinedLoopMesh
Instantiates a new mesh that represents a Loop subdivision of the mesh.
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)
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).
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 (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, non-manifold 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
Reverses the direction of the mesh.
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.)
GetCachedTextureCoordinates
Call this method to get cached texture coordinates for a texture mapping with the specified Id.
GetHashCode (Inherited from Object.)
GetNakedEdgePointStatus
Returns an array of bool 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 over-four-sided 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.
GetType (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
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 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.

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

(Inherited from CommonObject.)

In Rhino for Windows, this member is overridden by NonConstOperation.
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.
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.
PullPointsToMesh
Pulls a collection of points to a mesh.
RebuildNormals
Removes mesh normals and reconstructs the face and vertex normals based on the orientation of the faces.
Reduce(ReduceMeshParameters)
Reduce polygon count
Reduce(Int32, Boolean, Int32, Boolean)
Reduce polygon count
Reduce(Int32, Boolean, Int32, Boolean, CancellationToken, IProgressDouble, String)
Reduce polygon count
ReleaseUnsafeLock
Updates the Mesh data with the information that was stored via the MeshUnsafeLock.
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.)
SetCachedTextureCoordinates
Set cached texture coordinates using the specified mapping.
SetTextureCoordinates
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.
SolidOrientation
Determines orientation of a "solid" mesh.
Split(Mesh)
Split a mesh with another mesh.
Split(IEnumerableMesh)
Split a mesh with a collection of meshes.
Split(Plane)
Split a mesh by an infinite plane.
SplitDisjointPieces
Splits up the mesh into its unconnected pieces.
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.)
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.
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.
Top