Skip to content

Commit 88ba8ff

Browse files
kbayescopybara-github
authored andcommitted
Remove const qualifier on mjData in mjfCollision type as mjData is non-const in mjc_SDF via mjpPlugin.
PiperOrigin-RevId: 883225786 Change-Id: I5fecaa1d575b340a6510212db7b3e7db48f361cc
1 parent 7ec4fe2 commit 88ba8ff

8 files changed

Lines changed: 76 additions & 92 deletions

include/mujoco/mjdata.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,7 @@ typedef mjtNum (*mjfTime)(void);
529529
typedef mjtNum (*mjfAct)(const mjModel* m, const mjData* d, int id);
530530

531531
// collision detection
532-
typedef int (*mjfCollision)(const mjModel* m, const mjData* d,
533-
mjContact* con, int g1, int g2, mjtNum margin);
532+
typedef int (*mjfCollision)(const mjModel* m, mjData* d, mjContact* con, int g1, int g2,
533+
mjtNum margin);
534534

535535
#endif // MUJOCO_MJDATA_H_

src/engine/engine_collision_box.c

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,7 @@ int mjraw_SphereBox(mjContact* con, mjtNum margin,
9494

9595

9696
// sphere : box
97-
int mjc_SphereBox(const mjModel* m, const mjData* d, mjContact* con,
98-
int g1, int g2, mjtNum margin)
99-
{
97+
int mjc_SphereBox(const mjModel* m, mjData* d, mjContact* con, int g1, int g2, mjtNum margin) {
10098
mjGETINFO;
10199

102100
return mjraw_SphereBox(con, margin, pos1, mat1, size1, pos2, mat2, size2);
@@ -593,9 +591,7 @@ int mjraw_CapsuleBox(mjContact* con, mjtNum margin,
593591

594592

595593
// capsule : box
596-
int mjc_CapsuleBox(const mjModel* m, const mjData* d, mjContact* con,
597-
int g1, int g2, mjtNum margin)
598-
{
594+
int mjc_CapsuleBox(const mjModel* m, mjData* d, mjContact* con, int g1, int g2, mjtNum margin) {
599595
mjGETINFO
600596
return mjraw_CapsuleBox(con, margin, pos1, mat1, size1, pos2, mat2, size2);
601597
}
@@ -1342,7 +1338,7 @@ int _boxbox(const mjModel* M, const mjData* D, mjContact* con, int g1, int g2, m
13421338

13431339

13441340
// box : box
1345-
int mjc_BoxBox(const mjModel* m, const mjData* d, mjContact* con, int g1, int g2, mjtNum margin) {
1341+
int mjc_BoxBox(const mjModel* m, mjData* d, mjContact* con, int g1, int g2, mjtNum margin) {
13461342
int num = _boxbox(m, d, con, g1, g2, margin);
13471343

13481344
// use dim field to mark: -1: bad, 0: good

src/engine/engine_collision_convex.c

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -868,8 +868,7 @@ static int maxContacts(const mjCCDObj* obj1, const mjCCDObj* obj2) {
868868

869869

870870
// multi-point convex-convex collision, using libccd
871-
int mjc_Convex(const mjModel* m, const mjData* d,
872-
mjContact* con, int g1, int g2, mjtNum margin) {
871+
int mjc_Convex(const mjModel* m, mjData* d, mjContact* con, int g1, int g2, mjtNum margin) {
873872
// init ccd objects
874873
mjCCDObj obj1, obj2;
875874
mjc_initCCDObj(&obj1, m, d, g1, margin);
@@ -998,8 +997,7 @@ static int addplanemesh(mjContact* con, const float vertex[3],
998997

999998

1000999
// plane-convex collision, using libccd
1001-
int mjc_PlaneConvex(const mjModel* m, const mjData* d,
1002-
mjContact* con, int g1, int g2, mjtNum margin) {
1000+
int mjc_PlaneConvex(const mjModel* m, mjData* d, mjContact* con, int g1, int g2, mjtNum margin) {
10031001
mjGETINFO
10041002
mjtNum dist, dif[3], normal[3] = {mat1[2], mat1[5], mat1[8]};
10051003
ccd_vec3_t dir, vec;
@@ -1136,8 +1134,7 @@ static inline void addPrismVert(mjCCDObj* obj, int r, int c, int i, mjtNum dx, m
11361134

11371135

11381136
// entry point for heightfield collisions
1139-
int mjc_ConvexHField(const mjModel* m, const mjData* d,
1140-
mjContact* con, int g1, int g2, mjtNum margin) {
1137+
int mjc_ConvexHField(const mjModel* m, mjData* d, mjContact* con, int g1, int g2, mjtNum margin) {
11411138
// hfield frame
11421139
const mjtNum* pos1 = d->geom_xpos + 3*g1;
11431140
const mjtNum* mat1 = d->geom_xmat + 9*g1;
@@ -1565,8 +1562,8 @@ void mjc_fixNormal(const mjModel* m, const mjData* d, mjContact* con, int g1, in
15651562
//---------------------------- flex collisions ---------------------------------------------
15661563

15671564
// geom-elem or elem-elem or vert-elem convex collision using ccd
1568-
int mjc_ConvexElem(const mjModel* m, const mjData* d, mjContact* con,
1569-
int g1, int f1, int e1, int v1, int f2, int e2, mjtNum margin) {
1565+
int mjc_ConvexElem(const mjModel* m, mjData* d, mjContact* con, int g1, int f1, int e1, int v1,
1566+
int f2, int e2, mjtNum margin) {
15701567
mjCCDObj obj1, obj2;
15711568
mjc_initCCDObj(&obj1, m, d, g1, margin);
15721569
mjc_initCCDObj(&obj2, m, d, -1, margin);
@@ -1595,8 +1592,8 @@ int mjc_ConvexElem(const mjModel* m, const mjData* d, mjContact* con,
15951592

15961593

15971594
// test a height field and a flex element for collision
1598-
int mjc_HFieldElem(const mjModel* m, const mjData* d, mjContact* con,
1599-
int g, int f, int e, mjtNum margin) {
1595+
int mjc_HFieldElem(const mjModel* m, mjData* d, mjContact* con, int g, int f, int e,
1596+
mjtNum margin) {
16001597
mjtNum vec[3], dx, dy;
16011598
mjtNum xmin, xmax, ymin, ymax, zmin, zmax;
16021599
int dr[2], cnt, rmin, rmax, cmin, cmax;

src/engine/engine_collision_convex.h

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,20 +79,17 @@ void mjc_pointSupport(mjtNum res[3], mjCCDObj* obj, const mjtNum dir[3]);
7979
void mjc_lineSupport(mjtNum res[3], mjCCDObj* obj, const mjtNum dir[3]);
8080

8181
// pairwise geom collision functions using ccd
82-
int mjc_PlaneConvex(const mjModel* m, const mjData* d,
83-
mjContact* con, int g1, int g2, mjtNum margin);
84-
int mjc_ConvexHField(const mjModel* m, const mjData* d,
85-
mjContact* con, int g1, int g2, mjtNum margin);
86-
MJAPI int mjc_Convex(const mjModel* m, const mjData* d,
87-
mjContact* con, int g1, int g2, mjtNum margin);
82+
int mjc_PlaneConvex(const mjModel* m, mjData* d, mjContact* con, int g1, int g2, mjtNum margin);
83+
int mjc_ConvexHField(const mjModel* m, mjData* d, mjContact* con, int g1, int g2, mjtNum margin);
84+
MJAPI int mjc_Convex(const mjModel* m, mjData* d, mjContact* con, int g1, int g2, mjtNum margin);
8885

8986
// geom-elem or elem-elem or vert-elem collision function using ccd
90-
int mjc_ConvexElem (const mjModel* m, const mjData* d, mjContact* con,
91-
int g1, int f1, int e1, int v1, int f2, int e2, mjtNum margin);
87+
int mjc_ConvexElem(const mjModel* m, mjData* d, mjContact* con, int g1, int f1, int e1, int v1,
88+
int f2, int e2, mjtNum margin);
9289

9390
// heightfield-elem collision function using ccd
94-
int mjc_HFieldElem (const mjModel* m, const mjData* d, mjContact* con,
95-
int g, int f, int e, mjtNum margin);
91+
int mjc_HFieldElem(const mjModel* m, mjData* d, mjContact* con, int g, int f, int e,
92+
mjtNum margin);
9693

9794
// fix contact frame normal
9895
void mjc_fixNormal(const mjModel* m, const mjData* d, mjContact* con, int g1, int g2);

src/engine/engine_collision_primitive.c

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -51,16 +51,14 @@ static int mjraw_PlaneSphere(mjContact* con, mjtNum margin,
5151

5252

5353
// plane : sphere
54-
int mjc_PlaneSphere(const mjModel* m, const mjData* d,
55-
mjContact* con, int g1, int g2, mjtNum margin) {
54+
int mjc_PlaneSphere(const mjModel* m, mjData* d, mjContact* con, int g1, int g2, mjtNum margin) {
5655
mjGETINFO
5756
return mjraw_PlaneSphere(con, margin, pos1, mat1, size1, pos2, mat2, size2);
5857
}
5958

6059

6160
// plane : capsule
62-
int mjc_PlaneCapsule(const mjModel* m, const mjData* d,
63-
mjContact* con, int g1, int g2, mjtNum margin) {
61+
int mjc_PlaneCapsule(const mjModel* m, mjData* d, mjContact* con, int g1, int g2, mjtNum margin) {
6462
mjGETINFO
6563

6664
// get capsule axis, segment = scaled axis
@@ -89,8 +87,7 @@ int mjc_PlaneCapsule(const mjModel* m, const mjData* d,
8987

9088

9189
// plane : cylinder
92-
int mjc_PlaneCylinder(const mjModel* m, const mjData* d,
93-
mjContact* con, int g1, int g2, mjtNum margin) {
90+
int mjc_PlaneCylinder(const mjModel* m, mjData* d, mjContact* con, int g1, int g2, mjtNum margin) {
9491
mjGETINFO
9592
mjtNum normal[3] = {mat1[2], mat1[5], mat1[8]};
9693
mjtNum axis[3] = {mat2[2], mat2[5], mat2[8]};
@@ -193,8 +190,7 @@ int mjc_PlaneCylinder(const mjModel* m, const mjData* d,
193190

194191

195192
// plane : box
196-
int mjc_PlaneBox(const mjModel* m, const mjData* d,
197-
mjContact* con, int g1, int g2, mjtNum margin) {
193+
int mjc_PlaneBox(const mjModel* m, mjData* d, mjContact* con, int g1, int g2, mjtNum margin) {
198194
mjGETINFO
199195

200196
// get normal, difference between centers, normal distance
@@ -277,8 +273,7 @@ static int mjraw_SphereSphere(mjContact* con, mjtNum margin,
277273

278274

279275
// sphere : sphere
280-
int mjc_SphereSphere(const mjModel* m, const mjData* d,
281-
mjContact* con, int g1, int g2, mjtNum margin) {
276+
int mjc_SphereSphere(const mjModel* m, mjData* d, mjContact* con, int g1, int g2, mjtNum margin) {
282277
mjGETINFO
283278
return mjraw_SphereSphere(con, margin, pos1, mat1, size1, pos2, mat2, size2);
284279
}
@@ -304,16 +299,15 @@ int mjraw_SphereCapsule(mjContact* con, mjtNum margin,
304299

305300

306301
// sphere : capsule
307-
int mjc_SphereCapsule(const mjModel* m, const mjData* d,
308-
mjContact* con, int g1, int g2, mjtNum margin) {
302+
int mjc_SphereCapsule(const mjModel* m, mjData* d, mjContact* con, int g1, int g2, mjtNum margin) {
309303
mjGETINFO
310304
return mjraw_SphereCapsule(con, margin, pos1, mat1, size1, pos2, mat2, size2);
311305
}
312306

313307

314308
// sphere : cylinder
315-
int mjc_SphereCylinder(const mjModel* m, const mjData* d,
316-
mjContact* con, int g1, int g2, mjtNum margin) {
309+
int mjc_SphereCylinder(const mjModel* m, mjData* d, mjContact* con, int g1, int g2,
310+
mjtNum margin) {
317311
mjGETINFO
318312

319313
// get cylinder sizes and axis
@@ -482,8 +476,8 @@ int mjraw_CapsuleCapsule(mjContact* con, mjtNum margin,
482476

483477

484478
// capsule : capsule
485-
int mjc_CapsuleCapsule(const mjModel* m, const mjData* d,
486-
mjContact* con, int g1, int g2, mjtNum margin) {
479+
int mjc_CapsuleCapsule(const mjModel* m, mjData* d, mjContact* con, int g1, int g2,
480+
mjtNum margin) {
487481
mjGETINFO
488482
return mjraw_CapsuleCapsule(con, margin, pos1, mat1, size1, pos2, mat2, size2);
489483
}

src/engine/engine_collision_primitive.h

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -55,32 +55,32 @@ int mjraw_CapsuleTriangle(mjContact* con, mjtNum margin, const mjtNum* pos,
5555
mjtNum rt);
5656

5757
// plane collisions
58-
MJAPI int mjc_PlaneSphere (const mjModel* m, const mjData* d,
59-
mjContact* con, int g1, int g2, mjtNum margin);
60-
MJAPI int mjc_PlaneCapsule (const mjModel* m, const mjData* d,
61-
mjContact* con, int g1, int g2, mjtNum margin);
62-
MJAPI int mjc_PlaneCylinder (const mjModel* m, const mjData* d,
63-
mjContact* con, int g1, int g2, mjtNum margin);
64-
MJAPI int mjc_PlaneBox (const mjModel* m, const mjData* d,
65-
mjContact* con, int g1, int g2, mjtNum margin);
58+
MJAPI int mjc_PlaneSphere(const mjModel* m, mjData* d, mjContact* con, int g1, int g2,
59+
mjtNum margin);
60+
MJAPI int mjc_PlaneCapsule(const mjModel* m, mjData* d, mjContact* con, int g1, int g2,
61+
mjtNum margin);
62+
MJAPI int mjc_PlaneCylinder(const mjModel* m, mjData* d, mjContact* con, int g1, int g2,
63+
mjtNum margin);
64+
MJAPI int mjc_PlaneBox(const mjModel* m, mjData* d, mjContact* con, int g1, int g2,
65+
mjtNum margin);
6666

6767
// sphere and capsule collisions
68-
MJAPI int mjc_SphereSphere (const mjModel* m, const mjData* d,
69-
mjContact* con, int g1, int g2, mjtNum margin);
70-
MJAPI int mjc_SphereCapsule (const mjModel* m, const mjData* d,
71-
mjContact* con, int g1, int g2, mjtNum margin);
72-
MJAPI int mjc_SphereCylinder (const mjModel* m, const mjData* d,
73-
mjContact* con, int g1, int g2, mjtNum margin);
74-
MJAPI int mjc_CapsuleCapsule (const mjModel* m, const mjData* d,
75-
mjContact* con, int g1, int g2, mjtNum margin);
68+
MJAPI int mjc_SphereSphere(const mjModel* m, mjData* d, mjContact* con, int g1, int g2,
69+
mjtNum margin);
70+
MJAPI int mjc_SphereCapsule(const mjModel* m, mjData* d, mjContact* con, int g1, int g2,
71+
mjtNum margin);
72+
MJAPI int mjc_SphereCylinder(const mjModel* m, mjData* d, mjContact* con, int g1, int g2,
73+
mjtNum margin);
74+
MJAPI int mjc_CapsuleCapsule(const mjModel* m, mjData* d, mjContact* con, int g1, int g2,
75+
mjtNum margin);
7676

7777
// box collisions: from engine_collision_box.c
78-
MJAPI int mjc_CapsuleBox (const mjModel* m, const mjData* d,
79-
mjContact* con, int g1, int g2, mjtNum margin);
80-
MJAPI int mjc_SphereBox (const mjModel* m, const mjData* d,
81-
mjContact* con, int g1, int g2, mjtNum margin);
82-
MJAPI int mjc_BoxBox (const mjModel* m, const mjData* d,
83-
mjContact* con, int g1, int g2, mjtNum margin);
78+
MJAPI int mjc_CapsuleBox(const mjModel* m, mjData* d, mjContact* con, int g1, int g2,
79+
mjtNum margin);
80+
MJAPI int mjc_SphereBox(const mjModel* m, mjData* d, mjContact* con, int g1, int g2,
81+
mjtNum margin);
82+
MJAPI int mjc_BoxBox(const mjModel* m, mjData* d, mjContact* con, int g1, int g2,
83+
mjtNum margin);
8484

8585
#ifdef __cplusplus
8686
}

0 commit comments

Comments
 (0)