Put sparsity structures in mjModel, don't use them yet.
PiperOrigin-RevId: 795032051 Change-Id: I75c69e881980ff9c308acf00bb3a65f4b2ef12f5
This commit is contained in:
committed by
Copybara-Service
parent
f077fd00a9
commit
7eb13777f8
@@ -979,6 +979,10 @@ struct mjModel_ {
|
||||
int nbvhdynamic; // number of dynamic bounding volumes (aabb stored in mjData)
|
||||
int noct; // number of total octree cells in all meshes
|
||||
int njnt; // number of joints
|
||||
int nM; // number of non-zeros in sparse inertia matrix
|
||||
int nB; // number of non-zeros in sparse body-dof matrix
|
||||
int nC; // number of non-zeros in sparse reduced dof-dof matrix
|
||||
int nD; // number of non-zeros in sparse dof-dof matrix
|
||||
int ngeom; // number of geoms
|
||||
int nsite; // number of sites
|
||||
int ncam; // number of cameras
|
||||
@@ -1042,10 +1046,6 @@ struct mjModel_ {
|
||||
|
||||
// sizes set after mjModel construction
|
||||
int nnames_map; // number of slots in the names hash map
|
||||
int nM; // number of non-zeros in sparse inertia matrix
|
||||
int nB; // number of non-zeros in sparse body-dof matrix
|
||||
int nC; // number of non-zeros in sparse reduced dof-dof matrix
|
||||
int nD; // number of non-zeros in sparse dof-dof matrix
|
||||
int nJmom; // number of non-zeros in sparse actuator_moment matrix
|
||||
int ntree; // number of kinematic trees under world body
|
||||
int ngravcomp; // number of bodies with nonzero gravcomp
|
||||
@@ -1547,6 +1547,21 @@ struct mjModel_ {
|
||||
// paths
|
||||
char* paths; // paths to assets, 0-terminated (npaths x 1)
|
||||
|
||||
// sparse structures
|
||||
int* B_rownnz; // body-dof: non-zeros in each row (nbody x 1)
|
||||
int* B_rowadr; // body-dof: row addresses (nbody x 1)
|
||||
int* B_colind; // body-dof: column indices (nB x 1)
|
||||
int* M_rownnz; // reduced inertia: non-zeros in each row (nv x 1)
|
||||
int* M_rowadr; // reduced inertia: row addresses (nv x 1)
|
||||
int* M_colind; // reduced inertia: column indices (nC x 1)
|
||||
int* mapM2M; // index mapping from qM to M (nC x 1)
|
||||
int* D_rownnz; // full inertia: non-zeros in each row (nv x 1)
|
||||
int* D_rowadr; // full inertia: row addresses (nv x 1)
|
||||
int* D_diag; // full inertia: index of diagonal element (nv x 1)
|
||||
int* D_colind; // full inertia: column indices (nD x 1)
|
||||
int* mapM2D; // index mapping from qM to D (nD x 1)
|
||||
int* mapD2M; // index mapping from D to qM (nM x 1)
|
||||
|
||||
// compilation signature
|
||||
uint64_t signature; // also held by the mjSpec that compiled this model
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user