|
AGX Dynamics 2.41.1.2
|
Vector containing 'raw' data. More...
#include <Vector.h>
Inheritance diagram for agx::VectorPOD< T, Allocator >: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().