Clean-up flex assumptions.

Do not allow a mix of `elastic2d != none` with `dof = trilinear` since the latter assumes 3d elasticity.

Also, do not assume that `flex_interp > 0` in the engine. This will enable to use, e.g., `flex_interp = -1` to mean a linear surface finite element instead of a 3d finite element which is currently identified with `flex_interp = 1`.

PiperOrigin-RevId: 903852035
Change-Id: Ia6290b4a05e9e510ffb7f36d141cd525b40d3110
This commit is contained in:
Alessio Quaglino
2026-04-22 08:00:42 -07:00
committed by Copybara-Service
parent 863a084d7f
commit a891782553
14 changed files with 84 additions and 10 deletions
+1
View File
@@ -1452,6 +1452,7 @@ static void addFlexBvhGeoms(const mjModel* m, mjData* d, const mjvOption* vopt,
int cy = m->flex_cellnum[3*f+1];
int cz = m->flex_cellnum[3*f+2];
int order = m->flex_interp[f];
order = order < 0 ? -order : order;
int NX = cx * order + 1;
int NY = cy * order + 1;
int NZ = cz * order + 1;