diff --git a/modules/gui/pymod/export_scene_selection.cc b/modules/gui/pymod/export_scene_selection.cc index bae499fc5a842284e94f0738d283cf214c8ad36c..239826abaf0f2a2d4e0708274d7415d1dba586bb 100644 --- a/modules/gui/pymod/export_scene_selection.cc +++ b/modules/gui/pymod/export_scene_selection.cc @@ -30,7 +30,9 @@ void export_SceneSelection() class_<SceneSelection, boost::noncopyable>("SceneSelection",no_init) .def("Instance", &SceneSelection::Instance, return_value_policy<reference_existing_object>()).staticmethod("Instance") - .def("GetActiveNode",&SceneSelection::GetActiveNode) .def("GetActiveNodeCount",&SceneSelection::GetActiveNodeCount) + .def("GetActiveNode",&SceneSelection::GetActiveNode) + .def("GetActiveViewCount", &SceneSelection::GetActiveViewCount) + .def("GetActiveView", &SceneSelection::GetActiveView) ; } diff --git a/modules/gui/src/scene_selection.cc b/modules/gui/src/scene_selection.cc index d0ba0039ad7a4710ff7a0e0397e70734927c7e0d..f8aa76bb45623248b19a0e840a1b7060a62e7e12 100644 --- a/modules/gui/src/scene_selection.cc +++ b/modules/gui/src/scene_selection.cc @@ -50,7 +50,7 @@ void SceneSelection::SetActiveNodes(gfx::NodePtrList nodes, gfx::EntityP entity, views_ = views; } -gfx::GfxNodeP SceneSelection::GetActiveNode(unsigned int pos){ +gfx::GfxNodeP SceneSelection::GetActiveNode(unsigned int pos) const{ if(pos >= 0 && pos < nodes_.size()){ return nodes_[pos]; } @@ -59,14 +59,24 @@ gfx::GfxNodeP SceneSelection::GetActiveNode(unsigned int pos){ } } -int SceneSelection::GetActiveNodeCount(){ +int SceneSelection::GetActiveNodeCount() const{ return nodes_.size(); } -int SceneSelection::GetActiveViewCount(){ +int SceneSelection::GetActiveViewCount() const{ return views_.size(); } +mol::EntityView SceneSelection::GetActiveView(unsigned int pos) const{ + if(pos >=0 && pos < views_.size()){ + return views_[pos].GetEntityView(); + } + else{ + throw Error("Index out of bounds: There is no active vies at the given position"); + } +} + + SceneSelection* SceneSelection::Instance() { if (!SceneSelection::scene_selection_) { SceneSelection::scene_selection_=new SceneSelection; @@ -217,7 +227,7 @@ void SceneSelection::MakeHidden(){ } } -gfx::EntityP SceneSelection::GetViewEntity(){ +gfx::EntityP SceneSelection::GetViewEntity() const{ return view_entity_; } diff --git a/modules/gui/src/scene_selection.hh b/modules/gui/src/scene_selection.hh index dd89f19f7027026c703cfb9094e4bae32a14b376..079b25a962cff04498310612d4f64cd642a10400 100644 --- a/modules/gui/src/scene_selection.hh +++ b/modules/gui/src/scene_selection.hh @@ -35,10 +35,11 @@ class DLLEXPORT_OST_GUI SceneSelection : public QObject { Q_OBJECT public: static SceneSelection* Instance(); - gfx::GfxNodeP GetActiveNode(unsigned int pos); - int GetActiveNodeCount(); - int GetActiveViewCount(); - gfx::EntityP GetViewEntity(); + int GetActiveNodeCount() const; + gfx::GfxNodeP GetActiveNode(unsigned int pos) const; + int GetActiveViewCount() const; + mol::EntityView GetActiveView(unsigned int pos) const; + gfx::EntityP GetViewEntity() const; public slots: void CenterOnObjects(); diff --git a/modules/gui/src/scene_win/context_menu.hh b/modules/gui/src/scene_win/context_menu.hh index 41b38864f44ae319817c60a40f7eb69d8b1a3f97..28a1dab0f54b0cb750613010d147c2ffce9b0d41 100644 --- a/modules/gui/src/scene_win/context_menu.hh +++ b/modules/gui/src/scene_win/context_menu.hh @@ -32,14 +32,6 @@ namespace ost { namespace gui { -enum ContextMenuType { - GFX_OBJECTS = 1, - ENTITIES, - ENTITY_VIEWS, - MIX -}; - - class DLLEXPORT_OST_GUI ContextMenu : public QObject { Q_OBJECT public: @@ -56,8 +48,6 @@ private slots: private: - gui::ContextMenuType GetType(); - QTreeView* view_; SceneWinModel* model_; }; diff --git a/modules/gui/src/scene_win/entity_node.cc b/modules/gui/src/scene_win/entity_node.cc index 3b10dbbba297927ccceeb51c90268f74b5be25c5..a133a67b24072c738b7bfbc78eed3f127ce07025 100644 --- a/modules/gui/src/scene_win/entity_node.cc +++ b/modules/gui/src/scene_win/entity_node.cc @@ -61,7 +61,7 @@ EntityNode::EntityNode(gfx::EntityP& entity, SceneNode* parent): model->AddNode(this, node); } -SceneNode* EntityNode::GetCustomViewNode(){ +SceneNode* EntityNode::GetCustomViewNode() const{ return custom_view_; } diff --git a/modules/gui/src/scene_win/entity_node.hh b/modules/gui/src/scene_win/entity_node.hh index fa776f37726282ead07b0fc60877e39dba163357..8b716ec1170ea81577556da46918cb8461164b29 100644 --- a/modules/gui/src/scene_win/entity_node.hh +++ b/modules/gui/src/scene_win/entity_node.hh @@ -39,7 +39,7 @@ class DLLEXPORT_OST_GUI EntityNode : public GfxSceneNode { public: EntityNode(gfx::EntityP& entity, SceneNode* node_parent); - SceneNode* GetCustomViewNode(); + SceneNode* GetCustomViewNode() const; private: SceneNode* custom_view_; diff --git a/modules/gui/src/scene_win/entity_part_node.cc b/modules/gui/src/scene_win/entity_part_node.cc index cfa59678093e354f499e3fbd8ef7b2c37af7e230..dd56f2484a9a355bed0745c3e9f4524ab652fe10 100644 --- a/modules/gui/src/scene_win/entity_part_node.cc +++ b/modules/gui/src/scene_win/entity_part_node.cc @@ -67,7 +67,7 @@ void EntityPartNode::SetVisible(bool visible){ visible_ = visible; } -bool EntityPartNode::GetVisible(){ +bool EntityPartNode::GetVisible() const{ return visible_; } diff --git a/modules/gui/src/scene_win/entity_part_node.hh b/modules/gui/src/scene_win/entity_part_node.hh index 191350d3465f37a616a62e526728030e205f882a..7f7d3629784aa26e6362011f5f428b03d166ebd7 100644 --- a/modules/gui/src/scene_win/entity_part_node.hh +++ b/modules/gui/src/scene_win/entity_part_node.hh @@ -55,7 +55,7 @@ public: protected: virtual void SetVisible(bool visible); - virtual bool GetVisible(); + virtual bool GetVisible() const; private: QString name_; diff --git a/modules/gui/src/scene_win/render_modes_node.cc b/modules/gui/src/scene_win/render_modes_node.cc index 02cfae68a3803a0c02c85f942a5af4197be8f046..0e46a1a03ea6ef71b9d8a1f2d352cf0542547071 100644 --- a/modules/gui/src/scene_win/render_modes_node.cc +++ b/modules/gui/src/scene_win/render_modes_node.cc @@ -71,7 +71,7 @@ void RenderModesNode::Update(){ } -gfx::GfxNodeP RenderModesNode::GetGfxNode(){ +gfx::GfxNodeP RenderModesNode::GetGfxNode() const{ return node_; } diff --git a/modules/gui/src/scene_win/render_modes_node.hh b/modules/gui/src/scene_win/render_modes_node.hh index 691f0d094094d2213f5973f7021cc3514f21e12b..231bf41bf62a81fad869aebdfde1063a8fd42740 100644 --- a/modules/gui/src/scene_win/render_modes_node.hh +++ b/modules/gui/src/scene_win/render_modes_node.hh @@ -48,7 +48,7 @@ public: RenderModesNode(gfx::EntityP entity, SceneNode* node_parent ); virtual void RenderModeChanged(); - gfx::GfxNodeP GetGfxNode(); + gfx::GfxNodeP GetGfxNode() const; private: void Update(); diff --git a/modules/gui/src/scene_win/scene_win.cc b/modules/gui/src/scene_win/scene_win.cc index 8602fb2cc69dfde9ff305e91fe02ef7997f60045..1a8f5c68e1c125ffb2886e2fc4df581c89380015 100644 --- a/modules/gui/src/scene_win/scene_win.cc +++ b/modules/gui/src/scene_win/scene_win.cc @@ -91,7 +91,7 @@ void SceneWin::OnSelectionChange(const QItemSelection& sel, emit this->ActiveNodesChanged(); } -SceneWinModel* SceneWin::GetModel(){ +SceneWinModel* SceneWin::GetModel() const{ return model_; } diff --git a/modules/gui/src/scene_win/scene_win.hh b/modules/gui/src/scene_win/scene_win.hh index 09d9b139c9b16f79cf5b1f5070861fb54f16cc0d..0cdf11540e601f49d5dde33c27a5fbc8f4b64b59 100644 --- a/modules/gui/src/scene_win/scene_win.hh +++ b/modules/gui/src/scene_win/scene_win.hh @@ -60,7 +60,7 @@ public slots: void ContextMenuRequested(const QPoint& pos); - SceneWinModel* GetModel(); + SceneWinModel* GetModel() const; void Update();