HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HdVtBufferSource Class Referencefinal

#include <vtBufferSource.h>

+ Inheritance diagram for HdVtBufferSource:

Public Member Functions

HD_API HdVtBufferSource (TfToken const &name, VtValue const &value, int arraySize=1, bool allowDoubles=true)
 
HD_API HdVtBufferSource (TfToken const &name, GfMatrix4d const &matrix, bool allowDoubles=true)
 
HD_API HdVtBufferSource (TfToken const &name, VtArray< GfMatrix4d > const &matrices, int arraySize=1, bool allowDoubles=true)
 
HD_API ~HdVtBufferSource () override
 Destructor deletes the internal storage. More...
 
HD_API void Truncate (size_t numElements)
 
TfToken constGetName () const override
 Return the name of this buffer source. More...
 
void constGetData () const override
 Returns the raw pointer to the underlying data. More...
 
HdTupleType GetTupleType () const override
 Returns the data type and count of this buffer source. More...
 
HD_API size_t GetNumElements () const override
 
void GetBufferSpecs (HdBufferSpecVector *specs) const override
 Add the buffer spec for this buffer source into given bufferspec vector. More...
 
bool Resolve () override
 Prepare the access of GetData(). More...
 
- Public Member Functions inherited from HdBufferSource
 HdBufferSource ()
 
virtual HD_API ~HdBufferSource ()
 
virtual HD_API size_t ComputeHash () const
 Computes and returns a hash value for the underlying data. More...
 
bool IsResolved () const
 Returns true it this computation has already been resolved. More...
 
bool HasResolveError () const
 Returns true if an error occurred during resolve. More...
 
HD_API bool IsValid () const
 
virtual HD_API bool HasPreChainedBuffer () const
 Returns true if this buffer has a pre-chained buffer. More...
 
virtual HD_API
HdBufferSourceSharedPtr 
GetPreChainedBuffer () const
 Returns the pre-chained buffer. More...
 
virtual HD_API bool HasChainedBuffer () const
 Returns true if this buffer has any chained buffer(s) More...
 
virtual HD_API
HdBufferSourceSharedPtrVector 
GetChainedBuffers () const
 Returns the vector of chained buffers. More...
 

Static Public Member Functions

static HD_API HdType GetDefaultMatrixType ()
 

Protected Member Functions

HD_API bool _CheckValid () const override
 
- Protected Member Functions inherited from HdBufferSource
void _SetResolved ()
 
void _SetResolveError ()
 
bool _TryLock ()
 

Detailed Description

An implementation of HdBufferSource where the source data value is a VtValue.

Definition at line 49 of file vtBufferSource.h.

Constructor & Destructor Documentation

HD_API HdVtBufferSource::HdVtBufferSource ( TfToken const name,
VtValue const value,
int  arraySize = 1,
bool  allowDoubles = true 
)

Constructs a new buffer from a VtValue.

Parameters
arraySizeindicates how many values are provided per element.
allowDoublesindicates if double types can be used, or if they must be converted to floats.
HD_API HdVtBufferSource::HdVtBufferSource ( TfToken const name,
GfMatrix4d const matrix,
bool  allowDoubles = true 
)

Constructs a new buffer from a matrix. The data is convert to the default type (see GetDefaultMatrixType()).

Note that if we use above VtValue taking constructor, we can use either float or double matrix regardless the default type.

Parameters
allowDoublesindicates if double types can be used, or if they must be converted to floats regardless of the default type.
HD_API HdVtBufferSource::HdVtBufferSource ( TfToken const name,
VtArray< GfMatrix4d > const matrices,
int  arraySize = 1,
bool  allowDoubles = true 
)

Constructs a new buffer from a matrix. The data is convert to the default type (see GetDefaultMatrixType()).

Note that if we use above VtValue taking constructor, we can use either float or double matrix regardless the default type.

Parameters
arraySizeindicates how many values are provided per element.
allowDoublesindicates if double types can be used, or if they must be converted to floats regardless of the default type.
HD_API HdVtBufferSource::~HdVtBufferSource ( )
override

Destructor deletes the internal storage.

Member Function Documentation

HD_API bool HdVtBufferSource::_CheckValid ( ) const
overrideprotectedvirtual

Checks the validity of the source buffer. This function is called by IsValid() to do the real checking.

Should only be implemented in classes at leafs of the class hierarchy (Please place common validation code in a new non-virtual method)

This code should return false:

  • If the buffer would produce an invalid BufferSpec
  • If a required dependent buffer is invalid For example, return false when: The data type is invalid, causing an invalid BufferSpec.

The resolve step requires a 'source' buffer and that buffer is invalid.

If returning false, the buffer will not be registered with the resource registry. AddBufferSpec and Resolve will not be called

Implements HdBufferSource.

void HdVtBufferSource::GetBufferSpecs ( HdBufferSpecVector specs) const
inlineoverridevirtual

Add the buffer spec for this buffer source into given bufferspec vector.

Implements HdBufferSource.

Definition at line 124 of file vtBufferSource.h.

void const* HdVtBufferSource::GetData ( ) const
inlineoverridevirtual

Returns the raw pointer to the underlying data.

Implements HdBufferSource.

Definition at line 109 of file vtBufferSource.h.

static HD_API HdType HdVtBufferSource::GetDefaultMatrixType ( )
static

Returns the default matrix type. The default is HdTypeFloatMat4, but if HD_ENABLE_DOUBLEMATRIX is true, then HdTypeDoubleMat4 is used instead.

TfToken const& HdVtBufferSource::GetName ( ) const
inlineoverridevirtual

Return the name of this buffer source.

Implements HdBufferSource.

Definition at line 104 of file vtBufferSource.h.

HD_API size_t HdVtBufferSource::GetNumElements ( ) const
overridevirtual

Returns the number of elements (e.g. VtVec3dArray().GetLength()) from the source array.

Implements HdBufferSource.

HdTupleType HdVtBufferSource::GetTupleType ( ) const
inlineoverridevirtual

Returns the data type and count of this buffer source.

Implements HdBufferSource.

Definition at line 114 of file vtBufferSource.h.

bool HdVtBufferSource::Resolve ( )
inlineoverridevirtual

Prepare the access of GetData().

Implements HdBufferSource.

Definition at line 129 of file vtBufferSource.h.

HD_API void HdVtBufferSource::Truncate ( size_t  numElements)

Truncate the buffer to the given number of elements. If the VtValue contains too much data, this is a way to only forward part of the data to the hydra buffer system. numElements must be less than or equal to the current result of GetNumElements().


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