MeVisLabToolboxReference
MeVisLab/Standard/Sources/ML/MLWEM/WEMTools/WEMGraphAlgorithms/WEMConnectedComponent.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //----------------------------------------------------------------------------------
00007 
00014 #ifndef __WEMConnectedComponent_H
00015 #define __WEMConnectedComponent_H
00016 
00017 #include "WEMTools/WEMToolsIncludes.h"
00018 #include "WEMTools/WEMCutOp/WEMFaceCut.h"
00019 
00020 
00021 ML_START_NAMESPACE
00022 
00027 namespace WEMConnectedComponent 
00028 {
00030   typedef std::vector<WEMNode*> WEMNodeVector;
00031 
00033   typedef std::vector<WEMFace*> WEMFaceVector;
00034 
00039   MLWEM_EXPORT void collectComponent(WEMPatch* wemPatch, WEMNode* node, WEMNodeVector& cNodes, bool unvisitedValue = false);
00040 
00044   MLWEM_EXPORT void collectComponentEuclideanDistance(WEMPatch* wemPatch, WEMNode* node, WEMNodeVector& cNodes, double maxDistance, bool unvisitedValue = false);
00045   
00049   MLWEM_EXPORT void collectComponentBoundary(WEMPatch* wemPatch, WEMNode* node, WEMNodeVector& cNodes, bool unvisitedValue = false);
00050 
00057   MLWEM_EXPORT bool collectComponentFaceCut(WEMNode* node, 
00058                                       std::vector<WEMNode *>& cNodes, 
00059                                       std::vector<WEMFace *>& cFaces,
00060                                       WEMVector<WEMFaceCut> **faceCuts,
00061                                       unsigned int outerFlag,
00062                                       unsigned int intersectingFlag,
00063                                       bool visitedValue = true);
00064 
00070   MLWEM_EXPORT void collectComponentPrimitiveValueList(WEMPatch* wemPatch,
00071                                                  WEMNode* node, 
00072                                                  WEMNodeVector& cNodes, 
00073                                                  WEMFaceVector& cFaces,
00074                                                  WEMFaceVector& iFaces,
00075                                                  WEMPrimitiveValueList* valueList,
00076                                                  double valueRange,
00077                                                  unsigned int connectedFlag,
00078                                                  bool unvisitedValue = false);
00079 
00081   MLWEM_EXPORT bool collectComponent(WEMPatch* wemPatch, WEMNodeVector& cNodes, bool unvisitedValue = false);
00082 
00085   MLWEM_EXPORT void collectComponentPseudoGeodesicDistance(WEMPatch* wemPatch, WEMNode* node, WEMNodeVector& cNodes, double maxDistance, bool unvisitedValue = false);
00086 
00088   MLWEM_EXPORT double getPathLengthBetweenNodes(WEMPatch* wemPatch, const std::vector<unsigned int>& nodeIndicesPath);
00089   
00090   // not yet implemented.
00091   
00092   // MLWEM_EXPORT void collectComponentPathDepth(WEM* wem, WEMNode* node, WEMNodeVector& cNodes, unsigned int maxPath);
00093 
00094 };
00095 
00096 
00097 ML_END_NAMESPACE
00098 
00099 
00100 #endif // __WEMConnectedComponent_H
00101