Blender  V3.3
Classes | Public Types | Public Member Functions | List of all members
blender::opensubdiv::PatchMap Class Reference

An quadtree-based map connecting coarse faces to their sub-patches. More...

#include <patch_map.h>

Classes

struct  QuadNode
 

Public Types

typedef OpenSubdiv::Far::PatchTable::PatchHandle Handle
 

Public Member Functions

 PatchMap (OpenSubdiv::Far::PatchTable const &patchTable)
 Constructor. More...
 
Handle const * FindPatch (int patchFaceId, double u, double v) const
 Returns a handle to the sub-patch of the face at the given (u,v). Note that the patch face ID corresponds to potentially quadrangulated face indices and not the base face indices (see Far::PtexIndices for more details). More...
 
int getMinPatchFace () const
 
int getMaxPatchFace () const
 
int getMaxDepth () const
 
bool getPatchesAreTriangular () const
 
const std::vector< Handle > & getHandles ()
 
const std::vector< QuadNode > & nodes ()
 

Detailed Description

An quadtree-based map connecting coarse faces to their sub-patches.

PatchTable::PatchArrays contain lists of patches that represent the limit surface of a mesh, sorted by their topological type. These arrays break the connection between coarse faces and their sub-patches.

The PatchMap provides a quad-tree based lookup structure that, given a singular parametric location, can efficiently return a handle to the sub-patch that contains this location.

Definition at line 43 of file patch_map.h.

Member Typedef Documentation

◆ Handle

Definition at line 67 of file patch_map.h.

Constructor & Destructor Documentation

◆ PatchMap()

blender::opensubdiv::PatchMap::PatchMap ( OpenSubdiv::Far::PatchTable const &  patchTable)

Constructor.

Parameters
patchTableA valid PatchTable

Definition at line 96 of file patch_map.cc.

Member Function Documentation

◆ FindPatch()

PatchMap::Handle const * blender::opensubdiv::PatchMap::FindPatch ( int  patchFaceId,
double  u,
double  v 
) const
inline

Returns a handle to the sub-patch of the face at the given (u,v). Note that the patch face ID corresponds to potentially quadrangulated face indices and not the base face indices (see Far::PtexIndices for more details).

Returns a handle to the sub-patch of the face at the given (u,v).

Parameters
patchFaceIdThe index of the patch (Ptex) face
uLocal u parameter
vLocal v parameter
Returns
A patch handle or 0 if the face is not supported (index out of bounds) or is tagged as a hole

Definition at line 219 of file patch_map.h.

References node, and v.

Referenced by blender::opensubdiv::EvalOutputAPI::evaluateFaceVarying(), blender::opensubdiv::EvalOutputAPI::evaluateLimit(), blender::opensubdiv::EvalOutputAPI::evaluateVarying(), and blender::opensubdiv::EvalOutputAPI::evaluateVertexData().

◆ getHandles()

const std::vector<Handle>& blender::opensubdiv::PatchMap::getHandles ( )
inline

Definition at line 111 of file patch_map.h.

Referenced by blender::opensubdiv::EvalOutputAPI::getPatchMap().

◆ getMaxDepth()

int blender::opensubdiv::PatchMap::getMaxDepth ( ) const
inline

Definition at line 101 of file patch_map.h.

Referenced by blender::opensubdiv::EvalOutputAPI::getPatchMap().

◆ getMaxPatchFace()

int blender::opensubdiv::PatchMap::getMaxPatchFace ( ) const
inline

Definition at line 96 of file patch_map.h.

Referenced by blender::opensubdiv::EvalOutputAPI::getPatchMap().

◆ getMinPatchFace()

int blender::opensubdiv::PatchMap::getMinPatchFace ( ) const
inline

Definition at line 91 of file patch_map.h.

Referenced by blender::opensubdiv::EvalOutputAPI::getPatchMap().

◆ getPatchesAreTriangular()

bool blender::opensubdiv::PatchMap::getPatchesAreTriangular ( ) const
inline

Definition at line 106 of file patch_map.h.

Referenced by blender::opensubdiv::EvalOutputAPI::getPatchMap().

◆ nodes()

const std::vector<QuadNode>& blender::opensubdiv::PatchMap::nodes ( )
inline

Definition at line 116 of file patch_map.h.

Referenced by blender::opensubdiv::EvalOutputAPI::getPatchMap().


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