示例#1
0
文件: AStar.cs 项目: huhen/agg-sharp
        void AddToOpenList(CAStarNode pNewNode)
        {
            CAStarNode pParentNode  = m_OpenNodes;
            CAStarNode pNodeToCheck = m_OpenNodes.GetpNext();

            while (pNodeToCheck != null)
            {
                if (pNewNode.GetTotalCostF() < pNodeToCheck.GetTotalCostF())
                {
                    pParentNode.SetpNext(pNewNode);
                    pNewNode.SetpNext(pNodeToCheck);
                    return;
                }

                pParentNode  = pNodeToCheck;
                pNodeToCheck = pNodeToCheck.GetpNext();
            }

            // it is the worst one in the list put it at the end
            //assert(pParentNode.GetpNext() == null);
            pParentNode.SetpNext(pNewNode);
            //assert(pNewNode.GetpNext() == null);
        }
示例#2
0
        void AddToOpenList(CAStarNode pNewNode)
        {
            CAStarNode pParentNode = m_OpenNodes;
            CAStarNode pNodeToCheck = m_OpenNodes.GetpNext();
            while (pNodeToCheck != null)
            {
                if (pNewNode.GetTotalCostF() < pNodeToCheck.GetTotalCostF())
                {
                    pParentNode.SetpNext(pNewNode);
                    pNewNode.SetpNext(pNodeToCheck);
                    return;
                }

                pParentNode = pNodeToCheck;
                pNodeToCheck = pNodeToCheck.GetpNext();
            }

            // it is the worst one in the list put it at the end
            //assert(pParentNode.GetpNext() == null);
            pParentNode.SetpNext(pNewNode);
            //assert(pNewNode.GetpNext() == null);
        }