diff options
Diffstat (limited to 'yapf/yapf_node_road.hpp')
-rw-r--r-- | yapf/yapf_node_road.hpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/yapf/yapf_node_road.hpp b/yapf/yapf_node_road.hpp new file mode 100644 index 000000000..8a6888565 --- /dev/null +++ b/yapf/yapf_node_road.hpp @@ -0,0 +1,36 @@ +/* $Id$ */ + +#ifndef YAPF_NODE_ROAD_HPP +#define YAPF_NODE_ROAD_HPP + + + +/** Yapf Node for road YAPF */ +template <class Tkey_> +struct CYapfRoadNodeT + : CYapfNodeT<Tkey_, CYapfRoadNodeT<Tkey_> > +{ + typedef CYapfNodeT<Tkey_, CYapfRoadNodeT<Tkey_> > base; + + TileIndex m_segment_last_tile; + Trackdir m_segment_last_td; + + void Set(CYapfRoadNodeT* parent, TileIndex tile, Trackdir td) + { + base::Set(parent, tile, td); + m_segment_last_tile = tile; + m_segment_last_td = td; + } +}; + +// now define two major node types (that differ by key type) +typedef CYapfRoadNodeT<CYapfNodeKeyExitDir> CYapfRoadNodeExitDir; +typedef CYapfRoadNodeT<CYapfNodeKeyTrackDir> CYapfRoadNodeTrackDir; + +// Default NodeList types +typedef CNodeList_HashTableT<CYapfRoadNodeExitDir , 8, 12> CRoadNodeListExitDir; +typedef CNodeList_HashTableT<CYapfRoadNodeTrackDir, 10, 14> CRoadNodeListTrackDir; + + + +#endif /* YAPF_NODE_ROAD_HPP */ |