12 #ifndef _DYNAMIC_OBJECT_ARRAY_H_
13 #define _DYNAMIC_OBJECT_ARRAY_H_
50 :
CSGObject(), m_array(dim1*dim2*dim3), name(
"Array")
67 :
CSGObject(), m_array(p_array, p_dim1_size, p_free_array, p_copy_array), name(
"Array")
69 dim1_size=p_dim1_size;
85 bool p_free_array=
true,
bool p_copy_array=
false)
86 :
CSGObject(), m_array(p_array, p_dim1_size*p_dim2_size, p_free_array, p_copy_array), name(
"Array")
88 dim1_size=p_dim1_size;
89 dim2_size=p_dim2_size;
105 int32_t p_dim3_size,
bool p_free_array=
true,
bool p_copy_array=
false)
106 :
CSGObject(), m_array(p_array, p_dim1_size*p_dim2_size*p_dim3_size, p_free_array, p_copy_array), name(
"Array")
108 dim1_size=p_dim1_size;
109 dim2_size=p_dim2_size;
110 dim3_size=p_dim3_size;
123 {
return m_array.set_granularity(g); }
131 return m_array.get_array_size();
182 return m_array.get_num_elements();
194 CSGObject* elem=m_array.get_element(index);
208 return get_element(idx1+dim1_size*(idx2+dim2_size*idx3));
231 CSGObject* e=m_array.get_element_safe(index);
246 CSGObject* old=(
CSGObject*) m_array.get_element(idx1+dim1_size*(idx2+dim2_size*idx3));
248 bool success=m_array.set_element(e, idx1+dim1_size*(idx2+dim2_size*idx3));
267 bool success=m_array.insert_element(e, index);
281 bool success=m_array.append_element(e);
296 m_array.push_back(e);
330 return m_array.find_element(elem);
343 m_array.set_element(NULL, idx);
345 return m_array.delete_element(idx);
352 m_array.clear_array(NULL);
377 m_array=orig.m_array;
407 {
return "DynamicObjectArray"; }
421 m_array.resize_array(m_array.get_num_elements(),
true);
436 m_array.resize_array(m_array.get_num_elements(),
true);
445 "Memory for dynamic array.");
446 SG_ADD(&m_array.num_elements,
449 SG_ADD(&m_array.resize_granularity,
450 "resize_granularity",
452 SG_ADD(&m_array.use_sg_mallocs,
454 "whether SG_MALLOC or malloc should be used",
456 SG_ADD(&m_array.free_array,
458 "whether array must be freed",
463 inline void unref_all()
466 for (
index_t i=0; i<m_array.get_num_elements(); ++i)
468 SG_UNREF(*m_array.get_element_ptr(i));
474 DynArray<CSGObject*> m_array;
virtual void load_serializable_pre()
const char * get_array_name() const
CDynamicObjectArray & operator=(CDynamicObjectArray &orig)
CDynamicObjectArray(CSGObject **p_array, int32_t p_dim1_size, int32_t p_dim2_size, int32_t p_dim3_size, bool p_free_array=true, bool p_copy_array=false)
Class ShogunException defines an exception which is thrown whenever an error inside of shogun occurs...
void shuffle(CRandom *rand)
bool insert_element(CSGObject *e, int32_t index)
CDynamicObjectArray(int32_t dim1, int32_t dim2=1, int32_t dim3=1)
virtual void save_serializable_pre()
int32_t get_num_elements() const
int32_t find_element(CSGObject *elem) const
bool set_element(CSGObject *e, int32_t idx1, int32_t idx2=0, int32_t idx3=0)
CSGObject ** get_array() const
virtual void save_serializable_pre()
virtual const char * get_name() const
Class SGObject is the base class of all shogun objects.
CSGObject * element(int32_t idx1, int32_t idx2=0, int32_t idx3=0)
virtual ~CDynamicObjectArray()
CDynamicObjectArray(CSGObject **p_array, int32_t p_dim1_size, bool p_free_array=true, bool p_copy_array=false)
Dynamic array class for CSGObject pointers that creates an array that can be used like a list or an a...
void get_array_size(int32_t &dim1, int32_t &dim2)
: Pseudo random number geneartor
virtual void load_serializable_pre()
void get_array_size(int32_t &dim1, int32_t &dim2, int32_t &dim3)
void add_vector(bool **param, index_t *length, const char *name, const char *description="")
CSGObject * get_element_safe(int32_t index) const
CSGObject * get_element(int32_t index) const
void push_back(CSGObject *e)
bool delete_element(int32_t idx)
CSGObject * get_last_element() const
void set_array_name(const char *p_name)
int32_t set_granularity(int32_t g)
CDynamicObjectArray(CSGObject **p_array, int32_t p_dim1_size, int32_t p_dim2_size, bool p_free_array=true, bool p_copy_array=false)
bool append_element(CSGObject *e)