Пример #1
0
        public void Initialize(CAStarNode pParentNode, CPathLineSegment pConnectingSegment,
                               CPathWayPoint pCurWayPoint, uint CurWayPointIndex,
                               CPathWayPoint pFinalDestWayPoint, double AccumulatedCostFromStartG,
                               ESTIMATE_ADDITIONAL_COST_FUNC_PTR AdditionalCostFunc, double CollisionCostRatio, ESTIMATE_COST_TO_DEST_FUNC_PTR EstimateCostToDestFunc)
        {
            // you shouldn't change this node unless the change is better
            //assert(m_AccumulatedCostFromStartG >= AccumulatedCostFromStartG);

            m_AccumulatedCostFromStartG = AccumulatedCostFromStartG;
            if (pParentNode == null && pConnectingSegment == null)
            {
                m_AccumulatedCostFromStartG += AdditionalCostFunc(pParentNode, pConnectingSegment, CollisionCostRatio);
            }
            m_EstimatedCostToDestH  = EstimateCostToDestFunc(pCurWayPoint, pFinalDestWayPoint);
            m_TotalCostForThisNodeF = m_AccumulatedCostFromStartG + m_EstimatedCostToDestH;
            //assert(pCurWayPoint.GetPosition().x < 1000000 && pCurWayPoint.GetPosition().x > -1000000);
            //assert(pCurWayPoint.GetPosition().y < 1000000 && pCurWayPoint.GetPosition().y > -1000000);
            m_pCurWayPoint     = pCurWayPoint;
            m_CurWayPointIndex = CurWayPointIndex;
            m_pParent          = pParentNode;
        }
Пример #2
0
        public void Initialize(CAStarNode pParentNode, CPathLineSegment pConnectingSegment,
                            CPathWayPoint pCurWayPoint, uint CurWayPointIndex,
                            CPathWayPoint pFinalDestWayPoint, double AccumulatedCostFromStartG,
                            ESTIMATE_ADDITIONAL_COST_FUNC_PTR AdditionalCostFunc, double CollisionCostRatio, ESTIMATE_COST_TO_DEST_FUNC_PTR EstimateCostToDestFunc)
        {
            // you shouldn't change this node unless the change is better
            //assert(m_AccumulatedCostFromStartG >= AccumulatedCostFromStartG);

            m_AccumulatedCostFromStartG = AccumulatedCostFromStartG;
            if (pParentNode == null && pConnectingSegment == null)
            {
                m_AccumulatedCostFromStartG += AdditionalCostFunc(pParentNode, pConnectingSegment, CollisionCostRatio);
            }
            m_EstimatedCostToDestH = EstimateCostToDestFunc(pCurWayPoint, pFinalDestWayPoint);
            m_TotalCostForThisNodeF = m_AccumulatedCostFromStartG + m_EstimatedCostToDestH;
            //assert(pCurWayPoint.GetPosition().x < 1000000 && pCurWayPoint.GetPosition().x > -1000000);
            //assert(pCurWayPoint.GetPosition().y < 1000000 && pCurWayPoint.GetPosition().y > -1000000);
            m_pCurWayPoint = pCurWayPoint;
            m_CurWayPointIndex = CurWayPointIndex;
            m_pParent = pParentNode;
        }