Skip to main content

ObjectGeometryMesh

The ObjectGeometryMesh class provides mesh-based geometry support to ObjectGeometry. It defines rendered geometry by vertex and index offsets within ObjectMesh vertex and index buffers. The class supports multiple geometry batches that can be shaded by different Material references from ObjectGeometry. It also provides interfaces to set joint transformations and morph weights on associated NodeObjects.

info

ObjectGeometryMesh is a container for ObjectJointMesh instances.

#include <scene/TellusimObjectMesh.h>

Inheritance

Constructors

explicit ObjectGeometryMesh(const char *name = nullptr)
explicit ObjectGeometryMesh(ObjectMesh &object, const char *name = nullptr)

Methods

Geometry joints.

void shrinkJoints()
void reserveJoints(uint32_t num_joints)
ObjectJointMesh addJoint(const char *name = nullptr)
uint32_t addJoint(ObjectJointMesh &joint, bool check = true)
bool removeJoint(ObjectJointMesh &joint)
void releaseJoints()
bool swapJoints(ObjectJointMesh &joint_0, ObjectJointMesh &joint_1, bool update = false)
uint32_t findJoint(const ObjectJointMesh &joint) const
uint32_t findJoint(const char *name) const
uint32_t getNumJoints() const
uint32_t getJointCount() const
uint32_t getJointCapacity() const
const Array<ObjectJointMesh> getJoints() const
Array<ObjectJointMesh> getJoints()
const ObjectJointMesh getJoint(uint32_t index) const
const ObjectJointMesh getJoint(const char *name) const
ObjectJointMesh getJoint(uint32_t index)
ObjectJointMesh getJoint(const char *name)
void updateJoints(Array<ObjectJointMesh> joints)
void updateJoint(ObjectJointMesh &joint)
void updateJoints(bool update = false)
uint32_t getJointAddress() const

Geometry inverse joint transform.

void setJointITransform(Matrix4x3f itransform)
const Matrix4x3f getJointITransform() const

Geometry targets.

uint32_t getNumTargets() const
void setTargetName(uint32_t index, const char *name)
String getTargetName(uint32_t index) const
uint32_t findTarget(const char *name) const
uint32_t getTargetStride() const
uint32_t getTargetOffset() const

Geometry batch.

void setBatch(uint32_t num_indices, uint32_t num_vertices, uint32_t base_index, uint32_t base_vertex, bool atomic = false)
void clearBatch()
uint32_t getNumBatchIndices() const
uint32_t getNumBatchVertices() const
uint32_t getBaseBatchIndex() const
uint32_t getBaseBatchVertex() const

Material batches.

void clearMaterialBatches()
void reserveMaterialBatches(uint32_t num_batches)
void setNumMaterialBatches(uint32_t num_batches, bool clear = true)
void addMaterialBatch(uint32_t num_indices, uint32_t num_vertices, uint32_t base_index, uint32_t base_vertex)
void setMaterialBatch(uint32_t batch, uint32_t num_indices, uint32_t num_vertices, uint32_t base_index, uint32_t base_vertex, bool atomic = false)
void clearMaterialBatch(uint32_t batch)
uint32_t getNumMaterialBatches() const
uint32_t getNumMaterialBatchIndices(uint32_t batch) const
uint32_t getNumMaterialBatchVertices(uint32_t batch) const
uint32_t getBaseMaterialBatchIndex(uint32_t batch) const
uint32_t getBaseMaterialBatchVertex(uint32_t batch) const

Node joint transform matrix.

bool setJointTransform(NodeObject &node, uint32_t index, Vector3f t, Quaternionf r, Vector3f s)
bool setJointTransform(NodeObject &node, uint32_t index, Matrix4x3f transform)

Node morph target weights.

bool setMorphWeights(NodeObject &node, const uint32_t *targets, const float32_t *weights, uint32_t num)
bool setMorphWeights(NodeObject &node, const float32_t *weights, uint32_t num)