AGX Dynamics 2.41.3.0
Loading...
Searching...
No Matches
agxData::Array< T > Class Template Reference

Type-specific Array used for fast access into the data held by a Buffer. More...

#include <Array.h>

+ Inheritance diagram for agxData::Array< T >:

Public Types

typedef const T * const_iterator
 
typedef const T * const_pointer
 
typedef const T & const_reference
 
typedef ptrdiff_t difference_type
 
typedef T * iterator
 
typedef std::random_access_iterator_tag iterator_category
 
typedef T * pointer
 
typedef T & reference
 
typedef size_t size_type
 
typedef T Type
 
typedef T value_type
 

Public Member Functions

 Array ()
 Create a new invalid array.
 
 Array (agx::Vector< T > &vec)
 Create a new array view from a vector.
 
 Array (agx::Vector< T > &vec, agx::IndexRange32 range)
 
 Array (agx::VectorPOD< T > &vec)
 
 Array (agx::VectorPOD< T > &vec, agx::IndexRange32 range)
 
 Array (agxData::Buffer *buffer)
 Create a new array covering the entire given buffer.
 
 Array (agxData::Buffer *buffer, agx::IndexRange32 range)
 Create a new array covering the given range of the given buffer.
 
 Array (const agxData::Array< T > &other, agx::IndexRange32 localRange)
 Create a new array that covers a subset of another array.
 
agx::GlobalResult::Transaction allocateResult (size_t numElements)
 
T & at (size_t index)
 
const T & at (size_t index) const
 
T & back ()
 
const T & back () const
 
iterator begin ()
 
const_iterator begin () const
 
template<typename T2 >
size_t commitResult (const T2 &vector)
 
template<typename T2 >
size_t commitResult (const T2 &vector, agx::Index sortIndex)
 
size_t commitResult (size_t numElements, const void *localResult)
 
size_t commitResult (size_t numElements, const void *localResult, agx::Index sortIndex)
 
template<typename T2 >
bool contains (const T2 &element) const
 
iterator end ()
 
const_iterator end () const
 
template<typename T2 >
size_t find (const T2 &element) const
 The index of the first occurrence of an element that is equal to the given element.
 
T & front ()
 
const T & front () const
 
agx::GlobalResultgetGlobalResult ()
 
agxData::Array< T > operator[] (agx::IndexRange32 subRange) const
 
T & operator[] (size_t index)
 
const T & operator[] (size_t index) const
 
T * ptr ()
 
const T * ptr () const
 
agxData::Array< T > slice (agx::IndexRange32 subRange) const
 
- Public Member Functions inherited from agxData::AbstractArray
 AbstractArray ()
 Create a new invalid array.
 
 AbstractArray (agxData::Buffer *buffer)
 Create a new array that covers the entire given buffer.
 
 AbstractArray (agxData::Buffer *buffer, agx::IndexRange32 range)
 Create a new array for the given buffer that covers the specified range.
 
 AbstractArray (const agxData::AbstractArray &other, agx::IndexRange32 localRange)
 Create a new array that covers a subset of another array.
 
void _setBuffer (agxData::Buffer *buffer)
 Set the buffer while maintaining the current range, should normally not be used.
 
agxData::Bufferbuffer ()
 
const agxData::Bufferbuffer () const
 
bool empty () const
 
agxData::FormatgetFormat ()
 
const agxData::FormatgetFormat () const
 
void init ()
 Set to empty array.
 
void init (agxData::Buffer *buffer)
 Set the buffer that the array will access. The range is set to the entire buffer.
 
void init (agxData::Buffer *buffer, agx::IndexRange32 range)
 Set the buffer that the array will access, as well as the range of the buffer that is to be covered.
 
bool isValid () const
 
agx::IndexRange32range ()
 
const agx::IndexRange32range () const
 
void setRange (agx::IndexRange32 range)
 Set the range of the buffer that the array will cover.
 
void setRange (size_t startIndex, size_t endIndex)
 Set the range of the buffer that the array will cover.
 
size_t size () const
 
void sync ()
 Updates the internal data access pointer. Called when the back end buffer is reallocated.
 
- Public Member Functions inherited from agxData::Data
 Data (void *ptr=nullptr)
 
AbstractArrayasArray ()
 
template<typename T >
Array< T > & asArray ()
 
const AbstractArrayasArray () const
 
template<typename T >
const Array< T > & asArray () const
 
AbstractScalarasScalar ()
 
template<typename T >
Scalar< T > & asScalar ()
 
const AbstractScalarasScalar () const
 
template<typename T >
const Scalar< T > & asScalar () const
 
void * ptr ()
 
const void * ptr () const
 

Static Public Member Functions

static const agxData::Array< T > raw (const T *buffer, agx::Index size)
 
static agxData::Array< T > raw (T *buffer, agx::Index size)
 Array creation helper method that creates an array covering the given memory area.
 

Static Public Attributes

static const bool IsScalar = false
 

Additional Inherited Members

- Protected Attributes inherited from agxData::AbstractArray
agxData::Bufferm_buffer
 
agx::IndexRange32 m_range
 
- Protected Attributes inherited from agxData::Data
void * m_ptr
 

Detailed Description

template<typename T>
class agxData::Array< T >

Type-specific Array used for fast access into the data held by a Buffer.

Definition at line 106 of file Array.h.

Member Typedef Documentation

◆ const_iterator

template<typename T >
typedef const T* agxData::Array< T >::const_iterator

Definition at line 117 of file Array.h.

◆ const_pointer

template<typename T >
typedef const T* agxData::Array< T >::const_pointer

Definition at line 112 of file Array.h.

◆ const_reference

template<typename T >
typedef const T& agxData::Array< T >::const_reference

Definition at line 114 of file Array.h.

◆ difference_type

template<typename T >
typedef ptrdiff_t agxData::Array< T >::difference_type

Definition at line 119 of file Array.h.

◆ iterator

template<typename T >
typedef T* agxData::Array< T >::iterator

Definition at line 116 of file Array.h.

◆ iterator_category

template<typename T >
typedef std::random_access_iterator_tag agxData::Array< T >::iterator_category

Definition at line 118 of file Array.h.

◆ pointer

template<typename T >
typedef T* agxData::Array< T >::pointer

Definition at line 111 of file Array.h.

◆ reference

template<typename T >
typedef T& agxData::Array< T >::reference

Definition at line 113 of file Array.h.

◆ size_type

template<typename T >
typedef size_t agxData::Array< T >::size_type

Definition at line 115 of file Array.h.

◆ Type

template<typename T >
typedef T agxData::Array< T >::Type

Definition at line 109 of file Array.h.

◆ value_type

template<typename T >
typedef T agxData::Array< T >::value_type

Definition at line 110 of file Array.h.

Constructor & Destructor Documentation

◆ Array() [1/8]

template<typename T >
agxData::Array< T >::Array

Create a new invalid array.

Definition at line 755 of file Buffer.h.

◆ Array() [2/8]

template<typename T >
agxData::Array< T >::Array ( agxData::Buffer buffer)

Create a new array covering the entire given buffer.

Definition at line 760 of file Buffer.h.

References agxAssert, agxData::AbstractArray::buffer(), agxData::Buffer::getFormat(), agxData::Format::getSize(), agx::Model::is(), and agxCore::isShutdown().

◆ Array() [3/8]

template<typename T >
agxData::Array< T >::Array ( agxData::Buffer buffer,
agx::IndexRange32  range 
)

Create a new array covering the given range of the given buffer.

Definition at line 769 of file Buffer.h.

References agxAssert, agxData::AbstractArray::buffer(), agxData::Buffer::getFormat(), agxData::Format::getSize(), agx::Model::is(), and agxCore::isShutdown().

◆ Array() [4/8]

template<typename T >
agxData::Array< T >::Array ( const agxData::Array< T > &  other,
agx::IndexRange32  localRange 
)

Create a new array that covers a subset of another array.

Definition at line 777 of file Buffer.h.

◆ Array() [5/8]

template<typename T >
agxData::Array< T >::Array ( agx::Vector< T > &  vec)

Create a new array view from a vector.

Definition at line 782 of file Buffer.h.

References agx::Vector< T, Allocator >::ptr(), and agx::Container::size().

◆ Array() [6/8]

template<typename T >
agxData::Array< T >::Array ( agx::Vector< T > &  vec,
agx::IndexRange32  range 
)

◆ Array() [7/8]

template<typename T >
agxData::Array< T >::Array ( agx::VectorPOD< T > &  vec)

Definition at line 797 of file Buffer.h.

References agx::VectorPOD< T, Allocator >::ptr(), and agx::Container::size().

◆ Array() [8/8]

Member Function Documentation

◆ allocateResult()

template<typename T >
agx::GlobalResult::Transaction agxData::Array< T >::allocateResult ( size_t  numElements)
See also
agx::GlobalResult::allocateResult

Definition at line 572 of file Buffer.h.

◆ at() [1/2]

template<typename T >
T & agxData::Array< T >::at ( size_t  index)
Returns
A reference to the element at the given index in the array.

Definition at line 860 of file Buffer.h.

References agxAssert, and agxVerifyN.

◆ at() [2/2]

template<typename T >
const T & agxData::Array< T >::at ( size_t  index) const

Definition at line 868 of file Buffer.h.

◆ back() [1/2]

template<typename T >
T & agxData::Array< T >::back
Returns
A reference to the last element of the array.

Definition at line 820 of file Buffer.h.

References agxAssert, and agxAssert1.

Referenced by agx::createCell().

◆ back() [2/2]

template<typename T >
const T & agxData::Array< T >::back

Definition at line 812 of file Buffer.h.

References agxAssert, and agxAssert1.

◆ begin() [1/2]

template<typename T >
Array< T >::iterator agxData::Array< T >::begin
Returns
An iterator to the first element of the array.

Definition at line 888 of file Buffer.h.

◆ begin() [2/2]

template<typename T >
Array< T >::const_iterator agxData::Array< T >::begin

Definition at line 891 of file Buffer.h.

◆ commitResult() [1/4]

template<typename T >
template<typename T2 >
size_t agxData::Array< T >::commitResult ( const T2 &  vector)

Definition at line 606 of file Buffer.h.

References agx::InvalidIndex.

◆ commitResult() [2/4]

template<typename T >
template<typename T2 >
size_t agxData::Array< T >::commitResult ( const T2 &  vector,
agx::Index  sortIndex 
)
See also
agx::GlobalResult::commitResult

Definition at line 596 of file Buffer.h.

References agx::InvalidIndex.

◆ commitResult() [3/4]

template<typename T >
size_t agxData::Array< T >::commitResult ( size_t  numElements,
const void *  localResult 
)

Definition at line 587 of file Buffer.h.

References agx::InvalidIndex.

◆ commitResult() [4/4]

template<typename T >
size_t agxData::Array< T >::commitResult ( size_t  numElements,
const void *  localResult,
agx::Index  sortIndex 
)
See also
agx::GlobalResult::commitResult

Definition at line 578 of file Buffer.h.

References agx::InvalidIndex.

◆ contains()

template<typename T >
template<typename T2 >
bool agxData::Array< T >::contains ( const T2 &  element) const
Returns
True if the array contains at least one element that is equal to the given element.

Definition at line 920 of file Buffer.h.

References agx::InvalidIndex.

◆ end() [1/2]

template<typename T >
Array< T >::iterator agxData::Array< T >::end
Returns
An iterator to one past the last element of the array.

Definition at line 894 of file Buffer.h.

◆ end() [2/2]

template<typename T >
Array< T >::const_iterator agxData::Array< T >::end

Definition at line 897 of file Buffer.h.

◆ find()

template<typename T >
template<typename T2 >
size_t agxData::Array< T >::find ( const T2 &  element) const

The index of the first occurrence of an element that is equal to the given element.

If there is no such element, then InvalidIndex is returned.

Parameters
elementThe value to search for.
Returns
Index of the first match, or if there is no match InvalidIndex.

Definition at line 908 of file Buffer.h.

References agx::InvalidIndex.

◆ front() [1/2]

template<typename T >
T & agxData::Array< T >::front
Returns
A reference to the first element of the array.

Definition at line 836 of file Buffer.h.

References agxAssert, and agxAssert1.

◆ front() [2/2]

template<typename T >
const T & agxData::Array< T >::front

Definition at line 828 of file Buffer.h.

References agxAssert, and agxAssert1.

◆ getGlobalResult()

template<typename T >
agx::GlobalResult * agxData::Array< T >::getGlobalResult
Returns
The global result object associated with the buffer that the array is bound to.

Definition at line 564 of file Buffer.h.

References agxAssert.

◆ operator[]() [1/3]

template<typename T >
Array< T > agxData::Array< T >::operator[] ( agx::IndexRange32  subRange) const
Returns
Create a new array that covers a subset of the current array.

Definition at line 882 of file Buffer.h.

◆ operator[]() [2/3]

template<typename T >
T & agxData::Array< T >::operator[] ( size_t  index)
Returns
A reference to the element at the given index in the array.

Definition at line 845 of file Buffer.h.

References agxAssert1, and agxAssertN.

◆ operator[]() [3/3]

template<typename T >
const T & agxData::Array< T >::operator[] ( size_t  index) const

Definition at line 854 of file Buffer.h.

◆ ptr() [1/2]

template<typename T >
T * agxData::Array< T >::ptr
Returns
A pointer to the start of the memory area that the array covers.

Definition at line 900 of file Buffer.h.

Referenced by agx::JacobianAccessorT< T >::setup().

◆ ptr() [2/2]

template<typename T >
const T * agxData::Array< T >::ptr

Definition at line 904 of file Buffer.h.

◆ raw() [1/2]

template<typename T >
const Array< T > agxData::Array< T >::raw ( const T *  buffer,
agx::Index  size 
)
static

Definition at line 744 of file Buffer.h.

References agxData::Data::m_ptr, and agxData::AbstractArray::m_range.

◆ raw() [2/2]

template<typename T >
Array< T > agxData::Array< T >::raw ( T *  buffer,
agx::Index  size 
)
static

Array creation helper method that creates an array covering the given memory area.

The created array will not have a back end Buffer object and is therefore invalid. The given memory area will be interpreted as an array of elements of type T.

Parameters
bufferMemory area that the array should index into.
sizeThe length, in number of elements, that the array should cover.
Returns
A new array that covers the given memory area.

Definition at line 733 of file Buffer.h.

References agxData::Data::m_ptr, and agxData::AbstractArray::m_range.

Referenced by agxData::EntityStorage::getInstances().

◆ slice()

template<typename T >
Array< T > agxData::Array< T >::slice ( agx::IndexRange32  subRange) const
Returns
Create a new array that covers a subset of the current array.

Definition at line 875 of file Buffer.h.

References agx::IndexRangeT< T >::begin(), and agx::IndexRangeT< T >::end().

Member Data Documentation

◆ IsScalar

template<typename T >
const bool agxData::Array< T >::IsScalar = false
static

Definition at line 121 of file Array.h.


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