X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpExtensions%2FVisualization%2FMPRObjects.h;h=c800fc1ce626b11602c066f54a10b7ed363341f3;hb=dbc5b32e13cf4a299ce29a5666a8e0a2ff5e62a8;hp=7d33f3f0698dd6e0b483beb7ba852705075d541e;hpb=dba64a6906e88d6023b2e6c9632da9fd41bfeb53;p=cpPlugins.git diff --git a/lib/cpExtensions/Visualization/MPRObjects.h b/lib/cpExtensions/Visualization/MPRObjects.h index 7d33f3f..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 @@ -19,38 +26,89 @@ namespace cpExtensions { public: typedef MPRObjects Self; - typedef cpExtensions::Visualization::MPRActors TMPRActors; + + typedef MPRActors::TStyle TStyle; + typedef MPRActors::TMouseCommand TMouseCommand; + typedef MPRActors::TMouseWheelCommand TMouseWheelCommand; + typedef MPRActors::TKeyCommand TKeyCommand; + typedef MPRActors::TVoidCommand TVoidCommand; + typedef MPRActors::TMouseMoveCommand TMouseMoveCommand; + typedef MPRActors::TMouseClickCommand TMouseClickCommand; + typedef MPRActors::TMouseDoubleClickCommand TMouseDoubleClickCommand; + typedef MPRActors::TExposeCommand TExposeCommand; + typedef MPRActors::TConfigureCommand TConfigureCommand; + 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 SetImage( vtkImageData* image ); - void AddAuxiliaryImage( vtkImageData* image ); - void ActivateInteractors( ); - void ResetCamera( const int& id ); + 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( ); - void Render( const int& id ); - void RenderAll( ); - vtkRenderer* GetXRenderer( ); - vtkRenderer* GetYRenderer( ); - vtkRenderer* GetZRenderer( ); - vtkRenderer* Get3DRenderer( ); - const vtkRenderer* GetXRenderer( ) const; - const vtkRenderer* GetYRenderer( ) const; - const vtkRenderer* GetZRenderer( ) const; - const vtkRenderer* Get3DRenderer( ) const; - - TMPRActors* GetMPRActors( ); - const TMPRActors* GetMPRActors( ) const; protected: MPRObjects( ); @@ -66,7 +124,7 @@ namespace cpExtensions vtkSmartPointer< vtkRenderWindow > m_Windows[ 4 ]; // Internal pipelines - vtkSmartPointer< TMPRActors > m_MPRActors; + vtkSmartPointer< MPRActors > m_MPRActors; vtkSmartPointer< vtkRenderer > m_Renderers[ 4 ]; };