OpenVDB 12.1.0
Loading...
Searching...
No Matches
AttributeWriteHandle< ValueType, CodecType > Class Template Reference

Write-able version of AttributeHandle. More...

#include <openvdb/points/AttributeArray.h>

Inheritance diagram for AttributeWriteHandle< ValueType, CodecType >:
AttributeHandle< ValueType, UnknownCodec >

Public Types

using Handle = AttributeWriteHandle<ValueType, CodecType>
using Ptr = std::shared_ptr<Handle>
using ScopedPtr = std::unique_ptr<Handle>
using UniquePtr

Public Member Functions

 AttributeWriteHandle (AttributeArray &array, const bool expand=true)
virtual ~AttributeWriteHandle ()=default
void expand (bool fill=true)
 If this array is uniform, replace it with an array of length size().
void collapse ()
 Replace the existing array with a uniform value (zero if none provided).
void collapse (const ValueType &uniformValue)
bool compact ()
 Compact the existing array to become uniform if all values are identical.
void fill (const ValueType &value)
 Fill the existing array with the given value.
void set (Index n, const ValueType &value)
void set (Index n, Index m, const ValueType &value)
AttributeArrayarray ()
Index stride () const
Index size () const
bool isUniform () const
bool hasConstantStride () const
ValueType get (Index n, Index m=0) const
const AttributeArrayarray () const

Static Public Member Functions

static Ptr create (AttributeArray &array, const bool expand=true)
static Ptr create (const AttributeArray &array, const bool collapseOnDestruction=true)

Protected Types

using GetterPtr
using SetterPtr
using ValuePtr

Protected Member Functions

Index index (Index n, Index m) const

Protected Attributes

const AttributeArraymArray
GetterPtr mGetter
SetterPtr mSetter
ValuePtr mCollapser
ValuePtr mFiller

Friends

class ::TestAttributeArray

Detailed Description

template<typename ValueType, typename CodecType = UnknownCodec>
class openvdb::v12_1::points::AttributeWriteHandle< ValueType, CodecType >

Write-able version of AttributeHandle.

Member Typedef Documentation

◆ GetterPtr

using GetterPtr
protectedinherited

◆ Handle

template<typename ValueType, typename CodecType = UnknownCodec>
using Handle = AttributeWriteHandle<ValueType, CodecType>

◆ Ptr

template<typename ValueType, typename CodecType = UnknownCodec>
using Ptr = std::shared_ptr<Handle>

◆ ScopedPtr

template<typename ValueType, typename CodecType = UnknownCodec>
using ScopedPtr = std::unique_ptr<Handle>

◆ SetterPtr

using SetterPtr
protectedinherited

◆ UniquePtr

using UniquePtr
inherited

◆ ValuePtr

using ValuePtr
protectedinherited

Constructor & Destructor Documentation

◆ AttributeWriteHandle()

template<typename ValueType, typename CodecType>
AttributeWriteHandle ( AttributeArray & array,
const bool expand = true )

◆ ~AttributeWriteHandle()

template<typename ValueType, typename CodecType = UnknownCodec>
virtual ~AttributeWriteHandle ( )
virtualdefault

Member Function Documentation

◆ array() [1/2]

const AttributeArray & array ( ) const
inherited

◆ array() [2/2]

template<typename ValueType, typename CodecType>
AttributeArray & array ( )

◆ collapse() [1/2]

template<typename ValueType, typename CodecType>
void collapse ( )

Replace the existing array with a uniform value (zero if none provided).

◆ collapse() [2/2]

template<typename ValueType, typename CodecType>
void collapse ( const ValueType & uniformValue)

◆ compact()

template<typename ValueType, typename CodecType>
bool compact ( )

Compact the existing array to become uniform if all values are identical.

◆ create() [1/2]

AttributeHandle< ValueType, UnknownCodec >::Ptr create ( const AttributeArray & array,
const bool collapseOnDestruction = true )
staticinherited

◆ create() [2/2]

template<typename ValueType, typename CodecType>
AttributeWriteHandle< ValueType, CodecType >::Ptr create ( AttributeArray & array,
const bool expand = true )
static

◆ expand()

template<typename ValueType, typename CodecType>
void expand ( bool fill = true)

If this array is uniform, replace it with an array of length size().

Parameters
fillif true, assign the uniform value to each element of the array.

◆ fill()

template<typename ValueType, typename CodecType>
void fill ( const ValueType & value)

Fill the existing array with the given value.

Note
Identical to collapse() except a non-uniform array will not become uniform.

◆ get()

ValueType get ( Index n,
Index m = 0 ) const
inherited

◆ hasConstantStride()

bool hasConstantStride ( ) const
inherited

◆ index()

Index index ( Index n,
Index m ) const
protectedinherited

◆ isUniform()

bool isUniform ( ) const
inherited

◆ set() [1/2]

template<typename ValueType, typename CodecType>
void set ( Index n,
const ValueType & value )

◆ set() [2/2]

template<typename ValueType, typename CodecType>
void set ( Index n,
Index m,
const ValueType & value )

◆ size()

Index size ( ) const
inlineinherited

◆ stride()

Index stride ( ) const
inlineinherited

◆ ::TestAttributeArray

template<typename ValueType, typename CodecType = UnknownCodec>
friend class ::TestAttributeArray
friend

Member Data Documentation

◆ mArray

const AttributeArray* mArray
protectedinherited

◆ mCollapser

ValuePtr mCollapser
protectedinherited

◆ mFiller

ValuePtr mFiller
protectedinherited

◆ mGetter

GetterPtr mGetter
protectedinherited

◆ mSetter

SetterPtr mSetter
protectedinherited