Exemplo n.º 1
0
    def __init__(self):
        replacement = default_replacement
        replacement['::ompl::tools::Benchmark::benchmark'] = (
            'def("benchmark", &benchmarkWrapper)', \
        """
        void benchmarkWrapper(%s* obj, const ompl::tools::Benchmark::Request& request)
        {
            ompl::tools::Benchmark::Request req(request);
            req.useThreads = false;
            obj->benchmark(request);
        }
        """)
        replacement['printResultsInfo'] = ('def("printResultsInfo", &__printResultsInfo)', """
        std::string __printResultsInfo(%s* obj)
        {
            std::ostringstream s;
            obj->printResultsInfo(s);
            return s.str();
        }
        """)
        replacement['printLogs'] = ('def("printLogs", &__printLogs)', """
        std::string __printLogs(%s* obj)
        {
            std::ostringstream s;
            obj->printLogs(s);
            return s.str();
        }
        """)
        replacement['saveDataLog'] = ('def("saveDataLog", &__saveDataLog)', """
        std::string __saveDataLog(%s* obj)
        {
            std::ostringstream s;
            obj->saveDataLog(s);
            return s.str();
        }
        """)
        replacement['setPlannerSwitchEvent'] = (
            'def("setPlannerSwitchEvent", &__setPlannerSwitchEvent)', """
        void __setPlannerSwitchEvent(%s* obj, std::function<void(ompl::base::PlannerPtr)> event)
        {
            obj->setPlannerSwitchEvent(event);
        }
        """)
        replacement['setPreRunEvent'] = ('def("setPreRunEvent", &__setPreRunEvent)', """
        void __setPreRunEvent(%s* obj, std::function<void(ompl::base::PlannerPtr)> event)
        {
            obj->setPreRunEvent(event);
        }
        """)
        replacement['setPostRunEvent'] = ('def("setPostRunEvent", &__setPostRunEvent)', """
        void __setPostRunEvent(%s* obj,
        std::function<void(ompl::base::PlannerPtr, ompl::tools::Benchmark::RunProperties &)> event)
        {
            obj->setPostRunEvent(event);
        }
        """)

        code_generator_t.__init__(self, 'tools', \
            ['bindings/util', 'bindings/base', 'bindings/geometric', 'bindings/control'], \
            replacement, 1)
Exemplo n.º 2
0
 def __init__(self):
     replacement = default_replacement
     # A C++ call like "foo.printControl(control, std::cout)" will be replaced with
     # something more pythonesque: "print(foo.string(control))"
     replacement['printControl'] = ('def("string", &__printControl)', """
     std::string __printControl(%s* space, ompl::control::Control* control)
     {
         std::ostringstream s;
         space->printControl(control, s);
         return s.str();
     }
     """)
     replacement['::ompl::control::ODESolver::getStatePropagator'] = ("""
     def("getStatePropagator", &getStatePropagator1);
     ODESolver_exposer.def("getStatePropagator", &getStatePropagator2);
     ODESolver_exposer.staticmethod( "getStatePropagator" )""", """
     // %s
     ompl::control::StatePropagatorPtr getStatePropagator2(ompl::control::ODESolverPtr solver,
         const ompl::control::ODESolver::PostPropagationEvent &postEvent)
     {
         return ompl::control::ODESolver::getStatePropagator(solver, postEvent);
     }
     ompl::control::StatePropagatorPtr getStatePropagator1(ompl::control::ODESolverPtr solver)
     {
         return ompl::control::ODESolver::getStatePropagator(solver);
     }
     """)
     code_generator_t.__init__(self, 'control', ['bindings/util', 'bindings/base', 'bindings/geometric'], replacement)
Exemplo n.º 3
0
 def __init__(self):
     replacement = default_replacement
     replacement['printAsMatrix'] = ('def("printAsMatrix", &__printAsMatrix)', """
     std::string __printAsMatrix(%s* path)
     {
         std::ostringstream s;
         path->printAsMatrix(s);
         return s.str();
     }
     """)
     code_generator_t.__init__(self, 'geometric', ['bindings/util', 'bindings/base'], replacement)
Exemplo n.º 4
0
    def __init__(self):
        replacement = default_replacement
        replacement['::ompl::tools::Benchmark::benchmark'] = ('def("benchmark", &benchmarkWrapper)', """
        void benchmarkWrapper(%s* obj, const ompl::tools::Benchmark::Request& request)
        {
            ompl::tools::Benchmark::Request req(request);
            req.useThreads = false;
            obj->benchmark(request);
        }
        """)

        code_generator_t.__init__(self, 'tools',
            ['bindings/util', 'bindings/base', 'bindings/geometric', 'bindings/control'], replacement)
Exemplo n.º 5
0
 def __init__(self):
     replacement = default_replacement
     # A C++ call like "foo.printControl(control, std::cout)" will be replaced with
     # something more pythonesque: "print(foo.string(control))"
     replacement['printControl'] = ('def("string", &__printControl)', """
     std::string __printControl(%s* space, ompl::control::Control* control)
     {
         std::ostringstream s;
         space->printControl(control, s);
         return s.str();
     }
     """)
     code_generator_t.__init__(self, 'control', ['bindings/util', 'bindings/base', 'bindings/geometric'], replacement)
    def __init__(self):
        replacement = default_replacement
        replacement['::ompl::tools::Benchmark::benchmark'] = ('def("benchmark", &benchmarkWrapper)', \
        """
        void benchmarkWrapper(%s* obj, const ompl::tools::Benchmark::Request& request)
        {
            ompl::tools::Benchmark::Request req(request);
            req.useThreads = false;
            obj->benchmark(request);
        }
        """)
        replacement['printResultsInfo'] = ('def("printResultsInfo", &__printResultsInfo)', """
        std::string __printResultsInfo(%s* obj)
        {
            std::ostringstream s;
            obj->printResultsInfo(s);
            return s.str();
        }
        """)
        replacement['printLogs'] = ('def("printLogs", &__printLogs)', """
        std::string __printLogs(%s* obj)
        {
            std::ostringstream s;
            obj->printLogs(s);
            return s.str();
        }
        """)
        replacement['saveDataLog'] = ('def("saveDataLog", &__saveDataLog)', """
        std::string __saveDataLog(%s* obj)
        {
            std::ostringstream s;
            obj->saveDataLog(s);
            return s.str();
        }
        """)

        code_generator_t.__init__(self, 'tools', \
            ['bindings/util', 'bindings/base', 'bindings/geometric', 'bindings/control'], \
            replacement, 1)
Exemplo n.º 7
0
 def __init__(self):
     replacement = default_replacement
     # A C++ call like "foo.printControl(control, std::cout)" will be replaced with
     # something more pythonesque: "print(foo.string(control))"
     replacement['printControl'] = ('def("string", &__printControl)', """
     std::string __printControl(%s* space, ompl::control::Control* control)
     {
         std::ostringstream s;
         space->printControl(control, s);
         return s.str();
     }
     """)
     replacement['printAsMatrix'] = (
         'def("printAsMatrix", &__printAsMatrix)', """
     std::string __printAsMatrix(%s* path)
     {
         std::ostringstream s;
         path->printAsMatrix(s);
         return s.str();
     }
     """)
     replacement['::ompl::control::ODESolver::getStatePropagator'] = ("""
     def("getStatePropagator", &getStatePropagator1);
     ODESolver_exposer.def("getStatePropagator", &getStatePropagator2);
     ODESolver_exposer.staticmethod( "getStatePropagator" )""", """
     // %s
     ompl::control::StatePropagatorPtr getStatePropagator2(ompl::control::ODESolverPtr solver,
         const ompl::control::ODESolver::PostPropagationEvent &postEvent)
     {
         return ompl::control::ODESolver::getStatePropagator(solver, postEvent);
     }
     ompl::control::StatePropagatorPtr getStatePropagator1(ompl::control::ODESolverPtr solver)
     {
         return ompl::control::ODESolver::getStatePropagator(solver);
     }
     """)
     code_generator_t.__init__(self, 'control', \
         ['bindings/util', 'bindings/base', 'bindings/geometric'], replacement)
Exemplo n.º 8
0
    def __init__(self):
        replacement = default_replacement
        replacement['::ompl::tools::Benchmark::benchmark'] = ('def("benchmark", &benchmarkWrapper)', """
        void benchmarkWrapper(%s* obj, const ompl::tools::Benchmark::Request& request)
        {
            ompl::tools::Benchmark::Request req(request);
            req.useThreads = false;
            obj->benchmark(request);
        }
        """)
        replacement['printResultsInfo'] = ('def("printResultsInfo", &__printResultsInfo)', """
        std::string __printResultsInfo(%s* obj)
        {
            std::ostringstream s;
            obj->printResultsInfo(s);
            return s.str();
        }
        """)
        replacement['printLogs'] = ('def("printLogs", &__printLogs)', """
        std::string __printLogs(%s* obj)
        {
            std::ostringstream s;
            obj->printLogs(s);
            return s.str();
        }
        """)
        replacement['saveDataLog'] = ('def("saveDataLog", &__saveDataLog)', """
        std::string __saveDataLog(%s* obj)
        {
            std::ostringstream s;
            obj->saveDataLog(s);
            return s.str();
        }
        """)

        code_generator_t.__init__(self, 'tools',
            ['bindings/util', 'bindings/base', 'bindings/geometric', 'bindings/control'], replacement, 1)
Exemplo n.º 9
0
 def __init__(self):
     replacement = default_replacement
     # special case for abstract base class Path with pure virtual print method:
     replacement['::ompl::base::Path::print'] = ('def("__str__", bp::pure_virtual(&__str__))', """
     std::string __str__(%s* obj)
     {
         std::ostringstream s;
         obj->print(s);
         return s.str();
     }
     """)
     # A C++ call like "foo.printState(state, std::cout)" will be replaced with
     # something more pythonesque: "print(foo.string(state))"
     replacement['printState'] = ('def("string", &__printState)', """
     std::string __printState(%s* space, ompl::base::State* state)
     {
         std::ostringstream s;
         space->printState(state, s);
         return s.str();
     }
     """)
     # A C++ call like "foo.printProperties(std::cout)" will be replaced with
     # something more pythonesque: "print(foo.properties())"
     default_replacement['printProperties'] = ('def("properties", &__printProperties)', """
     std::string __printProperties(%s* obj)
     {
         std::ostringstream s;
         obj->printProperties(s);
         return s.str();
     }
     """)
     # A C++ call like "foo.printProjections(std::cout)" will be replaced with
     # something more pythonesque: "print(foo.projections())"
     replacement['printProjections'] = ('def("projections", &__printProjections)', """
     std::string __printProjections(%s* obj)
     {
         std::ostringstream s;
         obj->printProjections(s);
         return s.str();
     }
     """)
     # A C++ call like "foo.printProjection(projection, std::cout)" will be replaced with
     # something more pythonesque: "print(foo.projection())"
     replacement['printProjection'] = ('def("projection", &__printProjection)', """
     std::string __printProjection(%s* obj, const ompl::base::EuclideanProjection &projection)
     {
         std::ostringstream s;
         obj->printProjection(projection, s);
         return s.str();
     }
     """)
     # "StateSpace::Diagram(std::cout)" will be replaced with
     # something more pythonesque: "print(StateSpace.Diagram())"
     replacement['::ompl::base::StateSpace::Diagram'] = ('def("Diagram", &DiagramWrapper)', """
     std::string DiagramWrapper(%s* obj)
     {
         std::ostringstream s;
         obj->Diagram(s);
         return s.str();
     }
     """)
     # "StateSpace::List(std::cout)" will be replaced with
     # something more pythonesque: "print(StateSpace.List())"
     replacement['::ompl::base::StateSpace::List'] = ('def("List", &ListWrapper)', """
     std::string ListWrapper(%s* obj)
     {
         std::ostringstream s;
         obj->List(s);
         return s.str();
     }
     """)
     # "PlannerData::printGraphML(std::cout)" will be replaced with
     # something more pythonesque: "print(PlannerData.printGraphML())"
     replacement['::ompl::base::PlannerData::printGraphML'] = ('def("printGraphML", &__printGraphML)', """
     std::string __printGraphML(%s* obj)
     {
         std::ostringstream s;
         obj->printGraphML(s);
         return s.str();
     }
     """)
     # "PlannerData::printGraphviz(std::cout)" will be replaced with
     # something more pythonesque: "print(PlannerData.printGraphviz())"
     replacement['::ompl::base::PlannerData::printGraphviz'] = ('def("printGraphviz", &__printGraphviz)', """
     std::string __printGraphviz(%s* obj)
     {
         std::ostringstream s;
         obj->printGraphviz(s);
         return s.str();
     }
     """)
     code_generator_t.__init__(self, 'base', ['bindings/util'], replacement)
Exemplo n.º 10
0
 def __init__(self):
     replacement = default_replacement
     code_generator_t.__init__(self, 'morse', \
         ['bindings/util', 'bindings/base', 'bindings/geometric', 'bindings/control'], \
         replacement)
Exemplo n.º 11
0
 def __init__(self):
     replacement = default_replacement
     code_generator_t.__init__(self, 'util', None, replacement, 1)
Exemplo n.º 12
0
 def __init__(self):
     replacement = default_replacement
     # special case for abstract base class Path with pure virtual print method:
     replacement['::ompl::base::Path::print'] = ('def("__str__", bp::pure_virtual(&__str__))', \
     """std::string __str__(%s* obj)
     {
         std::ostringstream s;
         obj->print(s);
         return s.str();
     }
     """)
     # A C++ call like "foo.printState(state, std::cout)" will be replaced with
     # something more pythonesque: "print(foo.string(state))"
     replacement['printState'] = ('def("string", &__printState)', """
     std::string __printState(%s* space, ompl::base::State* state)
     {
         std::ostringstream s;
         space->printState(state, s);
         return s.str();
     }
     """)
     # A C++ call like "foo.printProperties(std::cout)" will be replaced with
     # something more pythonesque: "print(foo.properties())"
     replacement['printProperties'] = ('def("properties", &__printProperties)', """
     std::string __printProperties(%s* obj)
     {
         std::ostringstream s;
         obj->printProperties(s);
         return s.str();
     }
     """)
     # A C++ call like "foo.printProjections(std::cout)" will be replaced with
     # something more pythonesque: "print(foo.projections())"
     replacement['printProjections'] = ('def("projections", &__printProjections)', """
     std::string __printProjections(%s* obj)
     {
         std::ostringstream s;
         obj->printProjections(s);
         return s.str();
     }
     """)
     # A C++ call like "foo.printProjection(projection, std::cout)" will be replaced with
     # something more pythonesque: "print(foo.projection())"
     replacement['printProjection'] = ('def("projection", &__printProjection)', """
     std::string __printProjection(%s* obj, const Eigen::Ref<Eigen::VectorXd> &projection)
     {
         std::ostringstream s;
         obj->printProjection(projection, s);
         return s.str();
     }
     """)
     # "StateSpace::Diagram(std::cout)" will be replaced with
     # something more pythonesque: "print(StateSpace.Diagram())"
     replacement['::ompl::base::StateSpace::Diagram'] = ('def("Diagram", &DiagramWrapper)', """
     std::string DiagramWrapper(%s* obj)
     {
         std::ostringstream s;
         obj->Diagram(s);
         return s.str();
     }
     """)
     # "StateSpace::List(std::cout)" will be replaced with
     # something more pythonesque: "print(StateSpace.List())"
     replacement['::ompl::base::StateSpace::List'] = ('def("List", &ListWrapper)', """
     std::string ListWrapper(%s* obj)
     {
         std::ostringstream s;
         obj->List(s);
         return s.str();
     }
     """)
     # "PlannerData::printGraphML(std::cout)" will be replaced with
     # something more pythonesque: "print(PlannerData.printGraphML())"
     replacement['::ompl::base::PlannerData::printGraphML'] = \
     ('def("printGraphML", &__printGraphML)', """
     std::string __printGraphML(%s* obj)
     {
         std::ostringstream s;
         obj->printGraphML(s);
         return s.str();
     }
     """)
     # "PlannerData::printGraphviz(std::cout)" will be replaced with
     # something more pythonesque: "print(PlannerData.printGraphviz())"
     replacement['::ompl::base::PlannerData::printGraphviz'] = \
     ('def("printGraphviz", &__printGraphviz)', """
     std::string __printGraphviz(%s* obj)
     {
         std::ostringstream s;
         obj->printGraphviz(s);
         return s.str();
     }
     """)
     # "Atlas::printPLY(std::cout)" will be replaced with
     # something more pythonesque: "print(PlannerData.printGraphviz())"
     replacement['::ompl::base::AtlasStateSpace::printPLY'] = \
     ('def("printPLY", &__printPLY)', """
     std::string __printPLY(%s* obj)
     {
         std::ostringstream s;
         obj->printPLY(s);
         return s.str();
     }
     """)
     code_generator_t.__init__(self, 'base', ['bindings/util'], replacement)
Exemplo n.º 13
0
 def __init__(self):
     code_generator_t.__init__(self, 'app', [
         '../ompl/py-bindings/bindings/base',
         '../ompl/py-bindings/bindings/geometric',
         '../ompl/py-bindings/bindings/control'
     ])
Exemplo n.º 14
0
 def __init__(self):
     replacement = default_replacement
     code_generator_t.__init__(self, 'util', None, replacement, 1)
Exemplo n.º 15
0
 def __init__(self):
     code_generator_t.__init__(self, 'app',
         ['../ompl/py-bindings/bindings/base',
         '../ompl/py-bindings/bindings/geometric',
         '../ompl/py-bindings/bindings/control'])
Exemplo n.º 16
0
 def __init__(self):
     replacement = default_replacement
     code_generator_t.__init__(self, 'morse',
         ['bindings/util', 'bindings/base', 'bindings/geometric', 'bindings/control'],
         replacement)
Exemplo n.º 17
0
 def __init__(self):
     replacement = default_replacement
     code_generator_t.__init__(self, 'rrtstar',
         [join(ompl_binding_dir, 'bindings/geometric')], replacement)