Main Page | Modules | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

OpenMesh::Utils::HeapT< HeapEntry, HeapInterface > Class Template Reference

An efficient, highly customizable heap. More...

#include <OSG/Utils/HeapT.hh>

List of all members.

Public Member Functions

 HeapT ()
 Constructor.

 HeapT (const HeapInterface &_interface)
 Construct with a given HeapIterface.

 ~HeapT ()
 Destructor.

void clear ()
 clear the heap

bool empty ()
 is heap empty?

unsigned int size ()
 returns the size of heap

void reserve (unsigned int _n)
 reserve space for _n entries

void reset_heap_position (HeapEntry _h)
 reset heap position to -1 (not in heap)

bool is_stored (HeapEntry _h)
 is an entry in the heap?

void insert (HeapEntry _h)
 insert the entry _h

HeapEntry front ()
 get the first entry

void pop_front ()
 delete the first entry

void remove (HeapEntry _h)
 remove an entry

void update (HeapEntry _h)
 update an entry: change the key and update the position to reestablish the heap property.

bool check ()
 check heap condition


Detailed Description

template<class HeapEntry, class HeapInterface = HeapEntry>
class OpenMesh::Utils::HeapT< HeapEntry, HeapInterface >

An efficient, highly customizable heap.

The main difference (and performace boost) of this heap compared to e.g. the heap of the STL is that here to positions of the heap's elements are accessible from the elements themself. Therefore if one changes the priority of an element one does not have to remove and re-insert this element, but can just call the update(HeapEntry) method.

This heap class is parameterized by two template arguments:

As an example how to use the class see declaration of class Decimater::DecimaterT.

See also:
HeapInterfaceT


The documentation for this class was generated from the following file:
acg pic Project OpenMesh, ©  Computer Graphics Group, RWTH Aachen. Documentation generated using doxygen .