00001 //============================================================================== 00017 #ifndef MDS_TETRAMESHRASTERIZATION_H 00018 #define MDS_TETRAMESHRASTERIZATION_H 00019 00020 // MDSTk 00021 #include <MDSTk/Base/mdsSetup.h> 00022 #include <MDSTk/Math/mdsRandom.h> 00023 #include <MDSTk/Module/mdsModule.h> 00024 #include <MDSTk/System/mdsEvent.h> 00025 #include <MDSTk/Image/mdsDensityVolume.h> 00026 00027 // MDSTk Extensions 00028 #include <MDSTk/VectorSegmentation/mdsTetraMesh.h> 00029 00030 00031 //============================================================================== 00035 class CTetraMeshRasterization : public mds::mod::CModule 00036 { 00037 public: 00040 MDS_SHAREDPTR(CTetraMeshRasterization); 00041 00042 public: 00044 CTetraMeshRasterization(const std::string& sDescription); 00045 00047 virtual ~CTetraMeshRasterization(); 00048 00049 protected: 00051 virtual bool startup(); 00052 00054 virtual bool main(); 00055 00057 virtual void shutdown(); 00058 00060 virtual void writeExtendedUsage(std::ostream& Stream); 00061 00062 protected: 00064 mds::seg::CTetraMeshPtr m_spMesh; 00065 00067 mds::img::CDensityVolumePtr m_spVolume; 00068 00070 int m_iRegion; 00071 bool m_bRandom, m_bEdges, m_bTriangles, m_bInterpolate; 00072 double m_dAlpha; 00073 }; 00074 00075 00076 //============================================================================== 00080 typedef CTetraMeshRasterization::tSmartPtr CTetraMeshRasterizationPtr; 00081 00082 00083 #endif // MDS_TETRAMESHRASTERIZATION_H 00084