diff --git a/modules/gui/src/scene_win/entity_node.cc b/modules/gui/src/scene_win/entity_node.cc index 56d2384304cbf4dd6a3fb82f891896dfcac86a5f..6f0e4abf2751ad44d01fd1c5ae2765a97fe026c7 100644 --- a/modules/gui/src/scene_win/entity_node.cc +++ b/modules/gui/src/scene_win/entity_node.cc @@ -21,9 +21,12 @@ #include <QFont> #include <QString> +#include <ost/mol/query.hh> +#include <ost/mol/query_view_wrapper.hh> +#include <ost/mol/view_type_fw.hh> + #include <ost/gui/gosty_app.hh> #include <ost/gui/scene_win/scene_win.hh> -#include <ost/mol/query_view_wrapper.hh> #include "current_selection_node.hh" #include "entity_part_node.hh" @@ -43,6 +46,17 @@ EntityNode::EntityNode(gfx::EntityP& entity, SceneNode* parent): new RenderModesNode(entity, this); + SceneNode* chain_node = new LabelNode("Chains",this); + model->AddNode(this, chain_node); + mol::EntityView view = entity->GetView(); + mol::ChainViewList chains = view.GetChainList(); + for(unsigned int i = 0; i<chains.size();i++){ + QString name = chains[i].GetName().c_str(); + name = (name.size() == 0 || name == " ")? "No name" : name; + mol::Query query("cname='"+chains[i].GetName()+"'"); + model->AddNode(chain_node,new EntityPartNode(name,entity, mol::QueryViewWrapper(query,view),chain_node)); + } + SceneNode* quick_selection = new LabelNode("Quick Selection",this); model->AddNode(this, quick_selection);