11 #ifndef _DYNAMIC_ARRAY_H_
12 #define _DYNAMIC_ARRAY_H_
48 CDynamicArray(int32_t p_dim1_size, int32_t p_dim2_size=1, int32_t p_dim3_size=1)
65 CDynamicArray(T* p_array, int32_t p_dim1_size,
bool p_free_array,
bool p_copy_array)
84 bool p_free_array,
bool p_copy_array)
85 :
CSGObject(),
m_array(p_array, p_dim1_size*p_dim2_size, p_free_array, p_copy_array),
name(
"Array")
104 int32_t p_dim3_size,
bool p_free_array,
bool p_copy_array)
105 :
CSGObject(),
m_array(p_array, p_dim1_size*p_dim2_size*p_dim3_size, p_free_array, p_copy_array),
name(
"Array")
121 CDynamicArray(
const T* p_array, int32_t p_dim1_size=1, int32_t p_dim2_size=1, int32_t p_dim3_size=1)
140 return m_array.set_granularity(g);
149 return m_array.get_array_size();
200 return m_array.get_num_elements();
210 inline const T&
get_element(int32_t idx1, int32_t idx2=0, int32_t idx3=0)
const
222 inline const T&
element(int32_t idx1, int32_t idx2=0, int32_t idx3=0)
const
234 inline T&
element(int32_t idx1, int32_t idx2=0, int32_t idx3=0)
247 inline T&
element(T* p_array, int32_t idx1, int32_t idx2=0, int32_t idx3=0)
265 inline T&
element(T* p_array, int32_t idx1, int32_t idx2, int32_t idx3, int32_t p_dim1_size, int32_t p_dim2_size)
269 ASSERT(idx1>=0 && idx1<p_dim1_size)
270 ASSERT(idx2>=0 && idx2<p_dim2_size)
272 return p_array[idx1+p_dim1_size*(idx2+p_dim2_size*idx3)];
281 return m_array.get_last_element();
293 return m_array.get_element_safe(index);
304 inline bool set_element(T e, int32_t idx1, int32_t idx2=0, int32_t idx3=0)
317 return m_array.insert_element(e, index);
327 return m_array.append_element(e);
364 return m_array.find_element(e);
375 return m_array.delete_element(idx);
385 inline bool resize_array(int32_t ndim1, int32_t ndim2=1, int32_t ndim3=1)
390 return m_array.resize_array(ndim1*ndim2*ndim3);
396 m_array.set_const(const_element);
417 inline void set_array(T* p_array, int32_t p_num_elements,
420 m_array.set_array(p_array, p_num_elements, array_size);
431 bool p_free_array,
bool copy_array)
436 m_array.set_array(p_array, dim1, dim1, p_free_array, copy_array);
448 int32_t dim2,
bool p_free_array,
bool copy_array)
454 m_array.set_array(p_array, dim1*dim2, dim1*dim2, p_free_array, copy_array);
467 int32_t dim2, int32_t dim3,
bool p_free_array,
bool copy_array)
472 m_array.set_array(p_array, dim1*dim2*dim3, dim1*dim2*dim3, p_free_array, copy_array);
482 m_array.set_array(p_array, p_size, p_size);
572 SG_PRINT(
"element(%d,:,%d) = [ ",i, k)
588 return "DynamicArray";
629 &
m_array.current_num_elements,
"array",
630 "Memory for dynamic array.");
635 "resize_granularity",
639 "whether SG_MALLOC or malloc should be used",
643 "whether array must be freed",