Bullet Collision Detection & Physics Library
Classes | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
btAlignedObjectArray< T > Class Template Reference

The btAlignedObjectArray template class uses a subset of the stl::vector interface for its methods It is developed to replace stl::vector to avoid portability issues, including STL alignment issues to add SIMD/SSE data. More...

#include <btAlignedObjectArray.h>

Collaboration diagram for btAlignedObjectArray< T >:
Collaboration graph
[legend]

Classes

class  less
 

Public Member Functions

btAlignedObjectArray< T > & operator= (const btAlignedObjectArray< T > &other)
 
 btAlignedObjectArray ()
 
 ~btAlignedObjectArray ()
 
 btAlignedObjectArray (const btAlignedObjectArray &otherArray)
 Generally it is best to avoid using the copy constructor of an btAlignedObjectArray, and use a (const) reference to the array instead. More...
 
int size () const
 return the number of elements in the array More...
 
const T & at (int n) const
 
T & at (int n)
 
const T & operator[] (int n) const
 
T & operator[] (int n)
 
void clear ()
 clear the array, deallocated memory. Generally it is better to use array.resize(0), to reduce performance overhead of run-time memory (de)allocations. More...
 
void pop_back ()
 
void resizeNoInitialize (int newsize)
 resize changes the number of elements in the array. More...
 
void resize (int newsize, const T &fillData=T())
 
T & expandNonInitializing ()
 
T & expand (const T &fillValue=T())
 
void push_back (const T &_Val)
 
int capacity () const
 return the pre-allocated (reserved) elements, this is at least as large as the total number of elements,see size() and reserve() More...
 
void reserve (int _Count)
 
template<typename L >
void quickSortInternal (const L &CompareFunc, int lo, int hi)
 
template<typename L >
void quickSort (const L &CompareFunc)
 
template<typename L >
void downHeap (T *pArr, int k, int n, const L &CompareFunc)
 heap sort from http://www.csse.monash.edu.au/~lloyd/tildeAlgDS/Sort/Heap/ More...
 
void swap (int index0, int index1)
 
template<typename L >
void heapSort (const L &CompareFunc)
 
int findBinarySearch (const T &key) const
 non-recursive binary search, assumes sorted array More...
 
int findLinearSearch (const T &key) const
 
void remove (const T &key)
 
void initializeFromBuffer (void *buffer, int size, int capacity)
 
void copyFromArray (const btAlignedObjectArray &otherArray)
 

Protected Member Functions

int allocSize (int size)
 
void copy (int start, int end, T *dest) const
 
void init ()
 
void destroy (int first, int last)
 
void * allocate (int size)
 
void deallocate ()
 

Private Attributes

btAlignedAllocator< T, 16 > m_allocator
 
int m_size
 
int m_capacity
 
T * m_data
 
bool m_ownsMemory
 

Detailed Description

template<typename T>
class btAlignedObjectArray< T >

The btAlignedObjectArray template class uses a subset of the stl::vector interface for its methods It is developed to replace stl::vector to avoid portability issues, including STL alignment issues to add SIMD/SSE data.

Definition at line 47 of file btAlignedObjectArray.h.

Constructor & Destructor Documentation

template<typename T>
btAlignedObjectArray< T >::btAlignedObjectArray ( )
inline

Definition at line 126 of file btAlignedObjectArray.h.

template<typename T>
btAlignedObjectArray< T >::~btAlignedObjectArray ( )
inline

Definition at line 131 of file btAlignedObjectArray.h.

template<typename T>
btAlignedObjectArray< T >::btAlignedObjectArray ( const btAlignedObjectArray< T > &  otherArray)
inline

Generally it is best to avoid using the copy constructor of an btAlignedObjectArray, and use a (const) reference to the array instead.

Definition at line 137 of file btAlignedObjectArray.h.

Member Function Documentation

template<typename T>
void* btAlignedObjectArray< T >::allocate ( int  size)
inlineprotected

Definition at line 102 of file btAlignedObjectArray.h.

template<typename T>
int btAlignedObjectArray< T >::allocSize ( int  size)
inlineprotected

Definition at line 70 of file btAlignedObjectArray.h.

template<typename T>
const T& btAlignedObjectArray< T >::at ( int  n) const
inline

Definition at line 154 of file btAlignedObjectArray.h.

template<typename T>
T& btAlignedObjectArray< T >::at ( int  n)
inline

Definition at line 161 of file btAlignedObjectArray.h.

template<typename T>
int btAlignedObjectArray< T >::capacity ( ) const
inline

return the pre-allocated (reserved) elements, this is at least as large as the total number of elements,see size() and reserve()

Definition at line 287 of file btAlignedObjectArray.h.

template<typename T>
void btAlignedObjectArray< T >::clear ( )
inline

clear the array, deallocated memory. Generally it is better to use array.resize(0), to reduce performance overhead of run-time memory (de)allocations.

Definition at line 184 of file btAlignedObjectArray.h.

template<typename T>
void btAlignedObjectArray< T >::copy ( int  start,
int  end,
T *  dest 
) const
inlineprotected

Definition at line 74 of file btAlignedObjectArray.h.

template<typename T>
void btAlignedObjectArray< T >::copyFromArray ( const btAlignedObjectArray< T > &  otherArray)
inline

Definition at line 494 of file btAlignedObjectArray.h.

template<typename T>
void btAlignedObjectArray< T >::deallocate ( )
inlineprotected

Definition at line 109 of file btAlignedObjectArray.h.

template<typename T>
void btAlignedObjectArray< T >::destroy ( int  first,
int  last 
)
inlineprotected

Definition at line 93 of file btAlignedObjectArray.h.

template<typename T>
template<typename L >
void btAlignedObjectArray< T >::downHeap ( T *  pArr,
int  k,
int  n,
const L &  CompareFunc 
)
inline
template<typename T>
T& btAlignedObjectArray< T >::expand ( const T &  fillValue = T())
inline

Definition at line 252 of file btAlignedObjectArray.h.

template<typename T>
T& btAlignedObjectArray< T >::expandNonInitializing ( )
inline

Definition at line 239 of file btAlignedObjectArray.h.

template<typename T>
int btAlignedObjectArray< T >::findBinarySearch ( const T &  key) const
inline

non-recursive binary search, assumes sorted array

Definition at line 438 of file btAlignedObjectArray.h.

template<typename T>
int btAlignedObjectArray< T >::findLinearSearch ( const T &  key) const
inline

Definition at line 457 of file btAlignedObjectArray.h.

template<typename T>
template<typename L >
void btAlignedObjectArray< T >::heapSort ( const L &  CompareFunc)
inline

Definition at line 415 of file btAlignedObjectArray.h.

template<typename T>
void btAlignedObjectArray< T >::init ( )
inlineprotected

Definition at line 85 of file btAlignedObjectArray.h.

template<typename T>
void btAlignedObjectArray< T >::initializeFromBuffer ( void *  buffer,
int  size,
int  capacity 
)
inline

Definition at line 485 of file btAlignedObjectArray.h.

template<typename T>
btAlignedObjectArray<T>& btAlignedObjectArray< T >::operator= ( const btAlignedObjectArray< T > &  other)
inline

Definition at line 59 of file btAlignedObjectArray.h.

template<typename T>
const T& btAlignedObjectArray< T >::operator[] ( int  n) const
inline

Definition at line 168 of file btAlignedObjectArray.h.

template<typename T>
T& btAlignedObjectArray< T >::operator[] ( int  n)
inline

Definition at line 175 of file btAlignedObjectArray.h.

template<typename T>
void btAlignedObjectArray< T >::pop_back ( )
inline

Definition at line 193 of file btAlignedObjectArray.h.

template<typename T>
void btAlignedObjectArray< T >::push_back ( const T &  _Val)
inline

Definition at line 268 of file btAlignedObjectArray.h.

template<typename T>
template<typename L >
void btAlignedObjectArray< T >::quickSort ( const L &  CompareFunc)
inline

Definition at line 357 of file btAlignedObjectArray.h.

template<typename T>
template<typename L >
void btAlignedObjectArray< T >::quickSortInternal ( const L &  CompareFunc,
int  lo,
int  hi 
)
inline

Definition at line 327 of file btAlignedObjectArray.h.

template<typename T>
void btAlignedObjectArray< T >::remove ( const T &  key)
inline

Definition at line 473 of file btAlignedObjectArray.h.

template<typename T>
void btAlignedObjectArray< T >::reserve ( int  _Count)
inline

Definition at line 292 of file btAlignedObjectArray.h.

template<typename T>
void btAlignedObjectArray< T >::resize ( int  newsize,
const T &  fillData = T() 
)
inline

Definition at line 212 of file btAlignedObjectArray.h.

template<typename T>
void btAlignedObjectArray< T >::resizeNoInitialize ( int  newsize)
inline

resize changes the number of elements in the array.

If the new size is larger, the new elements will be constructed using the optional second argument. when the new number of elements is smaller, the destructor will be called, but memory will not be freed, to reduce performance overhead of run-time memory (de)allocations.

Definition at line 203 of file btAlignedObjectArray.h.

template<typename T>
int btAlignedObjectArray< T >::size ( ) const
inline

return the number of elements in the array

Definition at line 149 of file btAlignedObjectArray.h.

template<typename T>
void btAlignedObjectArray< T >::swap ( int  index0,
int  index1 
)
inline

Definition at line 399 of file btAlignedObjectArray.h.

Member Data Documentation

template<typename T>
btAlignedAllocator<T , 16> btAlignedObjectArray< T >::m_allocator
private

Definition at line 49 of file btAlignedObjectArray.h.

template<typename T>
int btAlignedObjectArray< T >::m_capacity
private

Definition at line 52 of file btAlignedObjectArray.h.

template<typename T>
T* btAlignedObjectArray< T >::m_data
private

Definition at line 53 of file btAlignedObjectArray.h.

template<typename T>
bool btAlignedObjectArray< T >::m_ownsMemory
private

Definition at line 55 of file btAlignedObjectArray.h.

template<typename T>
int btAlignedObjectArray< T >::m_size
private

Definition at line 51 of file btAlignedObjectArray.h.


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