58#if MOCHI_LANGUAGE_CPP20
90#if MOCHI_LANGUAGE_CPP20
115#if MOCHI_LANGUAGE_CPP20
146#if MOCHI_LANGUAGE_CPP20
198 [[nodiscard]]
bool IsEmpty()
const;
200#if MOCHI_LANGUAGE_CPP20
259 [[nodiscard]]
bool IsEmpty()
const;
261#if MOCHI_LANGUAGE_CPP20
A dynamically resizable array with syntax and behavior similar to std::pmr::vector.
constexpr int kMeshDataSpaceDim
Spatial dimensionality of mesh data.
std::basic_string< char, std::char_traits< char >, StlAllocator< char > > DynamicString
Alias for std::string using a polymorphic superdex::Allocator pointer.
#define MOCHI_STRUCT_END()
#define MOCHI_FIELD(name)
#define MOCHI_STRUCT_BEGIN(name)
#define MOCHI_ATTRIBUTE(...)
A non-owning view of the data blending data for one source shape within a soft skinned mesh.
bool operator!=(BlendingDataView const &other) const =default
BlendingDataView()=default
Span< int const > indices
Indices for blending. Size = numNodes * 2.
Span< real const > weights
Weights for blending Size = numNodes * 2.
bool operator==(BlendingDataView const &other) const =default
std::string_view sourceShape
Name of the soft source shape.
Blending data for one source shape within a soft skinned mesh.
DynamicString sourceShape
Name of the soft source shape.
bool operator!=(BlendingData const &other) const =default
BlendingData()=default
Default constructor.
bool operator==(BlendingData const &other) const =default
DynamicArray< int > indices
Indices for blending. Size = numNodes * 2.
DynamicArray< real > weights
Weights for blending Size = numNodes * 2.
A non-owning view of the mesh data for a Mochi actor or model file.
Span< int const > connectivity
Flat array of node indices forming the elements.
int GetNumElements() const
Return the number of elements.
bool operator==(MeshDataView const &other) const =default
int GetNumNodes() const
Return the number of nodes.
bool operator!=(MeshDataView const &other) const =default
int nodesPerElement
Number of nodes (vertices) per element.
bool IsEmpty() const
Return true if the mesh is empty.
std::optional< SkinningDataView > skinning
Optional skinning.
Span< real const > coordinates
Flat array of node coordinate values [m].
Mesh data for a Mochi actor or model file.
int GetNumNodes() const
Return the number of nodes.
bool operator!=(MeshData const &other) const =default
bool IsEmpty() const
Return true if the mesh is empty.
int nodesPerElement
Number of nodes (vertices) per element.
DynamicArray< real > coordinates
Flat array of node coordinate values [m].
bool operator==(MeshData const &other) const =default
MeshData()=default
Default constructor.
DynamicArray< int > connectivity
Flat array of node indices forming the elements.
int GetNumElements() const
Return the number of elements.
std::optional< SkinningData > skinning
Optional skinning.
A non-owning view of the skinning data for a Mochi mesh.
SkinningDataView()=default
int weightsPerNode
Number of weights and indices per node being skinned.
bool operator!=(SkinningDataView const &other) const =default
bool operator==(SkinningDataView const &other) const =default
Span< int const > indices
Indices for each node. Size = numNodes * weightsPerNode.
Span< real const > weights
Weights for each node. Size = numNodes * weightsPerNode.
Skinning data for a Mochi mesh.
bool operator==(SkinningData const &other) const =default
int weightsPerNode
Number of weights and indices per node being skinned.
DynamicArray< real > weights
Weights for each node. Size = numNodes * weightsPerNode.
bool operator!=(SkinningData const &other) const =default
SkinningData()=default
Default constructor.
DynamicArray< int > indices
Indices for each node. Size = numNodes * weightsPerNode.