omni::graph::core::ogn::const_array

Defined in omni/graph/core/ogn/array.h

Inheritance Relationships

Base Type

template<typename BaseDataType>
class const_array : public omni::graph::core::ogn::base_array<const BaseDataType, ConstAttributeDataHandle>

std::vector-like wrapper class for constant array attribute data in the Ogn Database.

It operates by using the Fabric interface to interact with array data it has stored. This const version of the array wrapper should be used for input attributes, whose data cannot be changed. (The naming is “array” for consistency with how attribute types are named, even though it doesn’t behave like a std::array, whose content size is determined at compile time.)

Template Parameters

BaseDataType – Type of data contained within the array

Public Types

using ConstBaseDataType = const typename std::remove_const<const BaseDataType>::type

const version of the BaseDataType

using this_t = base_array<const BaseDataType, ConstAttributeDataHandle>

Type definition of this class.

using iterator = typename gsl::span<const BaseDataType>::iterator

Iterator over the array contents.

using reverse_iterator = typename gsl::span<const BaseDataType>::reverse_iterator

Reverse iterator over the array contents.

Public Functions

const_array() = default

Constructor.

inline bool isValid() const

Confirm that the data values are safe for accessing.

Returns

true if the context and attribute handle values are both valid

inline size_t size() const
Returns

The number of elements in the currently managed array

inline bool empty() const
Returns

Is the currently managed array empty?

inline ConstBaseDataType *data() const
Returns

Pointer to the raw data in the array (first element)

inline const iterator begin() const
Returns

Iterator pointing to the beginning of the array

inline const iterator end() const
Returns

Iterator pointing past the end of the array

inline const reverse_iterator rbegin() const
Returns

Iterator pointing to the end of the array

inline const reverse_iterator rend() const
Returns

Iterator pointing before the beginning of the array

inline ConstBaseDataType &operator[](size_t index) const

Access a specific element of the array.

No bounds checking is performed.

Parameters

index[in] Element index into the array

Returns

Reference to the index’th element of the array

inline ConstBaseDataType &at(size_t index) const

Access a specific element of the array with bounds checking.

Parameters

index[in] Element index into the array

Throws

std::out_of_range – if there is no data for the given index

Returns

Reference to the index’th element of the array

inline gsl::span<const BaseDataType> const &span() const

Access the underlying span that allows to access the array data.

Returns

A reference to the underlying span

inline GraphContextObj const *context() const

Access the context to which this array belongs.

Returns

Pointer to the context to which this array belongs

inline ConstAttributeDataHandle const &handle() const

Access the attribute handle used to access the array data in Fabric.

Returns

Pointer to the attribute handle used to access the array data in Fabric

inline void setDirty() const

Flag the span data as not being up2Date.

inline void adjustHandle(size_t idx)

In a vectorized context, move forward the current handle.

Parameters

idx[in] The amount of instance(s) to offset the current handle

Protected Functions

inline void reset()

Reset the internal span to point to new data.

inline const BaseDataType **getData(const IAttributeData &iData, ConstAttributeDataHandle const &hdl)

Get a pointer to the array data from a specific const data handle.

Parameters
  • iData – Interface class containing the accessor functions

  • hdl – Handle to the attribute data whose value is being retrieved

Returns

BaseDataType** Pointer to the array of retrieved data

inline const BaseDataType **getData(const IAttributeData &iData, AttributeDataHandle const &hdl)

Get a pointer to the array data from a specific mutable data handle.

Parameters
  • iData – Interface class containing the accessor functions

  • hdl – Handle to the attribute data whose value is being retrieved

Returns

BaseDataType** Pointer to the array of retrieved data

inline void setContext(const GraphContextObj &context)

Set the context.

This is done to allow the same wrapper class to be used for multiple evaluations in different contexts.

Parameters

context[in] The graph context to which the array belongs

inline void setHandle(ConstAttributeDataHandle handle)

Set the attribute handle.

This is done to allow the same wrapper class to be used for multiple evaluations in different contexts.

Parameters

handle[in] Handle to the attribute to which the array belongs