OpenTTD Source
20241108-master-g80f628063a
|
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 this class. | |
using | CItemArray = std::deque< Titem_ > |
Type that we will use as item container. | |
typedef HashTable< Titem_, Thash_bits_open_ > | COpenList |
How pointers to open nodes will be stored. | |
typedef HashTable< 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 items | |
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 nullptr 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 nullptr 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 | items |
Here we store full item data (Titem_). | |
COpenList | open_nodes |
Hash table of pointers to open item data. | |
CClosedList | closed_nodes |
Hash table of pointers to closed item data. | |
CPriorityQueue | open_queue |
Priority queue of pointers to open item data. | |
Titem * | 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 22 of file nodelist.hpp.