# Mesh class

Namespace: [Rhino.Geometry](https://developer.rhino3d.com/api/rhinocommon/namespace/rhino.geometry.md) · Assembly: [RhinoCommon](https://developer.rhino3d.com/api/rhinocommon/assembly/rhinocommon.md)

```cs
[Serializable]
public class Mesh : GeometryBase
```

Represents a geometry type that is defined by vertices and faces.

This is often called a face-vertex mesh.

## Constructors

- [Mesh](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/ctor.md): (2 overloads) Initializes a new empty mesh.

## Properties

- [ComponentStates](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/componentstates.md): Gets access to the vertex hidden/visibility collection in this mesh. This is a runtime property and it is not saved in the 3dm file.
- [DisjointMeshCount](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/disjointmeshcount.md): Gets the number of disjoint (topologically unconnected) pieces in this mesh.
- [FaceNormals](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/facenormals.md): Gets access to the face normal collection in this mesh.
- [Faces](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/faces.md): Gets access to the mesh face list.
- [HasCachedTextureCoordinates](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/hascachedtexturecoordinates.md): Will return true if SetCachedTextureCoordinates has been called; otherwise will return false.
- [HasPrincipalCurvatures](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/hasprincipalcurvatures.md): HasPrincipalCurvatures
- [IsClosed](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/isclosed.md): Returns true if every mesh "edge" has two or more faces.
- [IsOriented](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/isoriented.md): Returns true if the mesh is manifold and every pair of faces that share an "edge" have compatible orientations.
- [IsSolid](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/issolid.md): Returns true if the mesh is solid. A "solid" is a closed oriented manifold.
- [Ngons](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/ngons.md): Gets access to the mesh ngon list. Ngons represent groups of Faces (triangles + quads). Faces are used to tessellate an Ngon internally. When a triangle or quad is referenced in the Ngon list, it is no longer visualized and conceived as a single entity, but takes part of the Ngon. If you need to get access to both Ngons and the faces that are not referenced by Ngons, that is, all polygons that are visible in the mesh, then use the [Mesh.GetNgonAndFacesEnumerable()](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/getngonandfacesenumerable.md) helper method.
- [Normals](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/normals.md): Gets access to the vertex normal collection in this mesh.
- [PartitionCount](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/partitioncount.md): Number of partition information chunks stored on this mesh based on the last call to CreatePartitions
- [PrincipalCurvatures](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/principalcurvatures.md): Gets access to the (optional) principal curvatures list in this mesh. Principal curvatures are found on analysis meshes, not render meshes.
- [TextureCoordinates](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/texturecoordinates.md): Gets access to the vertex texture coordinate collection in this mesh.
- [TopologyEdges](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/topologyedges.md): Gets the [MeshTopologyEdgeList](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshtopologyedgelist.md) object associated with this mesh. This object stores edge connectivity.
- [TopologyVertices](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/topologyvertices.md): Gets the [MeshTopologyVertexList](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshtopologyvertexlist.md) object associated with this mesh. This object stores vertex connectivity and the indices of vertices that were unified while computing the edge topology.
- [VertexColors](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/vertexcolors.md): Gets access to the (optional) vertex color collection in this mesh.
- [Vertices](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/vertices.md): Gets access to the vertices set of this mesh.

## Methods

- [Append](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/append.md): (2 overloads) 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](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/check.md): 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](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/clearsurfacedata.md): Removes surface parameters, curvature parameters and surface statistics from the mesh.
- [ClearTextureData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/cleartexturedata.md): Removes all texture coordinate information from this mesh.
- [ClosestMeshPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/closestmeshpoint.md): 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](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/closestpoint.md): (3 overloads) Gets the point on the mesh that is closest to a given test point.
- [CollapseFacesByArea](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/collapsefacesbyarea.md): 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](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/collapsefacesbybyaspectratio.md): 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](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/collapsefacesbyedgelength.md): 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](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/colorat.md): (2 overloads) 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](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.meshpoint/t.md).
- [Compact](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/compact.md): Removes any unreferenced objects from arrays, re-indexes as needed and shrinks arrays to minimum required size.
- [ComputeAutoCreaseInformation](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/computeautocreaseinformation.md): Do not use this method. Length: top.Mesh.Vertices.Count
- [ComputeCurvatureApproximation](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/computecurvatureapproximation.md): Compute an approximation of the discrete curvatures of the mesh vertices, according to which type of curvature information is requested. This method will not yield meaningful values on nonmanifold vertices, and nan on naked vertices. For now, this method operates solely on the mesh topology (the fully welded mesh), but distribtes the result across all the ordinary vertices. This method is a const and thread-safe method and will leave the m_K array untouched. An integer indicating which curvature is desired. gaussian_curvature = 1, mean_curvature = 2, minimum unsigned radius of curvature = 3, maximum unsigned radius of curvature = 4 Resulting curvature array on success, null on failure. On success, the length of the array is the number of vertices.
- [ComputeThickness](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/computethickness.md): (3 overloads, static) Compute thickness metrics for this mesh.
- [CopyFrom](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/copyfrom.md): Copies mesh values into this mesh from another mesh.
- [CreateBooleanDifference](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createbooleandifference.md): (3 overloads, static) Computes the solid difference of two sets of meshes and reports which inputs contributed to each output.
- [CreateBooleanIntersection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createbooleanintersection.md): (3 overloads, static) Computes the solid intersection of two sets of meshes and reports which inputs contributed to each output.
- [CreateBooleanSplit](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createbooleansplit.md): (3 overloads, static) Splits a set of meshes with another set and reports which inputs contributed to each output.
- [CreateBooleanUnion](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createbooleanunion.md): (4 overloads, static) Computes the solid union of a set of meshes.
- [CreateContourCurves](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createcontourcurves.md): (4 overloads, static) Constructs contour curves for a mesh, sectioned at a plane.
- [CreateConvexHull3D](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createconvexhull3d.md): (static) Attempts to create a 3d convex hull mesh from input points.
- [CreateExtrusion](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createextrusion.md): (2 overloads, static) Constructs a mesh by extruding a curve along a vector.
- [CreateFromBox](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfrombox.md): (3 overloads, static) Constructs new mesh that matches a bounding box.
- [CreateFromBrep](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfrombrep.md): (2 overloads, static) Constructs a mesh from a brep.
- [CreateFromClosedPolyline](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromclosedpolyline.md): (static) Attempts to create a Mesh that is a triangulation of a simple closed polyline that projects onto a plane.
- [CreateFromCone](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromcone.md): (3 overloads, static) Constructs a mesh cone.
- [CreateFromCurveExtrusion](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromcurveextrusion.md): (static) Constructs a mesh from an extruded curve. This method is designed for projecting curves onto a mesh. In most cases, a better to use [Mesh.CreateExtrusion(Curve, Vector3d)](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createextrusion.md).
- [CreateFromCurvePipe](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromcurvepipe.md): (static) Constructs a new mesh pipe from a curve.
- [CreateFromCylinder](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromcylinder.md): (4 overloads, static) Constructs a mesh cylinder.
- [CreateFromExtrusion](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromextrusion.md): (static) Constructs a mesh from a brep.
- [CreateFromFilteredFaceList](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromfilteredfacelist.md): (static) Constructs a sub-mesh, that contains a filtered list of faces.
- [CreateFromIsosurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromisosurface.md): (static) Create an isosurface mesh based on a scalar field evaluator
- [CreateFromIterativeCleanup](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromiterativecleanup.md): (static) Repairs meshes with vertices that are too near, using a tolerance value.
- [CreateFromLines](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromlines.md): (static) Creates a mesh by analizing the edge structure. Input lines could be from the extraction of edges from an original mesh.
- [CreateFromPatchSingleFace](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfrompatchsingleface.md): (static) Creates a single mesh face from the given input.
- [CreateFromPlanarBoundary](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromplanarboundary.md): (2 overloads, static) Attempts to construct a mesh from a closed planar curve.RhinoMakePlanarMeshes
- [CreateFromPlane](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromplane.md): (static) Constructs a planar mesh grid.
- [CreateFromSphere](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromsphere.md): (static) Constructs a mesh sphere.
- [CreateFromSubD](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromsubd.md): (3 overloads, static) Create a mesh from a SubD limit surface
- [CreateFromSubDControlNet](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromsubdcontrolnet.md): (static) Create a mesh from a SubD control net
- [CreateFromSubDControlNetWithTextureCoordinates](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromsubdcontrolnetwithtexturecoordinates.md): (static) Create a mesh from a SubD control net including texture coordinates
- [CreateFromSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromsurface.md): (2 overloads, static) Constructs a mesh from a surface
- [CreateFromSurfaceControlNet](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromsurfacecontrolnet.md): (static) Calculate a mesh representation of a surface's control net.
- [CreateFromTessellation](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromtessellation.md): (static) 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](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createfromtorus.md): (static) Constructs a mesh torus.
- [CreateIcoSphere](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createicosphere.md): (static) 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](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createpartitions.md): 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](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createpatch.md): (static) Construct a mesh patch from a variety of input geometry.
- [CreateQuadSphere](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createquadsphere.md): (static) 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.
- [CreateQuickHull3D](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createquickhull3d.md): (4 overloads, static) Attempts to create a 3d convex hull mesh from input points using the QuickHull algorithm. Hull faces whose shared edges are not clearly convex are merged, so faces of the resulting mesh may be triangles, quads, or larger convex polygons (returned as mesh ngons).
- [CreateRefinedCatmullClarkMesh](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createrefinedcatmullclarkmesh.md): (static) Instantiates a new mesh that represents a Catmull-Clark subdivision of the mesh.
- [CreateRefinedLoopMesh](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createrefinedloopmesh.md): (static) Instantiates a new mesh that represents a Loop subdivision of the mesh.
- [CreateUnweldedMesh](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createunweldedmesh.md): (static) Creates a new unwelded mesh from an existing mesh. Texture coordinates are ignored.
- [CreateVertexColorsFromBitmap](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createvertexcolorsfrombitmap.md): Populate the vertex colors from a bitmap image.
- [DestroyPartition](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/destroypartition.md): Destroys mesh partition.
- [DestroyTopology](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/destroytopology.md): Removes topology data, forcing all topology information to be recomputed.
- [DestroyTree](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/destroytree.md): Destroys the mesh vertex access tree.
- [Duplicate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/duplicate.md): Constructs a copy of this mesh. This is the same as [Mesh.DuplicateMesh()](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/duplicatemesh.md).
- [DuplicateMesh](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/duplicatemesh.md): Constructs a copy of this mesh. This is the same as [Mesh.Duplicate()](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/duplicate.md).
- [EvaluateMeshGeometry](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/evaluatemeshgeometry.md): If the mesh has SurfaceParameters, the surface is evaluated at these parameters and the mesh geometry is updated.
- [ExplodeAtUnweldedEdges](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/explodeatunweldededges.md): Explode the mesh into sub-meshes where a sub-mesh 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 vertices (not mesh topology vertices) at both ends of the edge.
- [ExtendSelectionByEdgeRidge](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/extendselectionbyedgeridge.md): Suggests an extension of a selection set by using information related with topology and alignment.
- [ExtendSelectionByFaceLoop](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/extendselectionbyfaceloop.md): Suggests an extension of a face selection set by using information related with topology and alignment.
- [ExtractNonManifoldEdges](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/extractnonmanifoldedges.md): Extracts, or removes, non-manifold mesh edges.
- [FileHole](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/filehole.md): (obsolete)
- [FillHole](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/fillhole.md): 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](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/fillholes.md): Attempts to determine "holes" in the mesh by chaining naked edges together. Then it triangulates the closed polygons adds the faces to the mesh.
- [Flip](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/flip.md): (2 overloads) Reverses the direction of the mesh.
- [GetCachedTextureCoordinates](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/getcachedtexturecoordinates.md): (3 overloads) Returns cached texture coordinate set based on the texture. Make sure to set up cached texture coordinates for all textures in the material first by calling SetCachedTextureCoordinatesFromMaterial(File3dm file, Guid objectId, Rhino.DocObjects.Material material) If this function returns null then there are no texture coordinates available.
- [GetNakedEdgePointStatus](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/getnakededgepointstatus.md): 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](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/getnakededges.md): Returns all edges of a mesh that are considered "naked" in the sense that the edge only has one face.
- [GetNgonAndFacesCount](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/getngonandfacescount.md): Retrieves the count of items that [Mesh.GetNgonAndFacesEnumerable()](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/getngonandfacesenumerable.md) will provide.
- [GetNgonAndFacesEnumerable](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/getngonandfacesenumerable.md): 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.
- [GetOutlines](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/getoutlines.md): (3 overloads) Constructs the outlines of a mesh projected against a plane.
- [GetPartition](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/getpartition.md): Retrieves a partition. See [Mesh.CreatePartitions(int, int)](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/createpartitions.md) for details.
- [GetSelfIntersections](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/getselfintersections.md): Gets the intersections of this mesh with itself.
- [GetUnsafeLock](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/getunsafelock.md): Allows to obtain unsafe pointers to the underlying unmanaged data structures of the mesh.
- [HealNakedEdges](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/healnakededges.md): Attempts to "heal" naked edges in a mesh based on a given distance. First attempts to move vertices to neighboring vertices 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.
- [InvalidateCachedTextureCoordinates](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/invalidatecachedtexturecoordinates.md): Invalidates all cached texture coordinates. Call this function when you have made changes that will affect the texture coordinates on the mesh.
- [IsManifold](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/ismanifold.md): (2 overloads) Returns true if every mesh "edge" has at most two faces.
- [IsPointInside](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/ispointinside.md): Determines if a point is inside a closed mesh.
- [MatchEdges](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/matchedges.md): (2 overloads) Moves face edges of an open mesh to meet adjacent face edges. The method will first try to match vertices, and then it will try to split edges to make the edges match.
- [MergeAllCoplanarFaces](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/mergeallcoplanarfaces.md): (2 overloads) Merges adjacent coplanar faces into single faces.
- [NonConstOperation](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/nonconstoperation.md): Clear local cache on non constant calls
- [NormalAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/normalat.md): (2 overloads) 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](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/offset.md): (4 overloads) 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](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/onswitchtononconst.md): Performs some memory cleanup if necessary
- [PartitionMesh](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/partitionmesh.md): (static) Some file formats and rendering engines are only able to process small batches of triangles. Use this function to partition the mesh into subsets of vertices and faces that those file formats and rendering engines can handle.
- [PatchSingleFace](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/patchsingleface.md): Creates a single mesh face from the given input. The new mesh will be apppended to this mesh.
- [PointAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/pointat.md): (2 overloads) 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](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/pullcurve.md): 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](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/pullpointstomesh.md): Pulls a collection of points to a mesh.
- [QuadRemesh](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/quadremesh.md): (3 overloads) Quad remesh this mesh.
- [QuadRemeshAsync](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/quadremeshasync.md): (3 overloads) Quad remesh this mesh asynchronously.
- [QuadRemeshBrep](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/quadremeshbrep.md): (3 overloads, static) Quad remesh this Brep.
- [QuadRemeshBrepAsync](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/quadremeshbrepasync.md): (2 overloads, static) Quad remesh this Brep asynchronously.
- [RebuildMesh](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/rebuildmesh.md): (2 overloads, static) Use this function to rebuild meshes that are not acting properly. Vertices and faces are kept. Face normals and vertex normals are recalculated. Surface curvatures, and surfaces parameters are not replaced.
- [RebuildNormals](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/rebuildnormals.md): Removes mesh normals and reconstructs the face and vertex normals based on the orientation of the faces.
- [Reduce](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/reduce.md): (6 overloads) Reduce polygon count
- [ReleaseUnsafeLock](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/releaseunsafelock.md): Updates the Mesh data with the information that was stored via the [MeshUnsafeLock](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.meshunsafelock.md).
- [RequireIterativeCleanup](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/requireiterativecleanup.md): (static) 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 t-joints along edges.
- [SelfSplit](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/selfsplit.md): (3 overloads) Split a mesh with itself.
- [SetCachedTextureCoordinates](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/setcachedtexturecoordinates.md): Set cached texture coordinates using the specified mapping.
- [SetCachedTextureCoordinatesFromMaterial](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/setcachedtexturecoordinatesfrommaterial.md): (2 overloads) Sets up cached texture coordinate set for each texture in the material. Textures in the Material define which mapping channels are used and the object with the specified id in the file defines what texture mapping is used for each mapping channel. After this method is called all necessary texture coordinate sets are cached and correct texture coordinates for each texture can be fetched using GetCachedTextureCoordinates(File3dm file, Guid objectId, Rhino.DocObjects.Texture texture) If any texture coordinates are already cached they will not be re-computed.
- [SetSurfaceParametersFromTextureCoordinates](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/setsurfaceparametersfromtexturecoordinates.md): If the mesh does not have surface evaluation parameters, has texture coordinates, and the surface parameters can be set in a way so the existing texture coordinates can be computed from the surface parameters, then this function sets the surface parameters. This is useful when meshes that have texture coordinates and do not have surface parameters want to set the surface parameters in a way so that the texture mapping of type TextureMappingType.SurfaceParameters will restore the texture coordinates.
- [SetTextureCoordinates](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/settexturecoordinates.md): (2 overloads) Sets texture coordinates using the given texture mapping and transform.
- [ShrinkWrap](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/shrinkwrap.md): (8 overloads) Creates a unified ShrinkWrap mesh from a collection of GeometryBase objects. returns null or error on failure Supports cancellation during volumetric calculations. geometryBase mesh creation is not cancellable
- [Smooth](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/smooth.md): (5 overloads) Smooths a mesh by averaging the positions of mesh vertices in a specified region.
- [SolidOrientation](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/solidorientation.md): Determines orientation of a "solid" mesh.
- [Split](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/split.md): (6 overloads) Split a mesh with a collection of meshes.
- [SplitDisjointPieces](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/splitdisjointpieces.md): Splits up the mesh into its unconnected pieces.
- [SplitMesh](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/splitmesh.md): (static) Some file formats and rendering engines are only able to process small batches of triangles. Use this function to split the mesh into subsets of vertices and faces that those file formats and rendering engines can handle.
- [SplitNon2Manifolds](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/splitnon2manifolds.md): (2 overloads) Split a mesh where at non-2 manifolds boundaries.
- [SplitWithProjectedPolylines](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/splitwithprojectedpolylines.md): (2 overloads) 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.
- [Subdivide](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/subdivide.md): (2 overloads) Subdivides the faces of the mesh.
- [UnifyNormals](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/unifynormals.md): (2 overloads) 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](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/unweld.md): Makes sure that faces sharing an edge and having a difference of normal greater than or equal to angleToleranceRadians have unique vertices along that edge, adding vertices if necessary.
- [UnweldEdge](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/unweldedge.md): Adds creases to a smooth mesh by creating coincident vertices along selected edges.
- [UnweldVertices](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/unweldvertices.md): Ensures that faces sharing a common topological vertex have unique indices into the [MeshVertexList](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshvertexlist.md) collection.
- [Volume](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/volume.md): Compute volume of the mesh.
- [Weld](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/weld.md): (2 overloads) Makes sure that faces sharing an edge and having a difference of normal less than or equal to angleToleranceRadians share vertices along that edge, vertex normals are averaged.
- [WithDisplacement](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/withdisplacement.md): Constructs new mesh from the current one, with displacement applied to it.
- [WithEdgeSoftening](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/withedgesoftening.md): Constructs new mesh from the current one, with edge softening applied to it.
- [WithShutLining](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.mesh/withshutlining.md): Constructs new mesh from the current one, with shut lining applied to it.

## Inherited Members

- From [GeometryBase](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase.md): [HasBrepForm](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/hasbrepform.md), [IsDeformable](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/isdeformable.md), [IsDocumentControlled](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/isdocumentcontrolled.md), [IsShallowDuplicate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/isshallowduplicate.md), [ObjectType](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/objecttype.md), [UserStringCount](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/userstringcount.md), [ComponentIndex](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/componentindex.md), [DataCRC](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/datacrc.md), [DeleteAllUserStrings](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/deletealluserstrings.md), [DeleteUserString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/deleteuserstring.md), [Dispose](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/dispose.md), [DuplicateShallow](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/duplicateshallow.md), [GetBoundingBox](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/getboundingbox.md), [GetUserString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/getuserstring.md), [GetUserStrings](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/getuserstrings.md), [MakeDeformable](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/makedeformable.md), [MemoryEstimate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/memoryestimate.md), [Rotate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/rotate.md), [Scale](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/scale.md), [SetUserString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/setuserstring.md), [Transform](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/transform.md), [Translate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/translate.md)
- From [CommonObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject.md): [Disposed](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/disposed.md), [HasUserData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/hasuserdata.md), [IsValid](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/isvalid.md), [UserData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/userdata.md), [UserDictionary](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/userdictionary.md), [ConstructConstObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/constructconstobject.md), [Dispose](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/dispose.md), [EnsurePrivateCopy](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/ensureprivatecopy.md), [GetObjectData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/getobjectdata.md), [IsValidWithLog](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/isvalidwithlog.md), [ToJSON](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/tojson.md)
