Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
loco-3d
Multicontact-api
Commits
7d28299e
Commit
7d28299e
authored
May 07, 2020
by
Pierre Fernbach
Browse files
[Python] add API for new ContactModel methods
parent
441223de
Changes
1
Hide whitespace changes
Inline
Side-by-side
include/multicontact-api/bindings/python/scenario/contact-model.hpp
View file @
7d28299e
...
...
@@ -9,6 +9,7 @@
#include "multicontact-api/scenario/contact-model.hpp"
#include "multicontact-api/bindings/python/serialization/archive.hpp"
#include "multicontact-api/bindings/python/utils/printable.hpp"
#include <eigenpy/eigenpy.hpp>
namespace
multicontact_api
{
namespace
python
{
...
...
@@ -16,10 +17,10 @@ namespace python {
namespace
bp
=
boost
::
python
;
template
<
typename
ContactModel
>
struct
ContactModelPythonVisitor
:
public
boost
::
python
::
def_visitor
<
ContactModelPythonVisitor
<
ContactModel
>
>
{
struct
ContactModelPythonVisitor
:
public
boost
::
python
::
def_visitor
<
ContactModelPythonVisitor
<
ContactModel
>
>
{
typedef
typename
ContactModel
::
Scalar
Scalar
;
typedef
scenario
::
ContactType
ContactType
;
typedef
typename
ContactModel
::
Matrix3X
Matrix3X
;
template
<
class
PyClass
>
void
visit
(
PyClass
&
cl
)
const
{
...
...
@@ -29,6 +30,13 @@ struct ContactModelPythonVisitor
.
def
(
bp
::
init
<
ContactModel
>
(
bp
::
args
(
"other"
),
"Copy contructor."
))
.
def_readwrite
(
"mu"
,
&
ContactModel
::
m_mu
,
"Friction coefficient."
)
.
def_readwrite
(
"contact_type"
,
&
ContactModel
::
m_contact_type
,
"Enum that define the type of contact."
)
.
add_property
(
"num_contact_points"
,
&
getNumContact
,
&
setNumContact
,
"The number of contact points used to model this contact.
\n
"
"Changing this value will clear the contact_points_positions matrix"
)
.
add_property
(
"contact_points_positions"
,
&
getContactPositions
,
&
setContactPositions
,
"3xnum_contact_points matrix defining the contact points positions in the frame of the contact "
"placement.
\n
"
"num_contact_points is automatically updated to the number of columns of this matrix."
)
.
def
(
bp
::
self
==
bp
::
self
)
.
def
(
bp
::
self
!=
bp
::
self
)
.
def
(
"copy"
,
&
copy
,
"Returns a copy of *this."
);
...
...
@@ -40,10 +48,17 @@ struct ContactModelPythonVisitor
.
def
(
ContactModelPythonVisitor
<
ContactModel
>
())
.
def
(
SerializableVisitor
<
ContactModel
>
())
.
def
(
PrintableVisitor
<
ContactModel
>
());
ENABLE_SPECIFIC_MATRIX_TYPE
(
Matrix3X
);
}
private:
static
ContactModel
copy
(
const
ContactModel
&
self
)
{
return
ContactModel
(
self
);
}
// define setter and getter
static
size_t
getNumContact
(
ContactModel
&
self
)
{
return
self
.
num_contact_points
();
}
static
void
setNumContact
(
ContactModel
&
self
,
const
size_t
num
)
{
self
.
num_contact_points
(
num
);
}
static
Matrix3X
getContactPositions
(
ContactModel
&
self
)
{
return
self
.
contact_points_positions
();
}
static
void
setContactPositions
(
ContactModel
&
self
,
const
Matrix3X
&
pos
)
{
self
.
contact_points_positions
(
pos
);
}
};
}
// namespace python
}
// namespace multicontact_api
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment