Skip to content
Snippets Groups Projects
Select Git revision
  • d11ad124232256e4824eda056b29868be0d0e845
  • master default protected
  • develop protected
  • cmake_boost_refactor
  • ubuntu_ci
  • mmtf
  • non-orthogonal-maps
  • no_boost_filesystem
  • data_viewer
  • 2.11.1
  • 2.11.0
  • 2.10.0
  • 2.9.3
  • 2.9.2
  • 2.9.1
  • 2.9.0
  • 2.8.0
  • 2.7.0
  • 2.6.1
  • 2.6.0
  • 2.6.0-rc4
  • 2.6.0-rc3
  • 2.6.0-rc2
  • 2.6.0-rc
  • 2.5.0
  • 2.5.0-rc2
  • 2.5.0-rc
  • 2.4.0
  • 2.4.0-rc2
29 results

export_gfx_node.cc

Blame
  • user avatar
    andreas authored
    the vector export helper had to be moved to geom because otherwise the geom export depends on base whose headers might not be staged at the time of the compilation of the geom exports
    3ca769bc
    History
    export_gfx_node.cc 2.42 KiB
    //------------------------------------------------------------------------------
    // This file is part of the OpenStructure project <www.openstructure.org>
    //
    // Copyright (C) 2008-2011 by the OpenStructure authors
    //
    // This library is free software; you can redistribute it and/or modify it under
    // the terms of the GNU Lesser General Public License as published by the Free
    // Software Foundation; either version 3.0 of the License, or (at your option)
    // any later version.
    // This library is distributed in the hope that it will be useful, but WITHOUT
    // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
    // FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
    // details.
    //
    // You should have received a copy of the GNU Lesser General Public License
    // along with this library; if not, write to the Free Software Foundation, Inc.,
    // 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/geom/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;
      void (GfxNode::* node_rem1)(GfxObjP) = &GfxNode::Remove;
      void (GfxNode::* node_add2)(GfxNodeP) = &GfxNode::Add;
      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(geom::VectorAdditions<GfxNodeVector>())
      ;
      class_<GfxNode, GfxNodeP, 
             boost::noncopyable>("GfxNode", init<const String&>())
        .def("GetName",&GfxNode::GetName)
        .def("Hide",&GfxNode::Hide)
        .def("Show",&GfxNode::Show)
        .def("IsVisible",&GfxNode::IsVisible)
        .def("Add",node_add1)
        .def("Remove",node_rem1)
        .def("Add",node_add2)
        .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>()))
        ;
    }