AGX Dynamics 2.37.3.4
|
Vector containing 'raw' data. More...
#include <Vector.h>
Public Types | |
typedef const T * | const_iterator |
typedef const T * | const_pointer |
typedef const T & | const_reference |
typedef std::reverse_iterator< const_iterator > | const_reverse_iterator |
typedef ptrdiff_t | difference_type |
typedef T * | iterator |
typedef T * | pointer |
typedef T & | reference |
typedef std::reverse_iterator< iterator > | reverse_iterator |
typedef size_t | size_type |
typedef T | Type |
typedef T | value_type |
Public Types inherited from agx::Container | |
enum | ClearPolicy { SHRINK_BUFFER , SHRINK_BUFFER_AVERAGED , MAINTAIN_BUFFER } |
agxData::Values from this enumeration is passed to the subclasses' 'clear' method in order to control what should become of the container's memory. More... | |
Public Member Functions | |
VectorPOD (const Allocator &allocator=Allocator()) | |
VectorPOD (const VectorPOD< T, Allocator > &other) | |
VectorPOD (const_iterator first, const_iterator end, const Allocator &allocator=Allocator()) | |
VectorPOD (size_t size, const T &value=T(), const Allocator &allocator=Allocator()) | |
VectorPOD (std::initializer_list< T > values, const Allocator &allocator=Allocator()) | |
VectorPOD (VectorPOD< T, Allocator > &&other) | |
~VectorPOD () | |
Allocator & | allocator () |
const Allocator & | allocator () const |
T & | at (size_t index) const |
T & | back () const |
iterator | begin () |
const_iterator | begin () const |
void | clear (ClearPolicy policy=SHRINK_BUFFER_AVERAGED) |
Remove all elements, optionally with maintained buffer allocation. | |
bool | contains (const T &element) const |
template<typename T2 > | |
bool | contains (const T2 &element) const |
Test if the vector contains a certain element. | |
iterator | end () |
const_iterator | end () const |
iterator | erase (iterator position) |
STL erase functionality. | |
iterator | erase (iterator start, iterator end) |
void | erase (size_t index) |
Erase elements using indices instead of iterators. | |
void | erase (size_t start, size_t end) |
iterator | eraseFast (const_iterator position) |
Fast erase, replacing the erased element with the last element. | |
void | eraseFast (size_t index) |
template<typename T2 > | |
size_t | find (const T2 &element) const |
Find the index to a matching element, return size() if not found. | |
bool | findAndErase (const T &element, bool searchMultiple=false) |
Find and erase an element. | |
T & | front () const |
T * | increment (size_t numElements=1) |
Resize using a increment. | |
template<typename InputIterator > | |
void | insert (const_iterator it, InputIterator first, InputIterator last) |
void | insert (const_iterator it, std::initializer_list< T > ilist) |
iterator | insert (iterator position, const T &value) |
void | insert (size_t index, const T &value) |
bool | operator!= (const VectorPOD< T, Allocator > &other) const |
VectorPOD< T, Allocator > & | operator= (const VectorPOD< T, Allocator > &other) |
bool | operator== (const VectorPOD< T, Allocator > &other) const |
Compare with other vector, return true if same size and all pairs are equal. | |
T & | operator[] (size_t i) const |
void | pop_back () |
T * | ptr () |
Get access to the internal data buffer. | |
const T * | ptr () const |
void | push_back (const T &value) |
void | push_back (T &&value) |
reverse_iterator | rbegin () |
const_reverse_iterator | rbegin () const |
reverse_iterator | rend () |
const_reverse_iterator | rend () const |
void | reserve (size_t size) |
Reserve capacity in the vector. | |
void | reserveAtLeast (size_t size) |
Reserve capacity in the vector. | |
void | resize (size_t size) |
Resize the vector, which then enables direct addressing using the bracket '[]' operator. | |
void | resize (size_t size, const T &value) |
void | shrink_to_fit () |
Reduce the capacity of the vector to the actual size (number of elements) | |
void | swap (VectorPOD &other) |
Public Member Functions inherited from agx::Container | |
size_t | capacity () const |
Returns the size of the memory are used by the container to store its elements. | |
bool | empty () const |
void * | ptr () |
const void * | ptr () const |
size_t | size () const |
Additional Inherited Members | |
Protected Member Functions inherited from agx::Container | |
Container () | |
Container (const Container &other) | |
Container (Container &&other) | |
~Container () | |
Protected Attributes inherited from agx::Container | |
void * | m_buffer |
size_t | m_capacity |
size_t | m_size |
Vector containing 'raw' data.
Same interface as normal vectors, but no element constructors or destructors are executed. New elements are however initialized by basic memory copying from a default instance.
Definition at line 245 of file agx/Vector.h.
typedef const T* agx::VectorPOD< T, Allocator >::const_iterator |
Definition at line 256 of file agx/Vector.h.
typedef const T* agx::VectorPOD< T, Allocator >::const_pointer |
Definition at line 251 of file agx/Vector.h.
typedef const T& agx::VectorPOD< T, Allocator >::const_reference |
Definition at line 253 of file agx/Vector.h.
typedef std::reverse_iterator<const_iterator> agx::VectorPOD< T, Allocator >::const_reverse_iterator |
Definition at line 323 of file agx/Vector.h.
typedef ptrdiff_t agx::VectorPOD< T, Allocator >::difference_type |
Definition at line 257 of file agx/Vector.h.
typedef T* agx::VectorPOD< T, Allocator >::iterator |
Definition at line 255 of file agx/Vector.h.
typedef T* agx::VectorPOD< T, Allocator >::pointer |
Definition at line 250 of file agx/Vector.h.
typedef T& agx::VectorPOD< T, Allocator >::reference |
Definition at line 252 of file agx/Vector.h.
typedef std::reverse_iterator<iterator> agx::VectorPOD< T, Allocator >::reverse_iterator |
Definition at line 322 of file agx/Vector.h.
typedef size_t agx::VectorPOD< T, Allocator >::size_type |
Definition at line 254 of file agx/Vector.h.
typedef T agx::VectorPOD< T, Allocator >::Type |
Definition at line 248 of file agx/Vector.h.
typedef T agx::VectorPOD< T, Allocator >::value_type |
Definition at line 249 of file agx/Vector.h.
|
explicit |
|
explicit |
|
explicit |
agx::VectorPOD< T, Allocator >::VectorPOD | ( | std::initializer_list< T > | values, |
const Allocator & | allocator = Allocator() |
||
) |
agx::VectorPOD< T, Allocator >::VectorPOD | ( | const VectorPOD< T, Allocator > & | other | ) |
agx::VectorPOD< T, Allocator >::VectorPOD | ( | VectorPOD< T, Allocator > && | other | ) |
agx::VectorPOD< T, A >::~VectorPOD |
Definition at line 1317 of file agx/Vector.h.
References agx::ByteAllocator::deallocateBytes(), m_capacity, and m_elements.
A & agx::VectorPOD< T, A >::allocator |
Definition at line 1593 of file agx/Vector.h.
const A & agx::VectorPOD< T, A >::allocator |
Definition at line 1596 of file agx/Vector.h.
T & agx::VectorPOD< T, A >::at | ( | size_t | index | ) | const |
Definition at line 1338 of file agx/Vector.h.
References agxVerifyN, m_elements, and m_size.
T & agx::VectorPOD< T, A >::back |
Definition at line 1354 of file agx/Vector.h.
References agxAssert1, m_elements, and m_size.
Referenced by agxUtil::ConvexHull2D::back(), and agx::Event::trigger().
VectorPOD< T, A >::iterator agx::VectorPOD< T, A >::begin |
Definition at line 1609 of file agx/Vector.h.
References m_elements.
Referenced by agxUtil::ConvexHull2D::begin(), and agx::begin().
VectorPOD< T, A >::const_iterator agx::VectorPOD< T, A >::begin |
Definition at line 1615 of file agx/Vector.h.
References m_elements.
void agx::VectorPOD< T, A >::clear | ( | ClearPolicy | policy = SHRINK_BUFFER_AVERAGED | ) |
Remove all elements, optionally with maintained buffer allocation.
Definition at line 1149 of file agx/Vector.h.
References AGX_VECTOR_SHRINK_THRESHOLD, AGX_VECTOR_SMOOTHING_FACTOR, agx::ByteAllocator::deallocateBytes(), m_capacity, and m_size.
Referenced by agx::Job::clearChildDependencies(), agx::JobGroup::init(), agx::Job::init(), agxCollide::LocalGeometryContact::init(), and agx::Job::removeAllDependencies().
bool agx::VectorPOD< T, A >::contains | ( | const T & | element | ) | const |
Definition at line 1458 of file agx/Vector.h.
References m_size.
bool agx::VectorPOD< T, A >::contains | ( | const T2 & | element | ) | const |
Test if the vector contains a certain element.
Definition at line 1452 of file agx/Vector.h.
References m_size.
Referenced by agx::Job::hasDependency().
VectorPOD< T, A >::iterator agx::VectorPOD< T, A >::end |
Definition at line 1612 of file agx/Vector.h.
References m_elements, and m_size.
Referenced by agxUtil::ConvexHull2D::end(), and agx::end().
VectorPOD< T, A >::const_iterator agx::VectorPOD< T, A >::end |
Definition at line 1618 of file agx/Vector.h.
References m_elements, and m_size.
VectorPOD< T, A >::iterator agx::VectorPOD< T, A >::erase | ( | iterator | position | ) |
VectorPOD< T, A >::iterator agx::VectorPOD< T, A >::erase | ( | iterator | start, |
iterator | end | ||
) |
Definition at line 1403 of file agx/Vector.h.
References agx::begin(), and agx::end().
void agx::VectorPOD< T, A >::erase | ( | size_t | index | ) |
Erase elements using indices instead of iterators.
Definition at line 1414 of file agx/Vector.h.
void agx::VectorPOD< T, A >::erase | ( | size_t | start, |
size_t | end | ||
) |
Definition at line 1420 of file agx/Vector.h.
References agxAssert1, agx::end(), m_elements, and m_size.
VectorPOD< T, A >::iterator agx::VectorPOD< T, A >::eraseFast | ( | const_iterator | position | ) |
Fast erase, replacing the erased element with the last element.
Definition at line 1436 of file agx/Vector.h.
References agx::begin().
void agx::VectorPOD< T, A >::eraseFast | ( | size_t | index | ) |
Definition at line 1444 of file agx/Vector.h.
References agxAssertN, m_elements, and m_size.
size_t agx::VectorPOD< T, A >::find | ( | const T2 & | element | ) | const |
Find the index to a matching element, return size() if not found.
Definition at line 1465 of file agx/Vector.h.
References m_elements, and m_size.
bool agx::VectorPOD< T, A >::findAndErase | ( | const T & | element, |
bool | searchMultiple = false |
||
) |
Find and erase an element.
element | - Element to search for and erase |
searchMultiple | Set to true if search should continue after element is found, otherwise the search terminates on first match. |
Definition at line 1478 of file agx/Vector.h.
References m_elements, and m_size.
Referenced by agx::Job::removeDependency().
T & agx::VectorPOD< T, A >::front |
Definition at line 1346 of file agx/Vector.h.
References agxAssert1, m_elements, and m_size.
Referenced by agxUtil::ConvexHull2D::front().
T * agx::VectorPOD< T, A >::increment | ( | size_t | numElements = 1 | ) |
Resize using a increment.
Definition at line 1255 of file agx/Vector.h.
References AGX_VECTOR_RESIZE_FACTOR, m_capacity, m_elements, and m_size.
void agx::VectorPOD< T, A >::insert | ( | const_iterator | it, |
InputIterator | first, | ||
InputIterator | last | ||
) |
Definition at line 1517 of file agx/Vector.h.
References AGX_VECTOR_RESIZE_FACTOR, agx::begin(), m_capacity, m_elements, and m_size.
void agx::VectorPOD< T, A >::insert | ( | const_iterator | it, |
std::initializer_list< T > | ilist | ||
) |
Definition at line 1511 of file agx/Vector.h.
VectorPOD< T, A >::iterator agx::VectorPOD< T, A >::insert | ( | iterator | position, |
const T & | value | ||
) |
Definition at line 1501 of file agx/Vector.h.
References agxAssert, and agx::begin().
void agx::VectorPOD< T, A >::insert | ( | size_t | index, |
const T & | value | ||
) |
Definition at line 1539 of file agx/Vector.h.
References AGX_VECTOR_MIN_SIZE, AGX_VECTOR_RESIZE_FACTOR, m_capacity, m_elements, and m_size.
bool agx::VectorPOD< T, A >::operator!= | ( | const VectorPOD< T, Allocator > & | other | ) | const |
Definition at line 1282 of file agx/Vector.h.
References m_elements, m_size, and agx::Container::size().
VectorPOD< T, A > & agx::VectorPOD< T, A >::operator= | ( | const VectorPOD< T, Allocator > & | other | ) |
Definition at line 1296 of file agx/Vector.h.
References AGX_VECTOR_SHRINK_THRESHOLD, m_capacity, m_elements, m_size, agx::VectorPOD< T, Allocator >::ptr(), agx::ByteAllocator::setContainer(), and agx::Container::size().
bool agx::VectorPOD< T, A >::operator== | ( | const VectorPOD< T, Allocator > & | other | ) | const |
Compare with other vector, return true if same size and all pairs are equal.
Definition at line 1269 of file agx/Vector.h.
References m_elements, m_size, and agx::Container::size().
T & agx::VectorPOD< T, A >::operator[] | ( | size_t | i | ) | const |
Definition at line 1330 of file agx/Vector.h.
References agxAssertN, m_elements, and m_size.
void agx::VectorPOD< T, A >::pop_back |
Definition at line 1386 of file agx/Vector.h.
References m_size.
Referenced by agx::Event::trigger().
T * agx::VectorPOD< T, A >::ptr |
Get access to the internal data buffer.
Definition at line 1324 of file agx/Vector.h.
References m_elements.
Referenced by agxData::Array< T >::Array(), agxData::BufferT< T >::commit(), and agx::VectorPOD< T, Allocator >::operator=().
const T * agx::VectorPOD< T, A >::ptr |
Definition at line 1327 of file agx/Vector.h.
References m_elements.
void agx::VectorPOD< T, A >::push_back | ( | const T & | value | ) |
Definition at line 1362 of file agx/Vector.h.
References AGX_VECTOR_MIN_SIZE, AGX_VECTOR_RESIZE_FACTOR, m_capacity, m_elements, and m_size.
Referenced by agx::Job::addDependency(), agx::JobGroup::addJob(), agxCollide::LocalGeometryContact::addPoint(), agx::WireContactConstraint::addWireParticle(), agxSDK::copyVectors(), and agxOSG::MeshExtractor::triangle().
void agx::VectorPOD< T, A >::push_back | ( | T && | value | ) |
Definition at line 1374 of file agx/Vector.h.
References AGX_VECTOR_MIN_SIZE, AGX_VECTOR_RESIZE_FACTOR, m_capacity, m_elements, and m_size.
VectorPOD< T, A >::reverse_iterator agx::VectorPOD< T, A >::rbegin |
Definition at line 1621 of file agx/Vector.h.
VectorPOD< T, A >::const_reverse_iterator agx::VectorPOD< T, A >::rbegin |
Definition at line 1627 of file agx/Vector.h.
VectorPOD< T, A >::reverse_iterator agx::VectorPOD< T, A >::rend |
Definition at line 1624 of file agx/Vector.h.
References agx::begin().
VectorPOD< T, A >::const_reverse_iterator agx::VectorPOD< T, A >::rend |
Definition at line 1630 of file agx/Vector.h.
References agx::begin().
void agx::VectorPOD< T, A >::reserve | ( | size_t | size | ) |
Reserve capacity in the vector.
Definition at line 1235 of file agx/Vector.h.
References m_capacity.
void agx::VectorPOD< T, A >::reserveAtLeast | ( | size_t | size | ) |
Reserve capacity in the vector.
Let vector grow in same way as push_back() does.
Definition at line 1243 of file agx/Vector.h.
References AGX_VECTOR_MIN_SIZE, AGX_VECTOR_RESIZE_FACTOR, and m_capacity.
void agx::VectorPOD< T, A >::resize | ( | size_t | size | ) |
Resize the vector, which then enables direct addressing using the bracket '[]' operator.
Definition at line 1196 of file agx/Vector.h.
References AGX_VECTOR_SHRINK_THRESHOLD, m_capacity, and m_size.
void agx::VectorPOD< T, A >::resize | ( | size_t | size, |
const T & | value | ||
) |
Definition at line 1216 of file agx/Vector.h.
References AGX_VECTOR_SHRINK_THRESHOLD, m_capacity, and m_size.
void agx::VectorPOD< T, A >::shrink_to_fit |
Reduce the capacity of the vector to the actual size (number of elements)
Definition at line 1186 of file agx/Vector.h.
References m_capacity, and m_size.
void agx::VectorPOD< T, A >::swap | ( | VectorPOD< T, Allocator > & | other | ) |
Definition at line 1660 of file agx/Vector.h.
References agx::Container::m_buffer, agx::Container::m_capacity, m_capacity, agx::Container::m_size, and std::swap().
Referenced by agx::swap().