HDK
|
#include <meshUtil.h>
Public Member Functions | |
HdMeshUtil (HdMeshTopology const *topology, SdfPath const &id) | |
virtual | ~HdMeshUtil () |
HD_API void | ComputeTriangleIndices (VtVec3iArray *indices, VtIntArray *primitiveParams, VtIntArray *edgeIndices=nullptr) const |
HD_API bool | ComputeTriangulatedFaceVaryingPrimvar (void const *source, int numElements, HdType dataType, VtValue *triangulated) const |
HD_API void | ComputeQuadInfo (HdQuadInfo *quadInfo) const |
Generate a quadInfo struct for the input topology. More... | |
HD_API void | ComputeQuadIndices (VtVec4iArray *indices, VtIntArray *primitiveParams, VtVec2iArray *edgeIndices=nullptr) const |
HD_API bool | ComputeQuadrangulatedPrimvar (HdQuadInfo const *qi, void const *source, int numElements, HdType dataType, VtValue *quadrangulated) const |
HD_API bool | ComputeQuadrangulatedFaceVaryingPrimvar (void const *source, int numElements, HdType dataType, VtValue *quadrangulated) const |
HD_API void | EnumerateEdges (std::vector< GfVec2i > *edgeVerticesOut) const |
Static Public Member Functions | |
static int | EncodeCoarseFaceParam (int faceIndex, int edgeFlag) |
static int | DecodeFaceIndexFromCoarseFaceParam (int coarseFaceParam) |
static int | DecodeEdgeFlagFromCoarseFaceParam (int coarseFaceParam) |
A collection of utility algorithms for generating triangulation and quadrangulation of an input topology.
Definition at line 82 of file meshUtil.h.
|
inline |
Definition at line 85 of file meshUtil.h.
|
inlinevirtual |
Definition at line 87 of file meshUtil.h.
HD_API void HdMeshUtil::ComputeQuadIndices | ( | VtVec4iArray * | indices, |
VtIntArray * | primitiveParams, | ||
VtVec2iArray * | edgeIndices = nullptr |
||
) | const |
Return quadrangulated indices of the input topology. indices and primitiveParams are output parameters.
HD_API void HdMeshUtil::ComputeQuadInfo | ( | HdQuadInfo * | quadInfo | ) | const |
Generate a quadInfo struct for the input topology.
HD_API bool HdMeshUtil::ComputeQuadrangulatedFaceVaryingPrimvar | ( | void const * | source, |
int | numElements, | ||
HdType | dataType, | ||
VtValue * | quadrangulated | ||
) | const |
Return a quadrangulation of a face-varying primvar. source is a buffer of size numElements and type corresponding to dataType (e.g. HdTypeFloatVec3); the result is a VtArray<T> of the correct type written to the variable "quadrangulated". This function returns false if it can't resolve dataType.
HD_API bool HdMeshUtil::ComputeQuadrangulatedPrimvar | ( | HdQuadInfo const * | qi, |
void const * | source, | ||
int | numElements, | ||
HdType | dataType, | ||
VtValue * | quadrangulated | ||
) | const |
Return a quadrangulation of a per-vertex primvar. source is a buffer of size numElements and type corresponding to dataType (e.g. HdTypeFloatVec3); the result is a VtArray<T> of the correct type written to the variable "quadrangulated". This function returns false if it can't resolve dataType.
HD_API void HdMeshUtil::ComputeTriangleIndices | ( | VtVec3iArray * | indices, |
VtIntArray * | primitiveParams, | ||
VtIntArray * | edgeIndices = nullptr |
||
) | const |
Return a triangulation of the input topology. indices and primitiveParams are output parameters.
HD_API bool HdMeshUtil::ComputeTriangulatedFaceVaryingPrimvar | ( | void const * | source, |
int | numElements, | ||
HdType | dataType, | ||
VtValue * | triangulated | ||
) | const |
Return a triangulation of a face-varying primvar. source is a buffer of size numElements and type corresponding to dataType (e.g. HdTypeFloatVec3); the result is a VtArray<T> of the correct type written to the variable "triangulated". This function returns false if it can't resolve dataType.
Definition at line 197 of file meshUtil.h.
Definition at line 194 of file meshUtil.h.
Definition at line 191 of file meshUtil.h.
Return a buffer filled with face vertex index pairs corresponding to the sequence in which edges are visited when iterating through the mesh topology. The edges of degenerate and hole faces are included so that this sequence will correspond with either base face triangulation or quadrangulation (which typically skips over hole faces) as well as for refined surfaces which take into account faces tagged as holes as well as other non-manifold faces.