00001 //============================================================================== 00017 #ifndef MDS_TETRAMESHREGIONCLASSIFYFCM_H 00018 #define MDS_TETRAMESHREGIONCLASSIFYFCM_H 00019 00020 // MDSTk 00021 #include <MDSTk/Base/mdsSetup.h> 00022 #include <MDSTk/Module/mdsModule.h> 00023 #include <MDSTk/System/mdsEvent.h> 00024 #include <MDSTk/Image/mdsDensityVolume.h> 00025 00026 // MDSTk Extensions 00027 #include <MDSTk/VectorSegmentation/mdsTetraMesh.h> 00028 00029 00030 //============================================================================== 00034 class CTetraMeshRegionClassifyFCM : public mds::mod::CModule 00035 { 00036 public: 00039 MDS_SHAREDPTR(CTetraMeshRegionClassifyFCM); 00040 00041 public: 00043 CTetraMeshRegionClassifyFCM(const std::string& sDescription); 00044 00046 virtual ~CTetraMeshRegionClassifyFCM(); 00047 00048 protected: 00050 virtual bool startup(); 00051 00053 virtual bool main(); 00054 00056 virtual void shutdown(); 00057 00059 virtual void writeExtendedUsage(std::ostream& Stream); 00060 00061 protected: 00063 mds::seg::CTetraMeshPtr m_spMesh; 00064 00066 mds::img::CDensityVolumePtr m_spVolume, m_spEdgeVolume; 00067 00069 double m_dWeight; 00070 mds::tSize m_NumOfClusters; 00071 }; 00072 00073 00074 //============================================================================== 00078 typedef CTetraMeshRegionClassifyFCM::tSmartPtr CTetraMeshRegionClassifyFCMPtr; 00079 00080 00081 #endif // MDS_TETRAMESHREGIONCLASSIFYFCM_H 00082