OpenSubdiv
Loading...
Searching...
No Matches
LimitStencilTableReal< REAL > Class Template Reference

Table of limit subdivision stencils. More...

#include <stencilTable.h>

Inheritance diagram for LimitStencilTableReal< REAL >:
StencilTableReal< REAL >

Public Member Functions

LimitStencilReal< REAL > GetLimitStencil (Index i) const
 Returns a LimitStencil at index i in the table.
 
LimitStencilReal< REAL > operator[] (Index index) const
 Returns the limit stencil at index i in the table.
 
std::vector< REAL > const & GetDuWeights () const
 Returns the 'u' derivative stencil interpolation weights.
 
std::vector< REAL > const & GetDvWeights () const
 Returns the 'v' derivative stencil interpolation weights.
 
std::vector< REAL > const & GetDuuWeights () const
 Returns the 'uu' derivative stencil interpolation weights.
 
std::vector< REAL > const & GetDuvWeights () const
 Returns the 'uv' derivative stencil interpolation weights.
 
std::vector< REAL > const & GetDvvWeights () const
 Returns the 'vv' derivative stencil interpolation weights.
 
template<class T , class U >
void UpdateDerivs (T const &srcValues, U &uderivs, U &vderivs, int start=-1, int end=-1) const
 Updates derivative values based on the control values.
 
template<class T1 , class T2 , class U >
void UpdateDerivs (T1 const &srcBase, int numBase, T2 const &srcRef, U &uderivs, U &vderivs, int start=-1, int end=-1) const
 
template<class T , class U >
void UpdateDerivs (T const *src, U *uderivs, U *vderivs, int start=-1, int end=-1) const
 
template<class T1 , class T2 , class U >
void UpdateDerivs (T1 const *srcBase, int numBase, T2 const *srcRef, U *uderivs, U *vderivs, int start=-1, int end=-1) const
 
template<class T , class U >
void Update2ndDerivs (T const &srcValues, U &uuderivs, U &uvderivs, U &vvderivs, int start=-1, int end=-1) const
 Updates 2nd derivative values based on the control values.
 
template<class T1 , class T2 , class U >
void Update2ndDerivs (T1 const &srcBase, int numBase, T2 const &srcRef, U &uuderivs, U &uvderivs, U &vvderivs, int start=-1, int end=-1) const
 
template<class T , class U >
void Update2ndDerivs (T const *src, T *uuderivs, U *uvderivs, U *vvderivs, int start=-1, int end=-1) const
 
template<class T1 , class T2 , class U >
void Update2ndDerivs (T1 const *srcBase, int numBase, T2 const *srcRef, U *uuderivs, U *uvderivs, U *vvderivs, int start=-1, int end=-1) const
 
void Clear ()
 Clears the stencils from the table.
 
- Public Member Functions inherited from StencilTableReal< REAL >
virtual ~StencilTableReal ()
 
int GetNumStencils () const
 Returns the number of stencils in the table.
 
int GetNumControlVertices () const
 Returns the number of control vertices indexed in the table.
 
StencilReal< REAL > GetStencil (Index i) const
 Returns a Stencil at index i in the table.
 
std::vector< int > const & GetSizes () const
 Returns the number of control vertices of each stencil in the table.
 
std::vector< Index > const & GetOffsets () const
 Returns the offset to a given stencil (factory may leave empty)
 
std::vector< Index > const & GetControlIndices () const
 Returns the indices of the control vertices.
 
std::vector< REAL > const & GetWeights () const
 Returns the stencil interpolation weights.
 
StencilReal< REAL > operator[] (Index index) const
 Returns the stencil at index i in the table.
 
template<class T , class U >
void UpdateValues (T const &srcValues, U &dstValues, Index start=-1, Index end=-1) const
 Updates point values based on the control values.
 
template<class T1 , class T2 , class U >
void UpdateValues (T1 const &srcBase, int numBase, T2 const &srcRef, U &dstValues, Index start=-1, Index end=-1) const
 
template<class T , class U >
void UpdateValues (T const *src, U *dst, Index start=-1, Index end=-1) const
 
template<class T1 , class T2 , class U >
void UpdateValues (T1 const *srcBase, int numBase, T2 const *srcRef, U *dst, Index start=-1, Index end=-1) const
 
void Clear ()
 Clears the stencils from the table.
 

Protected Member Functions

 LimitStencilTableReal (int numControlVerts, std::vector< int > const &offsets, std::vector< int > const &sizes, std::vector< int > const &sources, std::vector< REAL > const &weights, std::vector< REAL > const &duWeights, std::vector< REAL > const &dvWeights, std::vector< REAL > const &duuWeights, std::vector< REAL > const &duvWeights, std::vector< REAL > const &dvvWeights, bool includeCoarseVerts, size_t firstOffset)
 
- Protected Member Functions inherited from StencilTableReal< REAL >
 StencilTableReal (int numControlVerts, std::vector< int > const &offsets, std::vector< int > const &sizes, std::vector< int > const &sources, std::vector< REAL > const &weights, bool includeCoarseVerts, size_t firstOffset)
 
template<class T , class U >
void update (T const &srcValues, U &dstValues, std::vector< REAL > const &valueWeights, Index start, Index end) const
 
template<class T1 , class T2 , class U >
void update (T1 const &srcBase, int numBase, T2 const &srcRef, U &dstValues, std::vector< REAL > const &valueWeights, Index start, Index end) const
 
void generateOffsets ()
 
void resize (int nstencils, int nelems)
 
void reserve (int nstencils, int nelems)
 
void shrinkToFit ()
 
void finalize ()
 
 StencilTableReal ()
 
 StencilTableReal (int numControlVerts)
 

Friends

class LimitStencilTableFactoryReal< REAL >
 

Additional Inherited Members

- Protected Attributes inherited from StencilTableReal< REAL >
int _numControlVertices
 
std::vector< int > _sizes
 
std::vector< Index_offsets
 
std::vector< Index_indices
 
std::vector< REAL > _weights
 

Detailed Description

template<typename REAL>
class OpenSubdiv::OPENSUBDIV_VERSION::Far::LimitStencilTableReal< REAL >

Table of limit subdivision stencils.

Definition at line 409 of file stencilTable.h.

Constructor & Destructor Documentation

◆ LimitStencilTableReal()

LimitStencilTableReal ( int  numControlVerts,
std::vector< int > const &  offsets,
std::vector< int > const &  sizes,
std::vector< int > const &  sources,
std::vector< REAL > const &  weights,
std::vector< REAL > const &  duWeights,
std::vector< REAL > const &  dvWeights,
std::vector< REAL > const &  duuWeights,
std::vector< REAL > const &  duvWeights,
std::vector< REAL > const &  dvvWeights,
bool  includeCoarseVerts,
size_t  firstOffset 
)
protected

Member Function Documentation

◆ Clear()

void Clear ( )

Clears the stencils from the table.

◆ GetDuuWeights()

std::vector< REAL > const & GetDuuWeights ( ) const
inline

Returns the 'uu' derivative stencil interpolation weights.

Definition at line 444 of file stencilTable.h.

◆ GetDuvWeights()

std::vector< REAL > const & GetDuvWeights ( ) const
inline

Returns the 'uv' derivative stencil interpolation weights.

Definition at line 449 of file stencilTable.h.

◆ GetDuWeights()

std::vector< REAL > const & GetDuWeights ( ) const
inline

Returns the 'u' derivative stencil interpolation weights.

Definition at line 434 of file stencilTable.h.

◆ GetDvvWeights()

std::vector< REAL > const & GetDvvWeights ( ) const
inline

Returns the 'vv' derivative stencil interpolation weights.

Definition at line 454 of file stencilTable.h.

◆ GetDvWeights()

std::vector< REAL > const & GetDvWeights ( ) const
inline

Returns the 'v' derivative stencil interpolation weights.

Definition at line 439 of file stencilTable.h.

◆ GetLimitStencil()

LimitStencilReal< REAL > GetLimitStencil ( Index  i) const
inline

Returns a LimitStencil at index i in the table.

Definition at line 749 of file stencilTable.h.

◆ operator[]()

LimitStencilReal< REAL > operator[] ( Index  index) const
inline

Returns the limit stencil at index i in the table.

Definition at line 782 of file stencilTable.h.

◆ Update2ndDerivs() [1/4]

void Update2ndDerivs ( T const &  srcValues,
U &  uuderivs,
U &  uvderivs,
U &  vvderivs,
int  start = -1,
int  end = -1 
) const
inline

Updates 2nd derivative values based on the control values.

Note
The destination buffers ('uuderivs', 'uvderivs', & 'vderivs') are assumed to have allocated at least GetNumStencils() elements.
Parameters
srcValuesBuffer with primvar data for the control vertices
uuderivsDestination buffer for the interpolated 'uu' derivative primvar data
uvderivsDestination buffer for the interpolated 'uv' derivative primvar data
vvderivsDestination buffer for the interpolated 'vv' derivative primvar data
startIndex of first destination derivative to update
endIndex of last destination derivative to update

Definition at line 528 of file stencilTable.h.

◆ Update2ndDerivs() [2/4]

void Update2ndDerivs ( T const *  src,
T *  uuderivs,
U *  uvderivs,
U *  vvderivs,
int  start = -1,
int  end = -1 
) const
inline

Definition at line 548 of file stencilTable.h.

◆ Update2ndDerivs() [3/4]

void Update2ndDerivs ( T1 const &  srcBase,
int  numBase,
T2 const &  srcRef,
U &  uuderivs,
U &  uvderivs,
U &  vvderivs,
int  start = -1,
int  end = -1 
) const
inline

Definition at line 538 of file stencilTable.h.

◆ Update2ndDerivs() [4/4]

void Update2ndDerivs ( T1 const *  srcBase,
int  numBase,
T2 const *  srcRef,
U *  uuderivs,
U *  uvderivs,
U *  vvderivs,
int  start = -1,
int  end = -1 
) const
inline

Definition at line 556 of file stencilTable.h.

◆ UpdateDerivs() [1/4]

void UpdateDerivs ( T const &  srcValues,
U &  uderivs,
U &  vderivs,
int  start = -1,
int  end = -1 
) const
inline

Updates derivative values based on the control values.

Note
The destination buffers ('uderivs' & 'vderivs') are assumed to have allocated at least GetNumStencils() elements.
Parameters
srcValuesBuffer with primvar data for the control vertices
uderivsDestination buffer for the interpolated 'u' derivative primvar data
vderivsDestination buffer for the interpolated 'v' derivative primvar data
startIndex of first destination derivative to update
endIndex of last destination derivative to update

Definition at line 476 of file stencilTable.h.

◆ UpdateDerivs() [2/4]

void UpdateDerivs ( T const *  src,
U *  uderivs,
U *  vderivs,
int  start = -1,
int  end = -1 
) const
inline

Definition at line 493 of file stencilTable.h.

◆ UpdateDerivs() [3/4]

void UpdateDerivs ( T1 const &  srcBase,
int  numBase,
T2 const &  srcRef,
U &  uderivs,
U &  vderivs,
int  start = -1,
int  end = -1 
) const
inline

Definition at line 484 of file stencilTable.h.

◆ UpdateDerivs() [4/4]

void UpdateDerivs ( T1 const *  srcBase,
int  numBase,
T2 const *  srcRef,
U *  uderivs,
U *  vderivs,
int  start = -1,
int  end = -1 
) const
inline

Definition at line 500 of file stencilTable.h.

Friends And Related Function Documentation

◆ LimitStencilTableFactoryReal< REAL >

friend class LimitStencilTableFactoryReal< REAL >
friend

Definition at line 565 of file stencilTable.h.


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