MeshShape::setScale does not accept negative values?
I do not understand why MeshShape::setScale() does not accept negative values. This is a common practice to mirror the mesh (otherwise we need to have multiple "duplicate" meshes, especially when using the URDF format).
Also, this check was "recently" added (I did not check when this happened, but it wasn't there for many years that I am using the library). Is there a specific rationale/guideline for this? Imho, we should allow negative scaling.
Accepting negative values makes sense to me. We may need to ensure that it works fine with the codebase (e.g., updating bounding box) and Assimp also allows it.
Regarding when and why it was changed, I don't recall quite frankly. The git log says that line was changed 6 years ago (from checking individual xyz components to using Eigen's all() function) and the previous commit of the 6 years ago also didn't accept negative values.
Oh I see what happened. I was compiling with disabled assertions!
In any case, we should allow for negative scaling. Apart from the bounding box update, where else should we handle this?
It seems only the updating bounding box. #1841 to continue this discussion!
Closing per #1841. Please let me know if this works for you!