Skip to content

Commit 4223060

Browse files
authored
Add manually coded bindings for Skel file parsers (#64)
1 parent 870d34f commit 4223060

File tree

5 files changed

+52
-2
lines changed

5 files changed

+52
-2
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
## dartpy 0 (prerelease)
22

3+
### 0.0.3 (20XX-XX-XX)
4+
5+
* Added skel file parsing functions: [#64](https://github.com/personalrobotics/dartpy/pull/64)
6+
37
### 0.0.2 (2018-05-23)
48

59
* Updated C++ DART version to 6.5.0

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ if(EXISTS "${SOURCES_TXT}")
133133
${SOURCES_GENERATED}
134134
src/BodyNode.cpp
135135
src/Skeleton.cpp
136+
src/skel_parser.cpp
136137
src/template_registry.cpp
137138
)
138139
target_link_libraries("${PROJECT_NAME}"

chimera/chimera.yml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,14 @@ template:
119119
dart::dynamics::DegreeOfFreedom*, dart::dynamics::DegreeOfFreedomPtr>();
120120
dart::python::util::collection_from_python<
121121
std::vector<dart::dynamics::DegreeOfFreedom*> >();
122+
123+
dart::python::util::vector_to_python<dart::simulation::WorldPtr>();
124+
dart::python::util::collection_from_python<
125+
std::vector<dart::simulation::WorldPtr> >();
126+
postcontent: |
127+
::boost::python::scope().attr("utils").attr("skel") = ::boost::python::object(::boost::python::handle<>(::boost::python::borrowed(::PyImport_AddModule("dartpy.utils.skel"))));
128+
void skel_parser();
129+
skel_parser();
122130
footer: |
123131
// main footer
124132
@@ -1378,7 +1386,7 @@ classes:
13781386

13791387

13801388

1381-
# Shapes
1389+
# Shapes
13821390
'dart::dynamics::Shape':
13831391
held_type: 'std::shared_ptr<dart::dynamics::Shape>'
13841392
'dart::dynamics::BoxShape':
@@ -1414,6 +1422,10 @@ classes:
14141422
'dart::dynamics::Linkage':
14151423
held_type: 'dart::dynamics::LinkagePtr'
14161424

1425+
# World
1426+
'dart::simulation::World':
1427+
held_type: 'dart::simulation::WorldPtr'
1428+
14171429
# Cloneable<T> names
14181430
'dart::common::Cloneable<dart::common::Aspect::Properties>':
14191431
name: CloneableAspectProperties

chimera/templates/module.mstch.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,6 @@ ::boost::python::docstring_options options(true, true, false);
3232
}
3333

3434
{{/module.bindings}}
35-
}
3635
{{{postcontent}}}
36+
}
3737
{{{footer}}}

src/skel_parser.cpp

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#include <dartpy/pointers.h>
2+
#include <dartpy/template_registry.h>
3+
#include <dart/dart.hpp>
4+
#include <dart/collision/bullet/bullet.hpp>
5+
#include <dart/optimizer/optimizer.hpp>
6+
#include <dart/optimizer/nlopt/nlopt.hpp>
7+
#include <dart/planning/planning.hpp>
8+
#include <dart/utils/utils.hpp>
9+
#include <dart/utils/urdf/urdf.hpp>
10+
#include <dart/gui/gui.hpp>
11+
12+
/* precontent */
13+
#include <boost/python.hpp>
14+
#include <cmath>
15+
16+
/* postinclude */
17+
18+
void skel_parser()
19+
{
20+
::boost::python::object parent_object(::boost::python::scope().attr("utils").attr("skel"));
21+
::boost::python::scope parent_scope(parent_object);
22+
23+
::boost::python::def("readWorld", [](const dart::common::Uri & uri) -> dart::simulation::WorldPtr { return dart::utils::SkelParser::readWorld(uri); }, (::boost::python::arg("uri")));
24+
::boost::python::def("readWorld", [](const dart::common::Uri & uri, const dart::common::ResourceRetrieverPtr & retriever) -> dart::simulation::WorldPtr { return dart::utils::SkelParser::readWorld(uri, retriever); }, (::boost::python::arg("uri"), ::boost::python::arg("retriever")));
25+
::boost::python::def("readWorldXML", [](const std::string & xmlString) -> dart::simulation::WorldPtr { return dart::utils::SkelParser::readWorldXML(xmlString); }, (::boost::python::arg("xmlString")));
26+
::boost::python::def("readWorldXML", [](const std::string & xmlString, const dart::common::Uri & baseUri) -> dart::simulation::WorldPtr { return dart::utils::SkelParser::readWorldXML(xmlString, baseUri); }, (::boost::python::arg("xmlString"), ::boost::python::arg("baseUri")));
27+
::boost::python::def("readWorldXML", [](const std::string & xmlString, const dart::common::Uri & baseUri, const dart::common::ResourceRetrieverPtr & retriever) -> dart::simulation::WorldPtr { return dart::utils::SkelParser::readWorldXML(xmlString, baseUri, retriever); }, (::boost::python::arg("xmlString"), ::boost::python::arg("baseUri"), ::boost::python::arg("retriever")));
28+
::boost::python::def("readSkeleton", [](const dart::common::Uri & uri) -> dart::dynamics::SkeletonPtr { return dart::utils::SkelParser::readSkeleton(uri); }, (::boost::python::arg("uri")));
29+
::boost::python::def("readSkeleton", [](const dart::common::Uri & uri, const dart::common::ResourceRetrieverPtr & retriever) -> dart::dynamics::SkeletonPtr { return dart::utils::SkelParser::readSkeleton(uri, retriever); }, (::boost::python::arg("uri"), ::boost::python::arg("retriever")));
30+
31+
}
32+
33+
/* footer */

0 commit comments

Comments
 (0)