1 #ifndef __CPEXTENSIONS__QT__SIMPLEMPRWIDGET__H__
2 #define __CPEXTENSIONS__QT__SIMPLEMPRWIDGET__H__
4 #include <cpExtensions/Config.h>
6 #ifdef cpExtensions_QT4
13 #include <vtkSmartPointer.h>
14 #include <vtkImageData.h>
15 #include <vtkPolyDataMapper.h>
16 #include <vtkPolyDataNormals.h>
17 #include <vtkQuadricLODActor.h>
18 #include <vtkStripper.h>
20 #include <cpExtensions/Visualization/MPRObjects.h>
22 // -------------------------------------------------------------------------
23 class QTreeWidgetItem;
28 class SimpleMPRWidget;
31 // -------------------------------------------------------------------------
32 namespace cpExtensions
38 class cpExtensions_EXPORT SimpleMPRWidget
44 typedef SimpleMPRWidget Self;
46 typedef cpExtensions::Visualization::MPRObjects TMPRObjects;
47 typedef TMPRObjects::TStyle TStyle;
48 typedef TMPRObjects::TMouseCommand TMouseCommand;
49 typedef TMPRObjects::TMouseWheelCommand TMouseWheelCommand;
50 typedef TMPRObjects::TKeyCommand TKeyCommand;
51 typedef TMPRObjects::TVoidCommand TVoidCommand;
52 typedef TMPRObjects::TMouseMoveCommand TMouseMoveCommand;
53 typedef TMPRObjects::TMouseClickCommand TMouseClickCommand;
54 typedef TMPRObjects::TMouseDoubleClickCommand TMouseDoubleClickCommand;
55 typedef TMPRObjects::TExposeCommand TExposeCommand;
56 typedef TMPRObjects::TConfigureCommand TConfigureCommand;
57 typedef TMPRObjects::TEnterCommand TEnterCommand;
58 typedef TMPRObjects::TLeaveCommand TLeaveCommand;
61 explicit SimpleMPRWidget( QWidget* parent = 0 );
62 virtual ~SimpleMPRWidget( );
65 unsigned int GetNumberOfData( ) const;
67 vtkImageData* data, const std::string& name,
68 const std::string& parent
71 vtkPolyData* data, const std::string& name
73 const std::string& GetMainImage( ) const;
74 bool SetMainImage( const std::string& name );
75 void DeleteData( const std::string& name );
76 void DeleteAllData( );
80 const std::string& name,
81 const double& r, const double& g, const double& b
83 void ShowData( const std::string& name );
84 void HideData( const std::string& name );
85 void SetWindowLevel( const double& w, const double& l );
86 double GetWindow( ) const;
87 double GetLevel( ) const;
89 vtkRenderWindowInteractor* GetInteractor( unsigned int i );
91 // Visual objects accessors
92 std::string GetSelectedData( ) const;
95 void _SyncBottom( int a, int b );
96 void _SyncTop( int a, int b );
99 static double cm_Colors[ 8 ][ 3 ];
101 Ui::SimpleMPRWidget* m_UI;
102 vtkSmartPointer< TMPRObjects > m_MPRObjects;
103 QVTKWidget* m_VTK[ 4 ];
108 vtkPolyDataNormals* Normals;
109 vtkStripper* Stripper;
110 vtkPolyDataMapper* Mapper;
111 vtkQuadricLODActor* Actor;
114 virtual ~PolyDataActor( );
115 void Configure( vtkPolyData* pd );
120 enum { IMAGE, MESH } Tag;
127 Data& operator=( const Data& data );
129 void SetImageData( vtkImageData* data );
130 void SetPolyData( vtkPolyData* data );
132 vtkImageData* GetImage( );
133 vtkPolyData* GetMesh( );
134 vtkProp* GetMeshActor( );
137 std::string m_MainImage;
138 std::map< std::string, Data > m_Data;
139 std::map< std::string, std::string > m_Tree;
146 #endif // cpExtensions_QT4
148 #endif // __CPEXTENSIONS__QT__SIMPLEMPRWIDGET__H__