HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HdMeshUtil Class Reference

#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)
 

Detailed Description

A collection of utility algorithms for generating triangulation and quadrangulation of an input topology.

Definition at line 82 of file meshUtil.h.

Constructor & Destructor Documentation

HdMeshUtil::HdMeshUtil ( HdMeshTopology const topology,
SdfPath const id 
)
inline

Definition at line 85 of file meshUtil.h.

virtual HdMeshUtil::~HdMeshUtil ( )
inlinevirtual

Definition at line 87 of file meshUtil.h.

Member Function Documentation

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.

static int HdMeshUtil::DecodeEdgeFlagFromCoarseFaceParam ( int  coarseFaceParam)
inlinestatic

Definition at line 197 of file meshUtil.h.

static int HdMeshUtil::DecodeFaceIndexFromCoarseFaceParam ( int  coarseFaceParam)
inlinestatic

Definition at line 194 of file meshUtil.h.

static int HdMeshUtil::EncodeCoarseFaceParam ( int  faceIndex,
int  edgeFlag 
)
inlinestatic

Definition at line 191 of file meshUtil.h.

HD_API void HdMeshUtil::EnumerateEdges ( std::vector< GfVec2i > *  edgeVerticesOut) const

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.


The documentation for this class was generated from the following file: