X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpExtensions%2FQT%2FSimpleMPRWidget.h;h=bc07ed35eb766466bcec6e043967973226d0dd14;hb=9af34b55ea1d60eef3608aede00f9ef5a16dccdf;hp=c4d5ec5e3e975cd94cc8500a373744ac531a2dcd;hpb=1b0022070ff3b5f80f6f8c8b87f73032f5685eaf;p=cpPlugins.git diff --git a/lib/cpExtensions/QT/SimpleMPRWidget.h b/lib/cpExtensions/QT/SimpleMPRWidget.h index c4d5ec5..bc07ed3 100644 --- a/lib/cpExtensions/QT/SimpleMPRWidget.h +++ b/lib/cpExtensions/QT/SimpleMPRWidget.h @@ -1,147 +1,135 @@ -#ifndef __CPEXTENSIONS__QT__SIMPLEMPRWIDGET__H__ -#define __CPEXTENSIONS__QT__SIMPLEMPRWIDGET__H__ +#ifndef __cpExtensions__QT__SimpleMPRWidget__h__ +#define __cpExtensions__QT__SimpleMPRWidget__h__ #include - -#ifdef cpExtensions_QT4 - -#include -#include - +#include #include - #include -#include -#include -#include -#include -#include - -#include +#include +#include // ------------------------------------------------------------------------- -class QTreeWidgetItem; -class QVTKWidget; +class vtkDataSet; +class vtkProp; +class vtkPropCollection; -namespace Ui -{ - class SimpleMPRWidget; -} +namespace Ui { class SimpleMPRWidget; } // ------------------------------------------------------------------------- namespace cpExtensions { namespace QT { + class MPR3DWidget; + class ImageWidget; + /** */ class cpExtensions_EXPORT SimpleMPRWidget - : public QWidget + : public QWidget, + public ActorsWidgetInterface { Q_OBJECT; public: - typedef SimpleMPRWidget Self; - - typedef cpExtensions::Visualization::MPRObjects TMPRObjects; - typedef TMPRObjects::TStyle TStyle; - typedef TMPRObjects::TMouseCommand TMouseCommand; - typedef TMPRObjects::TMouseWheelCommand TMouseWheelCommand; - typedef TMPRObjects::TKeyCommand TKeyCommand; - typedef TMPRObjects::TVoidCommand TVoidCommand; - typedef TMPRObjects::TMouseMoveCommand TMouseMoveCommand; - typedef TMPRObjects::TMouseClickCommand TMouseClickCommand; - typedef TMPRObjects::TMouseDoubleClickCommand TMouseDoubleClickCommand; - typedef TMPRObjects::TExposeCommand TExposeCommand; - typedef TMPRObjects::TConfigureCommand TConfigureCommand; - typedef TMPRObjects::TEnterCommand TEnterCommand; - typedef TMPRObjects::TLeaveCommand TLeaveCommand; + typedef SimpleMPRWidget Self; + typedef QWidget Superclass; + typedef ActorsWidgetInterface Superclass2; + + typedef vtkSmartPointer< vtkPropCollection > TProp; + typedef std::set< TProp > TProps; + + // typedef cpExtensions::Visualization::MeshActor TMeshActor; public: - explicit SimpleMPRWidget( QWidget* parent = 0 ); + explicit SimpleMPRWidget( QWidget* parent = NULL, Qt::WindowFlags f = 0 ); virtual ~SimpleMPRWidget( ); - // Data management - unsigned int GetNumberOfData( ) const; - bool AddData( - vtkImageData* data, const std::string& name, - const std::string& parent - ); - bool AddData( - vtkPolyData* data, const std::string& name - ); - const std::string& GetMainImage( ) const; - bool SetMainImage( const std::string& name ); - void DeleteData( const std::string& name ); - void DeleteAllData( ); - - // Some qt accessors - void SetDataColor( - const std::string& name, - const double& r, const double& g, const double& b - ); - void ShowData( const std::string& name ); - void HideData( const std::string& name ); - - vtkRenderWindowInteractor* GetInteractor( unsigned int i ); - - // Visual objects accessors - std::string GetSelectedData( ) const; - + void Configure( char q1, char q2, char q3, char q4 ); + + bool HasImage( ) const; + void SetImage( vtkImageData* image, const std::string& name ); + + bool Add( vtkDataSet* data, const std::string& name ); + + TProps GetViewProps( const std::string& name ) const; + TProps GetImageProps( ) const; + + vtkRenderWindowInteractor* GetXInteractor( ); + const vtkRenderWindowInteractor* GetXInteractor( ) const; + vtkRenderWindowInteractor* GetYInteractor( ); + const vtkRenderWindowInteractor* GetYInteractor( ) const; + vtkRenderWindowInteractor* GetZInteractor( ); + const vtkRenderWindowInteractor* GetZInteractor( ) const; + vtkRenderWindowInteractor* GetWInteractor( ); + const vtkRenderWindowInteractor* GetWInteractor( ) const; + + vtkRenderWindow* GetXRenderWindow( ); + const vtkRenderWindow* GetXRenderWindow( ) const; + vtkRenderWindow* GetYRenderWindow( ); + const vtkRenderWindow* GetYRenderWindow( ) const; + vtkRenderWindow* GetZRenderWindow( ); + const vtkRenderWindow* GetZRenderWindow( ) const; + vtkRenderWindow* GetWRenderWindow( ); + const vtkRenderWindow* GetWRenderWindow( ) const; + + void ResetCameras( ); + void Render( ); + + virtual std::set< vtkRenderWindowInteractor* > GetInteractors( ) const cpExtensions_OVERRIDE; + virtual std::set< std::string > GetActorsNames( ) const cpExtensions_OVERRIDE; + virtual bool IsWindowLevelImageActor( const std::string& name ) const cpExtensions_OVERRIDE; + virtual bool IsLUTImageActor( const std::string& name ) const cpExtensions_OVERRIDE; + virtual bool Is3DActor( const std::string& name ) const cpExtensions_OVERRIDE; + + virtual void GetScalarRange( const std::string& name, double r[ 2 ] ) const cpExtensions_OVERRIDE; + virtual void GetWindowLevel( const std::string& name, double wl[ 2 ] ) const cpExtensions_OVERRIDE; + virtual double GetWindow( const std::string& name ) const cpExtensions_OVERRIDE; + virtual double GetLevel( const std::string& name ) const cpExtensions_OVERRIDE; + virtual char GetImageInterpolation( const std::string& name ) const cpExtensions_OVERRIDE; + + virtual void GetColor( const std::string& name, double& r, double& g, double& b ) const cpExtensions_OVERRIDE; + virtual double GetOpacity( const std::string& name ) const cpExtensions_OVERRIDE; + virtual double GetPointSize( const std::string& name ) const cpExtensions_OVERRIDE; + virtual double GetLineWidth( const std::string& name ) const cpExtensions_OVERRIDE; + virtual int GetRepresentation( const std::string& name ) const cpExtensions_OVERRIDE; + + virtual void SetScalarRange( const std::string& name, double r[ 2 ] ) cpExtensions_OVERRIDE; + virtual void SetScalarRange( const std::string& name, double min, double max ) cpExtensions_OVERRIDE; + virtual void SetWindowLevel( const std::string& name, double wl[ 2 ] ) cpExtensions_OVERRIDE; + virtual void SetWindowLevel( const std::string& name, double w, double l ) cpExtensions_OVERRIDE; + virtual void SetWindow( const std::string& name, double w ) cpExtensions_OVERRIDE; + virtual void SetLevel( const std::string& name, double l ) cpExtensions_OVERRIDE; + virtual void SetImageInterpolation( const std::string& name, char i ) cpExtensions_OVERRIDE; + + virtual void SetColor( const std::string& name, double r, double g, double b ) cpExtensions_OVERRIDE; + virtual void SetOpacity( const std::string& name, double o ) cpExtensions_OVERRIDE; + virtual void SetPointSize( const std::string& name, double s ) cpExtensions_OVERRIDE; + virtual void SetLineWidth( const std::string& name, double w ) cpExtensions_OVERRIDE; + virtual void SetRepresentationToPoints( const std::string& name ) cpExtensions_OVERRIDE; + virtual void SetRepresentationToSurface( const std::string& name ) cpExtensions_OVERRIDE; + virtual void SetRepresentationToWireframe( const std::string& name ) cpExtensions_OVERRIDE; + private slots: void _SyncBottom( int a, int b ); void _SyncTop( int a, int b ); protected: - static double cm_Colors[ 8 ][ 3 ]; - - Ui::SimpleMPRWidget* m_UI; - vtkSmartPointer< TMPRObjects > m_MPRObjects; - QVTKWidget* m_VTK[ 4 ]; - - struct PolyDataActor - { - vtkPolyData* Mesh; - vtkPolyDataNormals* Normals; - vtkStripper* Stripper; - vtkPolyDataMapper* Mapper; - vtkQuadricLODActor* Actor; - - PolyDataActor( ); - virtual ~PolyDataActor( ); - void Configure( vtkPolyData* pd ); - }; - - struct Data - { - enum { IMAGE, MESH } Tag; - vtkImageData* Image; - PolyDataActor Mesh; - - Data( ); - virtual ~Data( ); - - Data& operator=( const Data& data ); - - void SetImageData( vtkImageData* data ); - void SetPolyData( vtkPolyData* data ); - - vtkImageData* GetImage( ); - vtkPolyData* GetMesh( ); - vtkProp* GetMeshActor( ); - }; - - std::string m_MainImage; - std::map< std::string, Data > m_Data; - std::map< std::string, std::string > m_Tree; + Ui::SimpleMPRWidget* m_UI; + + ImageWidget* m_XImage; + ImageWidget* m_YImage; + ImageWidget* m_ZImage; + MPR3DWidget* m_3DView; + + std::string m_MainImageName; + vtkSmartPointer< vtkImageData > m_MainImage; }; } // ecapseman } // ecapseman -#endif // cpExtensions_QT4 - -#endif // __CPEXTENSIONS__QT__SIMPLEMPRWIDGET__H__ +#endif // __cpExtensions__QT__SimpleMPRWidget__h__ // eof - $RCSfile$