Beispiel #1
0
	/** 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;
		}
	}
Beispiel #2
0
	/** return number of closed nodes */
	inline int ClosedCount()
	{
		return m_closed.Count();
	}
Beispiel #3
0
	/** 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;
	}
Beispiel #4
0
	/** 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;
	}