]> Creatis software - clitk.git/blobdiff - vv/vvToolSegmentation.h
First version with Merge and remove label
[clitk.git] / vv / vvToolSegmentation.h
index 7b8bb8c49ae297d73cb659d780f8079ffc4bfc45..20f904d216d4248b01dfbd997b2b66caef1bd13b 100644 (file)
@@ -25,6 +25,8 @@
 #include "vvROIActor.h"
 #include "ui_vvToolSegmentation.h"
 
+#include "vtkLookupTable.h"
+
 //------------------------------------------------------------------------------
 class vvToolSegmentation:
   public vvToolWidgetBase,
@@ -42,21 +44,38 @@ class vvToolSegmentation:
   void OpenBinaryImage();
   void Erode();
   void Dilate();
-  void UpdateAndRender();
+  void Labelize();
+  void Merge();
+  void RemoveLabel();
+  void UpdateAndRenderNewMask();
 
   //-----------------------------------------------------
   public slots:
   virtual void apply();
-  virtual void keyPressEvent(QKeyEvent * event);
+  //  bool eventFilter(QObject *object, QEvent *event);
+  void KeyPressed(std::string KeyPress);
   virtual bool close();
+  virtual void MousePositionChanged(int slicer);
+  //  virtual void keyPressEvent(QKeyEvent * event);
   // virtual void reject();
 
  protected:
   // virtual void closeEvent(QCloseEvent *event);
   Ui::vvToolSegmentation ui;
   QSharedPointer<vvROIActor> mRefMaskActor;
-  vvImage::Pointer mMaskImage;
+  QSharedPointer<vvROIActor> mCurrentMaskActor;
+  std::vector<QSharedPointer<vvROIActor> > mCurrentCCLActors;
+  vvImage::Pointer mRefMaskImage;
+  vvImage::Pointer mCurrentMaskImage;
+  vvImage::Pointer mCurrentCCLImage;
   int mKernelValue;
+  vtkSmartPointer<vtkLookupTable> mDefaultLUTColor;
+  enum { State_Default, State_CCL};
+  int mCurrentState;
+
+  QSharedPointer<vvROIActor> CreateMaskActor(vvImage::Pointer image, int i, int colorID, bool BGMode=false);
+  
+  double mCurrentLabelUnderMousePointer;
 
 }; // end class vvToolSegmentation
 //------------------------------------------------------------------------------