MeVisLabToolboxReference
|
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