diff options
Diffstat (limited to 'extern/bFTGL/include/FTVector.h')
-rw-r--r-- | extern/bFTGL/include/FTVector.h | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/extern/bFTGL/include/FTVector.h b/extern/bFTGL/include/FTVector.h deleted file mode 100644 index 6147f522c08..00000000000 --- a/extern/bFTGL/include/FTVector.h +++ /dev/null @@ -1,190 +0,0 @@ -#ifndef __FTVector__ -#define __FTVector__ - -#include "FTGL.h" - -/** - * Provides a non-STL alternative to the STL vector - */ -template <typename FT_VECTOR_ITEM_TYPE> -class FTGL_EXPORT FTVector -{ - public: - typedef FT_VECTOR_ITEM_TYPE value_type; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef value_type* iterator; - typedef const value_type* const_iterator; - typedef size_t size_type; - - FTVector() - { - Capacity = Size = 0; - Items = 0; - } - - - virtual ~FTVector() - { - clear(); - } - - FTVector& operator =(const FTVector& v) - { - reserve(v.capacity()); - - iterator ptr = begin(); - const_iterator vbegin = v.begin(); - const_iterator vend = v.end(); - - while( vbegin != vend) - { - *ptr++ = *vbegin++; - } - - Size = v.size(); - return *this; - } - - size_type size() const - { - return Size; - } - - size_type capacity() const - { - return Capacity; - } - - iterator begin() - { - return Items; - } - - const_iterator begin() const - { - return Items; - } - - iterator end() - { - return begin() + size(); - } - - const_iterator end() const - { - return begin() + size(); - } - - bool empty() const - { - return size() == 0; - } - - reference operator [](size_type pos) - { - return( *(begin() + pos)); - } - - const_reference operator []( size_type pos) const - { - return( *(begin() + pos)); - } - - void clear() - { - if( Capacity) - { - delete [] Items; - Capacity = Size = 0; - Items = 0; - } - } - - void reserve( size_type n) - { - if( capacity() < n) - { - expand(n); - } - } - - void push_back(const value_type& x) - { - if( size() == capacity()) - { - expand(); - } - - ( *this)[size()] = x; - ++Size; - } - - void resize(size_type n, value_type x) - { - if( n == size()) - { - return; - } - - reserve(n); - iterator begin, end; - - if( n >= Size) - { - begin = this->end(); - end = this->begin() + n; - } - else - { - begin = this->begin() + n; - end = this->end(); - } - - while( begin != end) - { - *begin++ = x; - } - - Size = n; - } - - - private: - void expand(size_type capacity_hint = 0) - { - size_type new_capacity =( capacity() == 0) ? 256 : capacity()* 2; - if( capacity_hint) - { - while( new_capacity < capacity_hint) - { - new_capacity *= 2; - } - } - - value_type *new_items = new value_type[new_capacity]; - - iterator begin = this->begin(); - iterator end = this->end(); - value_type *ptr = new_items; - - while( begin != end) - { - *ptr++ = *begin++; - } - - if( Capacity) - { - delete [] Items; - } - - Items = new_items; - Capacity = new_capacity; - } - - size_type Capacity; - size_type Size; - value_type* Items; -}; - -#endif // __FTVector__ |