diff --git a/modules/gfx/pymod/export_gfx_node.cc b/modules/gfx/pymod/export_gfx_node.cc index 07195c10050a85eed874e4d299fcf33bbdb76ba3..3bab8f34c7e3de34bfdd2377e7bf7f699c25ef96 100644 --- a/modules/gfx/pymod/export_gfx_node.cc +++ b/modules/gfx/pymod/export_gfx_node.cc @@ -17,12 +17,20 @@ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA //------------------------------------------------------------------------------ #include <boost/python.hpp> +#include <boost/python/suite/indexing/vector_indexing_suite.hpp> + using namespace boost::python; +#include <ost/export_helper/vector.hh> #include <ost/gfx/gfx_node.hh> + + using namespace ost; using namespace ost::gfx; + +const GfxNodeVector& (GfxNode::*get_children)() const=&GfxNode::GetChildren; + void export_GfxNode() { void (GfxNode::* node_add1)(GfxObjP) = &GfxNode::Add; @@ -31,6 +39,10 @@ void export_GfxNode() void (GfxNode::* node_rem2)(GfxNodeP) = &GfxNode::Remove; void (GfxNode::* node_rem3)(const String&) = &GfxNode::Remove; + class_<GfxNodeVector>("GfxNodeList", init<>()) + .def(vector_indexing_suite<GfxNodeVector, true>()) + .def(ost::VectorAdditions<GfxNodeVector>()) + ; class_<GfxNode, GfxNodeP, boost::noncopyable>("GfxNode", init<const String&>()) .def("GetName",&GfxNode::GetName) @@ -43,5 +55,8 @@ void export_GfxNode() .add_property("name", &GfxNode::GetName) .def("Remove",node_rem2) .def("Remove",node_rem3) + .add_property("parent", &GfxNode::GetParent) + .add_property("children", make_function(get_children, + return_value_policy<copy_const_reference>())) ; } diff --git a/modules/gfx/pymod/export_scene.cc b/modules/gfx/pymod/export_scene.cc index c97fb1114fc6b6c7931a6fdf430d84c5de8ecc87..bf590ea04f2734e404ca6d63ff1deb496adccbde 100644 --- a/modules/gfx/pymod/export_scene.cc +++ b/modules/gfx/pymod/export_scene.cc @@ -182,6 +182,7 @@ void export_Scene() .def("StopOffscreenMode",&Scene::StopOffscreenMode) .def("SetShadingMode",&Scene::SetShadingMode) .def("SetBeacon",&Scene::SetBeacon) + .add_property("root_node", &Scene::GetRootNode) .def("SetBeaconOff",&Scene::SetBeaconOff) .def("__getitem__",scene_getitem) ; diff --git a/modules/gui/pymod/export_tool.cc b/modules/gui/pymod/export_tool.cc index 1d050038fb3854d45b797b56994c6bbe872d55df..11ee78b910a08049730e2adec7a42fc297869724 100644 --- a/modules/gui/pymod/export_tool.cc +++ b/modules/gui/pymod/export_tool.cc @@ -250,9 +250,5 @@ void export_Tool() .def("GetQObject",&get_py_qobject<ToolOptionsWin>) .add_property("qobject", &get_py_qobject<ToolOptionsWin>) ; - - class_<gfx::NodePtrList>("NodePtrList", init<>()) - .def(vector_indexing_suite<gfx::NodePtrList, true >()) - ; }