00001 #ifndef MITKMORPHOLOGICTOOL_H 00002 #define MITKMORPHOLOGICTOOL_H 00003 00004 #include "mitkTool.h" 00005 #include "mitkSBExports.h" 00006 00007 namespace mitk 00008 { 00009 class MitkExt_EXPORT MorphologicTool : public Tool 00010 { 00011 public: 00012 00013 mitkClassMacro(MorphologicTool, Tool); 00014 const char* GetGroup() const; 00015 00016 itkGetMacro(Radius, unsigned int); 00017 void SetRadius(unsigned int); 00018 00019 itkGetMacro(Preview, bool); 00020 itkSetMacro(Preview, bool); 00021 itkBooleanMacro(Preview); 00022 00023 virtual void Activated(); 00024 virtual void Deactivated(); 00025 void AcceptPreview(const std::string& name, const Color& color); 00026 virtual void CancelPreviewing(); 00027 00028 protected: 00029 MorphologicTool(); 00030 MorphologicTool(const char*); 00031 virtual ~MorphologicTool(); 00032 00033 virtual void UpdatePreview(); 00034 virtual mitk::Image::Pointer ApplyFilter(mitk::Image::Pointer image); 00035 virtual void SetupPreviewNodeFor (mitk::DataNode* nodeToProceed); 00036 virtual void OnRoiDataChanged(); 00037 00038 unsigned int m_Radius; 00039 bool m_Preview; 00040 00041 mitk::DataNode::Pointer m_FeedbackNode; 00042 mitk::DataNode* m_NodeToProceed; 00043 mitk::DataNode* m_OriginalNode; 00044 };//class 00045 }//namespace 00046 00047 #endif