1 #ifndef __CPPLUGINS__INTERFACE__SIMPLEMPRWIDGET__H__
2 #define __CPPLUGINS__INTERFACE__SIMPLEMPRWIDGET__H__
4 #include <cpPlugins/Interface/cpPlugins_Interface_Export.h>
5 #include <cpPlugins/Interface/Config.h>
7 #ifdef cpPlugins_Interface_QT4
14 #include <vtkSmartPointer.h>
15 #include <vtkImageData.h>
16 #include <vtkPolyDataMapper.h>
17 #include <vtkPolyDataNormals.h>
18 #include <vtkQuadricLODActor.h>
19 #include <vtkStripper.h>
21 #include <cpExtensions/Visualization/MPRObjects.h>
23 // -------------------------------------------------------------------------
24 class QTreeWidgetItem;
29 class SimpleMPRWidget;
32 // -------------------------------------------------------------------------
37 // Some forward declarations
42 class cpPlugins_Interface_EXPORT SimpleMPRWidget
48 typedef SimpleMPRWidget Self;
49 typedef cpExtensions::Visualization::MPRObjects TMPRObjects;
51 typedef TMPRObjects::TStyle TStyle;
52 typedef TMPRObjects::TMouseCommand TMouseCommand;
53 typedef TMPRObjects::TMouseWheelCommand TMouseWheelCommand;
54 typedef TMPRObjects::TKeyCommand TKeyCommand;
55 typedef TMPRObjects::TVoidCommand TVoidCommand;
56 typedef TMPRObjects::TMouseMoveCommand TMouseMoveCommand;
57 typedef TMPRObjects::TMouseClickCommand TMouseClickCommand;
58 typedef TMPRObjects::TMouseDoubleClickCommand TMouseDoubleClickCommand;
59 typedef TMPRObjects::TExposeCommand TExposeCommand;
60 typedef TMPRObjects::TConfigureCommand TConfigureCommand;
61 typedef TMPRObjects::TEnterCommand TEnterCommand;
62 typedef TMPRObjects::TLeaveCommand TLeaveCommand;
65 explicit SimpleMPRWidget( QWidget* parent = 0 );
66 virtual ~SimpleMPRWidget( );
69 unsigned int GetNumberOfData( ) const;
71 DataObject* data, const std::string& name,
72 const std::string& parent
74 const std::string& GetMainImage( ) const;
75 bool SetMainImage( const std::string& name );
76 void DeleteData( const std::string& name );
77 void DeleteAllData( );
79 // Some visualization accessors
81 const std::string& name,
82 const double& r, const double& g, const double& b
84 void ShowData( const std::string& name );
85 void HideData( const std::string& name );
87 vtkRenderWindowInteractor* GetInteractor( unsigned int i );
89 // Visual objects accessors
90 std::string GetSelectedData( ) const;
94 QTreeWidgetItem* _FindItemInTree( const std::string& name ) const;
95 QTreeWidgetItem* _UpdateTreeItem(
96 const std::string& name,
97 const std::string& parent
102 void _SyncBottom( int a, int b );
103 void _SyncTop( int a, int b );
106 static double cm_Colors[ 8 ][ 3 ];
108 Ui::SimpleMPRWidget* m_UI;
109 vtkSmartPointer< TMPRObjects > m_MPRObjects;
110 QVTKWidget* m_VTK[ 4 ];
115 vtkPolyDataNormals* Normals;
116 vtkStripper* Stripper;
117 vtkPolyDataMapper* Mapper;
118 vtkQuadricLODActor* Actor;
121 virtual ~PolyDataActor( );
122 void Configure( vtkPolyData* pd );
127 enum { IMAGE, MESH } Tag;
135 Data& operator=( const Data& data );
137 DataObject* GetSourceDataObject( );
138 const DataObject* GetSourceDataObject( ) const;
139 void SetSourceDataObject( DataObject* dobj );
141 vtkImageData* GetImage( );
142 vtkPolyData* GetMesh( );
143 vtkProp* GetMeshActor( );
146 std::string m_MainImage;
147 std::map< std::string, Data > m_Data;
148 std::map< std::string, std::string > m_Tree;
155 #endif // cpPlugins_Interface_QT4
157 #endif // __CPPLUGINS__INTERFACE__SIMPLEMPRWIDGET__H__