X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpExtensions%2FVisualization%2FMPRObjects.h;h=c800fc1ce626b11602c066f54a10b7ed363341f3;hb=73332fee95f5410c46e3b0cff1e2755d5e4a8b71;hp=8ac1cd2540aae98d1d3b7d2bb97228fbb3f58585;hpb=4a793c6b8f400b2303a3f69680aea22948d8ecc6;p=cpPlugins.git diff --git a/lib/cpExtensions/Visualization/MPRObjects.h b/lib/cpExtensions/Visualization/MPRObjects.h index 8ac1cd2..c800fc1 100644 --- a/lib/cpExtensions/Visualization/MPRObjects.h +++ b/lib/cpExtensions/Visualization/MPRObjects.h @@ -8,6 +8,13 @@ #include #include +// ------------------------------------------------------------------------- +#define cpExtensions_MPRObjects_Renderer( DIR ) \ + inline vtkRenderer* Get##DIR##Renderer( ) \ + { return( this->m_Renderers[ Self::MPRDirections_##DIR ] ); } \ + inline const vtkRenderer* Get##DIR##Renderer( ) const \ + { return( this->m_Renderers[ Self::MPRDirections_##DIR ] ); } + namespace cpExtensions { namespace Visualization @@ -33,38 +40,75 @@ namespace cpExtensions typedef MPRActors::TEnterCommand TEnterCommand; typedef MPRActors::TLeaveCommand TLeaveCommand; + enum MPRDirections + { + MPRDirections_X = 0, + MPRDirections_Y = 1, + MPRDirections_Z = 2, + MPRDirections_W = 3 + }; + public: vtkTypeMacro( MPRObjects, vtkObject ); + cpExtensions_MPRObjects_Renderer( X ); + cpExtensions_MPRObjects_Renderer( Y ); + cpExtensions_MPRObjects_Renderer( Z ); + cpExtensions_MPRObjects_Renderer( W ); + public: // Creation static MPRObjects* New( ); + // Association void SetRenderWindows( - vtkRenderWindow* wx, vtkRenderWindow* wy, - vtkRenderWindow* wz, vtkRenderWindow* w3D + vtkRenderWindow* x, vtkRenderWindow* y, + vtkRenderWindow* z, vtkRenderWindow* w ); - void AddImage( vtkImageData* image ); - void ClearAll( ); - - void ResetCamera( const int& id ); - void ResetCameras( ); - void Render( const int& id, const double& t ); - void RenderAll( const double& t ); - vtkRenderer* GetXRenderer( ); - vtkRenderer* GetYRenderer( ); - vtkRenderer* GetZRenderer( ); - vtkRenderer* Get3DRenderer( ); - const vtkRenderer* GetXRenderer( ) const; - const vtkRenderer* GetYRenderer( ) const; - const vtkRenderer* GetZRenderer( ) const; - const vtkRenderer* Get3DRenderer( ) const; - - MPRActors* GetMPRActors( ); - const MPRActors* GetMPRActors( ) const; + void SetInputConnection( vtkAlgorithmOutput* aout ); + void SetInputImage( vtkImageData* data ); + int AddBinaryConnection( + vtkAlgorithmOutput* aout, + const double& r, const double& g, const double& b + ); + int AddBinaryImage( + vtkImageData* data, + const double& r, const double& g, const double& b + ); + void Show( ); + void Hide( ); + void Clear( ); + + vtkImageData* GetInputImage( ); + const vtkImageData* GetInputImage( ) const; + unsigned int GetNumberOfImages( ) const; + + void SetInterpolate( bool v ); + void InterpolateOn( ); + void InterpolateOff( ); + + double GetMinWindow( ) const; + double GetMaxWindow( ) const; + double GetMinLevel( ) const; + double GetMaxLevel( ) const; double GetWindow( ) const; double GetLevel( ) const; + void SetWindow( double w ); + void SetLevel( double l ); + void SetWindowLevel( double w, double l ); + void ResetWindowLevel( ); + + int GetSliceNumber( const int& axis ) const; + int GetSliceNumberMinValue( const int& axis ) const; + int GetSliceNumberMaxValue( const int& axis ) const; + void SetSliceNumber( const int& axis, const int& slice ); + void SetSlice( const int& axis, double* pos ); + + void Render( const double& t ); + void Render( const int& axis, const double& t ); + void ResetCamera( const int& axis ); + void ResetCameras( ); protected: MPRObjects( );