#ifndef __cpExtensions__Visualization__MPR3DActors__h__ #define __cpExtensions__Visualization__MPR3DActors__h__ #include #include #include #include #include // ------------------------------------------------------------------------- class vtkActor; class vtkImageData; class vtkPolyData; // ------------------------------------------------------------------------- namespace cpExtensions { namespace Visualization { class ImageOutlineActor; class ImageSliceActors; class LUTImageActor; class WindowLevelImageActor; /** */ class cpExtensions_EXPORT MPR3DActors : public vtkPropCollection { public: typedef MPR3DActors Self; typedef cpExtensions::Visualization::MeshActor TMeshActor; public: vtkTypeMacro( MPR3DActors, vtkPropCollection ); public: static Self* New( ); vtkImageData* GetImage( ); const vtkImageData* GetImage( ) const; WindowLevelImageActor* GetWindowLevelImageActor( int o ); const WindowLevelImageActor* GetWindowLevelImageActor( int o ) const; LUTImageActor* GetLUTImageActor( int o ); const LUTImageActor* GetLUTImageActor( int o ) const; ImageOutlineActor* GetImageOutlineActor( int o ); const ImageOutlineActor* GetImageOutlineActor( int o ) const; int GetSliceNumber( int o ) const; virtual void SetImage( vtkImageData* image ); virtual unsigned int AddLUTImage( vtkImageData* image ); virtual void SetSliceNumber( int o, int s ); virtual vtkActor* AddMesh( vtkPolyData* mesh ); void SetScalarRange( double r[ 2 ] ); void SetWindowLevel( double wl[ 2 ] ); void SetImageOpacity( double o ); void SetImageInterpolation( unsigned char i ); protected: MPR3DActors( ); virtual ~MPR3DActors( ); private: // Purposely not implemented MPR3DActors( const Self& ); Self& operator=( const Self& ); protected: vtkSmartPointer< ImageSliceActors > m_Slices[ 3 ]; std::map< vtkSmartPointer< vtkPolyData >, TMeshActor > m_Meshes; }; } // ecapseman } // ecapseman #endif // __cpExtensions__Visualization__MPR3DActors__h__ // eof - $RCSfile$