class MeshEx

Extension class for Mesh, for adding additional functionality for the script version of the class.

Public

Methods

staticCreate

static HMesh Create(int numVertices, int numIndices, DrawOperationType topology = DOT_TRIANGLE_LIST, MeshFlags flags = MeshFlag::Static, VertexLayout vertex = VertexLayout::Position, IndexType index = IT_32BIT)

Creates a new mesh with enough space to hold the a number of primitives using the specified layout.

All indices will be part of a single sub-mesh.

numVertices
Number of vertices in the mesh.
numIndices
Number of indices in the mesh. Must be a multiple of primitive size as specified by provided topology.
topology
Determines how should the provided indices be interpreted by the pipeline. Default option is a triangle list, where three indices represent a single triangle.
flags
Flags to control various mesh options.
vertex
Controls how are vertices organized in the vertex buffer and what data they contain.
index
Size of indices, use smaller size for better performance, however be careful not to go over the number of vertices limited by the data type size.

staticCreate

static HMesh Create(int numVertices, int numIndices, const Vector<SubMesh> &subMeshes, MeshFlags flags = MeshFlag::Static, VertexLayout vertex = VertexLayout::Position, IndexType index = IT_32BIT)

Creates a new mesh with enough space to hold the a number of primitives using the specified layout.

Indices can be referenced by multiple sub-meshes.

numVertices
Number of vertices in the mesh.
numIndices
Number of indices in the mesh. Must be a multiple of primitive size as specified by provided topology.
subMeshes
Defines how are indices separated into sub-meshes, and how are those sub-meshes rendered. Sub-meshes may be rendered independently, each with a different material.
flags
Flags to control various mesh options.
vertex
Controls how are vertices organized in the vertex buffer and what data they contain.
index
Size of indices, use smaller size for better performance, however be careful not to go over the number of vertices limited by the data type size.

staticCreate

static HMesh Create(const SPtr<RendererMeshData> &data, DrawOperationType topology = DOT_TRIANGLE_LIST, MeshFlags flags = MeshFlag::Static)

Creates a new mesh from an existing mesh data.

Created mesh will match the vertex and index buffers described by the mesh data exactly. Mesh will have no sub-meshes.

data
Vertex and index data to initialize the mesh with.
topology
Determines how should the provided indices be interpreted by the pipeline. Default option is a triangle list, where three indices represent a single triangle.
flags
Flags to control various mesh options.

staticCreate

static HMesh Create(const SPtr<RendererMeshData> &data, const Vector<SubMesh> &subMeshes, MeshFlags flags = MeshFlag::Static)

Creates a new mesh with enough space to hold the a number of primitives using the specified layout.

Indices can be referenced by multiple sub-meshes.

data
Vertex and index data to initialize the mesh with.
subMeshes
Defines how are indices separated into sub-meshes, and how are those sub-meshes rendered. Sub-meshes may be rendered independently, each with a different material.
flags
Flags to control various mesh options.

staticGetSubMeshes

static Vector<SubMesh> GetSubMeshes(const HMesh &thisPtr)

Returns all sub-meshes contained in the mesh.

staticGetSubMeshCount

static u32 GetSubMeshCount(const HMesh &thisPtr)

Returns the number of sub-meshes contained in this mesh.

staticGetBounds

static void GetBounds(const HMesh &thisPtr, AABox *box, Sphere *sphere)

staticGetMeshData

static SPtr<RendererMeshData> GetMeshData(const HMesh &thisPtr)

Accesses the vertex and index data of the mesh.

If reading, mesh must have been created with the MeshUsage::CPUCached flag. If writing the caller must ensure the data matches mesh's vertex/index counts, vertex layout and index format.

staticSetMeshData

static void SetMeshData(const HMesh &thisPtr, const SPtr<RendererMeshData> &value)