| OpenSubdiv

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

Table of limit subdivision stencils. More...

`#include <stencilTable.h>`

Inheritance diagram for LimitStencilTableReal< 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()

template<typename REAL>

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

template<typename REAL>

void Clear | ( |  | ) |

Clears the stencils from the table.

## ◆ GetDuuWeights()

template<typename REAL>

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

Returns the 'uu' derivative stencil interpolation weights.

Definition at line 444 of file stencilTable.h.

## ◆ GetDuvWeights()

template<typename REAL>

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

Returns the 'uv' derivative stencil interpolation weights.

Definition at line 449 of file stencilTable.h.

## ◆ GetDuWeights()

template<typename REAL>

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

Returns the 'u' derivative stencil interpolation weights.

Definition at line 434 of file stencilTable.h.

## ◆ GetDvvWeights()

template<typename REAL>

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

Returns the 'vv' derivative stencil interpolation weights.

Definition at line 454 of file stencilTable.h.

## ◆ GetDvWeights()

template<typename REAL>

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

Returns the 'v' derivative stencil interpolation weights.

Definition at line 439 of file stencilTable.h.

## ◆ GetLimitStencil()

template<typename REAL>

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[]()

template<typename REAL>

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]

template<typename REAL>
template<class T, class U>

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

  srcValues | Buffer with primvar data for the control vertices
  uuderivs | Destination buffer for the interpolated 'uu' derivative primvar data
  uvderivs | Destination buffer for the interpolated 'uv' derivative primvar data
  vvderivs | Destination buffer for the interpolated 'vv' derivative primvar data
  start | Index of first destination derivative to update
  end | Index of last destination derivative to update

Definition at line 528 of file stencilTable.h.

## ◆ Update2ndDerivs() [2/4]

template<typename REAL>
template<class T, class U>

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]

template<typename REAL>
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
| inline

Definition at line 538 of file stencilTable.h.

## ◆ Update2ndDerivs() [4/4]

template<typename REAL>
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
| inline

Definition at line 556 of file stencilTable.h.

## ◆ UpdateDerivs() [1/4]

template<typename REAL>
template<class T, class U>

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

  srcValues | Buffer with primvar data for the control vertices
  uderivs | Destination buffer for the interpolated 'u' derivative primvar data
  vderivs | Destination buffer for the interpolated 'v' derivative primvar data
  start | Index of first destination derivative to update
  end | Index of last destination derivative to update

Definition at line 476 of file stencilTable.h.

## ◆ UpdateDerivs() [2/4]

template<typename REAL>
template<class T, class U>

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]

template<typename REAL>
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
| inline

Definition at line 484 of file stencilTable.h.

## ◆ UpdateDerivs() [4/4]

template<typename REAL>
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
| inline

Definition at line 500 of file stencilTable.h.

## Friends And Related Symbol Documentation

## ◆ LimitStencilTableFactoryReal< REAL >

template<typename 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:

- opensubdiv/far/stencilTable.h