1 #ifndef __CPEXTENSIONS__VISUALIZATION__IMAGESLICEACTORS__H__
2 #define __CPEXTENSIONS__VISUALIZATION__IMAGESLICEACTORS__H__
4 #include <cpExtensions/cpExtensions_Export.h>
7 #include <vtkImageActor.h>
8 #include <vtkImageSliceMapper.h>
9 #include <vtkPolyData.h>
10 #include <vtkPolyDataMapper.h>
11 #include <vtkPropCollection.h>
12 #include <vtkSmartPointer.h>
13 #include <vtkTextActor.h>
15 // -------------------------------------------------------------------------
16 #define cpPlugins_ImageSliceActors( name, type ) \
17 inline type* Get##name##Actor( ) const \
20 dynamic_cast< type* >( \
21 const_cast< Self* >( this )-> \
22 GetItemAsObject( this->name##ActorIndex ) \
27 // -------------------------------------------------------------------------
28 class vtkAlgorithmOutput;
31 // -------------------------------------------------------------------------
32 namespace cpExtensions
34 namespace Visualization
38 class cpExtensions_EXPORT ImageSliceActors
39 : public vtkPropCollection
42 typedef ImageSliceActors Self;
45 vtkTypeMacro( ImageSliceActors, vtkPropCollection );
47 cpPlugins_ImageSliceActors( Image, vtkImageActor );
48 cpPlugins_ImageSliceActors( Text, vtkTextActor );
49 cpPlugins_ImageSliceActors( Plane, vtkActor );
53 static ImageSliceActors* New( );
55 void SetInputConnection( vtkAlgorithmOutput* aout, int axis );
56 void SetInputData( vtkImageData* data, int axis );
58 double* GetDisplayBounds( ) const;
59 void GetDisplayBounds( double bounds[ 6 ] ) const;
62 int GetSliceNumber( ) const;
63 int GetSliceNumberMinValue( ) const;
64 int GetSliceNumberMaxValue( ) const;
65 void SetSliceNumber( const int& slice );
70 virtual ~ImageSliceActors( );
73 // Purposely not implemented
74 ImageSliceActors( const Self& );
75 Self& operator=( const Self& );
78 vtkSmartPointer< vtkImageSliceMapper > SliceMapper;
79 vtkSmartPointer< vtkPolyData > PlaneSource;
80 vtkSmartPointer< vtkPolyDataMapper > PlaneMapper;
81 char TextBuffer[ 1024 ];
83 vtkSmartPointer< vtkImageActor > ImageActor;
84 vtkSmartPointer< vtkTextActor > TextActor;
85 vtkSmartPointer< vtkActor > PlaneActor;
87 unsigned int ImageActorIndex;
88 unsigned int TextActorIndex;
89 unsigned int PlaneActorIndex;
96 #endif // __CPEXTENSIONS__VISUALIZATION__IMAGESLICEACTORS__H__