]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Extensions/Visualization/Image3DMPR.h
3D MPR updated
[cpPlugins.git] / lib / cpPlugins / Extensions / Visualization / Image3DMPR.h
diff --git a/lib/cpPlugins/Extensions/Visualization/Image3DMPR.h b/lib/cpPlugins/Extensions/Visualization/Image3DMPR.h
new file mode 100644 (file)
index 0000000..bc9b227
--- /dev/null
@@ -0,0 +1,99 @@
+#ifndef __CPPLUGINS__EXTENSIONS__VISUALIZATION__IMAGE3DMPR__H__
+#define __CPPLUGINS__EXTENSIONS__VISUALIZATION__IMAGE3DMPR__H__
+
+#include <cpPlugins/Extensions/cpPlugins_Extensions_Export.h>
+
+#include <vtkActor.h>
+#include <vtkCellPicker.h>
+#include <vtkHandleWidget.h>
+#include <vtkImageData.h>
+#include <vtkImagePlaneWidget.h>
+#include <vtkOutlineSource.h>
+#include <vtkPointHandleRepresentation3D.h>
+#include <vtkPolyDataMapper.h>
+#include <vtkProperty.h>
+#include <vtkRenderer.h>
+#include <vtkRendererCollection.h>
+#include <vtkRenderWindow.h>
+#include <vtkRenderWindowInteractor.h>
+#include <vtkSeedRepresentation.h>
+#include <vtkSeedWidget.h>
+#include <vtkSmartPointer.h>
+#include <vtkSphereSource.h>
+#include <vtkLookupTable.h>
+
+namespace cpPlugins
+{
+  namespace Extensions
+  {
+    namespace Visualization
+    {
+      /**
+       */
+      class cpPlugins_Extensions_EXPORT Image3DMPR
+      {
+      public:
+        Image3DMPR( );
+        virtual ~Image3DMPR( );
+
+        void SetImage( vtkImageData* image );
+        void SetBackground( double r, double g, double b );
+        void SetSize( unsigned int w, unsigned int h );
+        void SetWindowLevel( double w, double l );
+
+        void AddPolyData( vtkPolyData* pd, double opacity = double( 1 ) );
+        void AddPolyData(
+          vtkPolyData* pd,
+          double r, double g, double b, double opacity = double( 1 )
+          );
+        void AddPolyData(
+          vtkPolyData* pd,
+          vtkLookupTable* lut,
+          double opacity = double( 1 )
+          );
+
+        unsigned int GetNumberOfSeeds( ) const;
+        void GetSeed( int n, double* s ) const;
+        unsigned int AddSeed(
+          const double& x, const double& y, const double& z
+          ) const;
+
+        vtkRenderWindow* GetWindow( ) const;
+        vtkRenderer* GetRenderer( ) const;
+
+        void Start( );
+        void Render( );
+
+      protected:
+        vtkSmartPointer< vtkImageData >              m_Image;
+        vtkSmartPointer< vtkOutlineSource >          m_Outline;
+        vtkSmartPointer< vtkPolyDataMapper >         m_OutlineMapper;
+        vtkSmartPointer< vtkActor >                  m_OutlineActor;
+        vtkSmartPointer< vtkCellPicker >             m_Picker;
+        vtkSmartPointer< vtkImagePlaneWidget >       m_WidgetX;
+        vtkSmartPointer< vtkImagePlaneWidget >       m_WidgetY;
+        vtkSmartPointer< vtkImagePlaneWidget >       m_WidgetZ;
+        vtkSmartPointer< vtkRenderer >               m_Renderer;
+        vtkSmartPointer< vtkRenderWindow >           m_Window;
+        vtkSmartPointer< vtkRenderWindowInteractor > m_Interactor;
+
+        std::vector< vtkSmartPointer< vtkPolyData > >       m_PolyDatas;
+        std::vector< vtkSmartPointer< vtkPolyDataMapper > > m_Mappers;
+        std::vector< vtkSmartPointer< vtkActor > >          m_Actors;
+
+        // Create the widget and its representation
+        vtkSmartPointer< vtkPointHandleRepresentation3D >
+          m_SeedHandleRepresentation;
+        vtkSmartPointer< vtkSeedRepresentation > m_SeedRepresentation;
+        vtkSmartPointer< vtkSeedWidget >         m_SeedWidget;
+      };
+
+    } // ecapseman
+
+  } // ecapseman
+
+} // ecapseman
+
+#endif // __CPPLUGINS__EXTENSIONS__VISUALIZATION__IMAGE3DMPR__H__
+
+// eof - $RCSfile$