1 #ifndef __cpExtensions__Visualization__MPR3DActors__h__
2 #define __cpExtensions__Visualization__MPR3DActors__h__
4 #include <cpExtensions/Config.h>
5 #include <cpExtensions/Visualization/MeshActor.h>
6 #include <vtkPropCollection.h>
7 #include <vtkSmartPointer.h>
10 // -------------------------------------------------------------------------
15 // -------------------------------------------------------------------------
16 namespace cpExtensions
18 namespace Visualization
20 class ImageOutlineActor;
21 class ImageSliceActors;
23 class WindowLevelImageActor;
27 class cpExtensions_EXPORT MPR3DActors
28 : public vtkPropCollection
31 typedef MPR3DActors Self;
33 typedef cpExtensions::Visualization::MeshActor TMeshActor;
36 vtkTypeMacro( MPR3DActors, vtkPropCollection );
41 vtkImageData* GetImage( );
42 const vtkImageData* GetImage( ) const;
44 WindowLevelImageActor* GetWindowLevelImageActor( int o );
45 const WindowLevelImageActor* GetWindowLevelImageActor( int o ) const;
47 LUTImageActor* GetLUTImageActor( int o );
48 const LUTImageActor* GetLUTImageActor( int o ) const;
50 ImageOutlineActor* GetImageOutlineActor( int o );
51 const ImageOutlineActor* GetImageOutlineActor( int o ) const;
53 int GetSliceNumber( int o ) const;
54 virtual void SetImage( vtkImageData* image );
55 virtual unsigned int AddLUTImage( vtkImageData* image );
56 virtual void SetSliceNumber( int o, int s );
58 virtual vtkActor* AddMesh( vtkPolyData* mesh );
60 void SetScalarRange( double r[ 2 ] );
61 void SetWindowLevel( double wl[ 2 ] );
62 void SetImageOpacity( double o );
63 void SetImageInterpolation( unsigned char i );
67 virtual ~MPR3DActors( );
70 // Purposely not implemented
71 MPR3DActors( const Self& );
72 Self& operator=( const Self& );
75 vtkSmartPointer< ImageSliceActors > m_Slices[ 3 ];
76 std::map< vtkSmartPointer< vtkPolyData >, TMeshActor > m_Meshes;
83 #endif // __cpExtensions__Visualization__MPR3DActors__h__