00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef OST_GUI_SCENE_SELECTION_HH
00020 #define OST_GUI_SCENE_SELECTION_HH
00021
00022 #include <QObject>
00023 #include <QMenu>
00024 #include <QPoint>
00025
00026 #include <ost/mol/query_view_wrapper.hh>
00027
00028 #include <ost/gfx/entity.hh>
00029 #include <ost/gfx/gfx_node_fw.hh>
00030 #include <ost/gui/module_config.hh>
00031
00032 namespace ost { namespace gui {
00033
00034 class DLLEXPORT_OST_GUI SceneSelection : public QObject {
00035 Q_OBJECT
00036 public:
00037 static SceneSelection* Instance();
00038 int GetActiveNodeCount() const;
00039 gfx::GfxNodeP GetActiveNode(unsigned int pos) const;
00040 int GetActiveViewCount() const;
00041 mol::EntityView GetActiveView(unsigned int pos) const;
00042 gfx::EntityP GetViewEntity() const;
00043
00044 public slots:
00045 void CenterOnObjects();
00046 void Delete();
00047 #if OST_IMG_ENABLED
00048 void ViewDensitySlices();
00049 void ShowDownsampledMap();
00050 void ShowOriginalMap();
00051 #endif // OST_IMG_ENABLED
00052 void CopyViews();
00053 void Select();
00054 void Deselect();
00055 void Show();
00056 void Hide();
00057 void SelectAllViews();
00058 void DeselectAllViews();
00059 void SelectViews();
00060 void MakeVisible();
00061 void MakeHidden();
00062 void ShowExclusive();
00063 void HideExclusive();
00064 mol::EntityView GetViewUnion();
00065
00066
00067 private slots:
00068 void SetActiveNodes(gfx::NodePtrList nodes, gfx::EntityP entity, mol::QueryViewWrapperList views);
00069
00070 private:
00071 SceneSelection();
00072 gfx::NodePtrList nodes_;
00073 gfx::EntityP view_entity_;
00074 mol::QueryViewWrapperList views_;
00075 static SceneSelection* scene_selection_;
00076 QMenu* menu_;
00077 };
00078
00079 }}
00080
00081 #endif