Hash table based node list multi-container class. More...
#include <nodelist.hpp>
Public Types | |
| typedef Titem_ | Titem |
| make Titem_ visible from outside of class | |
| typedef Titem_::Key | Key |
| make Titem_::Key a property of HashTable | |
| typedef SmallArray< Titem_, 65536, 256 > | CItemArray |
| type that we will use as item container | |
|
typedef CHashTableT< Titem_, Thash_bits_open_ > | COpenList |
| how pointers to open nodes will be stored | |
|
typedef CHashTableT< Titem_, Thash_bits_closed_ > | CClosedList |
| how pointers to closed nodes will be stored | |
| typedef CBinaryHeapT< Titem_ > | CPriorityQueue |
| how the priority queue will be managed | |
Public Member Functions | |
| CNodeList_HashTableT () | |
| default constructor | |
| ~CNodeList_HashTableT () | |
| destructor | |
| int | OpenCount () |
| return number of open nodes | |
| int | ClosedCount () |
| return number of closed nodes | |
| Titem_ * | CreateNewNode () |
| allocate new data item from m_arr | |
| void | FoundBestNode (Titem_ &item) |
| Notify the nodelist that we don't want to discard the given node. | |
| void | InsertOpenNode (Titem_ &item) |
| insert given item as open node (into m_open and m_open_queue) | |
| Titem_ * | GetBestOpenNode () |
| return the best open node | |
| Titem_ * | PopBestOpenNode () |
| remove and return the best open node | |
| Titem_ * | FindOpenNode (const Key &key) |
| return the open node specified by a key or NULL if not found | |
| Titem_ & | PopOpenNode (const Key &key) |
| remove and return the open node specified by a key | |
| void | InsertClosedNode (Titem_ &item) |
| close node | |
| Titem_ * | FindClosedNode (const Key &key) |
| return the closed node specified by a key or NULL if not found | |
| int | TotalCount () |
| The number of items. | |
| Titem_ & | ItemAt (int idx) |
| Get a particular item. | |
| template<class D > | |
| void | Dump (D &dmp) const |
| Helper for creating output of this array. | |
Protected Attributes | |
| CItemArray | m_arr |
| here we store full item data (Titem_) | |
| COpenList | m_open |
| hash table of pointers to open item data | |
| CClosedList | m_closed |
| hash table of pointers to closed item data | |
| CPriorityQueue | m_open_queue |
| priority queue of pointers to open item data | |
| Titem * | m_new_node |
| new open node under construction | |
Hash table based node list multi-container class.
Implements open list, closed list and priority queue for A-star path finder.
Definition at line 25 of file nodelist.hpp.
| void CNodeList_HashTableT< Titem_, Thash_bits_open_, Thash_bits_closed_ >::Dump | ( | D & | dmp | ) | const [inline] |
Helper for creating output of this array.
Definition at line 153 of file nodelist.hpp.
References SmallArray< T, B, N >::Length(), and CNodeList_HashTableT< Titem_, Thash_bits_open_, Thash_bits_closed_ >::m_arr.
| void CNodeList_HashTableT< Titem_, Thash_bits_open_, Thash_bits_closed_ >::FoundBestNode | ( | Titem_ & | item | ) | [inline] |
Notify the nodelist that we don't want to discard the given node.
Definition at line 77 of file nodelist.hpp.
References SmallArray< T, B, N >::AppendC(), CNodeList_HashTableT< Titem_, Thash_bits_open_, Thash_bits_closed_ >::m_arr, and CNodeList_HashTableT< Titem_, Thash_bits_open_, Thash_bits_closed_ >::m_new_node.
| Titem_& CNodeList_HashTableT< Titem_, Thash_bits_open_, Thash_bits_closed_ >::ItemAt | ( | int | idx | ) | [inline] |
Get a particular item.
Definition at line 150 of file nodelist.hpp.
| int CNodeList_HashTableT< Titem_, Thash_bits_open_, Thash_bits_closed_ >::TotalCount | ( | ) | [inline] |
The number of items.
Definition at line 148 of file nodelist.hpp.
1.7.1