/** insert given item as open node (into m_open and m_open_queue) */ inline void InsertOpenNode(Titem_& item) { assert(m_closed.Find(item.GetKey()) == NULL); m_open.Push(item); m_open_queue.Include(&item); if (&item == m_new_node) { m_new_node = NULL; } }
/** return number of closed nodes */ inline int ClosedCount() { return m_closed.Count(); }
/** return the closed node specified by a key or NULL if not found */ inline Titem_ *FindClosedNode(const Key& key) { Titem_ *item = m_closed.Find(key); return item; }
/** close node */ inline void InsertClosedNode(Titem_& item) { assert(m_open.Find(item.GetKey()) == NULL); m_closed.Push(item); }
/** return number of closed nodes */ FORCEINLINE int ClosedCount() { return m_closed.Count(); }
/** return the closed node specified by a key or NULL if not found */ FORCEINLINE Titem_ *FindClosedNode(const Key& key) { Titem_ *item = m_closed.Find(key); return item; }