25 #ifndef OPENSUBDIV3_OSD_CPU_PATCH_TABLE_H 26 #define OPENSUBDIV3_OSD_CPU_PATCH_TABLE_H 28 #include "../version.h" 31 #include "../far/patchDescriptor.h" 32 #include "../osd/nonCopyable.h" 33 #include "../osd/types.h" 38 namespace OPENSUBDIV_VERSION {
62 void *deviceContext = NULL) {
71 return &_patchArrays[0];
74 return &_indexBuffer[0];
77 return &_patchParamBuffer[0];
81 return _patchArrays.size();
84 return _indexBuffer.size();
87 return _patchParamBuffer.size();
91 if (_varyingPatchArrays.empty()) {
94 return &_varyingPatchArrays[0];
97 if (_varyingIndexBuffer.empty()) {
100 return &_varyingIndexBuffer[0];
103 return _varyingIndexBuffer.size();
107 return (
int)_fvarPatchArrays.size();
110 return &_fvarPatchArrays[fvarChannel][0];
113 return &_fvarIndexBuffers[fvarChannel][0];
116 return _fvarIndexBuffers[fvarChannel].size();
119 return &_fvarParamBuffers[fvarChannel][0];
122 return _fvarParamBuffers[fvarChannel].size();
141 using namespace OPENSUBDIV_VERSION;
145 #endif // OPENSUBDIV3_OSD_CPU_PATCH_TABLE_H Container for arrays of parametric patches.
size_t GetFVarPatchParamSize(int fvarChannel=0) const
const int * GetPatchIndexBuffer() const
size_t GetFVarPatchIndexSize(int fvarChannel=0) const
std::vector< PatchArrayVector > _fvarPatchArrays
std::vector< std::vector< int > > _fvarIndexBuffers
size_t GetPatchParamSize() const
const PatchParam * GetPatchParamBuffer() const
std::vector< int > _varyingIndexBuffer
std::vector< PatchParam > PatchParamVector
PatchArrayVector _patchArrays
const PatchArray * GetFVarPatchArrayBuffer(int fvarChannel=0) const
std::vector< PatchArray > PatchArrayVector
PatchParamVector _patchParamBuffer
size_t GetNumPatchArrays() const
const PatchArray * GetPatchArrayBuffer() const
std::vector< int > _indexBuffer
const int * GetFVarPatchIndexBuffer(int fvarChannel=0) const
size_t GetPatchIndexSize() const
PatchArrayVector _varyingPatchArrays
int GetNumFVarChannels() const
const PatchParam * GetFVarPatchParamBuffer(int fvarChannel=0) const
const PatchArray * GetVaryingPatchArrayBuffer() const
std::vector< PatchParamVector > _fvarParamBuffers
static CpuPatchTable * Create(const Far::PatchTable *patchTable, void *deviceContext=NULL)
const int * GetVaryingPatchIndexBuffer() const
size_t GetVaryingPatchIndexSize() const