Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
igl::geodesic::SimlpeMemoryAllocator< T > Class Template Reference
+ Inheritance diagram for igl::geodesic::SimlpeMemoryAllocator< T >:
+ Collaboration diagram for igl::geodesic::SimlpeMemoryAllocator< T >:

Public Types

typedef T * pointer
 

Public Member Functions

 SimlpeMemoryAllocator (unsigned block_size=0, unsigned max_number_of_blocks=0)
 
 ~SimlpeMemoryAllocator ()
 
void reset (unsigned block_size, unsigned max_number_of_blocks)
 
pointer allocate (unsigned const n)
 

Private Attributes

std::vector< std::vector< T > > m_storage
 
unsigned m_block_size
 
unsigned m_max_number_of_blocks
 
unsigned m_current_position
 

Detailed Description

template<class T>
class igl::geodesic::SimlpeMemoryAllocator< T >

Member Typedef Documentation

◆ pointer

template<class T >
typedef T* igl::geodesic::SimlpeMemoryAllocator< T >::pointer

Constructor & Destructor Documentation

◆ SimlpeMemoryAllocator()

template<class T >
igl::geodesic::SimlpeMemoryAllocator< T >::SimlpeMemoryAllocator ( unsigned  block_size = 0,
unsigned  max_number_of_blocks = 0 
)
inline
101 {
102 reset(block_size,
103 max_number_of_blocks);
104 };
void reset(unsigned block_size, unsigned max_number_of_blocks)
Definition exact_geodesic.cpp:108

References igl::geodesic::SimlpeMemoryAllocator< T >::reset().

+ Here is the call graph for this function:

◆ ~SimlpeMemoryAllocator()

template<class T >
igl::geodesic::SimlpeMemoryAllocator< T >::~SimlpeMemoryAllocator ( )
inline
106{};

Member Function Documentation

◆ allocate()

template<class T >
pointer igl::geodesic::SimlpeMemoryAllocator< T >::allocate ( unsigned const  n)
inline
123 {
124 assert(n < m_block_size);
125
127 {
128 m_storage.push_back( std::vector<T>() );
129 m_storage.back().resize(m_block_size);
131 }
132 pointer result = & m_storage.back()[m_current_position];
134
135 return result;
136 };
unsigned m_block_size
Definition exact_geodesic.cpp:139
unsigned m_current_position
Definition exact_geodesic.cpp:141
T * pointer
Definition exact_geodesic.cpp:97
std::vector< std::vector< T > > m_storage
Definition exact_geodesic.cpp:138

References igl::geodesic::SimlpeMemoryAllocator< T >::m_block_size, igl::geodesic::SimlpeMemoryAllocator< T >::m_current_position, and igl::geodesic::SimlpeMemoryAllocator< T >::m_storage.

Referenced by igl::geodesic::Mesh::allocate_pointers().

+ Here is the caller graph for this function:

◆ reset()

template<class T >
void igl::geodesic::SimlpeMemoryAllocator< T >::reset ( unsigned  block_size,
unsigned  max_number_of_blocks 
)
inline
110 {
111 m_block_size = block_size;
112 m_max_number_of_blocks = max_number_of_blocks;
113
114
116
117 m_storage.reserve(max_number_of_blocks);
118 m_storage.resize(1);
119 m_storage[0].resize(block_size);
120 };
unsigned m_max_number_of_blocks
Definition exact_geodesic.cpp:140

References igl::geodesic::SimlpeMemoryAllocator< T >::m_block_size, igl::geodesic::SimlpeMemoryAllocator< T >::m_current_position, igl::geodesic::SimlpeMemoryAllocator< T >::m_max_number_of_blocks, and igl::geodesic::SimlpeMemoryAllocator< T >::m_storage.

Referenced by igl::geodesic::SimlpeMemoryAllocator< T >::SimlpeMemoryAllocator(), and igl::geodesic::Mesh::initialize_mesh_data().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_block_size

◆ m_current_position

◆ m_max_number_of_blocks

template<class T >
unsigned igl::geodesic::SimlpeMemoryAllocator< T >::m_max_number_of_blocks
private

◆ m_storage

template<class T >
std::vector<std::vector<T> > igl::geodesic::SimlpeMemoryAllocator< T >::m_storage
private

The documentation for this class was generated from the following file: