39 typedef std::vector<GNMGFID> GNMVECTOR, *LPGNMVECTOR;
40 typedef const std::vector<GNMGFID> GNMCONSTVECTOR;
41 typedef const std::vector<GNMGFID>* LPGNMCONSTVECTOR;
42 typedef std::pair<GNMGFID,GNMGFID> EDGEVERTEXPAIR;
43 typedef std::vector< EDGEVERTEXPAIR > GNMPATH;
47 GNMGFID nSrcVertexFID;
48 GNMGFID nTgtVertexFID;
57 GNMVECTOR anOutEdgeFIDs;
90 virtual void AddVertex(GNMGFID nFID);
96 virtual void DeleteVertex(GNMGFID nFID);
107 virtual void AddEdge(GNMGFID nConFID, GNMGFID nSrcFID, GNMGFID nTgtFID,
108 bool bIsBidir,
double dfCost,
double dfInvCost);
114 virtual void DeleteEdge(GNMGFID nConFID);
122 virtual void ChangeEdge(GNMGFID nFID,
double dfCost,
double dfInvCost);
129 virtual void ChangeBlockState (GNMGFID nFID,
bool bBlock);
136 virtual bool CheckVertexBlocked(GNMGFID nFID)
const;
145 virtual void ChangeAllBlockState (
bool bBlock =
false);
159 virtual GNMPATH DijkstraShortestPath(GNMGFID nStartFID, GNMGFID nEndFID);
180 virtual std::vector<GNMPATH> KShortestPaths(GNMGFID nStartFID,
181 GNMGFID nEndFID,
size_t nK);
196 virtual GNMPATH ConnectedComponents(
const GNMVECTOR &anEmittersIDs);
198 virtual void Clear();
215 virtual void DijkstraShortestPathTree(GNMGFID nFID,
216 const std::map<GNMGFID, GNMStdEdge> &mstEdges,
217 std::map<GNMGFID, GNMGFID> &mnPathTree);
218 virtual GNMPATH DijkstraShortestPath(GNMGFID nStartFID, GNMGFID nEndFID,
219 const std::map<GNMGFID, GNMStdEdge> &mstEdges);
221 virtual LPGNMCONSTVECTOR GetOutEdges(GNMGFID nFID)
const;
222 virtual GNMGFID GetOppositVertex(GNMGFID nEdgeFID, GNMGFID nVertexFID)
const;
223 virtual void TraceTargets(std::queue<GNMGFID> &vertexQueue,
224 std::set<GNMGFID> &markedVertIds,
225 GNMPATH &connectedIds);
227 std::map<GNMGFID, GNMStdVertex> m_mstVertices;
228 std::map<GNMGFID, GNMStdEdge> m_mstEdges;
The simple graph class, which holds the appropriate for calculations graph in memory (based on STL co...
Definition: gnmgraph.h:74
Definition: gnmgraph.h:45
Definition: gnmgraph.h:55