Disallow using elasticity and edge constraints at the same time.
Fixes #2084. PiperOrigin-RevId: 678614880 Change-Id: I44eead3dc4edf82d725a3063b927a421c660721a
This commit is contained in:
committed by
Copybara-Service
parent
2785dbc0da
commit
1eb6fc2285
@@ -2896,6 +2896,9 @@ void mjCFlex::Compile(const mjVFS* vfs) {
|
|||||||
|
|
||||||
// compute elasticity
|
// compute elasticity
|
||||||
if (young > 0) {
|
if (young > 0) {
|
||||||
|
if (poisson < 0 || poisson >= 0.5) {
|
||||||
|
throw mjCError(this, "Poisson ratio must be in [0, 0.5)");
|
||||||
|
}
|
||||||
stiffness.assign(21*nelem, 0);
|
stiffness.assign(21*nelem, 0);
|
||||||
for (unsigned int t = 0; t < nelem; t++) {
|
for (unsigned int t = 0; t < nelem; t++) {
|
||||||
if (dim==2) {
|
if (dim==2) {
|
||||||
|
|||||||
@@ -2694,6 +2694,11 @@ void mjXReader::OneFlexcomp(XMLElement* elem, mjsBody* body, const mjVFS* vfs) {
|
|||||||
ReadAttr(elasticity, "thickness", 1, &dflex.thickness, text);
|
ReadAttr(elasticity, "thickness", 1, &dflex.thickness, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check errors
|
||||||
|
if (elasticity && fcomp.equality) {
|
||||||
|
throw mjXError(elem, "elasticity and edge constraints cannot both be present");
|
||||||
|
}
|
||||||
|
|
||||||
// contact
|
// contact
|
||||||
XMLElement* cont = FirstChildElement(elem, "contact");
|
XMLElement* cont = FirstChildElement(elem, "contact");
|
||||||
if (cont) {
|
if (cont) {
|
||||||
|
|||||||
Reference in New Issue
Block a user