@@ -43,6 +43,13 @@ namespace pinocchio
43
43
using ::pinocchio::visualizers::ConstVectorRef;
44
44
eigenpy::OptionalConverter<ConstVectorRef, boost::optional>::registration ();
45
45
46
+ // convenience macro to use a lambda -- passing &Visualizer::<getter-fun> doesn't work
47
+ #define DEF_PROP_PROXY (name ) \
48
+ add_property ( \
49
+ #name, \
50
+ bp::make_function ( \
51
+ +[](Visualizer & v) -> auto & { return v.name (); }, bp::return_internal_reference<>()))
52
+
46
53
cl.def (" initViewer" , &Visualizer::initViewer)
47
54
.def (" loadViewerModel" , &Visualizer::loadViewerModel)
48
55
.def (" rebuildData" , &Visualizer::rebuildData)
@@ -56,21 +63,14 @@ namespace pinocchio
56
63
.def (" setCameraPose" , setCameraPose_proxy2, (bp::arg (" self" ), " pose" ))
57
64
.def (" setCameraZoom" , &Visualizer::setCameraZoom, (bp::arg (" self" ), " value" ))
58
65
.def (" clean" , &Visualizer::clean, bp::arg (" self" ))
59
- .add_property (
60
- " model" , bp::make_function (&Visualizer::model, bp::return_internal_reference<>()))
61
- .add_property (
62
- " visualModel" ,
63
- bp::make_function (&Visualizer::visualModel, bp::return_internal_reference<>()))
64
- .add_property (
65
- " collisionModel" ,
66
- bp::make_function (&Visualizer::collisionModel, bp::return_internal_reference<>()))
67
66
.def (" hasExternalData" , &Visualizer::hasExternalData)
68
- .add_property (
69
- " data" , +[](Visualizer & v) { return std::ref (v.data ()); })
70
- .add_property (
71
- " visualData" , +[](Visualizer & v) { return std::ref (v.visualData ()); })
72
- .add_property (
73
- " collisionData" , +[](Visualizer & v) { return std::ref (v.collisionData ()); });
67
+ .DEF_PROP_PROXY (model)
68
+ .DEF_PROP_PROXY (visualModel)
69
+ .DEF_PROP_PROXY (collisionModel)
70
+ .DEF_PROP_PROXY (data)
71
+ .DEF_PROP_PROXY (visualData)
72
+ .DEF_PROP_PROXY (collisionData);
73
+ #undef DEF_PROP_PROXY
74
74
}
75
75
};
76
76
0 commit comments