]> Creatis software - cpPlugins.git/blobdiff - lib/cpExtensions/QT/RendererWidget.h
Cast image filter added. ROI filter modified.
[cpPlugins.git] / lib / cpExtensions / QT / RendererWidget.h
index b43a3bc7aafe438a93ff87a4d300d23b1edbec7b..f23298209904851f63bb90856237b6641893b76f 100644 (file)
@@ -5,9 +5,11 @@
 
 #ifdef cpExtensions_QT4
 
+#include <cpExtensions/QT/ActorsWidgetInterface.h>
 #include <vtkSmartPointer.h>
 #include <map>
 #include <set>
+#include <string>
 
 // -------------------------------------------------------------------------
 class vtkCamera;
@@ -15,30 +17,41 @@ class vtkInteractorStyle;
 class vtkOrientationMarkerWidget;
 class vtkProp;
 class vtkPropCollection;
-class vtkRenderer;
 
 // -------------------------------------------------------------------------
 namespace cpExtensions
 {
+  namespace Visualization
+  {
+    class LUTImageActor;
+    class WindowLevelImageActor;
+  }
+
   namespace QT
   {
     /**
      */
     class cpExtensions_EXPORT RendererWidget
-      : public cpExtensions_QVTKWidget
+      : public cpExtensions_QVTKWidget,
+        public ActorsWidgetInterface
     {
       Q_OBJECT;
 
     public:
       typedef RendererWidget          Self;
       typedef cpExtensions_QVTKWidget Superclass;
+      typedef ActorsWidgetInterface   Superclass2;
 
-      typedef
-        std::map< std::string, vtkSmartPointer< vtkPropCollection > >
-        TProps;
+      typedef std::set< vtkSmartPointer< vtkProp > > TProps;
+      typedef std::map< std::string, TProps >        TPropCollection;
+
+      typedef cpExtensions::Visualization::LUTImageActor         TLUTActor;
+      typedef cpExtensions::Visualization::WindowLevelImageActor TWLActor;
 
     public:
-      explicit RendererWidget( QWidget* parent = NULL, Qt::WindowFlags f = 0 );
+      explicit RendererWidget(
+        QWidget* parent = NULL, Qt::WindowFlags f = 0
+        );
       virtual ~RendererWidget( );
 
       int GetQuadrant( ) const;
@@ -54,15 +67,19 @@ namespace cpExtensions
       vtkCamera* GetActiveCamera( );
       const vtkCamera* GetActiveCamera( ) const;
 
-      void AddViewProp( vtkProp* prop, const std::string& name );
-      void AddViewProps( vtkPropCollection* props, const std::string& name );
-      void AddAuxViewProp( vtkProp* prop, const std::string& name );
-      void AddAuxViewProps( vtkPropCollection* props, const std::string& name );
+      void AddViewProp( vtkProp* prop, const std::string& name = "" );
+      void AddViewProps(
+        vtkPropCollection* props, const std::string& name = ""
+        );
+      void AddAuxViewProp( vtkProp* prop, const std::string& name = "" );
+      void AddAuxViewProps(
+        vtkPropCollection* props, const std::string& name = ""
+        );
 
-      vtkPropCollection* GetViewProps( const std::string& name );
-      const vtkPropCollection* GetViewProps( const std::string& name ) const;
-      vtkPropCollection* GetAuxViewProps( const std::string& name );
-      const vtkPropCollection* GetAuxViewProps( const std::string& name ) const;
+      TProps& GetViewProps( const std::string& name );
+      const TProps& GetViewProps( const std::string& name ) const;
+      TProps& GetAuxViewProps( const std::string& name );
+      const TProps& GetAuxViewProps( const std::string& name ) const;
 
       void RemoveViewProps( const std::string& name );
       void RemoveViewProps( );
@@ -73,13 +90,47 @@ namespace cpExtensions
       virtual void ResetCamera( );
       virtual void Render( );
 
+      virtual std::set< vtkRenderWindowInteractor* > GetInteractors( ) const cpExtensions_OVERRIDE;
+      virtual std::set< std::string > GetActorsNames( ) const cpExtensions_OVERRIDE;
+      virtual bool IsWindowLevelImageActor( const std::string& name ) const cpExtensions_OVERRIDE;
+      virtual bool IsLUTImageActor( const std::string& name ) const cpExtensions_OVERRIDE;
+      virtual bool Is3DActor( const std::string& name ) const cpExtensions_OVERRIDE;
+
+      virtual void GetScalarRange( const std::string& name, double r[ 2 ] ) const cpExtensions_OVERRIDE;
+      virtual void GetWindowLevel( const std::string& name, double wl[ 2 ] ) const cpExtensions_OVERRIDE;
+      virtual double GetWindow( const std::string& name ) const cpExtensions_OVERRIDE;
+      virtual double GetLevel( const std::string& name ) const cpExtensions_OVERRIDE;
+      virtual char GetImageInterpolation( const std::string& name ) const cpExtensions_OVERRIDE;
+
+      virtual void GetColor( const std::string& name, double& r, double& g, double& b ) const cpExtensions_OVERRIDE;
+      virtual double GetOpacity( const std::string& name ) const cpExtensions_OVERRIDE;
+      virtual double GetPointSize( const std::string& name ) const cpExtensions_OVERRIDE;
+      virtual double GetLineWidth( const std::string& name ) const cpExtensions_OVERRIDE;
+      virtual int GetRepresentation( const std::string& name ) const cpExtensions_OVERRIDE;
+
+      virtual void SetScalarRange( const std::string& name, double r[ 2 ] ) cpExtensions_OVERRIDE;
+      virtual void SetScalarRange( const std::string& name, double min, double max ) cpExtensions_OVERRIDE;
+      virtual void SetWindowLevel( const std::string& name, double wl[ 2 ] ) cpExtensions_OVERRIDE;
+      virtual void SetWindowLevel( const std::string& name, double w, double l ) cpExtensions_OVERRIDE;
+      virtual void SetWindow( const std::string& name, double w ) cpExtensions_OVERRIDE;
+      virtual void SetLevel( const std::string& name, double l ) cpExtensions_OVERRIDE;
+      virtual void SetImageInterpolation( const std::string& name, char i ) cpExtensions_OVERRIDE;
+
+      virtual void SetColor( const std::string& name, double r, double g, double b ) cpExtensions_OVERRIDE;
+      virtual void SetOpacity( const std::string& name, double o ) cpExtensions_OVERRIDE;
+      virtual void SetPointSize( const std::string& name, double s ) cpExtensions_OVERRIDE;
+      virtual void SetLineWidth( const std::string& name, double w ) cpExtensions_OVERRIDE;
+      virtual void SetRepresentationToPoints( const std::string& name ) cpExtensions_OVERRIDE;
+      virtual void SetRepresentationToSurface( const std::string& name ) cpExtensions_OVERRIDE;
+      virtual void SetRepresentationToWireframe( const std::string& name ) cpExtensions_OVERRIDE;
+
     protected:
-      vtkSmartPointer< vtkRenderer > m_Renderer;
+      vtkSmartPointer< vtkRenderer >                m_Renderer;
       vtkSmartPointer< vtkOrientationMarkerWidget > m_Marker;
       int m_Quadrant;
 
-      TProps m_ViewProps;
-      TProps m_AuxViewProps;
+      TPropCollection m_ViewProps;
+      TPropCollection m_AuxViewProps;
     };
 
   } // ecapseman