MeVisLabToolboxReference
MeVisLab/Standard/Sources/ML/MLWEM/WEMTools/WEMGraphAlgorithms/WEMShortestPath.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //----------------------------------------------------------------------------------
00011 
00018 #ifndef __WEMShortestPath_H
00019 #define __WEMShortestPath_H
00020 
00021 #include "WEMTools/WEMToolsIncludes.h"
00022 
00023 #include <algorithm>
00024 
00025 
00026 ML_START_NAMESPACE
00027 
00029 #define WEM_SHORTESTPATH_TRAVERSED_BIT 15
00030 
00037 namespace WEMShortestPath
00038 {
00040   typedef std::vector<WEMNode*> WEMNodeVector;
00041 
00047   MLWEM_EXPORT void shortestPath(WEMPatch* wemPatch, WEMNode* startNode, WEMNode* destNode, std::vector<unsigned int>& pathNodesEntryNumbers);
00048 
00049   // Not exporting the methods below to simulate their former private state
00050 
00051 
00054   WEMNode* _extractMin(WEMNodeVector& R, double*& distances);
00055 
00058   WEMNode* _extractMax(double*& distances, WEMPatch* wemPatch);
00059 
00060 
00063   void _addToBorder(WEMNodeVector& R, WEMNode* node, double* distances, WEMNode** previousNodes);
00064 };
00065 
00066 ML_END_NAMESPACE
00067 
00068 #endif // __WEMShortestPath_H
00069