Replace double- or single-precision-denominated function calls in the engine with the equivalent mjtNum-denominated calls. This avoids unnecessary casting or precision loss when MuJoCo is compiled for 32-bit float precision. Accordingly, remove #include <math.h> from all engine source files.
build / windows-2022 (push) Has been cancelled
build / macos-12 (push) Has been cancelled
build / ubuntu-20.04-clang-10 (push) Has been cancelled
build / ubuntu-20.04-clang-11 (push) Has been cancelled
build / ubuntu-20.04-clang-12 (push) Has been cancelled
build / ubuntu-22.04-clang-13 (push) Has been cancelled
build / ubuntu-22.04-clang-14 (push) Has been cancelled
build / ubuntu-22.04-gcc-10 (push) Has been cancelled
build / ubuntu-22.04-gcc-11 (push) Has been cancelled
build / ubuntu-22.04-gcc-12 (push) Has been cancelled
build / ubuntu-22.04-gcc-9 (push) Has been cancelled
build / windows-2022 (push) Has been cancelled
build / macos-12 (push) Has been cancelled
build / ubuntu-20.04-clang-10 (push) Has been cancelled
build / ubuntu-20.04-clang-11 (push) Has been cancelled
build / ubuntu-20.04-clang-12 (push) Has been cancelled
build / ubuntu-22.04-clang-13 (push) Has been cancelled
build / ubuntu-22.04-clang-14 (push) Has been cancelled
build / ubuntu-22.04-gcc-10 (push) Has been cancelled
build / ubuntu-22.04-gcc-11 (push) Has been cancelled
build / ubuntu-22.04-gcc-12 (push) Has been cancelled
build / ubuntu-22.04-gcc-9 (push) Has been cancelled
Also, minor type-related fixes in `user_mesh.cc`. PiperOrigin-RevId: 675082329 Change-Id: Icc5eb9f9eb4fbf09b08d7d4b9b2929f414e4a75c
This commit is contained in:
committed by
Copybara-Service
parent
dde25d039b
commit
fd17b2144a
@@ -14,7 +14,6 @@
|
||||
|
||||
#include "engine/engine_collision_driver.h"
|
||||
|
||||
#include <math.h>
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
|
||||
@@ -603,22 +602,22 @@ int mj_collideOBB(const mjtNum aabb1[6], const mjtNum aabb2[6],
|
||||
for (int i=0; i < 2; i++) { // bounding boxes
|
||||
if (product == NULL) {
|
||||
proj[i] = mju_dot3(xcenter[i], normal[j][k]);
|
||||
radius[i] = fabs(aabb[i][3]*mju_dot3(normal[i][0], normal[j][k])) +
|
||||
fabs(aabb[i][4]*mju_dot3(normal[i][1], normal[j][k])) +
|
||||
fabs(aabb[i][5]*mju_dot3(normal[i][2], normal[j][k]));
|
||||
radius[i] = mju_abs(aabb[i][3]*mju_dot3(normal[i][0], normal[j][k])) +
|
||||
mju_abs(aabb[i][4]*mju_dot3(normal[i][1], normal[j][k])) +
|
||||
mju_abs(aabb[i][5]*mju_dot3(normal[i][2], normal[j][k]));
|
||||
} else {
|
||||
int adr = 18*i + 9*j + 3*k;
|
||||
proj[i] = aabb[i][0] * product[adr + 0] +
|
||||
aabb[i][1] * product[adr + 1] +
|
||||
aabb[i][2] * product[adr + 2] +
|
||||
offset[6*i + 3*j + k];
|
||||
radius[i] = fabs(aabb[i][3]*product[adr + 0]) +
|
||||
fabs(aabb[i][4]*product[adr + 1]) +
|
||||
fabs(aabb[i][5]*product[adr + 2]);
|
||||
radius[i] = mju_abs(aabb[i][3]*product[adr + 0]) +
|
||||
mju_abs(aabb[i][4]*product[adr + 1]) +
|
||||
mju_abs(aabb[i][5]*product[adr + 2]);
|
||||
}
|
||||
}
|
||||
|
||||
if (radius[0]+radius[1]+margin < fabs(proj[1]-proj[0])) {
|
||||
if (radius[0]+radius[1]+margin < mju_abs(proj[1]-proj[0])) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user