VR-Forces 4.0.4 Class Documentation
include/vrfmodel/railAStarNode.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2010 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00009 
00010 
00011 #pragma once
00012 
00013 #include "geometry/point.h"
00014 #include "vrfmodel/pathNode.h"
00015 #include <gdb/netwrkEdge.h>
00016 #include <list>
00017 
00018 class DtRailPathPlanner;
00019 class DtNetworkSegment;
00020 class DtNetworkNode;
00021 
00025 
00026 #include "vrfmodel/vrfmodelDefines.h"
00027 class DT_DLL_vrfmodel DtRailAStarNode 
00028 {
00029 public:
00030    DtRailAStarNode(const DtPoint& point,double cost, DtRailPathPlanner* pathPlanner);
00031    virtual ~DtRailAStarNode();
00032 
00036    virtual bool expand(double valueLimit = 1e255);
00037 
00040    virtual void generateChildNodes();
00041 
00042    virtual void sortNodes();
00043    virtual bool generateOpenEdges(DtNetworkNode * node);
00044 
00045    virtual void generateNewNode(DtNetworkNode* node, double cost, DtNetworkEdge* edge,
00046       DtNetworkEdge::DtTraversalDirection direction);
00047    virtual void removeDeadEnds();
00048 
00049    virtual double aStarValue() const;
00050 
00051    virtual const DtPoint& point();
00052 
00053    virtual bool deadEnd();
00054 
00055 
00057    virtual bool visited();
00058 
00060    virtual void markVisited();
00061 
00062    virtual void setApproachVector(const DtPoint& approachVector);
00063 
00066    virtual double turningCost(const DtPoint& destination);
00067 
00070    virtual void postSolution();
00071 
00072    virtual void setHostEdge(DtNetworkEdge* edge);
00073    virtual DtNetworkEdge* hostEdge();
00074 
00075    virtual void setTraversalDirection(DtNetworkEdge::DtTraversalDirection direction);
00076    virtual DtNetworkEdge::DtTraversalDirection traversalDirection() const;
00077 
00078 protected:
00079    virtual void addNode(DtRailAStarNode * node,std::list<DtRailAStarNode*> & list);
00080 protected:
00081 
00082    DtPoint myPoint;
00083    DtRailPathPlanner* myPathPlanner;
00084    double myCost;
00085    double myAStarValue;
00086    bool myDeadEnd;
00087    bool myExpanded;
00089    DtPoint myApproachVector;
00092    std::list<DtNetworkEdge*>  myOpenEdges;
00094    std::list<DtRailAStarNode*> myNodeSet;
00096    DtNetworkEdge*                            myHostEdge;
00098    DtNetworkEdge::DtTraversalDirection       myEdgeDirection;
00099    
00100 };
00101 
00102 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)