OpenVDB  5.2.0
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
TypedAttributeArray< ValueType_, Codec_ > Class Template Reference

Typed class for storing attribute data. More...

#include <AttributeArray.h>

Inherits AttributeArray.

Public Types

using Ptr = std::shared_ptr< TypedAttributeArray >
 
using ConstPtr = std::shared_ptr< const TypedAttributeArray >
 
using ValueType = ValueType_
 
using Codec = Codec_
 
using StorageType = typename Codec::template Storage< ValueType >::Type
 
enum  Flag {
  TRANSIENT = 0x1, HIDDEN = 0x2, OUTOFCORE = 0x4, CONSTANTSTRIDE = 0x8,
  STREAMING = 0x10
}
 
enum  SerializationFlag { WRITESTRIDED = 0x1, WRITEUNIFORM = 0x2, WRITEMEMCOMPRESS = 0x4, WRITEPAGED = 0x8 }
 
using FactoryMethod = Ptr(*)(Index, Index, bool)
 

Public Member Functions

 TypedAttributeArray (Index n=1, Index strideOrTotalSize=1, bool constantStride=true, const ValueType &uniformValue=zeroVal< ValueType >())
 Default constructor, always constructs a uniform attribute. More...
 
 TypedAttributeArray (const TypedAttributeArray &, bool uncompress=false)
 Deep copy constructor (optionally decompress during copy). More...
 
TypedAttributeArrayoperator= (const TypedAttributeArray &)
 Deep copy assignment operator. More...
 
 TypedAttributeArray (TypedAttributeArray &&)=delete
 Move constructor disabled. More...
 
TypedAttributeArrayoperator= (TypedAttributeArray &&)=delete
 Move assignment operator disabled. More...
 
virtual ~TypedAttributeArray ()
 
AttributeArray::Ptr copy () const override
 Return a copy of this attribute. More...
 
AttributeArray::Ptr copyUncompressed () const override
 Return an uncompressed copy of this attribute (will just return a copy if not compressed). More...
 
const NamePairtype () const override
 Return the name of this attribute's type. More...
 
Index size () const override
 Return the number of elements in this array. More...
 
Index stride () const override
 
Index dataSize () const override
 Return the size of the data in this array. More...
 
size_t memUsage () const override
 Return the number of bytes of memory used by this attribute. More...
 
ValueType getUnsafe (Index n) const
 Return the value at index n (assumes uncompressed and in-core) More...
 
ValueType get (Index n) const
 Return the value at index n. More...
 
template<typename T >
void getUnsafe (Index n, T &value) const
 Return the value at index n (assumes uncompressed and in-core) More...
 
template<typename T >
void get (Index n, T &value) const
 Return the value at index n. More...
 
void setUnsafe (Index n, const ValueType &value)
 Set value at the given index n (assumes uncompressed and in-core) More...
 
void set (Index n, const ValueType &value)
 Set value at the given index n. More...
 
template<typename T >
void setUnsafe (Index n, const T &value)
 Set value at the given index n (assumes uncompressed and in-core) More...
 
template<typename T >
void set (Index n, const T &value)
 Set value at the given index n. More...
 
void set (const Index n, const AttributeArray &sourceArray, const Index sourceIndex) override
 Set value at given index n from sourceIndex of another sourceArray. More...
 
bool isUniform () const override
 Return true if this array is stored as a single uniform value. More...
 
void expand (bool fill=true) override
 Replace the single value storage with an array of length size(). More...
 
void collapse () override
 Replace the existing array with a uniform zero value. More...
 
bool compact () override
 Compact the existing array to become uniform if all values are identical. More...
 
void collapse (const ValueType &uniformValue)
 Replace the existing array with the given uniform value. More...
 
void fill (const ValueType &value)
 Fill the existing array with the given value. More...
 
bool compress () override
 Compress the attribute array. More...
 
bool decompress () override
 Uncompress the attribute array. More...
 
void read (std::istream &) override
 Read attribute data from a stream. More...
 
void write (std::ostream &os, bool outputTransient) const override
 
void write (std::ostream &) const override
 Write attribute data to a stream, don't write transient attributes. More...
 
void readMetadata (std::istream &) override
 Read attribute metadata from a stream. More...
 
void writeMetadata (std::ostream &os, bool outputTransient, bool paged) const override
 
void readBuffers (std::istream &) override
 Read attribute buffers from a stream. More...
 
void writeBuffers (std::ostream &os, bool outputTransient) const override
 
void readPagedBuffers (compression::PagedInputStream &) override
 Read attribute buffers from a paged stream. More...
 
void writePagedBuffers (compression::PagedOutputStream &os, bool outputTransient) const override
 
bool isOutOfCore () const
 Return true if this buffer's values have not yet been read from disk. More...
 
void loadData () const override
 Ensures all data is in-core. More...
 
template<typename AttributeArrayType >
bool isType () const
 Return true if this attribute is of the same type as the template parameter. More...
 
template<typename ValueType >
bool hasValueType () const
 Return true if this attribute has a value type the same as the template parameter. More...
 
bool isCompressed () const
 Return true if this array is compressed. More...
 
void setHidden (bool state)
 Specify whether this attribute should be hidden (e.g., from UI or iterators). More...
 
bool isHidden () const
 Return true if this attribute is hidden (e.g., from UI or iterators). More...
 
void setTransient (bool state)
 Specify whether this attribute should only exist in memory and not be serialized during stream output. More...
 
bool isTransient () const
 Return true if this attribute is not serialized during stream output. More...
 
void setStreaming (bool state)
 Specify whether this attribute is to be streamed off disk, in which case, the attributes are collapsed after being first loaded leaving them in a destroyed state. More...
 
bool isStreaming () const
 Return true if this attribute is in streaming mode. More...
 
bool hasConstantStride () const
 Return true if this attribute has a constant stride. More...
 
uint8_t flags () const
 Retrieve the attribute array flags. More...
 
bool operator== (const AttributeArray &other) const
 
bool operator!= (const AttributeArray &other) const
 

Static Public Member Functions

static Ptr create (Index n, Index strideOrTotalSize=1, bool constantStride=true)
 Return a new attribute array of the given length n and stride with uniform value zero. More...
 
static TypedAttributeArraycast (AttributeArray &attributeArray)
 Cast an AttributeArray to TypedAttributeArray<T> More...
 
static const TypedAttributeArraycast (const AttributeArray &attributeArray)
 Cast an AttributeArray to TypedAttributeArray<T> More...
 
static const NamePairattributeType ()
 Return the name of this attribute's type (includes codec) More...
 
static bool isRegistered ()
 Return true if this attribute type is registered. More...
 
static void registerType ()
 Register this attribute type along with a factory function. More...
 
static void unregisterType ()
 Remove this attribute type from the registry. More...
 
static ValueType getUnsafe (const AttributeArray *array, const Index n)
 
static void setUnsafe (AttributeArray *array, const Index n, const ValueType &value)
 
static void collapse (AttributeArray *array, const ValueType &value)
 Non-member equivalent to collapse() that static_casts array to this TypedAttributeArray. More...
 
static void fill (AttributeArray *array, const ValueType &value)
 Non-member equivalent to fill() that static_casts array to this TypedAttributeArray. More...
 
static Ptr create (const NamePair &type, Index length, Index stride=1, bool constantStride=true)
 Create a new attribute array of the given (registered) type, length and stride. More...
 
static bool isRegistered (const NamePair &type)
 Return true if the given attribute type name is registered. More...
 
static void clearRegistry ()
 Clear the attribute type registry. More...
 

Protected Types

using AccessorBasePtr = std::shared_ptr< AccessorBase >
 

Protected Member Functions

AccessorBasePtr getAccessor () const override
 Obtain an Accessor that stores getter and setter functors. More...
 
void setConstantStride (bool state)
 Specify whether this attribute has a constant stride or not. More...
 

Static Protected Member Functions

static void registerType (const NamePair &type, FactoryMethod)
 Register a attribute type along with a factory function. More...
 
static void unregisterType (const NamePair &type)
 Remove a attribute type from the registry. More...
 

Protected Attributes

size_t mCompressedBytes = 0
 
uint8_t mFlags = 0
 
uint8_t mSerializationFlags = 0
 
tbb::atomic< Index32mOutOfCore = 0
 
compression::PageHandle::Ptr mPageHandle
 used for out-of-core, paged reading More...
 

Detailed Description

template<typename ValueType_, typename Codec_ = NullCodec>
class openvdb::v5_2::points::TypedAttributeArray< ValueType_, Codec_ >

Typed class for storing attribute data.

Member Typedef Documentation

using AccessorBasePtr = std::shared_ptr<AccessorBase>
protectedinherited
using Codec = Codec_
using ConstPtr = std::shared_ptr<const TypedAttributeArray>
using FactoryMethod = Ptr (*)(Index, Index, bool)
inherited
using Ptr = std::shared_ptr<TypedAttributeArray>
using StorageType = typename Codec::template Storage<ValueType>::Type
using ValueType = ValueType_

Member Enumeration Documentation

enum Flag
inherited
Enumerator
TRANSIENT 
HIDDEN 

by default not written to disk

OUTOFCORE 

hidden from UIs or iterators

CONSTANTSTRIDE 

data not yet loaded from disk (deprecated flag as of ABI=5)

STREAMING 

stride size does not vary in the array

enum SerializationFlag
inherited
Enumerator
WRITESTRIDED 
WRITEUNIFORM 

data is marked as strided when written

WRITEMEMCOMPRESS 

data is marked as uniform when written

WRITEPAGED 

data is marked as compressed in-memory when written

Constructor & Destructor Documentation

TypedAttributeArray ( Index  n = 1,
Index  strideOrTotalSize = 1,
bool  constantStride = true,
const ValueType uniformValue = zeroVal<ValueType>() 
)
explicit

Default constructor, always constructs a uniform attribute.

TypedAttributeArray ( const TypedAttributeArray< ValueType_, Codec_ > &  rhs,
bool  uncompress = false 
)

Deep copy constructor (optionally decompress during copy).

TypedAttributeArray ( TypedAttributeArray< ValueType_, Codec_ > &&  )
delete

Move constructor disabled.

virtual ~TypedAttributeArray ( )
inlinevirtual

Member Function Documentation

const NamePair & attributeType ( )
inlinestatic

Return the name of this attribute's type (includes codec)

TypedAttributeArray< ValueType_, Codec_ > & cast ( AttributeArray attributeArray)
inlinestatic

Cast an AttributeArray to TypedAttributeArray<T>

const TypedAttributeArray< ValueType_, Codec_ > & cast ( const AttributeArray attributeArray)
inlinestatic

Cast an AttributeArray to TypedAttributeArray<T>

static void clearRegistry ( )
staticinherited

Clear the attribute type registry.

void collapse ( )
overridevirtual

Replace the existing array with a uniform zero value.

Implements AttributeArray.

void collapse ( const ValueType uniformValue)

Replace the existing array with the given uniform value.

void collapse ( AttributeArray array,
const ValueType value 
)
static

Non-member equivalent to collapse() that static_casts array to this TypedAttributeArray.

bool compact ( )
overridevirtual

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

Implements AttributeArray.

bool compress ( )
inlineoverridevirtual

Compress the attribute array.

Implements AttributeArray.

AttributeArray::Ptr copy ( ) const
overridevirtual

Return a copy of this attribute.

Implements AttributeArray.

AttributeArray::Ptr copyUncompressed ( ) const
overridevirtual

Return an uncompressed copy of this attribute (will just return a copy if not compressed).

Implements AttributeArray.

static Ptr create ( const NamePair type,
Index  length,
Index  stride = 1,
bool  constantStride = true 
)
staticinherited

Create a new attribute array of the given (registered) type, length and stride.

TypedAttributeArray< ValueType_, Codec_ >::Ptr create ( Index  n,
Index  strideOrTotalSize = 1,
bool  constantStride = true 
)
inlinestatic

Return a new attribute array of the given length n and stride with uniform value zero.

Index dataSize ( ) const
inlineoverridevirtual

Return the size of the data in this array.

Implements AttributeArray.

bool decompress ( )
inlineoverridevirtual

Uncompress the attribute array.

Implements AttributeArray.

void expand ( bool  fill = true)
overridevirtual

Replace the single value storage with an array of length size().

Note
Non-uniform attributes are unchanged.
Parameters
filltoggle to initialize the array elements with the pre-expanded value.

Implements AttributeArray.

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.
void fill ( AttributeArray array,
const ValueType value 
)
static

Non-member equivalent to fill() that static_casts array to this TypedAttributeArray.

uint8_t flags ( ) const
inlineinherited

Retrieve the attribute array flags.

TypedAttributeArray< ValueType_, Codec_ >::ValueType get ( Index  n) const

Return the value at index n.

void get ( Index  n,
T &  value 
) const

Return the value at index n.

AttributeArray::AccessorBasePtr getAccessor ( ) const
overrideprotectedvirtual

Obtain an Accessor that stores getter and setter functors.

Implements AttributeArray.

TypedAttributeArray< ValueType_, Codec_ >::ValueType getUnsafe ( Index  n) const

Return the value at index n (assumes uncompressed and in-core)

void getUnsafe ( Index  n,
T &  value 
) const

Return the value at index n (assumes uncompressed and in-core)

TypedAttributeArray< ValueType_, Codec_ >::ValueType getUnsafe ( const AttributeArray array,
const Index  n 
)
static

Non-member equivalent to getUnsafe() that static_casts array to this TypedAttributeArray (assumes uncompressed and in-core)

bool hasConstantStride ( ) const
inlineinherited

Return true if this attribute has a constant stride.

bool hasValueType ( ) const
inlineinherited

Return true if this attribute has a value type the same as the template parameter.

bool isCompressed ( ) const
inlineinherited

Return true if this array is compressed.

bool isHidden ( ) const
inlineinherited

Return true if this attribute is hidden (e.g., from UI or iterators).

bool isOutOfCore ( ) const
inline

Return true if this buffer's values have not yet been read from disk.

static bool isRegistered ( const NamePair type)
staticinherited

Return true if the given attribute type name is registered.

bool isRegistered ( )
inlinestatic

Return true if this attribute type is registered.

bool isStreaming ( ) const
inlineinherited

Return true if this attribute is in streaming mode.

bool isTransient ( ) const
inlineinherited

Return true if this attribute is not serialized during stream output.

bool isType ( ) const
inlineinherited

Return true if this attribute is of the same type as the template parameter.

bool isUniform ( ) const
inlineoverridevirtual

Return true if this array is stored as a single uniform value.

Implements AttributeArray.

void loadData ( ) const
overridevirtual

Ensures all data is in-core.

Implements AttributeArray.

size_t memUsage ( ) const
overridevirtual

Return the number of bytes of memory used by this attribute.

Implements AttributeArray.

bool operator!= ( const AttributeArray other) const
inlineinherited
TypedAttributeArray< ValueType_, Codec_ > & operator= ( const TypedAttributeArray< ValueType_, Codec_ > &  rhs)

Deep copy assignment operator.

TypedAttributeArray& operator= ( TypedAttributeArray< ValueType_, Codec_ > &&  )
delete

Move assignment operator disabled.

bool operator== ( const AttributeArray other) const
inherited

Check the compressed bytes and flags. If they are equal, perform a deeper comparison check necessary on the inherited types (TypedAttributeArray) Requires non operator implementation due to inheritance

void read ( std::istream &  is)
overridevirtual

Read attribute data from a stream.

Implements AttributeArray.

void readBuffers ( std::istream &  is)
overridevirtual

Read attribute buffers from a stream.

Implements AttributeArray.

void readMetadata ( std::istream &  is)
overridevirtual

Read attribute metadata from a stream.

Implements AttributeArray.

void readPagedBuffers ( compression::PagedInputStream is)
overridevirtual

Read attribute buffers from a paged stream.

Implements AttributeArray.

static void registerType ( const NamePair type,
FactoryMethod   
)
staticprotectedinherited

Register a attribute type along with a factory function.

void registerType ( )
inlinestatic

Register this attribute type along with a factory function.

void set ( Index  n,
const ValueType value 
)

Set value at the given index n.

void set ( Index  n,
const T &  value 
)

Set value at the given index n.

void set ( const Index  n,
const AttributeArray sourceArray,
const Index  sourceIndex 
)
overridevirtual

Set value at given index n from sourceIndex of another sourceArray.

Implements AttributeArray.

void setConstantStride ( bool  state)
protectedinherited

Specify whether this attribute has a constant stride or not.

void setHidden ( bool  state)
inherited

Specify whether this attribute should be hidden (e.g., from UI or iterators).

This is useful if the attribute is used for blind data or as scratch space for a calculation.

Note
Attributes are not hidden by default.
void setStreaming ( bool  state)
inherited

Specify whether this attribute is to be streamed off disk, in which case, the attributes are collapsed after being first loaded leaving them in a destroyed state.

Note
This operation is not thread-safe.
void setTransient ( bool  state)
inherited

Specify whether this attribute should only exist in memory and not be serialized during stream output.

Note
Attributes are not transient by default.
void setUnsafe ( Index  n,
const ValueType value 
)

Set value at the given index n (assumes uncompressed and in-core)

void setUnsafe ( Index  n,
const T &  value 
)

Set value at the given index n (assumes uncompressed and in-core)

void setUnsafe ( AttributeArray array,
const Index  n,
const ValueType value 
)
static

Non-member equivalent to setUnsafe() that static_casts array to this TypedAttributeArray (assumes uncompressed and in-core)

Index size ( ) const
inlineoverridevirtual

Return the number of elements in this array.

Implements AttributeArray.

Index stride ( ) const
inlineoverridevirtual

Return the stride of this array.

Note
A return value of zero means a variable stride

Implements AttributeArray.

const NamePair& type ( ) const
inlineoverridevirtual

Return the name of this attribute's type.

Implements AttributeArray.

static void unregisterType ( const NamePair type)
staticprotectedinherited

Remove a attribute type from the registry.

void unregisterType ( )
inlinestatic

Remove this attribute type from the registry.

void write ( std::ostream &  os,
bool  outputTransient 
) const
overridevirtual

Write attribute data to a stream.

Parameters
osthe output stream
outputTransientif true, write out transient attributes

Implements AttributeArray.

void write ( std::ostream &  os) const
overridevirtual

Write attribute data to a stream, don't write transient attributes.

Implements AttributeArray.

void writeBuffers ( std::ostream &  os,
bool  outputTransient 
) const
overridevirtual

Write attribute buffers to a stream.

Parameters
osthe output stream
outputTransientif true, write out transient attributes

Implements AttributeArray.

void writeMetadata ( std::ostream &  os,
bool  outputTransient,
bool  paged 
) const
overridevirtual

Write attribute metadata to a stream.

Parameters
osthe output stream
outputTransientif true, write out transient attributes
pagedif true, data is written out in pages

Implements AttributeArray.

void writePagedBuffers ( compression::PagedOutputStream os,
bool  outputTransient 
) const
overridevirtual

Write attribute buffers to a paged stream.

Parameters
osthe output stream
outputTransientif true, write out transient attributes

Implements AttributeArray.

Member Data Documentation

size_t mCompressedBytes = 0
protectedinherited
uint8_t mFlags = 0
protectedinherited
tbb::atomic<Index32> mOutOfCore = 0
protectedinherited
compression::PageHandle::Ptr mPageHandle
protectedinherited

used for out-of-core, paged reading

uint8_t mSerializationFlags = 0
protectedinherited

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