-#ifndef __CPEXTENSIONS__QT__SIMPLEMPRWIDGET__H__
-#define __CPEXTENSIONS__QT__SIMPLEMPRWIDGET__H__
+#ifndef __cpExtensions__QT__SimpleMPRWidget__h__
+#define __cpExtensions__QT__SimpleMPRWidget__h__
#include <cpExtensions/Config.h>
#ifdef cpExtensions_QT4
+#include <cpExtensions/QT/ActorsWidgetInterface.h>
#include <QWidget>
-
-#include <cpExtensions/Visualization/ImageSliceActors.h>
-#include <vtkRenderer.h>
#include <vtkSmartPointer.h>
-
-/*
- #include <map>
- #include <string>
- #include <vtkSmartPointer.h>
- #include <vtkImageData.h>
- #include <vtkPolyDataMapper.h>
- #include <vtkPolyDataNormals.h>
- #include <vtkQuadricLODActor.h>
- #include <vtkStripper.h>
- #include <cpExtensions/Visualization/MPRObjects.h>
-*/
+#include <map>
+#include <set>
// -------------------------------------------------------------------------
-// TODO: 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::ImageSliceActors TActors;
- /* TODO
- 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
- void SetMainImage( vtkImageData* image );
-
- /* TODO
- 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 );
- void SetWindowLevel( const double& w, const double& l );
- double GetWindow( ) const;
- double GetLevel( ) const;
-
- vtkRenderWindowInteractor* GetInteractor( unsigned int i );
-
- // Visual objects accessors
- std::string GetSelectedData( ) const;
- vtkProp* GetProp( const std::string& name );
- */
+ 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< 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 );
protected:
Ui::SimpleMPRWidget* m_UI;
- QVTKWidget* m_VTK[ 4 ];
-
- vtkSmartPointer< vtkRenderer > m_Renderers[ 4 ];
- vtkSmartPointer< TActors > m_2DSlices[ 3 ];
- vtkSmartPointer< TActors > m_3DSlices[ 3 ];
-
- /* TODO
- static double cm_Colors[ 8 ][ 3 ];
- vtkSmartPointer< TMPRObjects > m_MPRObjects;
- 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;
- */
+
+ ImageWidget* m_XImage;
+ ImageWidget* m_YImage;
+ ImageWidget* m_ZImage;
+ MPR3DWidget* m_3DView;
+
+ std::string m_MainImageName;
+ vtkSmartPointer< vtkImageData > m_MainImage;
};
} // ecapseman
#endif // cpExtensions_QT4
-#endif // __CPEXTENSIONS__QT__SIMPLEMPRWIDGET__H__
+#endif // __cpExtensions__QT__SimpleMPRWidget__h__
// eof - $RCSfile$