Api Sandbox Mesh
class

Mesh

public class Mesh

A mesh is a basic version of a 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 Model via the ModelBuilder class.

Constructors

Mesh()
Mesh(Material material, MeshPrimitiveType primType)
Mesh(String name, Material material, MeshPrimitiveType primType)

Properties

Name Type Description
IsValid virtual Boolean
PrimitiveType MeshPrimitiveType Sets the primitive type for this mesh.
Material Material Sets material for this mesh.
Bounds BBox Sets AABB bounds for this mesh.
UvDensity Single Used to calculate texture size for texture streaming.
HasIndexBuffer Boolean Whether this mesh has an index buffer.
IndexCount Int32 Number of indices this mesh has.
HasVertexBuffer Boolean Whether this mesh has a vertex buffer.
VertexCount Int32 Number of vertices this mesh has.

Methods

Void SetVertexRange(Int32 start, Int32 count)

Set how many vertices this mesh draws (if there's no index buffer)

Void SetIndexRange(Int32 start, Int32 count)

Set how many indices this mesh draws

Void CreateBuffers(VertexBuffer vb, Boolean calculateBounds = True)

Create vertex and index buffers.

vb — Input vertex buffer. If it is indexed (Indexed), then index buffer will also be created.
calculateBounds — Whether to recalculate bounds from the vertex buffer.
static Span<Int32> TriangulatePolygon(Span<Vector3> vertices)
Void CreateIndexBuffer()

Create an empty index buffer, it can be resized later

Void CreateIndexBuffer(Int32 indexCount, List<Int32> data)
Void CreateIndexBuffer(Int32 indexCount, Span<Int32> data = null)
Void SetIndexBufferData(List<Int32> data, Int32 elementOffset = 0)
Void SetIndexBufferData(Span<Int32> data, Int32 elementOffset = 0)
Void SetIndexBufferSize(Int32 elementCount)

Resize the index buffer.

Void LockIndexBuffer(IndexBufferLockHandler handler)

Lock all the memory in this buffer so you can write to it

Void LockIndexBuffer(Int32 elementCount, IndexBufferLockHandler handler)

Lock a specific amount of the memory in this buffer so you can write to it

Void LockIndexBuffer(Int32 elementOffset, Int32 elementCount, IndexBufferLockHandler handler)

Lock a region of memory in this buffer so you can write to it

Void CreateVertexBuffer(Int32 vertexCount, Span<T> data = null)
Void CreateVertexBuffer(Int32 vertexCount, List<T> data)
Void CreateVertexBuffer(VertexAttribute[] layout)

Create an empty vertex buffer, it can be resized later

Void CreateVertexBuffer(Int32 vertexCount, VertexAttribute[] layout, List<T> data)
Void CreateVertexBuffer(Int32 vertexCount, VertexAttribute[] layout, Span<T> data = null)
Void SetVertexBufferData(List<T> data, Int32 elementOffset = 0)
Void SetVertexBufferData(Span<T> data, Int32 elementOffset = 0)
Void SetVertexBufferSize(Int32 elementCount)

Resize the vertex buffer

Void LockVertexBuffer(VertexBufferLockHandler<T> handler)
Void LockVertexBuffer(Int32 elementCount, VertexBufferLockHandler<T> handler)
Void LockVertexBuffer(Int32 elementOffset, Int32 elementCount, VertexBufferLockHandler<T> handler)
Assembly: Sandbox.Engine Namespace: Sandbox Full Name: Sandbox.Mesh