int collideBoxBox(const Eigen::Vector3d& size0, const Eigen::Isometry3d& T0, const Eigen::Vector3d& size1, const Eigen::Isometry3d& T1, std::vector<Contact>* result) { dVector3 halfSize0; dVector3 halfSize1; convVector(0.5 * size0, halfSize0); convVector(0.5 * size1, halfSize1); dMatrix3 R0, R1; convMatrix(T0, R0); convMatrix(T1, R1); dVector3 p0; dVector3 p1; convVector(T0.translation(), p0); convVector(T1.translation(), p1); return dBoxBox(p1, R1, halfSize1, p0, R0, halfSize0, *result); }
int collideBoxBox(CollisionObject* o1, CollisionObject* o2, const Eigen::Vector3d& size0, const Eigen::Isometry3d& T0, const Eigen::Vector3d& size1, const Eigen::Isometry3d& T1, CollisionResult& result) { dVector3 halfSize0; dVector3 halfSize1; convVector(0.5 * size0, halfSize0); convVector(0.5 * size1, halfSize1); dMatrix3 R0, R1; convMatrix(T0, R0); convMatrix(T1, R1); dVector3 p0; dVector3 p1; convVector(T0.translation(), p0); convVector(T1.translation(), p1); return dBoxBox(o1, o2, p1, R1, halfSize1, p0, R0, halfSize0, result); }