#ifndef __CPPLUGINS__EXTENSIONS__VISUALIZATION__MPRACTORS__H__ #define __CPPLUGINS__EXTENSIONS__VISUALIZATION__MPRACTORS__H__ #include #include #include #include #include class vtkRenderer; namespace cpPlugins { namespace Extensions { namespace Visualization { /** */ class cpPlugins_Extensions_EXPORT MPRActors : public vtkPropCollection { public: typedef MPRActors Self; public: vtkTypeMacro( MPRActors, vtkPropCollection ); cpPlugins_ImageSliceActors( ImageOutline, vtkImageActor ); public: // Creation static MPRActors* New( ); ImageSliceActors* GetSliceActors( const int& i ) const; void SetInputData( vtkImageData* image ); void SetSegmentationData( vtkImageData* segmentation ); void PushDataInto( vtkRenderer* x, vtkRenderer* y, vtkRenderer* z, vtkRenderer* w ); void PopDataFrom( vtkRenderer* x, vtkRenderer* y, vtkRenderer* z, vtkRenderer* w ); // Window/Level double GetMinWindow( ) const; double GetMaxWindow( ) const; double GetMinLevel( ) const; double GetMaxLevel( ) const; double GetWindow( ) const; double GetLevel( ) const; void SetWindow( const double& w ); void SetLevel( const double& l ); void SetWindowLevel( const double& w, const double& l ); void ResetWindowLevel( ); // Slice access vtkPlane* GetSlicePlane( const int& axis ) const; int GetSliceNumberMinValue( const int& axis ) const; int GetSliceNumberMaxValue( const int& axis ) const; int GetSlice( const int& axis ) const; void SetSlice( const int& axis, const int& slice ); void SetSlice( const int& axis, const double& slice ); void ResetSlices( ); // General accessors void GetImageBounds( double bounds[ 6 ] ) const; protected: MPRActors( ); virtual ~MPRActors( ); private: // Purposely not implemented MPRActors( const Self& ); Self& operator=( const Self& ); protected: vtkImageData* Image; vtkImageData* Segmentation; vtkSmartPointer< vtkImageMapToWindowLevelColors > ImageToWindowLevel; vtkSmartPointer< vtkImageMapToColors > SegmentationToColors; vtkSmartPointer< vtkActor > ImageOutlineActor; typedef cpPlugins::Extensions::Visualization::ImageSliceActors TSlice; vtkSmartPointer< TSlice > Slices[ 3 ]; unsigned int ImageOutlineActorIndex; }; } // ecapseman } // ecapseman } // ecapseman #endif // __CPPLUGINS__EXTENSIONS__VISUALIZATION__MPRACTORS__H__ // eof - $RCSfile$