diff --git a/modules/gui/src/sequence_viewer/sequence_viewer.cc b/modules/gui/src/sequence_viewer/sequence_viewer.cc index 9f9ea2750f31328d5bf17a28af21ccab18631a05..05d5d03cf1c64f68a374105eee97fe1bafb3b979 100644 --- a/modules/gui/src/sequence_viewer/sequence_viewer.cc +++ b/modules/gui/src/sequence_viewer/sequence_viewer.cc @@ -23,6 +23,9 @@ #include <ost/gfx/entity.hh> #include <ost/gfx/scene.hh> +#include <ost/gfx/gfx_node_visitor.hh> +#include <ost/gfx/gfx_node.hh> +#include <ost/gfx/gfx_object.hh> #include <ost/gui/widget_registry.hh> #include <ost/gui/gosty_app.hh> @@ -32,6 +35,15 @@ namespace ost { namespace gui { +struct GetNodesVisitor: public gfx::GfxNodeVisitor { + GetNodesVisitor(): nodes_() {} + virtual void VisitObject(gfx::GfxObj* o, const Stack& st) { + nodes_.push_back(o->shared_from_this()); + } + gfx::NodePtrList nodes_; + gfx::NodePtrList GetNodes(){return nodes_;} +}; + class SequenceViewerFactory: public WidgetFactory { public: SequenceViewerFactory() : @@ -50,6 +62,14 @@ SequenceViewer::SequenceViewer(QWidget* parent): { gfx::Scene::Instance().AttachObserver(this); this->SetDisplayStyle(SequenceViewer::LOOSE); + + gfx::GfxNodeP root_node = gfx::Scene::Instance().GetRootNode(); + GetNodesVisitor gnv; + gfx::Scene::Instance().Apply(gnv); + gfx::NodePtrList list = gnv.GetNodes(); + for(unsigned int i=0; i<list.size();i++){ + this->NodeAdded(list[i]); + } } SequenceViewer::~SequenceViewer()