#ifndef __CPEXTENSIONS__VISUALIZATION__IMAGESLICEACTORS__H__ #define __CPEXTENSIONS__VISUALIZATION__IMAGESLICEACTORS__H__ #include #include #include #include #include #include #include #include #include #include // ------------------------------------------------------------------------- class vtkAlgorithmOutput; class vtkImageData; // ------------------------------------------------------------------------- namespace cpExtensions { namespace Visualization { /** */ class cpExtensions_EXPORT ImageSliceActors : public vtkPropCollection { public: typedef ImageSliceActors Self; public: vtkTypeMacro( ImageSliceActors, vtkPropCollection ); public: // Creation static ImageSliceActors* New( ); void AddInputConnection( vtkAlgorithmOutput* aout, int axis = 0 ); void AddInputData( vtkImageData* data, int axis = 0 ); void Clear( ); unsigned int GetNumberOfImageActors( ) const; vtkImageActor* GetImageActor( unsigned int id ); const vtkImageActor* GetImageActor( unsigned int id ) const; vtkTextActor* GetTextActor( ); const vtkTextActor* GetTextActor( ) const; vtkActor* GetPlaneActor( ); const vtkActor* GetPlaneActor( ) const; void SetInterpolate( bool v ); void InterpolateOn( ); void InterpolateOff( ); double* GetDisplayBounds( ) const; void GetDisplayBounds( double bounds[ 6 ] ) const; int GetAxis( ) const; int GetSliceNumber( ) const; int GetSliceNumberMinValue( ) const; int GetSliceNumberMaxValue( ) const; void SetSliceNumber( const int& slice ); void UpdateText( ); void UpdateText( const double& w, const double& l ); protected: ImageSliceActors( ); virtual ~ImageSliceActors( ); void _ConfigureNewInput( int axis ); private: // Purposely not implemented ImageSliceActors( const Self& ); Self& operator=( const Self& ); protected: // Multiple actors std::vector< vtkSmartPointer< vtkImageSliceMapper > > SliceMappers; std::vector< vtkSmartPointer< vtkImageActor > > ImageActors; bool Interpolate; // Unique objects vtkSmartPointer< vtkPolyData > PlaneSource; vtkSmartPointer< vtkPolyDataMapper > PlaneMapper; char TextBuffer[ 1024 ]; vtkSmartPointer< vtkTextActor > TextActor; vtkSmartPointer< vtkActor > PlaneActor; }; } // ecapseman } // ecapseman #endif // __CPEXTENSIONS__VISUALIZATION__IMAGESLICEACTORS__H__ // eof - $RCSfile$