/** remove and return the open node specified by a key */ inline Titem_& PopOpenNode(const Key& key) { Titem_& item = m_open.Pop(key); uint idxPop = m_open_queue.FindIndex(item); m_open_queue.Remove(idxPop); return item; }
/** remove and return the best open node */ inline Titem_ *PopBestOpenNode() { if (!m_open_queue.IsEmpty()) { Titem_ *item = m_open_queue.Shift(); m_open.Pop(*item); return item; } return NULL; }