]> Creatis software - cpPlugins.git/blobdiff - lib/cpExtensions/QT/ImageWidget.h
yet another refactoring
[cpPlugins.git] / lib / cpExtensions / QT / ImageWidget.h
diff --git a/lib/cpExtensions/QT/ImageWidget.h b/lib/cpExtensions/QT/ImageWidget.h
new file mode 100644 (file)
index 0000000..9932bda
--- /dev/null
@@ -0,0 +1,75 @@
+#ifndef __cpExtensions__QT__ImageWidget__h__
+#define __cpExtensions__QT__ImageWidget__h__
+
+#include <cpExtensions/QT/RendererWidget.h>
+
+// -------------------------------------------------------------------------
+class vtkDataSet;
+
+// -------------------------------------------------------------------------
+namespace cpExtensions
+{
+  namespace Visualization
+  {
+    class OutlineSource;
+    class LUTImageActor;
+    class WindowLevelImageActor;
+    class MeshActor;
+  }
+  namespace Interaction { class ImageSliceStyle; }
+
+  namespace QT
+  {
+    /**
+     */
+    class cpExtensions_EXPORT ImageWidget
+      : public RendererWidget
+    {
+      Q_OBJECT;
+
+    public:
+      typedef ImageWidget    Self;
+      typedef RendererWidget Superclass;
+
+      typedef cpExtensions::Visualization::OutlineSource         TOutline;
+      typedef cpExtensions::Visualization::MeshActor             TActor;
+      typedef cpExtensions::Visualization::LUTImageActor         TLUTActor;
+      typedef cpExtensions::Visualization::WindowLevelImageActor TWLActor;
+      typedef cpExtensions::Interaction::ImageSliceStyle         TStyle;
+
+    public:
+      explicit ImageWidget( QWidget* parent = NULL, Qt::WindowFlags f = 0 );
+      virtual ~ImageWidget( );
+
+      void Clear( );
+      void SetImage(
+        vtkImageData* image, const std::string& name, int orientation = 2
+        );
+      void Add( vtkDataSet* data, const std::string& name );
+      virtual void ResetCamera( ) cpExtensions_OVERRIDE;
+
+      TWLActor* GetImageActor( );
+      const TWLActor* GetImageActor( ) const;
+
+      void SetColor( const std::string& name, double r, double g, double b );
+      void SetLineWidth( const std::string& name, double w );
+
+    protected:
+      std::string m_ImageName;
+
+      vtkSmartPointer< TWLActor > m_WLActor;
+      vtkSmartPointer< TLUTActor > m_LUTActor;
+      vtkSmartPointer< TOutline > m_Outline;
+      TActor* m_OutlineActor;
+      std::vector< TActor* > m_Actors;
+
+      vtkSmartPointer< TStyle > m_Style;
+    };
+
+  } // ecapseman
+
+} // ecapseman
+
+#endif // __cpExtensions__QT__ImageWidget__h__
+
+// eof - $RCSfile$