16 #ifndef VHACD_SARRAY_H 17 #define VHACD_SARRAY_H 22 #define SARRAY_DEFAULT_MIN_SIZE 16 26 template <
typename T,
size_t N = 64>
31 T*
const data =
Data();
36 const T*
const data =
Data();
45 return (m_maxSize == N) ? m_data0 : m_data;
47 const T*
const Data()
const 49 return (m_maxSize == N) ? m_data0 : m_data;
64 if (size > m_maxSize) {
65 T* temp =
new T[size];
66 memcpy(temp,
Data(), m_size *
sizeof(T));
80 if (m_size == m_maxSize) {
81 size_t maxSize = (m_maxSize << 1);
82 T* temp =
new T[maxSize];
83 memcpy(temp,
Data(), m_maxSize *
sizeof(T));
88 T*
const data =
Data();
89 data[m_size++] = value;
91 bool Find(
const T& value,
size_t& pos)
93 T*
const data =
Data();
94 for (pos = 0; pos < m_size; ++pos)
95 if (value == data[pos])
102 if (
Find(value, pos))
110 T*
const data =
Data();
111 if (
Find(value, pos)) {
112 for (
size_t j = pos + 1; j < m_size; ++j)
113 data[j - 1] = data[j];
121 if (m_maxSize < rhs.m_size) {
123 m_maxSize = rhs.m_maxSize;
124 m_data =
new T[m_maxSize];
127 memcpy(
Data(), rhs.
Data(), m_size *
sizeof(T));
bool Insert(const T &value)
Definition: vhacdSArray.h:99
T *const Data()
Definition: vhacdSArray.h:43
void Initialize()
Definition: vhacdSArray.h:129
SArray(const SArray &rhs)
Definition: vhacdSArray.h:135
void PopBack()
Definition: vhacdSArray.h:58
void PushBack(const T &value)
Definition: vhacdSArray.h:78
SArray.
Definition: vhacdSArray.h:27
bool Erase(const T &value)
Definition: vhacdSArray.h:107
bool Find(const T &value, size_t &pos)
Definition: vhacdSArray.h:91
void Resize(size_t size)
Definition: vhacdSArray.h:72
void Allocate(size_t size)
Definition: vhacdSArray.h:62
const T *const Data() const
Definition: vhacdSArray.h:47
void operator=(const SArray &rhs)
Definition: vhacdSArray.h:119
Definition: vhacdCircularList.h:19
T & operator[](size_t i)
Definition: vhacdSArray.h:29
void Clear()
Definition: vhacdSArray.h:51
size_t Size() const
Definition: vhacdSArray.h:39
~SArray()
Definition: vhacdSArray.h:146
const T & operator[](size_t i) const
Definition: vhacdSArray.h:34
SArray()
Definition: vhacdSArray.h:142