pub fn mj_sensorPos(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_sensorPos(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_sensorVel(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_sensorVel(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_sensorAcc(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_sensorAcc(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_energyPos(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_energyPos(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_energyVel(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_energyVel(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_checkPos(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_checkPos(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_checkVel(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_checkVel(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_checkAcc(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_checkAcc(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_kinematics(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_kinematics(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_comPos(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_comPos(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_camlight(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_camlight(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_flex(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_flex(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_tendon(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_tendon(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_transmission(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_transmission(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_crb(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_crb(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_factorM(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_factorM(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_solveM(
m: &crate::mjModel,
d: &mut crate::mjData,
x: &mut [f64],
y: &[f64],
n: usize,
) {
assert_eq!(x.len(), m.nv());
assert_eq!(y.len(), m.nv());
unsafe {
crate::bindgen::mj_solveM(
m.as_ptr(),
d.as_mut_ptr(),
x.as_mut_ptr(),
y.as_ptr(),
n as i32,
);
}
}
pub fn mj_solveM2(
m: &crate::mjModel,
d: &mut crate::mjData,
x: &mut [f64],
y: &[f64],
sqrt_inv_d: &[f64],
n: usize,
) {
assert_eq!(x.len(), m.nv());
assert_eq!(y.len(), m.nv());
assert_eq!(sqrt_inv_d.len(), m.nv());
unsafe {
crate::bindgen::mj_solveM2(
m.as_ptr(),
d.as_mut_ptr(),
x.as_mut_ptr(),
y.as_ptr(),
sqrt_inv_d.as_ptr(),
n as i32,
);
}
}
pub fn mj_comVel(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_comVel(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_passive(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_passive(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_subtreeVel(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_subtreeVel(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_rne(
m: &crate::mjModel,
d: &mut crate::mjData,
flg_acc: bool,
) -> Vec<f64> {
let mut result = vec![0.0; m.nv()];
unsafe {
crate::bindgen::mj_rne(
m.as_ptr(),
d.as_mut_ptr(),
flg_acc as i32,
result.as_mut_ptr()
);
}
result
}
pub fn mj_rnePostConstraint(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_rnePostConstraint(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_collision(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_collision(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_makeConstraint(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_makeConstraint(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_island(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_island(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_projectConstraint(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_projectConstraint(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_referenceConstraint(m: &crate::mjModel, d: &mut crate::mjData) {
unsafe { crate::bindgen::mj_referenceConstraint(m.as_ptr(), d.as_mut_ptr()) }
}
pub fn mj_constraintUpdate(
m: &crate::mjModel,
d: &mut crate::mjData,
jar: &[f64],
flg_cone_hessian: bool,
) -> f64 {
assert_eq!(jar.len(), m.nv());
let mut cost = [0.0];
unsafe {
crate::bindgen::mj_constraintUpdate(
m.as_ptr(),
d.as_mut_ptr(),
jar.as_ptr(),
&mut cost,
flg_cone_hessian as i32,
);
}
cost[0]
}