# Sandbox.Mesh

A mesh is a basic version of a [Sandbox.Model](/api/Sandbox.Model),
containing a set of vertices and indices which make up faces that make up a shape.
            
A set of meshes can be used to create a [Sandbox.Model](/api/Sandbox.Model) via the [Sandbox.ModelBuilder](/api/Sandbox.ModelBuilder) class.

- Kind: class
- Namespace: `Sandbox`
- Assembly: `Sandbox.Engine`

## Constructors

- [`Mesh`](/api/Sandbox.Mesh/.ctor)

## Properties

- [`Bounds`](/api/Sandbox.Mesh/Bounds): Sets AABB bounds for this mesh.
- [`HasIndexBuffer`](/api/Sandbox.Mesh/HasIndexBuffer): Whether this mesh has an index buffer.
- [`HasVertexBuffer`](/api/Sandbox.Mesh/HasVertexBuffer): Whether this mesh has a vertex buffer.
- [`IndexCount`](/api/Sandbox.Mesh/IndexCount): Number of indices this mesh has.
- [`IsValid`](/api/Sandbox.Mesh/IsValid)
- [`Material`](/api/Sandbox.Mesh/Material): Sets material for this mesh.
- [`PrimitiveType`](/api/Sandbox.Mesh/PrimitiveType): Sets the primitive type for this mesh.
- [`UvDensity`](/api/Sandbox.Mesh/UvDensity): Used to calculate texture size for texture streaming.
- [`VertexCount`](/api/Sandbox.Mesh/VertexCount): Number of vertices this mesh has.

## Methods

- [`AddMorph`](/api/Sandbox.Mesh/AddMorph)
- [`AddSubMesh`](/api/Sandbox.Mesh/AddSubMesh): Add a sub mesh, drawing a range of the index buffer with its own `material`. Create the vertex and index buffers before adding sub meshes.
- [`CreateBuffers`](/api/Sandbox.Mesh/CreateBuffers): Create vertex and index buffers.
- [`CreateIndexBuffer`](/api/Sandbox.Mesh/CreateIndexBuffer): Create an empty index buffer, it can be resized later
- [`CreateVertexBuffer`](/api/Sandbox.Mesh/CreateVertexBuffer)
- [`LockIndexBuffer`](/api/Sandbox.Mesh/LockIndexBuffer): Lock all the memory in this buffer so you can write to it
- [`LockVertexBuffer`](/api/Sandbox.Mesh/LockVertexBuffer)
- [`SetIndexBufferData`](/api/Sandbox.Mesh/SetIndexBufferData)
- [`SetIndexBufferSize`](/api/Sandbox.Mesh/SetIndexBufferSize): Resize the index buffer.
- [`SetIndexRange`](/api/Sandbox.Mesh/SetIndexRange): Set how many indices this mesh draws
- [`SetVertexBufferData`](/api/Sandbox.Mesh/SetVertexBufferData)
- [`SetVertexBufferSize`](/api/Sandbox.Mesh/SetVertexBufferSize): Resize the vertex buffer
- [`SetVertexRange`](/api/Sandbox.Mesh/SetVertexRange): Set how many vertices this mesh draws (if there's no index buffer)
- [`TriangulatePolygon`](/api/Sandbox.Mesh/TriangulatePolygon)
