00001 //============================================================================== 00018 #ifndef MDS_TRIMESHVIEW_H 00019 #define MDS_TRIMESHVIEW_H 00020 00021 // MDSTk 00022 #include <MDSTk/Base/mdsSetup.h> 00023 #include <MDSTk/Base/mdsTypes.h> 00024 #include <MDSTk/Module/mdsView.h> 00025 #include <MDSTk/Image/mdsSlice.h> 00026 00027 // MDSTk Extensions 00028 #include <MDSTk/VectorSegmentation/mdsTriMesh.h> 00029 00030 00031 //============================================================================== 00035 class CTriMeshView : public mds::mod::CView 00036 { 00037 public: 00040 MDS_SHAREDPTR(CTriMeshView); 00041 00042 public: 00044 CTriMeshView(const std::string& sDescription); 00045 00047 virtual ~CTriMeshView(); 00048 00050 static CTriMeshView *getViewPtr() 00051 { 00052 MDS_ASSERT(m_pView); 00053 return m_pView; 00054 } 00055 00057 mds::seg::CTriMesh *getMesh() { return m_spMesh; } 00058 00060 mds::img::CSlice *getSlice() { return m_spSlice; } 00061 00062 protected: 00064 virtual bool startup(); 00065 00067 virtual bool main(); 00068 00070 virtual void shutdown(); 00071 00073 virtual void writeExtendedUsage(std::ostream& Stream); 00074 00075 protected: 00077 static CTriMeshView *m_pView; 00078 00080 mds::seg::CTriMeshPtr m_spMesh; 00081 00083 mds::img::CSlicePtr m_spSlice; 00084 }; 00085 00086 00087 //============================================================================== 00091 typedef CTriMeshView::tSmartPtr CTriMeshViewPtr; 00092 00093 00094 #endif // MDS_TRIMESHVIEW_H 00095