Blender
V3.3
|
Very simple array container with fast access and simd memory. More...
#include <gim_array.h>
Public Member Functions | |
void | destroyData () |
bool | resizeData (GUINT newsize) |
bool | growingCheck () |
bool | reserve (GUINT size) |
void | clear_range (GUINT start_range) |
void | clear () |
void | clear_memory () |
gim_array () | |
gim_array (GUINT reservesize) | |
~gim_array () | |
GUINT | size () const |
GUINT | max_size () const |
T & | operator[] (size_t i) |
const T & | operator[] (size_t i) const |
T * | pointer () |
const T * | pointer () const |
T * | get_pointer_at (GUINT i) |
const T * | get_pointer_at (GUINT i) const |
T & | at (GUINT i) |
const T & | at (GUINT i) const |
T & | front () |
const T & | front () const |
T & | back () |
const T & | back () const |
void | swap (GUINT i, GUINT j) |
void | push_back (const T &obj) |
void | push_back_mem () |
Simply increase the m_size, doesn't call the new element constructor. More... | |
void | push_back_memcpy (const T &obj) |
void | pop_back () |
void | pop_back_mem () |
Simply decrease the m_size, doesn't call the deleted element destructor. More... | |
void | erase (GUINT index) |
fast erase More... | |
void | erase_sorted_mem (GUINT index) |
void | erase_sorted (GUINT index) |
void | insert_mem (GUINT index) |
void | insert (const T &obj, GUINT index) |
void | resize (GUINT size, bool call_constructor=true, const T &fillData=T()) |
void | refit () |
Public Attributes | |
T * | m_data |
GUINT | m_size |
GUINT | m_allocated_size |
Very simple array container with fast access and simd memory.
Definition at line 42 of file gim_array.h.
Definition at line 122 of file gim_array.h.
References gim_array< T >::m_allocated_size, gim_array< T >::m_data, and gim_array< T >::m_size.
Definition at line 129 of file gim_array.h.
References gim_array< T >::m_allocated_size, gim_array< T >::m_data, gim_array< T >::m_size, and gim_array< T >::reserve().
Definition at line 138 of file gim_array.h.
References gim_array< T >::clear_memory().
Definition at line 178 of file gim_array.h.
References gim_array< T >::m_data.
Definition at line 183 of file gim_array.h.
References gim_array< T >::m_data.
Definition at line 198 of file gim_array.h.
References gim_array< T >::m_data, and gim_array< T >::m_size.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision_pairs(), gim_contact_array::merge_contacts(), and gim_contact_array::merge_contacts_unique().
Definition at line 203 of file gim_array.h.
References gim_array< T >::m_data, and gim_array< T >::m_size.
Definition at line 110 of file gim_array.h.
References gim_array< T >::clear_range(), and gim_array< T >::m_size.
Referenced by gim_array< T >::clear_memory(), and GIM_BOX_TREE::clearNodes().
Definition at line 116 of file gim_array.h.
References gim_array< T >::clear(), and gim_array< T >::destroyData().
Referenced by gim_array< T >::~gim_array().
Definition at line 102 of file gim_array.h.
References gim_array< T >::m_data, and gim_array< T >::m_size.
Referenced by gim_array< T >::clear(), and gim_array< T >::resize().
protected operations
Definition at line 54 of file gim_array.h.
References gim_free(), gim_array< T >::m_allocated_size, gim_array< T >::m_data, and NULL.
Referenced by gim_array< T >::clear_memory(), and gim_array< T >::resizeData().
fast erase
Definition at line 247 of file gim_array.h.
References gim_array< T >::m_size, gim_array< T >::pop_back(), and gim_array< T >::swap().
Definition at line 265 of file gim_array.h.
References gim_array< T >::erase_sorted_mem(), and gim_array< T >::m_data.
Definition at line 256 of file gim_array.h.
References gim_simd_memcpy(), GUINT, gim_array< T >::m_data, gim_array< T >::m_size, and T.
Referenced by gim_array< T >::erase_sorted().
Definition at line 188 of file gim_array.h.
References gim_array< T >::m_data.
Definition at line 193 of file gim_array.h.
References gim_array< T >::m_data.
Definition at line 168 of file gim_array.h.
References gim_array< T >::m_data.
Definition at line 173 of file gim_array.h.
References gim_array< T >::m_data.
Definition at line 82 of file gim_array.h.
References GIM_ARRAY_GROW_FACTOR, GIM_ARRAY_GROW_INCREMENT, GUINT, gim_array< T >::m_allocated_size, gim_array< T >::m_size, and gim_array< T >::resizeData().
Referenced by gim_array< T >::insert_mem(), gim_array< T >::push_back(), gim_array< T >::push_back_mem(), and gim_array< T >::push_back_memcpy().
Definition at line 281 of file gim_array.h.
References gim_array< T >::insert_mem(), and gim_array< T >::m_data.
Definition at line 271 of file gim_array.h.
References gim_simd_memcpy(), gim_array< T >::growingCheck(), GUINT, gim_array< T >::m_data, gim_array< T >::m_size, and T.
Referenced by gim_array< T >::insert().
Definition at line 148 of file gim_array.h.
References gim_array< T >::m_allocated_size.
Definition at line 153 of file gim_array.h.
References gim_array< T >::m_data.
Definition at line 157 of file gim_array.h.
References gim_array< T >::m_data.
Definition at line 162 of file gim_array.h.
References gim_array< T >::m_data.
Referenced by gim_contact_array::merge_contacts().
Definition at line 163 of file gim_array.h.
References gim_array< T >::m_data.
Definition at line 234 of file gim_array.h.
References gim_array< T >::m_data, and gim_array< T >::m_size.
Referenced by gim_array< T >::erase(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision_pairs().
Simply decrease the m_size, doesn't call the deleted element destructor.
Definition at line 241 of file gim_array.h.
References gim_array< T >::m_size.
Definition at line 213 of file gim_array.h.
References gim_array< T >::growingCheck(), and gim_array< T >::m_size.
Referenced by GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::boxQuery(), and GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::rayQuery().
Simply increase the m_size, doesn't call the new element constructor.
Definition at line 221 of file gim_array.h.
References gim_array< T >::growingCheck().
Definition at line 227 of file gim_array.h.
References gim_simd_memcpy(), gim_array< T >::growingCheck(), gim_array< T >::m_size, and T.
Definition at line 312 of file gim_array.h.
References gim_array< T >::m_size, and gim_array< T >::resizeData().
public operations
Definition at line 96 of file gim_array.h.
References gim_array< T >::m_allocated_size, gim_array< T >::resizeData(), and gim_array< T >::size().
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision_pairs(), gim_array< T >::gim_array(), and gim_array< T >::resize().
|
inline |
Definition at line 287 of file gim_array.h.
References gim_array< T >::clear_range(), gim_array< T >::m_data, gim_array< T >::m_size, gim_array< T >::reserve(), and gim_array< T >::size().
Referenced by GIM_BOX_TREE::build_tree(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::buildSet(), gim_contact_array::merge_contacts(), and gim_bitset::resize().
Definition at line 62 of file gim_array.h.
References gim_array< T >::destroyData(), gim_alloc(), gim_realloc(), gim_array< T >::m_allocated_size, gim_array< T >::m_data, gim_array< T >::m_size, and T.
Referenced by gim_array< T >::growingCheck(), gim_array< T >::refit(), and gim_array< T >::reserve().
Definition at line 143 of file gim_array.h.
References gim_array< T >::m_size.
Referenced by GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::boxQuery(), GIM_BOX_TREE::build_tree(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::buildSet(), gim_bitset::clear_all(), GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision_pairs(), gim_contact_array::merge_contacts(), gim_contact_array::merge_contacts_unique(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::rayQuery(), gim_array< T >::reserve(), gim_bitset::resize(), gim_array< T >::resize(), gim_bitset::set_all(), and gim_bitset::size().
Definition at line 208 of file gim_array.h.
References gim_swap_elements(), and gim_array< T >::m_data.
Referenced by GIM_BOX_TREE::_sort_and_calc_splitting_index(), and gim_array< T >::erase().
Definition at line 49 of file gim_array.h.
Referenced by gim_array< T >::destroyData(), gim_array< T >::gim_array(), gim_array< T >::growingCheck(), gim_array< T >::max_size(), gim_array< T >::reserve(), and gim_array< T >::resizeData().
properties
Definition at line 47 of file gim_array.h.
Referenced by GIM_BOX_TREE::_build_sub_tree(), gim_array< T >::at(), gim_array< T >::back(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::buildSet(), gim_array< T >::clear_range(), gim_array< T >::destroyData(), gim_array< T >::erase_sorted(), gim_array< T >::erase_sorted_mem(), gim_array< T >::front(), gim_array< T >::get_pointer_at(), GIM_BOX_TREE::getNodeData(), gim_array< T >::gim_array(), gim_array< T >::insert(), gim_array< T >::insert_mem(), gim_array< T >::operator[](), gim_array< T >::pointer(), gim_array< T >::pop_back(), gim_array< T >::resize(), gim_array< T >::resizeData(), and gim_array< T >::swap().
Definition at line 48 of file gim_array.h.
Referenced by gim_array< T >::back(), gim_array< T >::clear(), gim_array< T >::clear_range(), gim_array< T >::erase(), gim_array< T >::erase_sorted_mem(), gim_array< T >::gim_array(), gim_array< T >::growingCheck(), gim_array< T >::insert_mem(), gim_array< T >::pop_back(), gim_array< T >::pop_back_mem(), gim_array< T >::push_back(), gim_array< T >::push_back_memcpy(), gim_array< T >::refit(), gim_array< T >::resize(), gim_array< T >::resizeData(), and gim_array< T >::size().