use crate::{mjsBody, mjsDefault, mjsSite, mjsJoint, mjsGeom, mjsCamera, mjsLight, mjsFrame, mjsElement, mjSpec};
pub fn mjs_addBody<'body>(
body: &'body mut mjsBody,
def: &mjsDefault,
) -> &'body mjsBody {
unsafe { &*crate::bindgen::mjs_addBody(body, def) }
}
pub fn mjs_addSite<'body>(
body: &'body mut mjsBody,
def: &mjsDefault,
) -> &'body mut mjsSite {
unsafe { &mut *crate::bindgen::mjs_addSite(body, def) }
}
pub fn mjs_addJoint<'body>(
body: &'body mut mjsBody,
def: &mjsDefault,
) -> &'body mut mjsJoint {
unsafe { &mut *crate::bindgen::mjs_addJoint(body, def) }
}
pub fn mjs_addFreeJoint<'body>(body: &'body mut mjsBody) -> &'body mut mjsJoint {
unsafe { &mut *crate::bindgen::mjs_addFreeJoint(body) }
}
pub fn mjs_addGeom<'body>(
body: &'body mut mjsBody,
def: &mjsDefault,
) -> &'body mut mjsGeom {
unsafe { &mut *crate::bindgen::mjs_addGeom(body, def) }
}
pub fn mjs_addCamera<'body>(
body: &'body mut mjsBody,
def: &mjsDefault,
) -> &'body mut mjsCamera {
unsafe { &mut *crate::bindgen::mjs_addCamera(body, def) }
}
pub fn mjs_addLight<'body>(
body: &'body mut mjsBody,
def: &mjsDefault,
) -> &'body mut mjsLight {
unsafe { &mut *crate::bindgen::mjs_addLight(body, def) }
}
pub fn mjs_addFrame<'body>(
body: &'body mut mjsBody,
parentframe: &'body mut mjsFrame,
) -> &'body mut mjsFrame {
unsafe { &mut *crate::bindgen::mjs_addFrame(body, parentframe) }
}
pub fn mjs_delete(spec: &mut mjSpec, element: &mut mjsElement) -> Result<(), ()> {
if unsafe { crate::bindgen::mjs_delete(spec.as_mut_ptr(), element) } == 0 {Ok(())} else {Err(())}
}