- Feb 16, 2024
-
-
Louis Montaut authored
The logging is activated by default in Debug mode, and can be activated by defining the preprocessor macro `HPP_FCL_ENABLE_LOGGING`.
-
Louis Montaut authored
-
Louis Montaut authored
This whole rewrite of GJKSolver is motivated by the fact that when using an instance of GJKSolver multiple times, it mallocs data for EPA each time. Note: if working with meshes, then a malloc also occurs in GJK (in the support function). This is not ideal for objects like `ComputeCollision` and `ComputeDistance`, which are functors defined per single pair of collision, and which both contain a `GJKSolver`. (These functors are meant to be re-used so as their internal GJKSolver.) This commit fixes this malloc issue by doing the following: - It adds an instance of `GJK` and an instance of `EPA` in the `GJKSolver` class. - It leverages the newly introduced `reset` method of EPA to allocate memory **only when needed**. This last point is important because some functions of the `GJKSolver` class have specializations which don't use EPA (and/or GJK), so we don't want to allocate memory in these cases. In the future, to lower the memory footprint of the `GJKSolver` class, we could switch to a `data` model like in Pinocchio. That way, `GJK` and `EPA` would only be thin interfaces implementing the algorithms. They would be working on a `data` object that allocated by the `GJKSolver` when needed.
-
Louis Montaut authored
-
Louis Montaut authored
-
Louis Montaut authored
-
Louis Montaut authored
-
Louis Montaut authored
-
Louis Montaut authored
-
Louis Montaut authored
-
Louis Montaut authored
-
Louis Montaut authored
-
Louis Montaut authored
There is no need to use a `ShapeDistanceTraversalNode` for a collision pair of two primitive shapes. We do the same thing here for ShapeShapeDistance as we did for `ShapeShapeCollide`.
-
- Feb 13, 2024
-
-
Justin Carpentier authored
Add option to turn asserts into exceptions and fix EPA related assert
-
Louis Montaut authored
-
Louis Montaut authored
-
Justin Carpentier authored
[pre-commit.ci] pre-commit autoupdate
-
- Feb 12, 2024
-
-
pre-commit-ci[bot] authored
updates: - [github.com/astral-sh/ruff-pre-commit: v0.2.0 → v0.2.1](https://github.com/astral-sh/ruff-pre-commit/compare/v0.2.0...v0.2.1)
-
Louis Montaut authored
-
Louis Montaut authored
Just like GJK, the result of EPA should always be checked against its own tolerance.
-
Louis Montaut authored
-
- Feb 09, 2024
-
-
Louis Montaut authored
-
Justin Carpentier authored
Setting default parameters for the narrowphase
-
Louis Montaut authored
-
Louis Montaut authored
-
Louis Montaut authored
-
Louis Montaut authored
-
Louis Montaut authored
-
Louis Montaut authored
-
Louis Montaut authored
-
Louis Montaut authored
-
Louis Montaut authored
time I only keep the cases that were previously triggering asserts. Otherwise this test timeout on the CI. All of the other cases don't trigger any assert.
-
- Feb 08, 2024
-
-
Justin Carpentier authored
-
Louis Montaut authored
-
Louis Montaut authored
-
Louis Montaut authored
-
Louis Montaut authored
Also bumped the tolerance of the assertion because asking 1e-16 is way too small.
-
Louis Montaut authored
Checking the max coef is incompatible with the first convergence criterion of GJK which checks the norm of the current iterate (see first convergence check in `GJK::evaluate` in `gjk.cpp`). This convergence check is needed, so it's better to adapt the assertion than the GJK check itself.
-
Louis Montaut authored
-
- Feb 07, 2024
-
-
Justin Carpentier authored
Avoid double fwd declaration in Pinocchio eigen.hpp
-