1 #ifndef __CPPLUGINS__EXTENSIONS__VISUALIZATION__IMAGESLICEACTORS__H__
2 #define __CPPLUGINS__EXTENSIONS__VISUALIZATION__IMAGESLICEACTORS__H__
4 #include <cpPlugins/Extensions/cpPlugins_Extensions_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 class vtkAlgorithmOutput;
33 namespace Visualization
37 class cpPlugins_Extensions_EXPORT ImageSliceActors
38 : public vtkPropCollection
41 typedef ImageSliceActors Self;
44 vtkTypeMacro( ImageSliceActors, vtkPropCollection );
46 cpPlugins_ImageSliceActors( Image, vtkImageActor );
47 cpPlugins_ImageSliceActors( Segmentation, vtkImageActor );
48 cpPlugins_ImageSliceActors( Text, vtkTextActor );
49 cpPlugins_ImageSliceActors( Plane, vtkActor );
53 static ImageSliceActors* New( );
55 void SetInputConnection( vtkAlgorithmOutput* aout, int axis );
56 void SetSegmentationConnection( vtkAlgorithmOutput* aout );
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 );
66 void UpdateText( const double& w, const double& l );
70 virtual ~ImageSliceActors( );
73 // Purposely not implemented
74 ImageSliceActors( const Self& );
75 Self& operator=( const Self& );
78 vtkAlgorithmOutput* InputAlgorithm;
79 vtkAlgorithmOutput* SegmentationAlgorithm;
81 vtkSmartPointer< vtkImageSliceMapper > SliceMapper;
82 vtkSmartPointer< vtkImageSliceMapper > SegmentationSliceMapper;
83 vtkSmartPointer< vtkPolyData > PlaneSource;
84 vtkSmartPointer< vtkPolyDataMapper > PlaneMapper;
85 char TextBuffer[ 512 ];
87 vtkSmartPointer< vtkImageActor > ImageActor;
88 vtkSmartPointer< vtkImageActor > SegmentationActor;
89 vtkSmartPointer< vtkTextActor > TextActor;
90 vtkSmartPointer< vtkActor > PlaneActor;
92 unsigned int ImageActorIndex;
93 unsigned int SegmentationActorIndex;
94 unsigned int TextActorIndex;
95 unsigned int PlaneActorIndex;
104 #endif // __CPPLUGINS__EXTENSIONS__VISUALIZATION__IMAGESLICEACTORS__H__