#[repr(C)]
pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
impl<T> __BindgenUnionField<T> {
#[inline]
pub const fn new() -> Self {
__BindgenUnionField(::std::marker::PhantomData)
}
#[inline]
pub unsafe fn as_ref(&self) -> &T {
::std::mem::transmute(self)
}
#[inline]
pub unsafe fn as_mut(&mut self) -> &mut T {
::std::mem::transmute(self)
}
}
impl<T> ::std::default::Default for __BindgenUnionField<T> {
#[inline]
fn default() -> Self {
Self::new()
}
}
impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
#[inline]
fn clone(&self) -> Self {
*self
}
}
impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.write_str("__BindgenUnionField")
}
}
impl<T> ::std::hash::Hash for __BindgenUnionField<T> {
fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {}
}
impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> {
fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
true
}
}
impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {}
pub const mjVERSION_HEADER: u32 = 3008000;
pub const mjMINVAL: f64 = 0.000000000000001;
pub const mjPI: f64 = 3.141592653589793;
pub const mjMAXVAL: f64 = 10000000000.0;
pub const mjMINMU: f64 = 0.00001;
pub const mjMINIMP: f64 = 0.0001;
pub const mjMAXIMP: f64 = 0.9999;
pub const mjMAXCONPAIR: u32 = 50;
pub const mjMAXTREEDEPTH: u32 = 50;
pub const mjMAXFLEXNODES: u32 = 27;
pub const mjMINAWAKE: u32 = 10;
pub const mjNEQDATA: u32 = 11;
pub const mjNDYN: u32 = 10;
pub const mjNGAIN: u32 = 10;
pub const mjNBIAS: u32 = 10;
pub const mjNFLUID: u32 = 12;
pub const mjNREF: u32 = 2;
pub const mjNIMP: u32 = 5;
pub const mjNPOLY: u32 = 2;
pub const mjNSENS: u32 = 3;
pub const mjNSOLVER: u32 = 200;
pub const mjNISLAND: u32 = 20;
pub const mjMAXTHREAD: u32 = 128;
pub const mjNGROUP: u32 = 6;
pub const mjMAXLIGHT: u32 = 100;
pub const mjMAXOVERLAY: u32 = 500;
pub const mjMAXLINE: u32 = 100;
pub const mjMAXLINEPNT: u32 = 1001;
pub const mjMAXPLANEGRID: u32 = 200;
pub const mjNAUX: u32 = 10;
pub const mjMAXTEXTURE: u32 = 1000;
pub const mjMAXMATERIAL: u32 = 1000;
pub const mjMAXUISECT: u32 = 10;
pub const mjMAXUIITEM: u32 = 200;
pub const mjMAXUITEXT: u32 = 300;
pub const mjMAXUINAME: u32 = 40;
pub const mjMAXUIMULTI: u32 = 35;
pub const mjMAXUIEDIT: u32 = 7;
pub const mjMAXUIRECT: u32 = 25;
pub const mjSEPCLOSED: u32 = 1000;
pub const mjPRESERVE: u32 = 2000;
pub const mjKEY_ESCAPE: u32 = 256;
pub const mjKEY_ENTER: u32 = 257;
pub const mjKEY_TAB: u32 = 258;
pub const mjKEY_BACKSPACE: u32 = 259;
pub const mjKEY_INSERT: u32 = 260;
pub const mjKEY_DELETE: u32 = 261;
pub const mjKEY_RIGHT: u32 = 262;
pub const mjKEY_LEFT: u32 = 263;
pub const mjKEY_DOWN: u32 = 264;
pub const mjKEY_UP: u32 = 265;
pub const mjKEY_PAGE_UP: u32 = 266;
pub const mjKEY_PAGE_DOWN: u32 = 267;
pub const mjKEY_HOME: u32 = 268;
pub const mjKEY_END: u32 = 269;
pub const mjKEY_F1: u32 = 290;
pub const mjKEY_F2: u32 = 291;
pub const mjKEY_F3: u32 = 292;
pub const mjKEY_F4: u32 = 293;
pub const mjKEY_F5: u32 = 294;
pub const mjKEY_F6: u32 = 295;
pub const mjKEY_F7: u32 = 296;
pub const mjKEY_F8: u32 = 297;
pub const mjKEY_F9: u32 = 298;
pub const mjKEY_F10: u32 = 299;
pub const mjKEY_F11: u32 = 300;
pub const mjKEY_F12: u32 = 301;
pub const mjKEY_NUMPAD_0: u32 = 320;
pub const mjKEY_NUMPAD_9: u32 = 329;
pub type mjtNum = f64;
pub type mjtByte = ::std::os::raw::c_uchar;
pub type mjtSize = i64;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtDisableBit_ {
mjDSBL_CONSTRAINT = 1,
mjDSBL_EQUALITY = 2,
mjDSBL_FRICTIONLOSS = 4,
mjDSBL_LIMIT = 8,
mjDSBL_CONTACT = 16,
mjDSBL_SPRING = 32,
mjDSBL_DAMPER = 64,
mjDSBL_GRAVITY = 128,
mjDSBL_CLAMPCTRL = 256,
mjDSBL_WARMSTART = 512,
mjDSBL_FILTERPARENT = 1024,
mjDSBL_ACTUATION = 2048,
mjDSBL_REFSAFE = 4096,
mjDSBL_SENSOR = 8192,
mjDSBL_MIDPHASE = 16384,
mjDSBL_EULERDAMP = 32768,
mjDSBL_AUTORESET = 65536,
mjDSBL_NATIVECCD = 131072,
mjDSBL_ISLAND = 262144,
mjDSBL_MULTICCD = 524288,
mjNDISABLE = 20,
}
pub use self::mjtDisableBit_ as mjtDisableBit;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtEnableBit_ {
mjENBL_OVERRIDE = 1,
mjENBL_ENERGY = 2,
mjENBL_FWDINV = 4,
mjENBL_INVDISCRETE = 8,
mjENBL_SLEEP = 16,
mjNENABLE = 5,
}
pub use self::mjtEnableBit_ as mjtEnableBit;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtJoint_ {
mjJNT_FREE = 0,
mjJNT_BALL = 1,
mjJNT_SLIDE = 2,
mjJNT_HINGE = 3,
}
pub use self::mjtJoint_ as mjtJoint;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtGeom_ {
mjGEOM_PLANE = 0,
mjGEOM_HFIELD = 1,
mjGEOM_SPHERE = 2,
mjGEOM_CAPSULE = 3,
mjGEOM_ELLIPSOID = 4,
mjGEOM_CYLINDER = 5,
mjGEOM_BOX = 6,
mjGEOM_MESH = 7,
mjGEOM_SDF = 8,
mjNGEOMTYPES = 9,
mjGEOM_ARROW = 100,
mjGEOM_ARROW1 = 101,
mjGEOM_ARROW2 = 102,
mjGEOM_LINE = 103,
mjGEOM_LINEBOX = 104,
mjGEOM_FLEX = 105,
mjGEOM_SKIN = 106,
mjGEOM_LABEL = 107,
mjGEOM_TRIANGLE = 108,
mjGEOM_NONE = 1001,
}
pub use self::mjtGeom_ as mjtGeom;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtProjection_ {
mjPROJ_PERSPECTIVE = 0,
mjPROJ_ORTHOGRAPHIC = 1,
}
pub use self::mjtProjection_ as mjtProjection;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtCamLight_ {
mjCAMLIGHT_FIXED = 0,
mjCAMLIGHT_TRACK = 1,
mjCAMLIGHT_TRACKCOM = 2,
mjCAMLIGHT_TARGETBODY = 3,
mjCAMLIGHT_TARGETBODYCOM = 4,
}
pub use self::mjtCamLight_ as mjtCamLight;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtLightType_ {
mjLIGHT_SPOT = 0,
mjLIGHT_DIRECTIONAL = 1,
mjLIGHT_POINT = 2,
mjLIGHT_IMAGE = 3,
}
pub use self::mjtLightType_ as mjtLightType;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtTexture_ {
mjTEXTURE_2D = 0,
mjTEXTURE_CUBE = 1,
mjTEXTURE_SKYBOX = 2,
}
pub use self::mjtTexture_ as mjtTexture;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtTextureRole_ {
mjTEXROLE_USER = 0,
mjTEXROLE_RGB = 1,
mjTEXROLE_OCCLUSION = 2,
mjTEXROLE_ROUGHNESS = 3,
mjTEXROLE_METALLIC = 4,
mjTEXROLE_NORMAL = 5,
mjTEXROLE_OPACITY = 6,
mjTEXROLE_EMISSIVE = 7,
mjTEXROLE_RGBA = 8,
mjTEXROLE_ORM = 9,
mjNTEXROLE = 10,
}
pub use self::mjtTextureRole_ as mjtTextureRole;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtColorSpace_ {
mjCOLORSPACE_AUTO = 0,
mjCOLORSPACE_LINEAR = 1,
mjCOLORSPACE_SRGB = 2,
}
pub use self::mjtColorSpace_ as mjtColorSpace;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtIntegrator_ {
mjINT_EULER = 0,
mjINT_RK4 = 1,
mjINT_IMPLICIT = 2,
mjINT_IMPLICITFAST = 3,
}
pub use self::mjtIntegrator_ as mjtIntegrator;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtCone_ {
mjCONE_PYRAMIDAL = 0,
mjCONE_ELLIPTIC = 1,
}
pub use self::mjtCone_ as mjtCone;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtJacobian_ {
mjJAC_DENSE = 0,
mjJAC_SPARSE = 1,
mjJAC_AUTO = 2,
}
pub use self::mjtJacobian_ as mjtJacobian;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtSolver_ {
mjSOL_PGS = 0,
mjSOL_CG = 1,
mjSOL_NEWTON = 2,
}
pub use self::mjtSolver_ as mjtSolver;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtEq_ {
mjEQ_CONNECT = 0,
mjEQ_WELD = 1,
mjEQ_JOINT = 2,
mjEQ_TENDON = 3,
mjEQ_FLEX = 4,
mjEQ_FLEXVERT = 5,
mjEQ_FLEXSTRAIN = 6,
mjEQ_DISTANCE = 7,
}
pub use self::mjtEq_ as mjtEq;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtWrap_ {
mjWRAP_NONE = 0,
mjWRAP_JOINT = 1,
mjWRAP_PULLEY = 2,
mjWRAP_SITE = 3,
mjWRAP_SPHERE = 4,
mjWRAP_CYLINDER = 5,
}
pub use self::mjtWrap_ as mjtWrap;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtTrn_ {
mjTRN_JOINT = 0,
mjTRN_JOINTINPARENT = 1,
mjTRN_SLIDERCRANK = 2,
mjTRN_TENDON = 3,
mjTRN_SITE = 4,
mjTRN_BODY = 5,
mjTRN_UNDEFINED = 1000,
}
pub use self::mjtTrn_ as mjtTrn;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtDyn_ {
mjDYN_NONE = 0,
mjDYN_INTEGRATOR = 1,
mjDYN_FILTER = 2,
mjDYN_FILTEREXACT = 3,
mjDYN_MUSCLE = 4,
mjDYN_DCMOTOR = 5,
mjDYN_USER = 6,
}
pub use self::mjtDyn_ as mjtDyn;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtGain_ {
mjGAIN_FIXED = 0,
mjGAIN_AFFINE = 1,
mjGAIN_MUSCLE = 2,
mjGAIN_DCMOTOR = 3,
mjGAIN_USER = 4,
}
pub use self::mjtGain_ as mjtGain;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtBias_ {
mjBIAS_NONE = 0,
mjBIAS_AFFINE = 1,
mjBIAS_MUSCLE = 2,
mjBIAS_DCMOTOR = 3,
mjBIAS_USER = 4,
}
pub use self::mjtBias_ as mjtBias;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtObj_ {
mjOBJ_UNKNOWN = 0,
mjOBJ_BODY = 1,
mjOBJ_XBODY = 2,
mjOBJ_JOINT = 3,
mjOBJ_DOF = 4,
mjOBJ_GEOM = 5,
mjOBJ_SITE = 6,
mjOBJ_CAMERA = 7,
mjOBJ_LIGHT = 8,
mjOBJ_FLEX = 9,
mjOBJ_MESH = 10,
mjOBJ_SKIN = 11,
mjOBJ_HFIELD = 12,
mjOBJ_TEXTURE = 13,
mjOBJ_MATERIAL = 14,
mjOBJ_PAIR = 15,
mjOBJ_EXCLUDE = 16,
mjOBJ_EQUALITY = 17,
mjOBJ_TENDON = 18,
mjOBJ_ACTUATOR = 19,
mjOBJ_SENSOR = 20,
mjOBJ_NUMERIC = 21,
mjOBJ_TEXT = 22,
mjOBJ_TUPLE = 23,
mjOBJ_KEY = 24,
mjOBJ_PLUGIN = 25,
mjNOBJECT = 26,
mjOBJ_FRAME = 100,
mjOBJ_DEFAULT = 101,
mjOBJ_MODEL = 102,
}
pub use self::mjtObj_ as mjtObj;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtSensor_ {
mjSENS_TOUCH = 0,
mjSENS_ACCELEROMETER = 1,
mjSENS_VELOCIMETER = 2,
mjSENS_GYRO = 3,
mjSENS_FORCE = 4,
mjSENS_TORQUE = 5,
mjSENS_MAGNETOMETER = 6,
mjSENS_RANGEFINDER = 7,
mjSENS_CAMPROJECTION = 8,
mjSENS_JOINTPOS = 9,
mjSENS_JOINTVEL = 10,
mjSENS_TENDONPOS = 11,
mjSENS_TENDONVEL = 12,
mjSENS_ACTUATORPOS = 13,
mjSENS_ACTUATORVEL = 14,
mjSENS_ACTUATORFRC = 15,
mjSENS_JOINTACTFRC = 16,
mjSENS_TENDONACTFRC = 17,
mjSENS_BALLQUAT = 18,
mjSENS_BALLANGVEL = 19,
mjSENS_JOINTLIMITPOS = 20,
mjSENS_JOINTLIMITVEL = 21,
mjSENS_JOINTLIMITFRC = 22,
mjSENS_TENDONLIMITPOS = 23,
mjSENS_TENDONLIMITVEL = 24,
mjSENS_TENDONLIMITFRC = 25,
mjSENS_FRAMEPOS = 26,
mjSENS_FRAMEQUAT = 27,
mjSENS_FRAMEXAXIS = 28,
mjSENS_FRAMEYAXIS = 29,
mjSENS_FRAMEZAXIS = 30,
mjSENS_FRAMELINVEL = 31,
mjSENS_FRAMEANGVEL = 32,
mjSENS_FRAMELINACC = 33,
mjSENS_FRAMEANGACC = 34,
mjSENS_SUBTREECOM = 35,
mjSENS_SUBTREELINVEL = 36,
mjSENS_SUBTREEANGMOM = 37,
mjSENS_INSIDESITE = 38,
mjSENS_GEOMDIST = 39,
mjSENS_GEOMNORMAL = 40,
mjSENS_GEOMFROMTO = 41,
mjSENS_CONTACT = 42,
mjSENS_E_POTENTIAL = 43,
mjSENS_E_KINETIC = 44,
mjSENS_CLOCK = 45,
mjSENS_TACTILE = 46,
mjSENS_PLUGIN = 47,
mjSENS_USER = 48,
}
pub use self::mjtSensor_ as mjtSensor;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtStage_ {
mjSTAGE_NONE = 0,
mjSTAGE_POS = 1,
mjSTAGE_VEL = 2,
mjSTAGE_ACC = 3,
}
pub use self::mjtStage_ as mjtStage;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtDataType_ {
mjDATATYPE_REAL = 0,
mjDATATYPE_POSITIVE = 1,
mjDATATYPE_AXIS = 2,
mjDATATYPE_QUATERNION = 3,
}
pub use self::mjtDataType_ as mjtDataType;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtConDataField_ {
mjCONDATA_FOUND = 0,
mjCONDATA_FORCE = 1,
mjCONDATA_TORQUE = 2,
mjCONDATA_DIST = 3,
mjCONDATA_POS = 4,
mjCONDATA_NORMAL = 5,
mjCONDATA_TANGENT = 6,
mjNCONDATA = 7,
}
pub use self::mjtConDataField_ as mjtConDataField;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtRayDataField_ {
mjRAYDATA_DIST = 0,
mjRAYDATA_DIR = 1,
mjRAYDATA_ORIGIN = 2,
mjRAYDATA_POINT = 3,
mjRAYDATA_NORMAL = 4,
mjRAYDATA_DEPTH = 5,
mjNRAYDATA = 6,
}
pub use self::mjtRayDataField_ as mjtRayDataField;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtCamOutBit_ {
mjCAMOUT_RGB = 1,
mjCAMOUT_DEPTH = 2,
mjCAMOUT_DIST = 4,
mjCAMOUT_NORMAL = 8,
mjCAMOUT_SEG = 16,
mjNCAMOUT = 5,
}
pub use self::mjtCamOutBit_ as mjtCamOutBit;
#[repr(u8)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtSameFrame_ {
mjSAMEFRAME_NONE = 0,
mjSAMEFRAME_BODY = 1,
mjSAMEFRAME_INERTIA = 2,
mjSAMEFRAME_BODYROT = 3,
mjSAMEFRAME_INERTIAROT = 4,
}
pub use self::mjtSameFrame_ as mjtSameFrame;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtSleepPolicy_ {
mjSLEEP_AUTO = 0,
mjSLEEP_AUTO_NEVER = 1,
mjSLEEP_AUTO_ALLOWED = 2,
mjSLEEP_NEVER = 3,
mjSLEEP_ALLOWED = 4,
mjSLEEP_INIT = 5,
}
pub use self::mjtSleepPolicy_ as mjtSleepPolicy;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtLRMode_ {
mjLRMODE_NONE = 0,
mjLRMODE_MUSCLE = 1,
mjLRMODE_MUSCLEUSER = 2,
mjLRMODE_ALL = 3,
}
pub use self::mjtLRMode_ as mjtLRMode;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtFlexSelf_ {
mjFLEXSELF_NONE = 0,
mjFLEXSELF_NARROW = 1,
mjFLEXSELF_BVH = 2,
mjFLEXSELF_SAP = 3,
mjFLEXSELF_AUTO = 4,
}
pub use self::mjtFlexSelf_ as mjtFlexSelf;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtSDFType_ {
mjSDFTYPE_SINGLE = 0,
mjSDFTYPE_INTERSECTION = 1,
mjSDFTYPE_MIDSURFACE = 2,
mjSDFTYPE_COLLISION = 3,
}
pub use self::mjtSDFType_ as mjtSDFType;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjLROpt_ {
pub mode: ::std::os::raw::c_int,
pub useexisting: ::std::os::raw::c_int,
pub uselimit: ::std::os::raw::c_int,
pub accel: mjtNum,
pub maxforce: mjtNum,
pub timeconst: mjtNum,
pub timestep: mjtNum,
pub inttotal: mjtNum,
pub interval: mjtNum,
pub tolrange: mjtNum,
}
pub type mjLROpt = mjLROpt_;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjCache_ {
pub impl_: *mut ::std::os::raw::c_void,
}
pub type mjCache = mjCache_;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjVFS_ {
pub impl_: *mut ::std::os::raw::c_void,
}
pub type mjVFS = mjVFS_;
#[repr(C)]
#[cfg_attr(feature = "viewer", derive(mujoco_rs_derive::ThreeWayMerge))]
#[derive(Debug, Clone, PartialEq)]
pub struct mjOption_ {
pub timestep: mjtNum,
pub impratio: mjtNum,
pub tolerance: mjtNum,
pub ls_tolerance: mjtNum,
pub noslip_tolerance: mjtNum,
pub ccd_tolerance: mjtNum,
pub sleep_tolerance: mjtNum,
pub gravity: [mjtNum; 3usize],
pub wind: [mjtNum; 3usize],
pub magnetic: [mjtNum; 3usize],
pub density: mjtNum,
pub viscosity: mjtNum,
pub o_margin: mjtNum,
pub o_solref: [mjtNum; 2usize],
pub o_solimp: [mjtNum; 5usize],
pub o_friction: [mjtNum; 5usize],
pub integrator: ::std::os::raw::c_int,
pub cone: ::std::os::raw::c_int,
pub jacobian: ::std::os::raw::c_int,
pub solver: ::std::os::raw::c_int,
pub iterations: ::std::os::raw::c_int,
pub ls_iterations: ::std::os::raw::c_int,
pub noslip_iterations: ::std::os::raw::c_int,
pub ccd_iterations: ::std::os::raw::c_int,
pub disableflags: ::std::os::raw::c_int,
pub enableflags: ::std::os::raw::c_int,
pub disableactuator: ::std::os::raw::c_int,
pub sdf_initpoints: ::std::os::raw::c_int,
pub sdf_iterations: ::std::os::raw::c_int,
}
pub type mjOption = mjOption_;
#[repr(C)]
#[cfg_attr(feature = "viewer", derive(mujoco_rs_derive::ThreeWayMerge))]
#[derive(Debug, Clone, PartialEq)]
pub struct mjVisual_ {
pub global: mjVisual___bindgen_ty_1,
pub quality: mjVisual___bindgen_ty_2,
pub headlight: mjVisual___bindgen_ty_3,
pub map: mjVisual___bindgen_ty_4,
pub scale: mjVisual___bindgen_ty_5,
pub rgba: mjVisual___bindgen_ty_6,
}
#[repr(C)]
#[cfg_attr(feature = "viewer", derive(mujoco_rs_derive::ThreeWayMerge))]
#[derive(Debug, Clone, PartialEq)]
pub struct mjVisual___bindgen_ty_1 {
pub cameraid: ::std::os::raw::c_int,
pub orthographic: ::std::os::raw::c_int,
pub fovy: f32,
pub ipd: f32,
pub azimuth: f32,
pub elevation: f32,
pub linewidth: f32,
pub glow: f32,
pub realtime: f32,
pub offwidth: ::std::os::raw::c_int,
pub offheight: ::std::os::raw::c_int,
pub ellipsoidinertia: ::std::os::raw::c_int,
pub bvactive: ::std::os::raw::c_int,
}
#[repr(C)]
#[cfg_attr(feature = "viewer", derive(mujoco_rs_derive::ThreeWayMerge))]
#[derive(Debug, Clone, PartialEq)]
pub struct mjVisual___bindgen_ty_2 {
pub shadowsize: ::std::os::raw::c_int,
pub offsamples: ::std::os::raw::c_int,
pub numslices: ::std::os::raw::c_int,
pub numstacks: ::std::os::raw::c_int,
pub numquads: ::std::os::raw::c_int,
}
#[repr(C)]
#[cfg_attr(feature = "viewer", derive(mujoco_rs_derive::ThreeWayMerge))]
#[derive(Debug, Clone, PartialEq)]
pub struct mjVisual___bindgen_ty_3 {
pub ambient: [f32; 3usize],
pub diffuse: [f32; 3usize],
pub specular: [f32; 3usize],
pub active: ::std::os::raw::c_int,
}
#[repr(C)]
#[cfg_attr(feature = "viewer", derive(mujoco_rs_derive::ThreeWayMerge))]
#[derive(Debug, Clone, PartialEq)]
pub struct mjVisual___bindgen_ty_4 {
pub stiffness: f32,
pub stiffnessrot: f32,
pub force: f32,
pub torque: f32,
pub alpha: f32,
pub fogstart: f32,
pub fogend: f32,
pub znear: f32,
pub zfar: f32,
pub haze: f32,
pub shadowclip: f32,
pub shadowscale: f32,
pub actuatortendon: f32,
}
#[repr(C)]
#[cfg_attr(feature = "viewer", derive(mujoco_rs_derive::ThreeWayMerge))]
#[derive(Debug, Clone, PartialEq)]
pub struct mjVisual___bindgen_ty_5 {
pub forcewidth: f32,
pub contactwidth: f32,
pub contactheight: f32,
pub connect: f32,
pub com: f32,
pub camera: f32,
pub light: f32,
pub selectpoint: f32,
pub jointlength: f32,
pub jointwidth: f32,
pub actuatorlength: f32,
pub actuatorwidth: f32,
pub framelength: f32,
pub framewidth: f32,
pub constraint: f32,
pub slidercrank: f32,
pub frustum: f32,
}
#[repr(C)]
#[cfg_attr(feature = "viewer", derive(mujoco_rs_derive::ThreeWayMerge))]
#[derive(Debug, Clone, PartialEq)]
pub struct mjVisual___bindgen_ty_6 {
pub fog: [f32; 4usize],
pub haze: [f32; 4usize],
pub force: [f32; 4usize],
pub inertia: [f32; 4usize],
pub joint: [f32; 4usize],
pub actuator: [f32; 4usize],
pub actuatornegative: [f32; 4usize],
pub actuatorpositive: [f32; 4usize],
pub com: [f32; 4usize],
pub camera: [f32; 4usize],
pub light: [f32; 4usize],
pub selectpoint: [f32; 4usize],
pub connect: [f32; 4usize],
pub contactpoint: [f32; 4usize],
pub contactforce: [f32; 4usize],
pub contactfriction: [f32; 4usize],
pub contacttorque: [f32; 4usize],
pub contactgap: [f32; 4usize],
pub rangefinder: [f32; 4usize],
pub constraint: [f32; 4usize],
pub slidercrank: [f32; 4usize],
pub crankbroken: [f32; 4usize],
pub frustum: [f32; 4usize],
pub bv: [f32; 4usize],
pub bvactive: [f32; 4usize],
}
pub type mjVisual = mjVisual_;
#[repr(C)]
#[cfg_attr(feature = "viewer", derive(mujoco_rs_derive::ThreeWayMerge))]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct mjStatistic_ {
pub meaninertia: mjtNum,
pub meanmass: mjtNum,
pub meansize: mjtNum,
pub extent: mjtNum,
pub center: [mjtNum; 3usize],
}
pub type mjStatistic = mjStatistic_;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjModel_ {
pub nq: mjtSize,
pub nv: mjtSize,
pub nu: mjtSize,
pub na: mjtSize,
pub nbody: mjtSize,
pub nbvh: mjtSize,
pub nbvhstatic: mjtSize,
pub nbvhdynamic: mjtSize,
pub noct: mjtSize,
pub njnt: mjtSize,
pub ntree: mjtSize,
pub nM: mjtSize,
pub nB: mjtSize,
pub nC: mjtSize,
pub nD: mjtSize,
pub ngeom: mjtSize,
pub nsite: mjtSize,
pub ncam: mjtSize,
pub nlight: mjtSize,
pub nflex: mjtSize,
pub nflexnode: mjtSize,
pub nflexvert: mjtSize,
pub nflexedge: mjtSize,
pub nflexelem: mjtSize,
pub nflexelemdata: mjtSize,
pub nflexstiffness: mjtSize,
pub nflexelemedge: mjtSize,
pub nflexshelldata: mjtSize,
pub nflexevpair: mjtSize,
pub nflextexcoord: mjtSize,
pub nJfe: mjtSize,
pub nJfv: mjtSize,
pub nmesh: mjtSize,
pub nmeshvert: mjtSize,
pub nmeshnormal: mjtSize,
pub nmeshtexcoord: mjtSize,
pub nmeshface: mjtSize,
pub nmeshgraph: mjtSize,
pub nmeshpoly: mjtSize,
pub nmeshpolyvert: mjtSize,
pub nmeshpolymap: mjtSize,
pub nskin: mjtSize,
pub nskinvert: mjtSize,
pub nskintexvert: mjtSize,
pub nskinface: mjtSize,
pub nskinbone: mjtSize,
pub nskinbonevert: mjtSize,
pub nhfield: mjtSize,
pub nhfielddata: mjtSize,
pub ntex: mjtSize,
pub ntexdata: mjtSize,
pub nmat: mjtSize,
pub npair: mjtSize,
pub nexclude: mjtSize,
pub neq: mjtSize,
pub ntendon: mjtSize,
pub nJten: mjtSize,
pub nwrap: mjtSize,
pub nsensor: mjtSize,
pub nnumeric: mjtSize,
pub nnumericdata: mjtSize,
pub ntext: mjtSize,
pub ntextdata: mjtSize,
pub ntuple: mjtSize,
pub ntupledata: mjtSize,
pub nkey: mjtSize,
pub nmocap: mjtSize,
pub nplugin: mjtSize,
pub npluginattr: mjtSize,
pub nuser_body: mjtSize,
pub nuser_jnt: mjtSize,
pub nuser_geom: mjtSize,
pub nuser_site: mjtSize,
pub nuser_cam: mjtSize,
pub nuser_tendon: mjtSize,
pub nuser_actuator: mjtSize,
pub nuser_sensor: mjtSize,
pub nnames: mjtSize,
pub npaths: mjtSize,
pub nnames_map: mjtSize,
pub nJmom: mjtSize,
pub ngravcomp: mjtSize,
pub nemax: mjtSize,
pub njmax: mjtSize,
pub nconmax: mjtSize,
pub nuserdata: mjtSize,
pub nsensordata: mjtSize,
pub npluginstate: mjtSize,
pub nhistory: mjtSize,
pub narena: mjtSize,
pub nbuffer: mjtSize,
pub opt: mjOption,
pub vis: mjVisual,
pub stat: mjStatistic,
pub buffer: *mut ::std::os::raw::c_void,
pub qpos0: *mut mjtNum,
pub qpos_spring: *mut mjtNum,
pub body_parentid: *mut ::std::os::raw::c_int,
pub body_rootid: *mut ::std::os::raw::c_int,
pub body_weldid: *mut ::std::os::raw::c_int,
pub body_mocapid: *mut ::std::os::raw::c_int,
pub body_jntnum: *mut ::std::os::raw::c_int,
pub body_jntadr: *mut ::std::os::raw::c_int,
pub body_dofnum: *mut ::std::os::raw::c_int,
pub body_dofadr: *mut ::std::os::raw::c_int,
pub body_treeid: *mut ::std::os::raw::c_int,
pub body_geomnum: *mut ::std::os::raw::c_int,
pub body_geomadr: *mut ::std::os::raw::c_int,
pub body_simple: *mut mjtByte,
pub body_sameframe: *mut mjtByte,
pub body_pos: *mut mjtNum,
pub body_quat: *mut mjtNum,
pub body_ipos: *mut mjtNum,
pub body_iquat: *mut mjtNum,
pub body_mass: *mut mjtNum,
pub body_subtreemass: *mut mjtNum,
pub body_inertia: *mut mjtNum,
pub body_invweight0: *mut mjtNum,
pub body_gravcomp: *mut mjtNum,
pub body_margin: *mut mjtNum,
pub body_user: *mut mjtNum,
pub body_plugin: *mut ::std::os::raw::c_int,
pub body_contype: *mut ::std::os::raw::c_int,
pub body_conaffinity: *mut ::std::os::raw::c_int,
pub body_bvhadr: *mut ::std::os::raw::c_int,
pub body_bvhnum: *mut ::std::os::raw::c_int,
pub bvh_depth: *mut ::std::os::raw::c_int,
pub bvh_child: *mut ::std::os::raw::c_int,
pub bvh_nodeid: *mut ::std::os::raw::c_int,
pub bvh_aabb: *mut mjtNum,
pub oct_depth: *mut ::std::os::raw::c_int,
pub oct_child: *mut ::std::os::raw::c_int,
pub oct_aabb: *mut mjtNum,
pub oct_coeff: *mut mjtNum,
pub jnt_type: *mut ::std::os::raw::c_int,
pub jnt_qposadr: *mut ::std::os::raw::c_int,
pub jnt_dofadr: *mut ::std::os::raw::c_int,
pub jnt_bodyid: *mut ::std::os::raw::c_int,
pub jnt_actuatorid: *mut ::std::os::raw::c_int,
pub jnt_group: *mut ::std::os::raw::c_int,
pub jnt_limited: *mut mjtByte,
pub jnt_actfrclimited: *mut mjtByte,
pub jnt_actgravcomp: *mut mjtByte,
pub jnt_solref: *mut mjtNum,
pub jnt_solimp: *mut mjtNum,
pub jnt_pos: *mut mjtNum,
pub jnt_axis: *mut mjtNum,
pub jnt_stiffness: *mut mjtNum,
pub jnt_stiffnesspoly: *mut mjtNum,
pub jnt_range: *mut mjtNum,
pub jnt_actfrcrange: *mut mjtNum,
pub jnt_margin: *mut mjtNum,
pub jnt_user: *mut mjtNum,
pub dof_bodyid: *mut ::std::os::raw::c_int,
pub dof_jntid: *mut ::std::os::raw::c_int,
pub dof_parentid: *mut ::std::os::raw::c_int,
pub dof_treeid: *mut ::std::os::raw::c_int,
pub dof_Madr: *mut ::std::os::raw::c_int,
pub dof_simplenum: *mut ::std::os::raw::c_int,
pub dof_solref: *mut mjtNum,
pub dof_solimp: *mut mjtNum,
pub dof_frictionloss: *mut mjtNum,
pub dof_armature: *mut mjtNum,
pub dof_damping: *mut mjtNum,
pub dof_dampingpoly: *mut mjtNum,
pub dof_invweight0: *mut mjtNum,
pub dof_M0: *mut mjtNum,
pub dof_length: *mut mjtNum,
pub tree_bodyadr: *mut ::std::os::raw::c_int,
pub tree_bodynum: *mut ::std::os::raw::c_int,
pub tree_dofadr: *mut ::std::os::raw::c_int,
pub tree_dofnum: *mut ::std::os::raw::c_int,
pub tree_sleep_policy: *mut ::std::os::raw::c_int,
pub geom_type: *mut ::std::os::raw::c_int,
pub geom_contype: *mut ::std::os::raw::c_int,
pub geom_conaffinity: *mut ::std::os::raw::c_int,
pub geom_condim: *mut ::std::os::raw::c_int,
pub geom_bodyid: *mut ::std::os::raw::c_int,
pub geom_dataid: *mut ::std::os::raw::c_int,
pub geom_matid: *mut ::std::os::raw::c_int,
pub geom_group: *mut ::std::os::raw::c_int,
pub geom_priority: *mut ::std::os::raw::c_int,
pub geom_plugin: *mut ::std::os::raw::c_int,
pub geom_sameframe: *mut mjtByte,
pub geom_solmix: *mut mjtNum,
pub geom_solref: *mut mjtNum,
pub geom_solimp: *mut mjtNum,
pub geom_size: *mut mjtNum,
pub geom_aabb: *mut mjtNum,
pub geom_rbound: *mut mjtNum,
pub geom_pos: *mut mjtNum,
pub geom_quat: *mut mjtNum,
pub geom_friction: *mut mjtNum,
pub geom_margin: *mut mjtNum,
pub geom_gap: *mut mjtNum,
pub geom_fluid: *mut mjtNum,
pub geom_user: *mut mjtNum,
pub geom_rgba: *mut f32,
pub site_type: *mut ::std::os::raw::c_int,
pub site_bodyid: *mut ::std::os::raw::c_int,
pub site_matid: *mut ::std::os::raw::c_int,
pub site_group: *mut ::std::os::raw::c_int,
pub site_sameframe: *mut mjtByte,
pub site_size: *mut mjtNum,
pub site_pos: *mut mjtNum,
pub site_quat: *mut mjtNum,
pub site_user: *mut mjtNum,
pub site_rgba: *mut f32,
pub cam_mode: *mut ::std::os::raw::c_int,
pub cam_bodyid: *mut ::std::os::raw::c_int,
pub cam_targetbodyid: *mut ::std::os::raw::c_int,
pub cam_pos: *mut mjtNum,
pub cam_quat: *mut mjtNum,
pub cam_poscom0: *mut mjtNum,
pub cam_pos0: *mut mjtNum,
pub cam_mat0: *mut mjtNum,
pub cam_projection: *mut ::std::os::raw::c_int,
pub cam_fovy: *mut mjtNum,
pub cam_ipd: *mut mjtNum,
pub cam_resolution: *mut ::std::os::raw::c_int,
pub cam_output: *mut ::std::os::raw::c_int,
pub cam_sensorsize: *mut f32,
pub cam_intrinsic: *mut f32,
pub cam_user: *mut mjtNum,
pub light_mode: *mut ::std::os::raw::c_int,
pub light_bodyid: *mut ::std::os::raw::c_int,
pub light_targetbodyid: *mut ::std::os::raw::c_int,
pub light_type: *mut ::std::os::raw::c_int,
pub light_texid: *mut ::std::os::raw::c_int,
pub light_castshadow: *mut mjtByte,
pub light_bulbradius: *mut f32,
pub light_intensity: *mut f32,
pub light_range: *mut f32,
pub light_active: *mut mjtByte,
pub light_pos: *mut mjtNum,
pub light_dir: *mut mjtNum,
pub light_poscom0: *mut mjtNum,
pub light_pos0: *mut mjtNum,
pub light_dir0: *mut mjtNum,
pub light_attenuation: *mut f32,
pub light_cutoff: *mut f32,
pub light_exponent: *mut f32,
pub light_ambient: *mut f32,
pub light_diffuse: *mut f32,
pub light_specular: *mut f32,
pub flex_contype: *mut ::std::os::raw::c_int,
pub flex_conaffinity: *mut ::std::os::raw::c_int,
pub flex_condim: *mut ::std::os::raw::c_int,
pub flex_priority: *mut ::std::os::raw::c_int,
pub flex_solmix: *mut mjtNum,
pub flex_solref: *mut mjtNum,
pub flex_solimp: *mut mjtNum,
pub flex_friction: *mut mjtNum,
pub flex_margin: *mut mjtNum,
pub flex_gap: *mut mjtNum,
pub flex_internal: *mut mjtByte,
pub flex_selfcollide: *mut ::std::os::raw::c_int,
pub flex_activelayers: *mut ::std::os::raw::c_int,
pub flex_passive: *mut ::std::os::raw::c_int,
pub flex_dim: *mut ::std::os::raw::c_int,
pub flex_matid: *mut ::std::os::raw::c_int,
pub flex_group: *mut ::std::os::raw::c_int,
pub flex_interp: *mut ::std::os::raw::c_int,
pub flex_bandwidth: *mut ::std::os::raw::c_int,
pub flex_cellnum: *mut ::std::os::raw::c_int,
pub flex_nodeadr: *mut ::std::os::raw::c_int,
pub flex_nodenum: *mut ::std::os::raw::c_int,
pub flex_vertadr: *mut ::std::os::raw::c_int,
pub flex_vertnum: *mut ::std::os::raw::c_int,
pub flex_edgeadr: *mut ::std::os::raw::c_int,
pub flex_edgenum: *mut ::std::os::raw::c_int,
pub flex_elemadr: *mut ::std::os::raw::c_int,
pub flex_elemnum: *mut ::std::os::raw::c_int,
pub flex_elemdataadr: *mut ::std::os::raw::c_int,
pub flex_stiffnessadr: *mut ::std::os::raw::c_int,
pub flex_elemedgeadr: *mut ::std::os::raw::c_int,
pub flex_shellnum: *mut ::std::os::raw::c_int,
pub flex_shelldataadr: *mut ::std::os::raw::c_int,
pub flex_evpairadr: *mut ::std::os::raw::c_int,
pub flex_evpairnum: *mut ::std::os::raw::c_int,
pub flex_texcoordadr: *mut ::std::os::raw::c_int,
pub flex_nodebodyid: *mut ::std::os::raw::c_int,
pub flex_vertbodyid: *mut ::std::os::raw::c_int,
pub flex_vertedgeadr: *mut ::std::os::raw::c_int,
pub flex_vertedgenum: *mut ::std::os::raw::c_int,
pub flex_vertedge: *mut ::std::os::raw::c_int,
pub flex_edge: *mut ::std::os::raw::c_int,
pub flex_edgeflap: *mut ::std::os::raw::c_int,
pub flex_elem: *mut ::std::os::raw::c_int,
pub flex_elemtexcoord: *mut ::std::os::raw::c_int,
pub flex_elemedge: *mut ::std::os::raw::c_int,
pub flex_elemlayer: *mut ::std::os::raw::c_int,
pub flex_shell: *mut ::std::os::raw::c_int,
pub flex_evpair: *mut ::std::os::raw::c_int,
pub flex_vert: *mut mjtNum,
pub flex_vert0: *mut mjtNum,
pub flex_vertmetric: *mut mjtNum,
pub flex_node: *mut mjtNum,
pub flex_node0: *mut mjtNum,
pub flexedge_length0: *mut mjtNum,
pub flexedge_invweight0: *mut mjtNum,
pub flex_radius: *mut mjtNum,
pub flex_size: *mut mjtNum,
pub flex_stiffness: *mut mjtNum,
pub flex_bending: *mut mjtNum,
pub flex_damping: *mut mjtNum,
pub flex_edgestiffness: *mut mjtNum,
pub flex_edgedamping: *mut mjtNum,
pub flex_edgeequality: *mut ::std::os::raw::c_int,
pub flex_rigid: *mut mjtByte,
pub flexedge_rigid: *mut mjtByte,
pub flex_centered: *mut mjtByte,
pub flex_flatskin: *mut mjtByte,
pub flex_bvhadr: *mut ::std::os::raw::c_int,
pub flex_bvhnum: *mut ::std::os::raw::c_int,
pub flexedge_J_rownnz: *mut ::std::os::raw::c_int,
pub flexedge_J_rowadr: *mut ::std::os::raw::c_int,
pub flexedge_J_colind: *mut ::std::os::raw::c_int,
pub flexvert_J_rownnz: *mut ::std::os::raw::c_int,
pub flexvert_J_rowadr: *mut ::std::os::raw::c_int,
pub flexvert_J_colind: *mut ::std::os::raw::c_int,
pub flex_rgba: *mut f32,
pub flex_texcoord: *mut f32,
pub mesh_vertadr: *mut ::std::os::raw::c_int,
pub mesh_vertnum: *mut ::std::os::raw::c_int,
pub mesh_faceadr: *mut ::std::os::raw::c_int,
pub mesh_facenum: *mut ::std::os::raw::c_int,
pub mesh_bvhadr: *mut ::std::os::raw::c_int,
pub mesh_bvhnum: *mut ::std::os::raw::c_int,
pub mesh_octadr: *mut ::std::os::raw::c_int,
pub mesh_octnum: *mut ::std::os::raw::c_int,
pub mesh_normaladr: *mut ::std::os::raw::c_int,
pub mesh_normalnum: *mut ::std::os::raw::c_int,
pub mesh_texcoordadr: *mut ::std::os::raw::c_int,
pub mesh_texcoordnum: *mut ::std::os::raw::c_int,
pub mesh_graphadr: *mut ::std::os::raw::c_int,
pub mesh_vert: *mut f32,
pub mesh_normal: *mut f32,
pub mesh_texcoord: *mut f32,
pub mesh_face: *mut ::std::os::raw::c_int,
pub mesh_facenormal: *mut ::std::os::raw::c_int,
pub mesh_facetexcoord: *mut ::std::os::raw::c_int,
pub mesh_graph: *mut ::std::os::raw::c_int,
pub mesh_scale: *mut mjtNum,
pub mesh_pos: *mut mjtNum,
pub mesh_quat: *mut mjtNum,
pub mesh_pathadr: *mut ::std::os::raw::c_int,
pub mesh_polynum: *mut ::std::os::raw::c_int,
pub mesh_polyadr: *mut ::std::os::raw::c_int,
pub mesh_polynormal: *mut mjtNum,
pub mesh_polyvertadr: *mut ::std::os::raw::c_int,
pub mesh_polyvertnum: *mut ::std::os::raw::c_int,
pub mesh_polyvert: *mut ::std::os::raw::c_int,
pub mesh_polymapadr: *mut ::std::os::raw::c_int,
pub mesh_polymapnum: *mut ::std::os::raw::c_int,
pub mesh_polymap: *mut ::std::os::raw::c_int,
pub skin_matid: *mut ::std::os::raw::c_int,
pub skin_group: *mut ::std::os::raw::c_int,
pub skin_rgba: *mut f32,
pub skin_inflate: *mut f32,
pub skin_vertadr: *mut ::std::os::raw::c_int,
pub skin_vertnum: *mut ::std::os::raw::c_int,
pub skin_texcoordadr: *mut ::std::os::raw::c_int,
pub skin_faceadr: *mut ::std::os::raw::c_int,
pub skin_facenum: *mut ::std::os::raw::c_int,
pub skin_boneadr: *mut ::std::os::raw::c_int,
pub skin_bonenum: *mut ::std::os::raw::c_int,
pub skin_vert: *mut f32,
pub skin_texcoord: *mut f32,
pub skin_face: *mut ::std::os::raw::c_int,
pub skin_bonevertadr: *mut ::std::os::raw::c_int,
pub skin_bonevertnum: *mut ::std::os::raw::c_int,
pub skin_bonebindpos: *mut f32,
pub skin_bonebindquat: *mut f32,
pub skin_bonebodyid: *mut ::std::os::raw::c_int,
pub skin_bonevertid: *mut ::std::os::raw::c_int,
pub skin_bonevertweight: *mut f32,
pub skin_pathadr: *mut ::std::os::raw::c_int,
pub hfield_size: *mut mjtNum,
pub hfield_nrow: *mut ::std::os::raw::c_int,
pub hfield_ncol: *mut ::std::os::raw::c_int,
pub hfield_adr: *mut ::std::os::raw::c_int,
pub hfield_data: *mut f32,
pub hfield_pathadr: *mut ::std::os::raw::c_int,
pub tex_type: *mut ::std::os::raw::c_int,
pub tex_colorspace: *mut ::std::os::raw::c_int,
pub tex_height: *mut ::std::os::raw::c_int,
pub tex_width: *mut ::std::os::raw::c_int,
pub tex_nchannel: *mut ::std::os::raw::c_int,
pub tex_adr: *mut mjtSize,
pub tex_data: *mut mjtByte,
pub tex_pathadr: *mut ::std::os::raw::c_int,
pub mat_texid: *mut ::std::os::raw::c_int,
pub mat_texuniform: *mut mjtByte,
pub mat_texrepeat: *mut f32,
pub mat_emission: *mut f32,
pub mat_specular: *mut f32,
pub mat_shininess: *mut f32,
pub mat_reflectance: *mut f32,
pub mat_metallic: *mut f32,
pub mat_roughness: *mut f32,
pub mat_rgba: *mut f32,
pub pair_dim: *mut ::std::os::raw::c_int,
pub pair_geom1: *mut ::std::os::raw::c_int,
pub pair_geom2: *mut ::std::os::raw::c_int,
pub pair_signature: *mut ::std::os::raw::c_int,
pub pair_solref: *mut mjtNum,
pub pair_solreffriction: *mut mjtNum,
pub pair_solimp: *mut mjtNum,
pub pair_margin: *mut mjtNum,
pub pair_gap: *mut mjtNum,
pub pair_friction: *mut mjtNum,
pub exclude_signature: *mut ::std::os::raw::c_int,
pub eq_type: *mut ::std::os::raw::c_int,
pub eq_obj1id: *mut ::std::os::raw::c_int,
pub eq_obj2id: *mut ::std::os::raw::c_int,
pub eq_objtype: *mut ::std::os::raw::c_int,
pub eq_active0: *mut mjtByte,
pub eq_solref: *mut mjtNum,
pub eq_solimp: *mut mjtNum,
pub eq_data: *mut mjtNum,
pub tendon_adr: *mut ::std::os::raw::c_int,
pub tendon_num: *mut ::std::os::raw::c_int,
pub tendon_matid: *mut ::std::os::raw::c_int,
pub tendon_actuatorid: *mut ::std::os::raw::c_int,
pub tendon_group: *mut ::std::os::raw::c_int,
pub tendon_treenum: *mut ::std::os::raw::c_int,
pub tendon_treeid: *mut ::std::os::raw::c_int,
pub ten_J_rownnz: *mut ::std::os::raw::c_int,
pub ten_J_rowadr: *mut ::std::os::raw::c_int,
pub ten_J_colind: *mut ::std::os::raw::c_int,
pub tendon_limited: *mut mjtByte,
pub tendon_actfrclimited: *mut mjtByte,
pub tendon_width: *mut mjtNum,
pub tendon_solref_lim: *mut mjtNum,
pub tendon_solimp_lim: *mut mjtNum,
pub tendon_solref_fri: *mut mjtNum,
pub tendon_solimp_fri: *mut mjtNum,
pub tendon_range: *mut mjtNum,
pub tendon_actfrcrange: *mut mjtNum,
pub tendon_margin: *mut mjtNum,
pub tendon_stiffness: *mut mjtNum,
pub tendon_stiffnesspoly: *mut mjtNum,
pub tendon_damping: *mut mjtNum,
pub tendon_dampingpoly: *mut mjtNum,
pub tendon_armature: *mut mjtNum,
pub tendon_frictionloss: *mut mjtNum,
pub tendon_lengthspring: *mut mjtNum,
pub tendon_length0: *mut mjtNum,
pub tendon_invweight0: *mut mjtNum,
pub tendon_user: *mut mjtNum,
pub tendon_rgba: *mut f32,
pub wrap_type: *mut ::std::os::raw::c_int,
pub wrap_objid: *mut ::std::os::raw::c_int,
pub wrap_prm: *mut mjtNum,
pub actuator_trntype: *mut ::std::os::raw::c_int,
pub actuator_dyntype: *mut ::std::os::raw::c_int,
pub actuator_gaintype: *mut ::std::os::raw::c_int,
pub actuator_biastype: *mut ::std::os::raw::c_int,
pub actuator_trnid: *mut ::std::os::raw::c_int,
pub actuator_damping: *mut mjtNum,
pub actuator_dampingpoly: *mut mjtNum,
pub actuator_armature: *mut mjtNum,
pub actuator_actadr: *mut ::std::os::raw::c_int,
pub actuator_actnum: *mut ::std::os::raw::c_int,
pub actuator_group: *mut ::std::os::raw::c_int,
pub actuator_history: *mut ::std::os::raw::c_int,
pub actuator_historyadr: *mut ::std::os::raw::c_int,
pub actuator_delay: *mut mjtNum,
pub actuator_ctrllimited: *mut mjtByte,
pub actuator_forcelimited: *mut mjtByte,
pub actuator_actlimited: *mut mjtByte,
pub actuator_dynprm: *mut mjtNum,
pub actuator_gainprm: *mut mjtNum,
pub actuator_biasprm: *mut mjtNum,
pub actuator_actearly: *mut mjtByte,
pub actuator_ctrlrange: *mut mjtNum,
pub actuator_forcerange: *mut mjtNum,
pub actuator_actrange: *mut mjtNum,
pub actuator_gear: *mut mjtNum,
pub actuator_cranklength: *mut mjtNum,
pub actuator_acc0: *mut mjtNum,
pub actuator_length0: *mut mjtNum,
pub actuator_lengthrange: *mut mjtNum,
pub actuator_user: *mut mjtNum,
pub actuator_plugin: *mut ::std::os::raw::c_int,
pub sensor_type: *mut ::std::os::raw::c_int,
pub sensor_datatype: *mut ::std::os::raw::c_int,
pub sensor_needstage: *mut ::std::os::raw::c_int,
pub sensor_objtype: *mut ::std::os::raw::c_int,
pub sensor_objid: *mut ::std::os::raw::c_int,
pub sensor_reftype: *mut ::std::os::raw::c_int,
pub sensor_refid: *mut ::std::os::raw::c_int,
pub sensor_intprm: *mut ::std::os::raw::c_int,
pub sensor_dim: *mut ::std::os::raw::c_int,
pub sensor_adr: *mut ::std::os::raw::c_int,
pub sensor_cutoff: *mut mjtNum,
pub sensor_noise: *mut mjtNum,
pub sensor_history: *mut ::std::os::raw::c_int,
pub sensor_historyadr: *mut ::std::os::raw::c_int,
pub sensor_delay: *mut mjtNum,
pub sensor_interval: *mut mjtNum,
pub sensor_user: *mut mjtNum,
pub sensor_plugin: *mut ::std::os::raw::c_int,
pub plugin: *mut ::std::os::raw::c_int,
pub plugin_stateadr: *mut ::std::os::raw::c_int,
pub plugin_statenum: *mut ::std::os::raw::c_int,
pub plugin_attr: *mut ::std::os::raw::c_char,
pub plugin_attradr: *mut ::std::os::raw::c_int,
pub numeric_adr: *mut ::std::os::raw::c_int,
pub numeric_size: *mut ::std::os::raw::c_int,
pub numeric_data: *mut mjtNum,
pub text_adr: *mut ::std::os::raw::c_int,
pub text_size: *mut ::std::os::raw::c_int,
pub text_data: *mut ::std::os::raw::c_char,
pub tuple_adr: *mut ::std::os::raw::c_int,
pub tuple_size: *mut ::std::os::raw::c_int,
pub tuple_objtype: *mut ::std::os::raw::c_int,
pub tuple_objid: *mut ::std::os::raw::c_int,
pub tuple_objprm: *mut mjtNum,
pub key_time: *mut mjtNum,
pub key_qpos: *mut mjtNum,
pub key_qvel: *mut mjtNum,
pub key_act: *mut mjtNum,
pub key_mpos: *mut mjtNum,
pub key_mquat: *mut mjtNum,
pub key_ctrl: *mut mjtNum,
pub name_bodyadr: *mut ::std::os::raw::c_int,
pub name_jntadr: *mut ::std::os::raw::c_int,
pub name_geomadr: *mut ::std::os::raw::c_int,
pub name_siteadr: *mut ::std::os::raw::c_int,
pub name_camadr: *mut ::std::os::raw::c_int,
pub name_lightadr: *mut ::std::os::raw::c_int,
pub name_flexadr: *mut ::std::os::raw::c_int,
pub name_meshadr: *mut ::std::os::raw::c_int,
pub name_skinadr: *mut ::std::os::raw::c_int,
pub name_hfieldadr: *mut ::std::os::raw::c_int,
pub name_texadr: *mut ::std::os::raw::c_int,
pub name_matadr: *mut ::std::os::raw::c_int,
pub name_pairadr: *mut ::std::os::raw::c_int,
pub name_excludeadr: *mut ::std::os::raw::c_int,
pub name_eqadr: *mut ::std::os::raw::c_int,
pub name_tendonadr: *mut ::std::os::raw::c_int,
pub name_actuatoradr: *mut ::std::os::raw::c_int,
pub name_sensoradr: *mut ::std::os::raw::c_int,
pub name_numericadr: *mut ::std::os::raw::c_int,
pub name_textadr: *mut ::std::os::raw::c_int,
pub name_tupleadr: *mut ::std::os::raw::c_int,
pub name_keyadr: *mut ::std::os::raw::c_int,
pub name_pluginadr: *mut ::std::os::raw::c_int,
pub names: *mut ::std::os::raw::c_char,
pub names_map: *mut ::std::os::raw::c_int,
pub paths: *mut ::std::os::raw::c_char,
pub B_rownnz: *mut ::std::os::raw::c_int,
pub B_rowadr: *mut ::std::os::raw::c_int,
pub B_colind: *mut ::std::os::raw::c_int,
pub M_rownnz: *mut ::std::os::raw::c_int,
pub M_rowadr: *mut ::std::os::raw::c_int,
pub M_colind: *mut ::std::os::raw::c_int,
pub mapM2M: *mut ::std::os::raw::c_int,
pub D_rownnz: *mut ::std::os::raw::c_int,
pub D_rowadr: *mut ::std::os::raw::c_int,
pub D_diag: *mut ::std::os::raw::c_int,
pub D_colind: *mut ::std::os::raw::c_int,
pub mapM2D: *mut ::std::os::raw::c_int,
pub mapD2M: *mut ::std::os::raw::c_int,
pub signature: u64,
}
pub type mjModel = mjModel_;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtTaskStatus_ {
mjTASK_NEW = 0,
mjTASK_QUEUED = 1,
mjTASK_COMPLETED = 2,
}
pub use self::mjtTaskStatus_ as mjtTaskStatus;
pub type mjfTask = ::std::option::Option<
unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
>;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjThreadPool_ {
pub nworker: ::std::os::raw::c_int,
}
pub type mjThreadPool = mjThreadPool_;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjTask_ {
pub func: mjfTask,
pub args: *mut ::std::os::raw::c_void,
pub status: ::std::os::raw::c_int,
}
pub type mjTask = mjTask_;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtState_ {
mjSTATE_TIME = 1,
mjSTATE_QPOS = 2,
mjSTATE_QVEL = 4,
mjSTATE_ACT = 8,
mjSTATE_HISTORY = 16,
mjSTATE_WARMSTART = 32,
mjSTATE_CTRL = 64,
mjSTATE_QFRC_APPLIED = 128,
mjSTATE_XFRC_APPLIED = 256,
mjSTATE_EQ_ACTIVE = 512,
mjSTATE_MOCAP_POS = 1024,
mjSTATE_MOCAP_QUAT = 2048,
mjSTATE_USERDATA = 4096,
mjSTATE_PLUGIN = 8192,
mjNSTATE = 14,
mjSTATE_PHYSICS = 30,
mjSTATE_FULLPHYSICS = 8223,
mjSTATE_USER = 8128,
mjSTATE_INTEGRATION = 16383,
}
pub use self::mjtState_ as mjtState;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtConstraint_ {
mjCNSTR_EQUALITY = 0,
mjCNSTR_FRICTION_DOF = 1,
mjCNSTR_FRICTION_TENDON = 2,
mjCNSTR_LIMIT_JOINT = 3,
mjCNSTR_LIMIT_TENDON = 4,
mjCNSTR_CONTACT_FRICTIONLESS = 5,
mjCNSTR_CONTACT_PYRAMIDAL = 6,
mjCNSTR_CONTACT_ELLIPTIC = 7,
}
pub use self::mjtConstraint_ as mjtConstraint;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtConstraintState_ {
mjCNSTRSTATE_SATISFIED = 0,
mjCNSTRSTATE_QUADRATIC = 1,
mjCNSTRSTATE_LINEARNEG = 2,
mjCNSTRSTATE_LINEARPOS = 3,
mjCNSTRSTATE_CONE = 4,
}
pub use self::mjtConstraintState_ as mjtConstraintState;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtWarning_ {
mjWARN_INERTIA = 0,
mjWARN_CONTACTFULL = 1,
mjWARN_CNSTRFULL = 2,
mjWARN_BADQPOS = 3,
mjWARN_BADQVEL = 4,
mjWARN_BADQACC = 5,
mjWARN_BADCTRL = 6,
mjNWARNING = 7,
}
pub use self::mjtWarning_ as mjtWarning;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtTimer_ {
mjTIMER_STEP = 0,
mjTIMER_FORWARD = 1,
mjTIMER_INVERSE = 2,
mjTIMER_POSITION = 3,
mjTIMER_VELOCITY = 4,
mjTIMER_ACTUATION = 5,
mjTIMER_CONSTRAINT = 6,
mjTIMER_ADVANCE = 7,
mjTIMER_POS_KINEMATICS = 8,
mjTIMER_POS_INERTIA = 9,
mjTIMER_POS_COLLISION = 10,
mjTIMER_POS_MAKE = 11,
mjTIMER_POS_PROJECT = 12,
mjTIMER_COL_BROAD = 13,
mjTIMER_COL_NARROW = 14,
mjNTIMER = 15,
}
pub use self::mjtTimer_ as mjtTimer;
#[repr(i32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtSleepState_ {
mjS_STATIC = -1,
mjS_ASLEEP = 0,
mjS_AWAKE = 1,
}
pub use self::mjtSleepState_ as mjtSleepState;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjContact_ {
pub dist: mjtNum,
pub pos: [mjtNum; 3usize],
pub frame: [mjtNum; 9usize],
pub includemargin: mjtNum,
pub friction: [mjtNum; 5usize],
pub solref: [mjtNum; 2usize],
pub solreffriction: [mjtNum; 2usize],
pub solimp: [mjtNum; 5usize],
pub mu: mjtNum,
pub H: [mjtNum; 36usize],
pub dim: ::std::os::raw::c_int,
pub geom1: ::std::os::raw::c_int,
pub geom2: ::std::os::raw::c_int,
pub geom: [::std::os::raw::c_int; 2usize],
pub flex: [::std::os::raw::c_int; 2usize],
pub elem: [::std::os::raw::c_int; 2usize],
pub vert: [::std::os::raw::c_int; 2usize],
pub exclude: ::std::os::raw::c_int,
pub efc_address: ::std::os::raw::c_int,
}
pub type mjContact = mjContact_;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjWarningStat_ {
pub lastinfo: ::std::os::raw::c_int,
pub number: ::std::os::raw::c_int,
}
pub type mjWarningStat = mjWarningStat_;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjTimerStat_ {
pub duration: mjtNum,
pub number: ::std::os::raw::c_int,
}
pub type mjTimerStat = mjTimerStat_;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjSolverStat_ {
pub improvement: mjtNum,
pub gradient: mjtNum,
pub lineslope: mjtNum,
pub nactive: ::std::os::raw::c_int,
pub nchange: ::std::os::raw::c_int,
pub neval: ::std::os::raw::c_int,
pub nupdate: ::std::os::raw::c_int,
}
pub type mjSolverStat = mjSolverStat_;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjData_ {
pub narena: mjtSize,
pub nbuffer: mjtSize,
pub nplugin: ::std::os::raw::c_int,
pub pstack: usize,
pub pbase: usize,
pub parena: usize,
pub maxuse_stack: mjtSize,
pub maxuse_threadstack: [mjtSize; 128usize],
pub maxuse_arena: mjtSize,
pub maxuse_con: ::std::os::raw::c_int,
pub maxuse_efc: ::std::os::raw::c_int,
pub solver: [mjSolverStat; 4000usize],
pub solver_niter: [::std::os::raw::c_int; 20usize],
pub solver_nnz: [::std::os::raw::c_int; 20usize],
pub solver_fwdinv: [mjtNum; 2usize],
pub warning: [mjWarningStat; 7usize],
pub timer: [mjTimerStat; 15usize],
pub ncon: ::std::os::raw::c_int,
pub ne: ::std::os::raw::c_int,
pub nf: ::std::os::raw::c_int,
pub nl: ::std::os::raw::c_int,
pub nefc: ::std::os::raw::c_int,
pub nJ: ::std::os::raw::c_int,
pub nA: ::std::os::raw::c_int,
pub nisland: ::std::os::raw::c_int,
pub nidof: ::std::os::raw::c_int,
pub ntree_awake: ::std::os::raw::c_int,
pub nbody_awake: ::std::os::raw::c_int,
pub nparent_awake: ::std::os::raw::c_int,
pub nv_awake: ::std::os::raw::c_int,
pub flg_energypos: mjtByte,
pub flg_energyvel: mjtByte,
pub flg_subtreevel: mjtByte,
pub flg_rnepost: mjtByte,
pub time: mjtNum,
pub energy: [mjtNum; 2usize],
pub buffer: *mut ::std::os::raw::c_void,
pub arena: *mut ::std::os::raw::c_void,
pub qpos: *mut mjtNum,
pub qvel: *mut mjtNum,
pub act: *mut mjtNum,
pub history: *mut mjtNum,
pub qacc_warmstart: *mut mjtNum,
pub plugin_state: *mut mjtNum,
pub ctrl: *mut mjtNum,
pub qfrc_applied: *mut mjtNum,
pub xfrc_applied: *mut mjtNum,
pub eq_active: *mut mjtByte,
pub mocap_pos: *mut mjtNum,
pub mocap_quat: *mut mjtNum,
pub qacc: *mut mjtNum,
pub act_dot: *mut mjtNum,
pub userdata: *mut mjtNum,
pub sensordata: *mut mjtNum,
pub tree_asleep: *mut ::std::os::raw::c_int,
pub plugin: *mut ::std::os::raw::c_int,
pub plugin_data: *mut usize,
pub xpos: *mut mjtNum,
pub xquat: *mut mjtNum,
pub xmat: *mut mjtNum,
pub xipos: *mut mjtNum,
pub ximat: *mut mjtNum,
pub xanchor: *mut mjtNum,
pub xaxis: *mut mjtNum,
pub geom_xpos: *mut mjtNum,
pub geom_xmat: *mut mjtNum,
pub site_xpos: *mut mjtNum,
pub site_xmat: *mut mjtNum,
pub cam_xpos: *mut mjtNum,
pub cam_xmat: *mut mjtNum,
pub light_xpos: *mut mjtNum,
pub light_xdir: *mut mjtNum,
pub subtree_com: *mut mjtNum,
pub cdof: *mut mjtNum,
pub cinert: *mut mjtNum,
pub flexvert_xpos: *mut mjtNum,
pub flexelem_aabb: *mut mjtNum,
pub flexedge_J: *mut mjtNum,
pub flexedge_length: *mut mjtNum,
pub flexvert_J: *mut mjtNum,
pub flexvert_length: *mut mjtNum,
pub bvh_aabb_dyn: *mut mjtNum,
pub ten_wrapadr: *mut ::std::os::raw::c_int,
pub ten_wrapnum: *mut ::std::os::raw::c_int,
pub ten_J: *mut mjtNum,
pub ten_length: *mut mjtNum,
pub wrap_obj: *mut ::std::os::raw::c_int,
pub wrap_xpos: *mut mjtNum,
pub actuator_length: *mut mjtNum,
pub moment_rownnz: *mut ::std::os::raw::c_int,
pub moment_rowadr: *mut ::std::os::raw::c_int,
pub moment_colind: *mut ::std::os::raw::c_int,
pub actuator_moment: *mut mjtNum,
pub crb: *mut mjtNum,
pub qM: *mut mjtNum,
pub M: *mut mjtNum,
pub qLD: *mut mjtNum,
pub qLDiagInv: *mut mjtNum,
pub bvh_active: *mut mjtByte,
pub tree_awake: *mut ::std::os::raw::c_int,
pub body_awake: *mut ::std::os::raw::c_int,
pub body_awake_ind: *mut ::std::os::raw::c_int,
pub parent_awake_ind: *mut ::std::os::raw::c_int,
pub dof_awake_ind: *mut ::std::os::raw::c_int,
pub flexedge_velocity: *mut mjtNum,
pub ten_velocity: *mut mjtNum,
pub actuator_velocity: *mut mjtNum,
pub cvel: *mut mjtNum,
pub cdof_dot: *mut mjtNum,
pub qfrc_bias: *mut mjtNum,
pub qfrc_spring: *mut mjtNum,
pub qfrc_damper: *mut mjtNum,
pub qfrc_gravcomp: *mut mjtNum,
pub qfrc_fluid: *mut mjtNum,
pub qfrc_passive: *mut mjtNum,
pub subtree_linvel: *mut mjtNum,
pub subtree_angmom: *mut mjtNum,
pub qH: *mut mjtNum,
pub qHDiagInv: *mut mjtNum,
pub qDeriv: *mut mjtNum,
pub qLU: *mut mjtNum,
pub actuator_force: *mut mjtNum,
pub qfrc_actuator: *mut mjtNum,
pub qfrc_smooth: *mut mjtNum,
pub qacc_smooth: *mut mjtNum,
pub qfrc_constraint: *mut mjtNum,
pub qfrc_inverse: *mut mjtNum,
pub cacc: *mut mjtNum,
pub cfrc_int: *mut mjtNum,
pub cfrc_ext: *mut mjtNum,
pub contact: *mut mjContact,
pub efc_type: *mut ::std::os::raw::c_int,
pub efc_id: *mut ::std::os::raw::c_int,
pub efc_J_rownnz: *mut ::std::os::raw::c_int,
pub efc_J_rowadr: *mut ::std::os::raw::c_int,
pub efc_J_rowsuper: *mut ::std::os::raw::c_int,
pub efc_J_colind: *mut ::std::os::raw::c_int,
pub efc_J: *mut mjtNum,
pub efc_pos: *mut mjtNum,
pub efc_margin: *mut mjtNum,
pub efc_frictionloss: *mut mjtNum,
pub efc_diagApprox: *mut mjtNum,
pub efc_KBIP: *mut mjtNum,
pub efc_D: *mut mjtNum,
pub efc_R: *mut mjtNum,
pub tendon_efcadr: *mut ::std::os::raw::c_int,
pub tree_island: *mut ::std::os::raw::c_int,
pub island_ntree: *mut ::std::os::raw::c_int,
pub island_itreeadr: *mut ::std::os::raw::c_int,
pub map_itree2tree: *mut ::std::os::raw::c_int,
pub dof_island: *mut ::std::os::raw::c_int,
pub island_nv: *mut ::std::os::raw::c_int,
pub island_idofadr: *mut ::std::os::raw::c_int,
pub island_dofadr: *mut ::std::os::raw::c_int,
pub map_dof2idof: *mut ::std::os::raw::c_int,
pub map_idof2dof: *mut ::std::os::raw::c_int,
pub ifrc_smooth: *mut mjtNum,
pub iacc_smooth: *mut mjtNum,
pub iM_rownnz: *mut ::std::os::raw::c_int,
pub iM_rowadr: *mut ::std::os::raw::c_int,
pub iM_colind: *mut ::std::os::raw::c_int,
pub iM: *mut mjtNum,
pub iLD: *mut mjtNum,
pub iLDiagInv: *mut mjtNum,
pub iacc: *mut mjtNum,
pub efc_island: *mut ::std::os::raw::c_int,
pub island_ne: *mut ::std::os::raw::c_int,
pub island_nf: *mut ::std::os::raw::c_int,
pub island_nefc: *mut ::std::os::raw::c_int,
pub island_iefcadr: *mut ::std::os::raw::c_int,
pub map_efc2iefc: *mut ::std::os::raw::c_int,
pub map_iefc2efc: *mut ::std::os::raw::c_int,
pub iefc_type: *mut ::std::os::raw::c_int,
pub iefc_id: *mut ::std::os::raw::c_int,
pub iefc_J_rownnz: *mut ::std::os::raw::c_int,
pub iefc_J_rowadr: *mut ::std::os::raw::c_int,
pub iefc_J_rowsuper: *mut ::std::os::raw::c_int,
pub iefc_J_colind: *mut ::std::os::raw::c_int,
pub iefc_J: *mut mjtNum,
pub iefc_frictionloss: *mut mjtNum,
pub iefc_D: *mut mjtNum,
pub iefc_R: *mut mjtNum,
pub efc_AR_rownnz: *mut ::std::os::raw::c_int,
pub efc_AR_rowadr: *mut ::std::os::raw::c_int,
pub efc_AR_colind: *mut ::std::os::raw::c_int,
pub efc_AR: *mut mjtNum,
pub efc_vel: *mut mjtNum,
pub efc_aref: *mut mjtNum,
pub efc_b: *mut mjtNum,
pub iefc_aref: *mut mjtNum,
pub iefc_state: *mut ::std::os::raw::c_int,
pub iefc_force: *mut mjtNum,
pub efc_state: *mut ::std::os::raw::c_int,
pub efc_force: *mut mjtNum,
pub ifrc_constraint: *mut mjtNum,
pub threadpool: usize,
pub signature: u64,
}
pub type mjData = mjData_;
pub type mjfGeneric =
::std::option::Option<unsafe extern "C" fn(m: *const mjModel, d: *mut mjData)>;
pub type mjfConFilt = ::std::option::Option<
unsafe extern "C" fn(
m: *const mjModel,
d: *mut mjData,
geom1: ::std::os::raw::c_int,
geom2: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>;
pub type mjfSensor = ::std::option::Option<
unsafe extern "C" fn(m: *const mjModel, d: *mut mjData, stage: ::std::os::raw::c_int),
>;
pub type mjfTime = ::std::option::Option<unsafe extern "C" fn() -> mjtNum>;
pub type mjfAct = ::std::option::Option<
unsafe extern "C" fn(m: *const mjModel, d: *const mjData, id: ::std::os::raw::c_int) -> mjtNum,
>;
pub type mjfCollision = ::std::option::Option<
unsafe extern "C" fn(
m: *const mjModel,
d: *mut mjData,
con: *mut mjContact,
g1: ::std::os::raw::c_int,
g2: ::std::os::raw::c_int,
margin: mjtNum,
) -> ::std::os::raw::c_int,
>;
pub type mjString = ::std::os::raw::c_void;
pub type mjStringVec = ::std::os::raw::c_void;
pub type mjIntVec = ::std::os::raw::c_void;
pub type mjIntVecVec = ::std::os::raw::c_void;
pub type mjFloatVec = ::std::os::raw::c_void;
pub type mjFloatVecVec = ::std::os::raw::c_void;
pub type mjDoubleVec = ::std::os::raw::c_void;
pub type mjByteVec = ::std::os::raw::c_void;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtGeomInertia_ {
mjINERTIA_VOLUME = 0,
mjINERTIA_SHELL = 1,
}
pub use self::mjtGeomInertia_ as mjtGeomInertia;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtMeshInertia_ {
mjMESH_INERTIA_CONVEX = 0,
mjMESH_INERTIA_EXACT = 1,
mjMESH_INERTIA_LEGACY = 2,
mjMESH_INERTIA_SHELL = 3,
}
pub use self::mjtMeshInertia_ as mjtMeshInertia;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtMeshBuiltin_ {
mjMESH_BUILTIN_NONE = 0,
mjMESH_BUILTIN_SPHERE = 1,
mjMESH_BUILTIN_HEMISPHERE = 2,
mjMESH_BUILTIN_CONE = 3,
mjMESH_BUILTIN_SUPERSPHERE = 4,
mjMESH_BUILTIN_SUPERTORUS = 5,
mjMESH_BUILTIN_WEDGE = 6,
mjMESH_BUILTIN_PLATE = 7,
}
pub use self::mjtMeshBuiltin_ as mjtMeshBuiltin;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtBuiltin_ {
mjBUILTIN_NONE = 0,
mjBUILTIN_GRADIENT = 1,
mjBUILTIN_CHECKER = 2,
mjBUILTIN_FLAT = 3,
}
pub use self::mjtBuiltin_ as mjtBuiltin;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtMark_ {
mjMARK_NONE = 0,
mjMARK_EDGE = 1,
mjMARK_CROSS = 2,
mjMARK_RANDOM = 3,
}
pub use self::mjtMark_ as mjtMark;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtLimited_ {
mjLIMITED_FALSE = 0,
mjLIMITED_TRUE = 1,
mjLIMITED_AUTO = 2,
}
pub use self::mjtLimited_ as mjtLimited;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtAlignFree_ {
mjALIGNFREE_FALSE = 0,
mjALIGNFREE_TRUE = 1,
mjALIGNFREE_AUTO = 2,
}
pub use self::mjtAlignFree_ as mjtAlignFree;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtInertiaFromGeom_ {
mjINERTIAFROMGEOM_FALSE = 0,
mjINERTIAFROMGEOM_TRUE = 1,
mjINERTIAFROMGEOM_AUTO = 2,
}
pub use self::mjtInertiaFromGeom_ as mjtInertiaFromGeom;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtOrientation_ {
mjORIENTATION_QUAT = 0,
mjORIENTATION_AXISANGLE = 1,
mjORIENTATION_XYAXES = 2,
mjORIENTATION_ZAXIS = 3,
mjORIENTATION_EULER = 4,
}
pub use self::mjtOrientation_ as mjtOrientation;
#[repr(C)]
#[derive(Debug)]
pub struct mjsElement_ {
pub(crate) elemtype: mjtObj,
pub(crate) signature: u64,
}
pub type mjsElement = mjsElement_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsCompiler_ {
pub(crate) autolimits: mjtByte,
pub(crate) boundmass: f64,
pub(crate) boundinertia: f64,
pub(crate) settotalmass: f64,
pub(crate) balanceinertia: mjtByte,
pub(crate) fitaabb: mjtByte,
pub(crate) degree: mjtByte,
pub(crate) eulerseq: [::std::os::raw::c_char; 3usize],
pub(crate) discardvisual: mjtByte,
pub(crate) usethread: mjtByte,
pub(crate) fusestatic: mjtByte,
pub(crate) inertiafromgeom: ::std::os::raw::c_int,
pub(crate) inertiagrouprange: [::std::os::raw::c_int; 2usize],
pub(crate) saveinertial: mjtByte,
pub(crate) alignfree: ::std::os::raw::c_int,
pub(crate) LRopt: mjLROpt,
pub(crate) meshdir: *mut mjString,
pub(crate) texturedir: *mut mjString,
}
pub type mjsCompiler = mjsCompiler_;
#[repr(C)]
#[derive(Debug)]
pub struct mjSpec_ {
pub element: *mut mjsElement,
pub modelname: *mut mjString,
pub compiler: mjsCompiler,
pub strippath: mjtByte,
pub option: mjOption,
pub visual: mjVisual,
pub stat: mjStatistic,
pub memory: mjtSize,
pub nemax: ::std::os::raw::c_int,
pub nuserdata: ::std::os::raw::c_int,
pub nuser_body: ::std::os::raw::c_int,
pub nuser_jnt: ::std::os::raw::c_int,
pub nuser_geom: ::std::os::raw::c_int,
pub nuser_site: ::std::os::raw::c_int,
pub nuser_cam: ::std::os::raw::c_int,
pub nuser_tendon: ::std::os::raw::c_int,
pub nuser_actuator: ::std::os::raw::c_int,
pub nuser_sensor: ::std::os::raw::c_int,
pub nkey: ::std::os::raw::c_int,
pub njmax: ::std::os::raw::c_int,
pub nconmax: ::std::os::raw::c_int,
pub nstack: mjtSize,
pub comment: *mut mjString,
pub modelfiledir: *mut mjString,
pub hasImplicitPluginElem: mjtByte,
}
pub type mjSpec = mjSpec_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsOrientation_ {
pub(crate) type_: mjtOrientation,
pub(crate) axisangle: [f64; 4usize],
pub(crate) xyaxes: [f64; 6usize],
pub(crate) zaxis: [f64; 3usize],
pub(crate) euler: [f64; 3usize],
}
pub type mjsOrientation = mjsOrientation_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsPlugin_ {
pub(crate) element: *mut mjsElement,
pub(crate) name: *mut mjString,
pub(crate) plugin_name: *mut mjString,
pub(crate) active: mjtByte,
pub(crate) info: *mut mjString,
}
pub type mjsPlugin = mjsPlugin_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsBody_ {
pub(crate) element: *mut mjsElement,
pub(crate) childclass: *mut mjString,
pub(crate) pos: [f64; 3usize],
pub(crate) quat: [f64; 4usize],
pub(crate) alt: mjsOrientation,
pub(crate) mass: f64,
pub(crate) ipos: [f64; 3usize],
pub(crate) iquat: [f64; 4usize],
pub(crate) inertia: [f64; 3usize],
pub(crate) ialt: mjsOrientation,
pub(crate) fullinertia: [f64; 6usize],
pub(crate) mocap: mjtByte,
pub(crate) gravcomp: f64,
pub(crate) sleep: mjtSleepPolicy,
pub(crate) userdata: *mut mjDoubleVec,
pub(crate) explicitinertial: mjtByte,
pub(crate) plugin: mjsPlugin,
pub(crate) info: *mut mjString,
}
pub type mjsBody = mjsBody_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsFrame_ {
pub(crate) element: *mut mjsElement,
pub(crate) childclass: *mut mjString,
pub(crate) pos: [f64; 3usize],
pub(crate) quat: [f64; 4usize],
pub(crate) alt: mjsOrientation,
pub(crate) info: *mut mjString,
}
pub type mjsFrame = mjsFrame_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsJoint_ {
pub(crate) element: *mut mjsElement,
pub(crate) type_: mjtJoint,
pub(crate) pos: [f64; 3usize],
pub(crate) axis: [f64; 3usize],
pub(crate) ref_: f64,
pub(crate) align: ::std::os::raw::c_int,
pub(crate) stiffness: [f64; 3usize],
pub(crate) springref: f64,
pub(crate) springdamper: [f64; 2usize],
pub(crate) limited: ::std::os::raw::c_int,
pub(crate) range: [f64; 2usize],
pub(crate) margin: f64,
pub(crate) solref_limit: [mjtNum; 2usize],
pub(crate) solimp_limit: [mjtNum; 5usize],
pub(crate) actfrclimited: ::std::os::raw::c_int,
pub(crate) actfrcrange: [f64; 2usize],
pub(crate) armature: f64,
pub(crate) damping: [f64; 3usize],
pub(crate) frictionloss: f64,
pub(crate) solref_friction: [mjtNum; 2usize],
pub(crate) solimp_friction: [mjtNum; 5usize],
pub(crate) group: ::std::os::raw::c_int,
pub(crate) actgravcomp: mjtByte,
pub(crate) userdata: *mut mjDoubleVec,
pub(crate) info: *mut mjString,
}
pub type mjsJoint = mjsJoint_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsGeom_ {
pub(crate) element: *mut mjsElement,
pub(crate) type_: mjtGeom,
pub(crate) pos: [f64; 3usize],
pub(crate) quat: [f64; 4usize],
pub(crate) alt: mjsOrientation,
pub(crate) fromto: [f64; 6usize],
pub(crate) size: [f64; 3usize],
pub(crate) contype: ::std::os::raw::c_int,
pub(crate) conaffinity: ::std::os::raw::c_int,
pub(crate) condim: ::std::os::raw::c_int,
pub(crate) priority: ::std::os::raw::c_int,
pub(crate) friction: [f64; 3usize],
pub(crate) solmix: f64,
pub(crate) solref: [mjtNum; 2usize],
pub(crate) solimp: [mjtNum; 5usize],
pub(crate) margin: f64,
pub(crate) gap: f64,
pub(crate) mass: f64,
pub(crate) density: f64,
pub(crate) typeinertia: mjtGeomInertia,
pub(crate) fluid_ellipsoid: mjtNum,
pub(crate) fluid_coefs: [mjtNum; 5usize],
pub(crate) material: *mut mjString,
pub(crate) rgba: [f32; 4usize],
pub(crate) group: ::std::os::raw::c_int,
pub(crate) hfieldname: *mut mjString,
pub(crate) meshname: *mut mjString,
pub(crate) fitscale: f64,
pub(crate) userdata: *mut mjDoubleVec,
pub(crate) plugin: mjsPlugin,
pub(crate) info: *mut mjString,
}
pub type mjsGeom = mjsGeom_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsSite_ {
pub(crate) element: *mut mjsElement,
pub(crate) pos: [f64; 3usize],
pub(crate) quat: [f64; 4usize],
pub(crate) alt: mjsOrientation,
pub(crate) fromto: [f64; 6usize],
pub(crate) size: [f64; 3usize],
pub(crate) type_: mjtGeom,
pub(crate) material: *mut mjString,
pub(crate) group: ::std::os::raw::c_int,
pub(crate) rgba: [f32; 4usize],
pub(crate) userdata: *mut mjDoubleVec,
pub(crate) info: *mut mjString,
}
pub type mjsSite = mjsSite_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsCamera_ {
pub(crate) element: *mut mjsElement,
pub(crate) pos: [f64; 3usize],
pub(crate) quat: [f64; 4usize],
pub(crate) alt: mjsOrientation,
pub(crate) mode: mjtCamLight,
pub(crate) targetbody: *mut mjString,
pub(crate) proj: mjtProjection,
pub(crate) resolution: [::std::os::raw::c_int; 2usize],
pub(crate) output: ::std::os::raw::c_int,
pub(crate) fovy: f64,
pub(crate) ipd: f64,
pub(crate) intrinsic: [f32; 4usize],
pub(crate) sensor_size: [f32; 2usize],
pub(crate) focal_length: [f32; 2usize],
pub(crate) focal_pixel: [f32; 2usize],
pub(crate) principal_length: [f32; 2usize],
pub(crate) principal_pixel: [f32; 2usize],
pub(crate) userdata: *mut mjDoubleVec,
pub(crate) info: *mut mjString,
}
pub type mjsCamera = mjsCamera_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsLight_ {
pub(crate) element: *mut mjsElement,
pub(crate) pos: [f64; 3usize],
pub(crate) dir: [f64; 3usize],
pub(crate) mode: mjtCamLight,
pub(crate) targetbody: *mut mjString,
pub(crate) active: mjtByte,
pub(crate) type_: mjtLightType,
pub(crate) texture: *mut mjString,
pub(crate) castshadow: mjtByte,
pub(crate) bulbradius: f32,
pub(crate) intensity: f32,
pub(crate) range: f32,
pub(crate) attenuation: [f32; 3usize],
pub(crate) cutoff: f32,
pub(crate) exponent: f32,
pub(crate) ambient: [f32; 3usize],
pub(crate) diffuse: [f32; 3usize],
pub(crate) specular: [f32; 3usize],
pub(crate) info: *mut mjString,
}
pub type mjsLight = mjsLight_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsFlex_ {
pub(crate) element: *mut mjsElement,
pub(crate) contype: ::std::os::raw::c_int,
pub(crate) conaffinity: ::std::os::raw::c_int,
pub(crate) condim: ::std::os::raw::c_int,
pub(crate) priority: ::std::os::raw::c_int,
pub(crate) friction: [f64; 3usize],
pub(crate) solmix: f64,
pub(crate) solref: [mjtNum; 2usize],
pub(crate) solimp: [mjtNum; 5usize],
pub(crate) margin: f64,
pub(crate) gap: f64,
pub(crate) dim: ::std::os::raw::c_int,
pub(crate) radius: f64,
pub(crate) size: [f64; 3usize],
pub(crate) internal: mjtByte,
pub(crate) flatskin: mjtByte,
pub(crate) selfcollide: ::std::os::raw::c_int,
pub(crate) passive: ::std::os::raw::c_int,
pub(crate) activelayers: ::std::os::raw::c_int,
pub(crate) group: ::std::os::raw::c_int,
pub(crate) edgestiffness: f64,
pub(crate) edgedamping: f64,
pub(crate) rgba: [f32; 4usize],
pub(crate) material: *mut mjString,
pub(crate) young: f64,
pub(crate) poisson: f64,
pub(crate) damping: f64,
pub(crate) thickness: f64,
pub(crate) elastic2d: ::std::os::raw::c_int,
pub(crate) cellcount: [::std::os::raw::c_int; 3usize],
pub(crate) order: ::std::os::raw::c_int,
pub(crate) nodebody: *mut mjStringVec,
pub(crate) vertbody: *mut mjStringVec,
pub(crate) node: *mut mjDoubleVec,
pub(crate) vert: *mut mjDoubleVec,
pub(crate) elem: *mut mjIntVec,
pub(crate) texcoord: *mut mjFloatVec,
pub(crate) elemtexcoord: *mut mjIntVec,
pub(crate) info: *mut mjString,
}
pub type mjsFlex = mjsFlex_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsMesh_ {
pub(crate) element: *mut mjsElement,
pub(crate) content_type: *mut mjString,
pub(crate) file: *mut mjString,
pub(crate) refpos: [f64; 3usize],
pub(crate) refquat: [f64; 4usize],
pub(crate) scale: [f64; 3usize],
pub(crate) inertia: mjtMeshInertia,
pub(crate) smoothnormal: mjtByte,
pub(crate) needsdf: mjtByte,
pub(crate) maxhullvert: ::std::os::raw::c_int,
pub(crate) uservert: *mut mjFloatVec,
pub(crate) usernormal: *mut mjFloatVec,
pub(crate) usertexcoord: *mut mjFloatVec,
pub(crate) userface: *mut mjIntVec,
pub(crate) userfacenormal: *mut mjIntVec,
pub(crate) userfacetexcoord: *mut mjIntVec,
pub(crate) plugin: mjsPlugin,
pub(crate) material: *mut mjString,
pub(crate) info: *mut mjString,
}
pub type mjsMesh = mjsMesh_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsHField_ {
pub(crate) element: *mut mjsElement,
pub(crate) content_type: *mut mjString,
pub(crate) file: *mut mjString,
pub(crate) size: [f64; 4usize],
pub(crate) nrow: ::std::os::raw::c_int,
pub(crate) ncol: ::std::os::raw::c_int,
pub(crate) userdata: *mut mjFloatVec,
pub(crate) info: *mut mjString,
}
pub type mjsHField = mjsHField_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsSkin_ {
pub(crate) element: *mut mjsElement,
pub(crate) file: *mut mjString,
pub(crate) material: *mut mjString,
pub(crate) rgba: [f32; 4usize],
pub(crate) inflate: f32,
pub(crate) group: ::std::os::raw::c_int,
pub(crate) vert: *mut mjFloatVec,
pub(crate) texcoord: *mut mjFloatVec,
pub(crate) face: *mut mjIntVec,
pub(crate) bodyname: *mut mjStringVec,
pub(crate) bindpos: *mut mjFloatVec,
pub(crate) bindquat: *mut mjFloatVec,
pub(crate) vertid: *mut mjIntVecVec,
pub(crate) vertweight: *mut mjFloatVecVec,
pub(crate) info: *mut mjString,
}
pub type mjsSkin = mjsSkin_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsTexture_ {
pub(crate) element: *mut mjsElement,
pub(crate) type_: mjtTexture,
pub(crate) colorspace: mjtColorSpace,
pub(crate) builtin: ::std::os::raw::c_int,
pub(crate) mark: ::std::os::raw::c_int,
pub(crate) rgb1: [f64; 3usize],
pub(crate) rgb2: [f64; 3usize],
pub(crate) markrgb: [f64; 3usize],
pub(crate) random: f64,
pub(crate) height: ::std::os::raw::c_int,
pub(crate) width: ::std::os::raw::c_int,
pub(crate) nchannel: ::std::os::raw::c_int,
pub(crate) content_type: *mut mjString,
pub(crate) file: *mut mjString,
pub(crate) gridsize: [::std::os::raw::c_int; 2usize],
pub(crate) gridlayout: [::std::os::raw::c_char; 12usize],
pub(crate) cubefiles: *mut mjStringVec,
pub(crate) data: *mut mjByteVec,
pub(crate) hflip: mjtByte,
pub(crate) vflip: mjtByte,
pub(crate) info: *mut mjString,
}
pub type mjsTexture = mjsTexture_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsMaterial_ {
pub(crate) element: *mut mjsElement,
pub(crate) textures: *mut mjStringVec,
pub(crate) texuniform: mjtByte,
pub(crate) texrepeat: [f32; 2usize],
pub(crate) emission: f32,
pub(crate) specular: f32,
pub(crate) shininess: f32,
pub(crate) reflectance: f32,
pub(crate) metallic: f32,
pub(crate) roughness: f32,
pub(crate) rgba: [f32; 4usize],
pub(crate) info: *mut mjString,
}
pub type mjsMaterial = mjsMaterial_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsPair_ {
pub(crate) element: *mut mjsElement,
pub(crate) geomname1: *mut mjString,
pub(crate) geomname2: *mut mjString,
pub(crate) condim: ::std::os::raw::c_int,
pub(crate) solref: [mjtNum; 2usize],
pub(crate) solreffriction: [mjtNum; 2usize],
pub(crate) solimp: [mjtNum; 5usize],
pub(crate) margin: f64,
pub(crate) gap: f64,
pub(crate) friction: [f64; 5usize],
pub(crate) info: *mut mjString,
}
pub type mjsPair = mjsPair_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsExclude_ {
pub(crate) element: *mut mjsElement,
pub(crate) bodyname1: *mut mjString,
pub(crate) bodyname2: *mut mjString,
pub(crate) info: *mut mjString,
}
pub type mjsExclude = mjsExclude_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsEquality_ {
pub(crate) element: *mut mjsElement,
pub(crate) type_: mjtEq,
pub(crate) data: [f64; 11usize],
pub(crate) active: mjtByte,
pub(crate) name1: *mut mjString,
pub(crate) name2: *mut mjString,
pub(crate) objtype: mjtObj,
pub(crate) solref: [mjtNum; 2usize],
pub(crate) solimp: [mjtNum; 5usize],
pub(crate) info: *mut mjString,
}
pub type mjsEquality = mjsEquality_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsTendon_ {
pub(crate) element: *mut mjsElement,
pub(crate) stiffness: [f64; 3usize],
pub(crate) springlength: [f64; 2usize],
pub(crate) damping: [f64; 3usize],
pub(crate) frictionloss: f64,
pub(crate) solref_friction: [mjtNum; 2usize],
pub(crate) solimp_friction: [mjtNum; 5usize],
pub(crate) armature: f64,
pub(crate) limited: ::std::os::raw::c_int,
pub(crate) actfrclimited: ::std::os::raw::c_int,
pub(crate) range: [f64; 2usize],
pub(crate) actfrcrange: [f64; 2usize],
pub(crate) margin: f64,
pub(crate) solref_limit: [mjtNum; 2usize],
pub(crate) solimp_limit: [mjtNum; 5usize],
pub(crate) material: *mut mjString,
pub(crate) width: f64,
pub(crate) rgba: [f32; 4usize],
pub(crate) group: ::std::os::raw::c_int,
pub(crate) userdata: *mut mjDoubleVec,
pub(crate) info: *mut mjString,
}
pub type mjsTendon = mjsTendon_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsWrap_ {
pub(crate) element: *mut mjsElement,
pub(crate) type_: mjtWrap,
pub(crate) info: *mut mjString,
}
pub type mjsWrap = mjsWrap_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsActuator_ {
pub(crate) element: *mut mjsElement,
pub(crate) gaintype: mjtGain,
pub(crate) gainprm: [f64; 10usize],
pub(crate) biastype: mjtBias,
pub(crate) biasprm: [f64; 10usize],
pub(crate) dyntype: mjtDyn,
pub(crate) dynprm: [f64; 10usize],
pub(crate) actdim: ::std::os::raw::c_int,
pub(crate) actearly: mjtByte,
pub(crate) trntype: mjtTrn,
pub(crate) gear: [f64; 6usize],
pub(crate) target: *mut mjString,
pub(crate) refsite: *mut mjString,
pub(crate) slidersite: *mut mjString,
pub(crate) cranklength: f64,
pub(crate) lengthrange: [f64; 2usize],
pub(crate) inheritrange: f64,
pub(crate) damping: [f64; 3usize],
pub(crate) armature: f64,
pub(crate) ctrllimited: ::std::os::raw::c_int,
pub(crate) ctrlrange: [f64; 2usize],
pub(crate) forcelimited: ::std::os::raw::c_int,
pub(crate) forcerange: [f64; 2usize],
pub(crate) actlimited: ::std::os::raw::c_int,
pub(crate) actrange: [f64; 2usize],
pub(crate) group: ::std::os::raw::c_int,
pub(crate) nsample: ::std::os::raw::c_int,
pub(crate) interp: ::std::os::raw::c_int,
pub(crate) delay: f64,
pub(crate) userdata: *mut mjDoubleVec,
pub(crate) plugin: mjsPlugin,
pub(crate) info: *mut mjString,
}
pub type mjsActuator = mjsActuator_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsSensor_ {
pub(crate) element: *mut mjsElement,
pub(crate) type_: mjtSensor,
pub(crate) objtype: mjtObj,
pub(crate) objname: *mut mjString,
pub(crate) reftype: mjtObj,
pub(crate) refname: *mut mjString,
pub(crate) intprm: [::std::os::raw::c_int; 3usize],
pub(crate) datatype: mjtDataType,
pub(crate) needstage: mjtStage,
pub(crate) dim: ::std::os::raw::c_int,
pub(crate) cutoff: f64,
pub(crate) noise: f64,
pub(crate) nsample: ::std::os::raw::c_int,
pub(crate) interp: ::std::os::raw::c_int,
pub(crate) delay: f64,
pub(crate) interval: [f64; 2usize],
pub(crate) userdata: *mut mjDoubleVec,
pub(crate) plugin: mjsPlugin,
pub(crate) info: *mut mjString,
}
pub type mjsSensor = mjsSensor_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsNumeric_ {
pub(crate) element: *mut mjsElement,
pub(crate) data: *mut mjDoubleVec,
pub(crate) size: ::std::os::raw::c_int,
pub(crate) info: *mut mjString,
}
pub type mjsNumeric = mjsNumeric_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsText_ {
pub(crate) element: *mut mjsElement,
pub(crate) data: *mut mjString,
pub(crate) info: *mut mjString,
}
pub type mjsText = mjsText_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsTuple_ {
pub(crate) element: *mut mjsElement,
pub(crate) objtype: *mut mjIntVec,
pub(crate) objname: *mut mjStringVec,
pub(crate) objprm: *mut mjDoubleVec,
pub(crate) info: *mut mjString,
}
pub type mjsTuple = mjsTuple_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsKey_ {
pub(crate) element: *mut mjsElement,
pub(crate) time: f64,
pub(crate) qpos: *mut mjDoubleVec,
pub(crate) qvel: *mut mjDoubleVec,
pub(crate) act: *mut mjDoubleVec,
pub(crate) mpos: *mut mjDoubleVec,
pub(crate) mquat: *mut mjDoubleVec,
pub(crate) ctrl: *mut mjDoubleVec,
pub(crate) info: *mut mjString,
}
pub type mjsKey = mjsKey_;
#[repr(C)]
#[derive(Debug)]
pub struct mjsDefault_ {
pub(crate) element: *mut mjsElement,
pub(crate) joint: *mut mjsJoint,
pub(crate) geom: *mut mjsGeom,
pub(crate) site: *mut mjsSite,
pub(crate) camera: *mut mjsCamera,
pub(crate) light: *mut mjsLight,
pub(crate) flex: *mut mjsFlex,
pub(crate) mesh: *mut mjsMesh,
pub(crate) material: *mut mjsMaterial,
pub(crate) pair: *mut mjsPair,
pub(crate) equality: *mut mjsEquality,
pub(crate) tendon: *mut mjsTendon,
pub(crate) actuator: *mut mjsActuator,
}
pub type mjsDefault = mjsDefault_;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtCatBit_ {
mjCAT_STATIC = 1,
mjCAT_DYNAMIC = 2,
mjCAT_DECOR = 4,
mjCAT_ALL = 7,
}
pub use self::mjtCatBit_ as mjtCatBit;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtMouse_ {
mjMOUSE_NONE = 0,
mjMOUSE_ROTATE_V = 1,
mjMOUSE_ROTATE_H = 2,
mjMOUSE_MOVE_V = 3,
mjMOUSE_MOVE_H = 4,
mjMOUSE_ZOOM = 5,
mjMOUSE_MOVE_V_REL = 6,
mjMOUSE_MOVE_H_REL = 7,
}
pub use self::mjtMouse_ as mjtMouse;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtPertBit_ {
mjPERT_TRANSLATE = 1,
mjPERT_ROTATE = 2,
}
pub use self::mjtPertBit_ as mjtPertBit;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtCamera_ {
mjCAMERA_FREE = 0,
mjCAMERA_TRACKING = 1,
mjCAMERA_FIXED = 2,
mjCAMERA_USER = 3,
}
pub use self::mjtCamera_ as mjtCamera;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtLabel_ {
mjLABEL_NONE = 0,
mjLABEL_BODY = 1,
mjLABEL_JOINT = 2,
mjLABEL_GEOM = 3,
mjLABEL_SITE = 4,
mjLABEL_CAMERA = 5,
mjLABEL_LIGHT = 6,
mjLABEL_TENDON = 7,
mjLABEL_ACTUATOR = 8,
mjLABEL_CONSTRAINT = 9,
mjLABEL_FLEX = 10,
mjLABEL_SKIN = 11,
mjLABEL_SELECTION = 12,
mjLABEL_SELPNT = 13,
mjLABEL_CONTACTPOINT = 14,
mjLABEL_CONTACTFORCE = 15,
mjLABEL_ISLAND = 16,
mjNLABEL = 17,
}
pub use self::mjtLabel_ as mjtLabel;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtFrame_ {
mjFRAME_NONE = 0,
mjFRAME_BODY = 1,
mjFRAME_GEOM = 2,
mjFRAME_SITE = 3,
mjFRAME_CAMERA = 4,
mjFRAME_LIGHT = 5,
mjFRAME_CONTACT = 6,
mjFRAME_WORLD = 7,
mjNFRAME = 8,
}
pub use self::mjtFrame_ as mjtFrame;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtVisFlag_ {
mjVIS_CONVEXHULL = 0,
mjVIS_TEXTURE = 1,
mjVIS_JOINT = 2,
mjVIS_CAMERA = 3,
mjVIS_ACTUATOR = 4,
mjVIS_ACTIVATION = 5,
mjVIS_LIGHT = 6,
mjVIS_TENDON = 7,
mjVIS_RANGEFINDER = 8,
mjVIS_CONSTRAINT = 9,
mjVIS_INERTIA = 10,
mjVIS_SCLINERTIA = 11,
mjVIS_PERTFORCE = 12,
mjVIS_PERTOBJ = 13,
mjVIS_CONTACTPOINT = 14,
mjVIS_ISLAND = 15,
mjVIS_CONTACTFORCE = 16,
mjVIS_CONTACTSPLIT = 17,
mjVIS_TRANSPARENT = 18,
mjVIS_AUTOCONNECT = 19,
mjVIS_COM = 20,
mjVIS_SELECT = 21,
mjVIS_STATIC = 22,
mjVIS_SKIN = 23,
mjVIS_FLEXVERT = 24,
mjVIS_FLEXEDGE = 25,
mjVIS_FLEXFACE = 26,
mjVIS_FLEXSKIN = 27,
mjVIS_BODYBVH = 28,
mjVIS_MESHBVH = 29,
mjVIS_SDFITER = 30,
mjNVISFLAG = 31,
}
pub use self::mjtVisFlag_ as mjtVisFlag;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtRndFlag_ {
mjRND_SHADOW = 0,
mjRND_WIREFRAME = 1,
mjRND_REFLECTION = 2,
mjRND_ADDITIVE = 3,
mjRND_SKYBOX = 4,
mjRND_FOG = 5,
mjRND_HAZE = 6,
mjRND_DEPTH = 7,
mjRND_SEGMENT = 8,
mjRND_IDCOLOR = 9,
mjRND_CULL_FACE = 10,
mjNRNDFLAG = 11,
}
pub use self::mjtRndFlag_ as mjtRndFlag;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtStereo_ {
mjSTEREO_NONE = 0,
mjSTEREO_QUADBUFFERED = 1,
mjSTEREO_SIDEBYSIDE = 2,
}
pub use self::mjtStereo_ as mjtStereo;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjvPerturb_ {
pub select: ::std::os::raw::c_int,
pub flexselect: ::std::os::raw::c_int,
pub skinselect: ::std::os::raw::c_int,
pub active: ::std::os::raw::c_int,
pub active2: ::std::os::raw::c_int,
pub refpos: [mjtNum; 3usize],
pub refquat: [mjtNum; 4usize],
pub refselpos: [mjtNum; 3usize],
pub localpos: [mjtNum; 3usize],
pub localmass: mjtNum,
pub scale: mjtNum,
}
pub type mjvPerturb = mjvPerturb_;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjvCamera_ {
pub type_: ::std::os::raw::c_int,
pub fixedcamid: ::std::os::raw::c_int,
pub trackbodyid: ::std::os::raw::c_int,
pub lookat: [mjtNum; 3usize],
pub distance: mjtNum,
pub azimuth: mjtNum,
pub elevation: mjtNum,
pub orthographic: ::std::os::raw::c_int,
}
pub type mjvCamera = mjvCamera_;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjvGLCamera_ {
pub pos: [f32; 3usize],
pub forward: [f32; 3usize],
pub up: [f32; 3usize],
pub frustum_center: f32,
pub frustum_width: f32,
pub frustum_bottom: f32,
pub frustum_top: f32,
pub frustum_near: f32,
pub frustum_far: f32,
pub orthographic: ::std::os::raw::c_int,
}
pub type mjvGLCamera = mjvGLCamera_;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjvGeom_ {
pub type_: ::std::os::raw::c_int,
pub dataid: ::std::os::raw::c_int,
pub objtype: ::std::os::raw::c_int,
pub objid: ::std::os::raw::c_int,
pub category: ::std::os::raw::c_int,
pub matid: ::std::os::raw::c_int,
pub texcoord: ::std::os::raw::c_int,
pub segid: ::std::os::raw::c_int,
pub size: [f32; 3usize],
pub pos: [f32; 3usize],
pub mat: [f32; 9usize],
pub rgba: [f32; 4usize],
pub emission: f32,
pub specular: f32,
pub shininess: f32,
pub reflectance: f32,
pub label: [::std::os::raw::c_char; 100usize],
pub camdist: f32,
pub modelrbound: f32,
pub transparent: mjtByte,
}
pub type mjvGeom = mjvGeom_;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjvLight_ {
pub id: ::std::os::raw::c_int,
pub pos: [f32; 3usize],
pub dir: [f32; 3usize],
pub type_: ::std::os::raw::c_int,
pub texid: ::std::os::raw::c_int,
pub attenuation: [f32; 3usize],
pub cutoff: f32,
pub exponent: f32,
pub ambient: [f32; 3usize],
pub diffuse: [f32; 3usize],
pub specular: [f32; 3usize],
pub headlight: mjtByte,
pub castshadow: mjtByte,
pub bulbradius: f32,
pub intensity: f32,
pub range: f32,
}
pub type mjvLight = mjvLight_;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjvOption_ {
pub label: ::std::os::raw::c_int,
pub frame: ::std::os::raw::c_int,
pub geomgroup: [mjtByte; 6usize],
pub sitegroup: [mjtByte; 6usize],
pub jointgroup: [mjtByte; 6usize],
pub tendongroup: [mjtByte; 6usize],
pub actuatorgroup: [mjtByte; 6usize],
pub flexgroup: [mjtByte; 6usize],
pub skingroup: [mjtByte; 6usize],
pub flags: [mjtByte; 31usize],
pub bvh_depth: ::std::os::raw::c_int,
pub flex_layer: ::std::os::raw::c_int,
}
pub type mjvOption = mjvOption_;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjvScene_ {
pub maxgeom: ::std::os::raw::c_int,
pub ngeom: ::std::os::raw::c_int,
pub geoms: *mut mjvGeom,
pub geomorder: *mut ::std::os::raw::c_int,
pub nflex: ::std::os::raw::c_int,
pub flexedgeadr: *mut ::std::os::raw::c_int,
pub flexedgenum: *mut ::std::os::raw::c_int,
pub flexvertadr: *mut ::std::os::raw::c_int,
pub flexvertnum: *mut ::std::os::raw::c_int,
pub flexfaceadr: *mut ::std::os::raw::c_int,
pub flexfacenum: *mut ::std::os::raw::c_int,
pub flexfaceused: *mut ::std::os::raw::c_int,
pub flexedge: *mut ::std::os::raw::c_int,
pub flexvert: *mut f32,
pub flexface: *mut f32,
pub flexnormal: *mut f32,
pub flextexcoord: *mut f32,
pub flexvertopt: mjtByte,
pub flexedgeopt: mjtByte,
pub flexfaceopt: mjtByte,
pub flexskinopt: mjtByte,
pub nskin: ::std::os::raw::c_int,
pub skinfacenum: *mut ::std::os::raw::c_int,
pub skinvertadr: *mut ::std::os::raw::c_int,
pub skinvertnum: *mut ::std::os::raw::c_int,
pub skinvert: *mut f32,
pub skinnormal: *mut f32,
pub nlight: ::std::os::raw::c_int,
pub lights: [mjvLight; 100usize],
pub camera: [mjvGLCamera; 2usize],
pub enabletransform: mjtByte,
pub translate: [f32; 3usize],
pub rotate: [f32; 4usize],
pub scale: f32,
pub stereo: ::std::os::raw::c_int,
pub flags: [mjtByte; 11usize],
pub framewidth: ::std::os::raw::c_int,
pub framergb: [f32; 3usize],
pub status: ::std::os::raw::c_int,
}
pub type mjvScene = mjvScene_;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjvFigure_ {
pub flg_legend: ::std::os::raw::c_int,
pub flg_ticklabel: [::std::os::raw::c_int; 2usize],
pub flg_extend: ::std::os::raw::c_int,
pub flg_barplot: ::std::os::raw::c_int,
pub flg_selection: ::std::os::raw::c_int,
pub flg_symmetric: ::std::os::raw::c_int,
pub linewidth: f32,
pub gridwidth: f32,
pub gridsize: [::std::os::raw::c_int; 2usize],
pub gridrgb: [f32; 3usize],
pub figurergba: [f32; 4usize],
pub panergba: [f32; 4usize],
pub legendrgba: [f32; 4usize],
pub textrgb: [f32; 3usize],
pub linergb: [[f32; 3usize]; 100usize],
pub range: [[f32; 2usize]; 2usize],
pub xformat: [::std::os::raw::c_char; 20usize],
pub yformat: [::std::os::raw::c_char; 20usize],
pub minwidth: [::std::os::raw::c_char; 20usize],
pub title: [::std::os::raw::c_char; 1000usize],
pub xlabel: [::std::os::raw::c_char; 100usize],
pub linename: [[::std::os::raw::c_char; 100usize]; 100usize],
pub legendoffset: ::std::os::raw::c_int,
pub subplot: ::std::os::raw::c_int,
pub highlight: [::std::os::raw::c_int; 2usize],
pub highlightid: ::std::os::raw::c_int,
pub selection: f32,
pub linepnt: [::std::os::raw::c_int; 100usize],
pub linedata: [[f32; 2002usize]; 100usize],
pub xaxispixel: [::std::os::raw::c_int; 2usize],
pub yaxispixel: [::std::os::raw::c_int; 2usize],
pub xaxisdata: [f32; 2usize],
pub yaxisdata: [f32; 2usize],
}
pub type mjvFigure = mjvFigure_;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjResource_ {
pub name: *mut ::std::os::raw::c_char,
pub data: *mut ::std::os::raw::c_void,
pub vfs: *mut mjVFS,
pub timestamp: [::std::os::raw::c_char; 512usize],
pub provider: *const mjpResourceProvider,
}
pub type mjResource = mjResource_;
pub type mjfOpenResource =
::std::option::Option<unsafe extern "C" fn(resource: *mut mjResource) -> ::std::os::raw::c_int>;
pub type mjfReadResource = ::std::option::Option<
unsafe extern "C" fn(
resource: *mut mjResource,
buffer: *mut *const ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
>;
pub type mjfCloseResource = ::std::option::Option<unsafe extern "C" fn(resource: *mut mjResource)>;
pub type mjfMountResource =
::std::option::Option<unsafe extern "C" fn(resource: *mut mjResource) -> ::std::os::raw::c_int>;
pub type mjfUnmountResource =
::std::option::Option<unsafe extern "C" fn(resource: *mut mjResource) -> ::std::os::raw::c_int>;
pub type mjfResourceModified = ::std::option::Option<
unsafe extern "C" fn(
resource: *const mjResource,
timestamp: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int,
>;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjpResourceProvider {
pub prefix: *const ::std::os::raw::c_char,
pub open: mjfOpenResource,
pub read: mjfReadResource,
pub close: mjfCloseResource,
pub mount: mjfMountResource,
pub unmount: mjfUnmountResource,
pub modified: mjfResourceModified,
pub data: *mut ::std::os::raw::c_void,
}
pub type mjfDecode = ::std::option::Option<
unsafe extern "C" fn(resource: *mut mjResource, vfs: *const mjVFS) -> *mut mjSpec,
>;
pub type mjfCanDecode = ::std::option::Option<
unsafe extern "C" fn(resource: *const mjResource) -> ::std::os::raw::c_int,
>;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjpDecoder {
pub content_type: *const ::std::os::raw::c_char,
pub extension: *const ::std::os::raw::c_char,
pub can_decode: mjfCanDecode,
pub decode: mjfDecode,
}
pub type mjfEncode = ::std::option::Option<
unsafe extern "C" fn(
s: *const mjSpec,
m: *const mjModel,
vfs: *const mjVFS,
resource: *mut mjResource,
) -> ::std::os::raw::c_int,
>;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjpEncoder {
pub content_type: *const ::std::os::raw::c_char,
pub extension: *const ::std::os::raw::c_char,
pub encode: mjfEncode,
pub close_resource: mjfCloseResource,
}
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtPluginCapabilityBit_ {
mjPLUGIN_ACTUATOR = 1,
mjPLUGIN_SENSOR = 2,
mjPLUGIN_PASSIVE = 4,
mjPLUGIN_SDF = 8,
}
pub use self::mjtPluginCapabilityBit_ as mjtPluginCapabilityBit;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjpPlugin_ {
pub name: *const ::std::os::raw::c_char,
pub nattribute: ::std::os::raw::c_int,
pub attributes: *const *const ::std::os::raw::c_char,
pub capabilityflags: ::std::os::raw::c_int,
pub needstage: ::std::os::raw::c_int,
pub nstate: ::std::option::Option<
unsafe extern "C" fn(
m: *const mjModel,
instance: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>,
pub nsensordata: ::std::option::Option<
unsafe extern "C" fn(
m: *const mjModel,
instance: ::std::os::raw::c_int,
sensor_id: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>,
pub init: ::std::option::Option<
unsafe extern "C" fn(
m: *const mjModel,
d: *mut mjData,
instance: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>,
pub destroy: ::std::option::Option<
unsafe extern "C" fn(d: *mut mjData, instance: ::std::os::raw::c_int),
>,
pub copy: ::std::option::Option<
unsafe extern "C" fn(
dest: *mut mjData,
m: *const mjModel,
src: *const mjData,
instance: ::std::os::raw::c_int,
),
>,
pub reset: ::std::option::Option<
unsafe extern "C" fn(
m: *const mjModel,
plugin_state: *mut mjtNum,
plugin_data: *mut ::std::os::raw::c_void,
instance: ::std::os::raw::c_int,
),
>,
pub compute: ::std::option::Option<
unsafe extern "C" fn(
m: *const mjModel,
d: *mut mjData,
instance: ::std::os::raw::c_int,
capability_bit: ::std::os::raw::c_int,
),
>,
pub advance: ::std::option::Option<
unsafe extern "C" fn(m: *const mjModel, d: *mut mjData, instance: ::std::os::raw::c_int),
>,
pub visualize: ::std::option::Option<
unsafe extern "C" fn(
m: *const mjModel,
d: *mut mjData,
opt: *const mjvOption,
scn: *mut mjvScene,
instance: ::std::os::raw::c_int,
),
>,
pub actuator_act_dot: ::std::option::Option<
unsafe extern "C" fn(m: *const mjModel, d: *mut mjData, instance: ::std::os::raw::c_int),
>,
pub sdf_distance: ::std::option::Option<
unsafe extern "C" fn(
point: *const [mjtNum; 3usize],
d: *const mjData,
instance: ::std::os::raw::c_int,
) -> mjtNum,
>,
pub sdf_gradient: ::std::option::Option<
unsafe extern "C" fn(
gradient: *mut [mjtNum; 3usize],
point: *const [mjtNum; 3usize],
d: *const mjData,
instance: ::std::os::raw::c_int,
),
>,
pub sdf_staticdistance: ::std::option::Option<
unsafe extern "C" fn(point: *const [mjtNum; 3usize], attributes: *const mjtNum) -> mjtNum,
>,
pub sdf_attribute: ::std::option::Option<
unsafe extern "C" fn(
attribute: *mut mjtNum,
name: *mut *const ::std::os::raw::c_char,
value: *mut *const ::std::os::raw::c_char,
),
>,
pub sdf_aabb: ::std::option::Option<
unsafe extern "C" fn(aabb: *mut [mjtNum; 6usize], attributes: *const mjtNum),
>,
}
pub type mjpPlugin = mjpPlugin_;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjSDF_ {
pub plugin: *mut *const mjpPlugin,
pub id: *mut ::std::os::raw::c_int,
pub type_: mjtSDFType,
pub relpos: *mut mjtNum,
pub relmat: *mut mjtNum,
pub geomtype: *mut mjtGeom,
}
pub type mjSDF = mjSDF_;
pub type mjfPluginLibraryLoadCallback = ::std::option::Option<
unsafe extern "C" fn(
filename: *const ::std::os::raw::c_char,
first: ::std::os::raw::c_int,
count: ::std::os::raw::c_int,
),
>;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtGridPos_ {
mjGRID_TOPLEFT = 0,
mjGRID_TOPRIGHT = 1,
mjGRID_BOTTOMLEFT = 2,
mjGRID_BOTTOMRIGHT = 3,
mjGRID_TOP = 4,
mjGRID_BOTTOM = 5,
mjGRID_LEFT = 6,
mjGRID_RIGHT = 7,
}
pub use self::mjtGridPos_ as mjtGridPos;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtFramebuffer_ {
mjFB_WINDOW = 0,
mjFB_OFFSCREEN = 1,
}
pub use self::mjtFramebuffer_ as mjtFramebuffer;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtDepthMap_ {
mjDEPTH_ZERONEAR = 0,
mjDEPTH_ZEROFAR = 1,
}
pub use self::mjtDepthMap_ as mjtDepthMap;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtFontScale_ {
mjFONTSCALE_50 = 50,
mjFONTSCALE_100 = 100,
mjFONTSCALE_150 = 150,
mjFONTSCALE_200 = 200,
mjFONTSCALE_250 = 250,
mjFONTSCALE_300 = 300,
}
pub use self::mjtFontScale_ as mjtFontScale;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtFont_ {
mjFONT_NORMAL = 0,
mjFONT_SHADOW = 1,
mjFONT_BIG = 2,
}
pub use self::mjtFont_ as mjtFont;
#[repr(C)]
#[derive(Debug, Clone, Copy)]
pub struct mjrRect_ {
pub left: ::std::os::raw::c_int,
pub bottom: ::std::os::raw::c_int,
pub width: ::std::os::raw::c_int,
pub height: ::std::os::raw::c_int,
}
pub type mjrRect = mjrRect_;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct mjrContext_ {
pub lineWidth: f32,
pub shadowClip: f32,
pub shadowScale: f32,
pub fogStart: f32,
pub fogEnd: f32,
pub fogRGBA: [f32; 4usize],
pub shadowSize: ::std::os::raw::c_int,
pub offWidth: ::std::os::raw::c_int,
pub offHeight: ::std::os::raw::c_int,
pub offSamples: ::std::os::raw::c_int,
pub fontScale: ::std::os::raw::c_int,
pub auxWidth: [::std::os::raw::c_int; 10usize],
pub auxHeight: [::std::os::raw::c_int; 10usize],
pub auxSamples: [::std::os::raw::c_int; 10usize],
pub offFBO: ::std::os::raw::c_uint,
pub offFBO_r: ::std::os::raw::c_uint,
pub offColor: ::std::os::raw::c_uint,
pub offColor_r: ::std::os::raw::c_uint,
pub offDepthStencil: ::std::os::raw::c_uint,
pub offDepthStencil_r: ::std::os::raw::c_uint,
pub shadowFBO: ::std::os::raw::c_uint,
pub shadowTex: ::std::os::raw::c_uint,
pub auxFBO: [::std::os::raw::c_uint; 10usize],
pub auxFBO_r: [::std::os::raw::c_uint; 10usize],
pub auxColor: [::std::os::raw::c_uint; 10usize],
pub auxColor_r: [::std::os::raw::c_uint; 10usize],
pub mat_texid: [::std::os::raw::c_int; 10000usize],
pub mat_texuniform: [::std::os::raw::c_int; 1000usize],
pub mat_texrepeat: [f32; 2000usize],
pub ntexture: ::std::os::raw::c_int,
pub textureType: [::std::os::raw::c_int; 1000usize],
pub texture: [::std::os::raw::c_uint; 1000usize],
pub basePlane: ::std::os::raw::c_uint,
pub baseMesh: ::std::os::raw::c_uint,
pub baseHField: ::std::os::raw::c_uint,
pub baseBuiltin: ::std::os::raw::c_uint,
pub baseFontNormal: ::std::os::raw::c_uint,
pub baseFontShadow: ::std::os::raw::c_uint,
pub baseFontBig: ::std::os::raw::c_uint,
pub rangePlane: ::std::os::raw::c_int,
pub rangeMesh: ::std::os::raw::c_int,
pub rangeHField: ::std::os::raw::c_int,
pub rangeBuiltin: ::std::os::raw::c_int,
pub rangeFont: ::std::os::raw::c_int,
pub nskin: ::std::os::raw::c_int,
pub skinvertVBO: *mut ::std::os::raw::c_uint,
pub skinnormalVBO: *mut ::std::os::raw::c_uint,
pub skintexcoordVBO: *mut ::std::os::raw::c_uint,
pub skinfaceVBO: *mut ::std::os::raw::c_uint,
pub charWidth: [::std::os::raw::c_int; 127usize],
pub charWidthBig: [::std::os::raw::c_int; 127usize],
pub charHeight: ::std::os::raw::c_int,
pub charHeightBig: ::std::os::raw::c_int,
pub glInitialized: ::std::os::raw::c_int,
pub windowAvailable: ::std::os::raw::c_int,
pub windowSamples: ::std::os::raw::c_int,
pub windowStereo: ::std::os::raw::c_int,
pub windowDoublebuffer: ::std::os::raw::c_int,
pub currentBuffer: ::std::os::raw::c_int,
pub readPixelFormat: ::std::os::raw::c_int,
pub readDepthMap: ::std::os::raw::c_int,
}
pub type mjrContext = mjrContext_;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtButton_ {
mjBUTTON_NONE = 0,
mjBUTTON_LEFT = 1,
mjBUTTON_RIGHT = 2,
mjBUTTON_MIDDLE = 3,
}
pub use self::mjtButton_ as mjtButton;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtEvent_ {
mjEVENT_NONE = 0,
mjEVENT_MOVE = 1,
mjEVENT_PRESS = 2,
mjEVENT_RELEASE = 3,
mjEVENT_SCROLL = 4,
mjEVENT_KEY = 5,
mjEVENT_RESIZE = 6,
mjEVENT_REDRAW = 7,
mjEVENT_FILESDROP = 8,
}
pub use self::mjtEvent_ as mjtEvent;
#[repr(i32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtItem_ {
mjITEM_END = -2,
mjITEM_SECTION = -1,
mjITEM_SEPARATOR = 0,
mjITEM_STATIC = 1,
mjITEM_BUTTON = 2,
mjITEM_CHECKINT = 3,
mjITEM_CHECKBYTE = 4,
mjITEM_RADIO = 5,
mjITEM_RADIOLINE = 6,
mjITEM_SELECT = 7,
mjITEM_SLIDERINT = 8,
mjITEM_SLIDERNUM = 9,
mjITEM_EDITINT = 10,
mjITEM_EDITNUM = 11,
mjITEM_EDITFLOAT = 12,
mjITEM_EDITTXT = 13,
mjNITEM = 14,
}
pub use self::mjtItem_ as mjtItem;
#[repr(u32)]
#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
pub enum mjtSection_ {
mjSECT_CLOSED = 0,
mjSECT_OPEN = 1,
mjSECT_FIXED = 2,
}
pub use self::mjtSection_ as mjtSection;
pub type mjfItemEnable = ::std::option::Option<
unsafe extern "C" fn(
category: ::std::os::raw::c_int,
data: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
>;
#[repr(C)]
#[derive(Debug, Clone, Copy)]
pub struct mjuiState_ {
pub nrect: ::std::os::raw::c_int,
pub rect: [mjrRect; 25usize],
pub userdata: *mut ::std::os::raw::c_void,
pub type_: ::std::os::raw::c_int,
pub left: ::std::os::raw::c_int,
pub right: ::std::os::raw::c_int,
pub middle: ::std::os::raw::c_int,
pub doubleclick: ::std::os::raw::c_int,
pub button: ::std::os::raw::c_int,
pub buttontime: f64,
pub x: f64,
pub y: f64,
pub dx: f64,
pub dy: f64,
pub sx: f64,
pub sy: f64,
pub control: ::std::os::raw::c_int,
pub shift: ::std::os::raw::c_int,
pub alt: ::std::os::raw::c_int,
pub key: ::std::os::raw::c_int,
pub keytime: f64,
pub mouserect: ::std::os::raw::c_int,
pub dragrect: ::std::os::raw::c_int,
pub dragbutton: ::std::os::raw::c_int,
pub dropcount: ::std::os::raw::c_int,
pub droppaths: *mut *const ::std::os::raw::c_char,
}
pub type mjuiState = mjuiState_;
#[repr(C)]
#[derive(Debug, Clone, Copy)]
pub struct mjuiThemeSpacing_ {
pub total: ::std::os::raw::c_int,
pub scroll: ::std::os::raw::c_int,
pub label: ::std::os::raw::c_int,
pub section: ::std::os::raw::c_int,
pub cornersect: ::std::os::raw::c_int,
pub cornersep: ::std::os::raw::c_int,
pub itemside: ::std::os::raw::c_int,
pub itemmid: ::std::os::raw::c_int,
pub itemver: ::std::os::raw::c_int,
pub texthor: ::std::os::raw::c_int,
pub textver: ::std::os::raw::c_int,
pub linescroll: ::std::os::raw::c_int,
pub samples: ::std::os::raw::c_int,
}
pub type mjuiThemeSpacing = mjuiThemeSpacing_;
#[repr(C)]
#[derive(Debug, Clone, Copy)]
pub struct mjuiThemeColor_ {
pub master: [f32; 3usize],
pub thumb: [f32; 3usize],
pub secttitle: [f32; 3usize],
pub secttitle2: [f32; 3usize],
pub secttitleuncheck: [f32; 3usize],
pub secttitleuncheck2: [f32; 3usize],
pub secttitlecheck: [f32; 3usize],
pub secttitlecheck2: [f32; 3usize],
pub sectfont: [f32; 3usize],
pub sectsymbol: [f32; 3usize],
pub sectpane: [f32; 3usize],
pub separator: [f32; 3usize],
pub separator2: [f32; 3usize],
pub shortcut: [f32; 3usize],
pub fontactive: [f32; 3usize],
pub fontinactive: [f32; 3usize],
pub decorinactive: [f32; 3usize],
pub decorinactive2: [f32; 3usize],
pub button: [f32; 3usize],
pub check: [f32; 3usize],
pub radio: [f32; 3usize],
pub select: [f32; 3usize],
pub select2: [f32; 3usize],
pub slider: [f32; 3usize],
pub slider2: [f32; 3usize],
pub edit: [f32; 3usize],
pub edit2: [f32; 3usize],
pub cursor: [f32; 3usize],
}
pub type mjuiThemeColor = mjuiThemeColor_;
#[repr(C)]
#[derive(Debug, Clone, Copy)]
pub struct mjuiItemSingle_ {
pub modifier: ::std::os::raw::c_int,
pub shortcut: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Clone, Copy)]
pub struct mjuiItemMulti_ {
pub nelem: ::std::os::raw::c_int,
pub name: [[::std::os::raw::c_char; 40usize]; 35usize],
}
#[repr(C)]
#[derive(Debug, Clone, Copy)]
pub struct mjuiItemSlider_ {
pub range: [f64; 2usize],
pub divisions: f64,
}
#[repr(C)]
#[derive(Debug, Clone, Copy)]
pub struct mjuiItemEdit_ {
pub nelem: ::std::os::raw::c_int,
pub range: [[f64; 2usize]; 7usize],
}
#[repr(C)]
#[derive(Clone, Copy)]
pub struct mjuiItem_ {
pub type_: ::std::os::raw::c_int,
pub name: [::std::os::raw::c_char; 40usize],
pub state: ::std::os::raw::c_int,
pub pdata: *mut ::std::os::raw::c_void,
pub sectionid: ::std::os::raw::c_int,
pub itemid: ::std::os::raw::c_int,
pub userid: ::std::os::raw::c_int,
pub __bindgen_anon_1: mjuiItem___bindgen_ty_1,
pub rect: mjrRect,
pub skip: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Clone, Copy)]
pub struct mjuiItem___bindgen_ty_1 {
pub single: __BindgenUnionField<mjuiItemSingle_>,
pub multi: __BindgenUnionField<mjuiItemMulti_>,
pub slider: __BindgenUnionField<mjuiItemSlider_>,
pub edit: __BindgenUnionField<mjuiItemEdit_>,
pub bindgen_union_field: [u64; 176usize],
}
pub type mjuiItem = mjuiItem_;
#[repr(C)]
#[derive(Clone, Copy)]
pub struct mjuiSection_ {
pub name: [::std::os::raw::c_char; 40usize],
pub state: ::std::os::raw::c_int,
pub modifier: ::std::os::raw::c_int,
pub shortcut: ::std::os::raw::c_int,
pub checkbox: ::std::os::raw::c_int,
pub nitem: ::std::os::raw::c_int,
pub item: [mjuiItem; 200usize],
pub rtitle: mjrRect,
pub rcontent: mjrRect,
pub lastclick: ::std::os::raw::c_int,
}
pub type mjuiSection = mjuiSection_;
#[repr(C)]
#[derive(Clone)]
pub struct mjUI_ {
pub spacing: mjuiThemeSpacing,
pub color: mjuiThemeColor,
pub predicate: mjfItemEnable,
pub userdata: *mut ::std::os::raw::c_void,
pub rectid: ::std::os::raw::c_int,
pub auxid: ::std::os::raw::c_int,
pub radiocol: ::std::os::raw::c_int,
pub width: ::std::os::raw::c_int,
pub height: ::std::os::raw::c_int,
pub maxheight: ::std::os::raw::c_int,
pub scroll: ::std::os::raw::c_int,
pub mousesect: ::std::os::raw::c_int,
pub mouseitem: ::std::os::raw::c_int,
pub mousehelp: ::std::os::raw::c_int,
pub mouseclicks: ::std::os::raw::c_int,
pub mousesectcheck: ::std::os::raw::c_int,
pub editsect: ::std::os::raw::c_int,
pub edititem: ::std::os::raw::c_int,
pub editcursor: ::std::os::raw::c_int,
pub editscroll: ::std::os::raw::c_int,
pub edittext: [::std::os::raw::c_char; 300usize],
pub editchanged: *mut mjuiItem,
pub nsect: ::std::os::raw::c_int,
pub sect: [mjuiSection; 10usize],
}
pub type mjUI = mjUI_;
#[repr(C)]
#[derive(Debug, Clone, Copy)]
pub struct mjuiDef_ {
pub type_: ::std::os::raw::c_int,
pub name: [::std::os::raw::c_char; 40usize],
pub state: ::std::os::raw::c_int,
pub pdata: *mut ::std::os::raw::c_void,
pub other: [::std::os::raw::c_char; 300usize],
pub otherint: ::std::os::raw::c_int,
}
pub type mjuiDef = mjuiDef_;
unsafe extern "C" {
pub static mut mju_user_error:
::std::option::Option<unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char)>;
}
unsafe extern "C" {
pub static mut mju_user_warning:
::std::option::Option<unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char)>;
}
unsafe extern "C" {
pub static mut mju_user_malloc:
::std::option::Option<unsafe extern "C" fn(arg1: usize) -> *mut ::std::os::raw::c_void>;
}
unsafe extern "C" {
pub static mut mju_user_free:
::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
}
unsafe extern "C" {
pub static mut mjcb_passive: mjfGeneric;
}
unsafe extern "C" {
pub static mut mjcb_control: mjfGeneric;
}
unsafe extern "C" {
pub static mut mjcb_contactfilter: mjfConFilt;
}
unsafe extern "C" {
pub static mut mjcb_sensor: mjfSensor;
}
unsafe extern "C" {
pub static mut mjcb_time: mjfTime;
}
unsafe extern "C" {
pub static mut mjcb_act_dyn: mjfAct;
}
unsafe extern "C" {
pub static mut mjcb_act_gain: mjfAct;
}
unsafe extern "C" {
pub static mut mjcb_act_bias: mjfAct;
}
unsafe extern "C" {
pub static mut mjCOLLISIONFUNC: [[mjfCollision; 9usize]; 9usize];
}
unsafe extern "C" {
pub static mut mjDISABLESTRING: [*const ::std::os::raw::c_char; 20usize];
}
unsafe extern "C" {
pub static mut mjENABLESTRING: [*const ::std::os::raw::c_char; 5usize];
}
unsafe extern "C" {
pub static mut mjTIMERSTRING: [*const ::std::os::raw::c_char; 15usize];
}
unsafe extern "C" {
pub static mut mjLABELSTRING: [*const ::std::os::raw::c_char; 17usize];
}
unsafe extern "C" {
pub static mut mjFRAMESTRING: [*const ::std::os::raw::c_char; 8usize];
}
unsafe extern "C" {
pub static mut mjVISSTRING: [[*const ::std::os::raw::c_char; 3usize]; 31usize];
}
unsafe extern "C" {
pub static mut mjRNDSTRING: [[*const ::std::os::raw::c_char; 3usize]; 11usize];
}
unsafe extern "C" {
pub fn mj_defaultVFS(vfs: *mut mjVFS);
}
unsafe extern "C" {
pub fn mj_mountVFS(
vfs: *mut mjVFS,
filepath: *const ::std::os::raw::c_char,
provider: *const mjpResourceProvider,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_unmountVFS(
vfs: *mut mjVFS,
filename: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_addFileVFS(
vfs: *mut mjVFS,
directory: *const ::std::os::raw::c_char,
filename: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_addBufferVFS(
vfs: *mut mjVFS,
name: *const ::std::os::raw::c_char,
buffer: *const ::std::os::raw::c_void,
nbuffer: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_deleteFileVFS(
vfs: *mut mjVFS,
filename: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_containsBufferVFS(
vfs: *mut mjVFS,
name: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_containsFileVFS(
vfs: *mut mjVFS,
directory: *const ::std::os::raw::c_char,
filename: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_deleteVFS(vfs: *mut mjVFS);
}
unsafe extern "C" {
pub fn mj_getCacheSize(cache: *const mjCache) -> usize;
}
unsafe extern "C" {
pub fn mj_getCacheCapacity(cache: *const mjCache) -> usize;
}
unsafe extern "C" {
pub fn mj_setCacheCapacity(cache: *mut mjCache, size: usize) -> usize;
}
unsafe extern "C" {
pub fn mj_getCache() -> *mut mjCache;
}
unsafe extern "C" {
pub fn mj_clearCache(cache: *mut mjCache);
}
unsafe extern "C" {
pub fn mj_loadXML(
filename: *const ::std::os::raw::c_char,
vfs: *const mjVFS,
error: *mut ::std::os::raw::c_char,
error_sz: ::std::os::raw::c_int,
) -> *mut mjModel;
}
unsafe extern "C" {
pub fn mj_parseXML(
filename: *const ::std::os::raw::c_char,
vfs: *const mjVFS,
error: *mut ::std::os::raw::c_char,
error_sz: ::std::os::raw::c_int,
) -> *mut mjSpec;
}
unsafe extern "C" {
pub fn mj_parseXMLString(
xml: *const ::std::os::raw::c_char,
vfs: *const mjVFS,
error: *mut ::std::os::raw::c_char,
error_sz: ::std::os::raw::c_int,
) -> *mut mjSpec;
}
unsafe extern "C" {
pub fn mj_parse(
filename: *const ::std::os::raw::c_char,
content_type: *const ::std::os::raw::c_char,
vfs: *const mjVFS,
error: *mut ::std::os::raw::c_char,
error_sz: ::std::os::raw::c_int,
) -> *mut mjSpec;
}
unsafe extern "C" {
pub fn mj_encode(
s: *const mjSpec,
m: *const mjModel,
filename: *const ::std::os::raw::c_char,
content_type: *const ::std::os::raw::c_char,
vfs: *const mjVFS,
error: *mut ::std::os::raw::c_char,
error_sz: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_compile(s: *mut mjSpec, vfs: *const mjVFS) -> *mut mjModel;
}
unsafe extern "C" {
pub fn mj_copyBack(s: *mut mjSpec, m: *const mjModel) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_recompile(
s: *mut mjSpec,
vfs: *const mjVFS,
m: *mut mjModel,
d: *mut mjData,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_saveLastXML(
filename: *const ::std::os::raw::c_char,
m: *const mjModel,
error: *mut ::std::os::raw::c_char,
error_sz: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_freeLastXML();
}
unsafe extern "C" {
pub fn mj_saveXMLString(
s: *const mjSpec,
xml: *mut ::std::os::raw::c_char,
xml_sz: ::std::os::raw::c_int,
error: *mut ::std::os::raw::c_char,
error_sz: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_saveXML(
s: *const mjSpec,
filename: *const ::std::os::raw::c_char,
error: *mut ::std::os::raw::c_char,
error_sz: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mju_getXMLDependencies(
filename: *const ::std::os::raw::c_char,
dependencies: *mut mjStringVec,
);
}
unsafe extern "C" {
pub fn mj_step(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_step1(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_step2(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_forward(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_inverse(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_forwardSkip(
m: *const mjModel,
d: *mut mjData,
skipstage: ::std::os::raw::c_int,
skipsensor: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_inverseSkip(
m: *const mjModel,
d: *mut mjData,
skipstage: ::std::os::raw::c_int,
skipsensor: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_defaultLROpt(opt: *mut mjLROpt);
}
unsafe extern "C" {
pub fn mj_defaultSolRefImp(solref: *mut mjtNum, solimp: *mut mjtNum);
}
unsafe extern "C" {
pub fn mj_defaultOption(opt: *mut mjOption);
}
unsafe extern "C" {
pub fn mj_defaultVisual(vis: *mut mjVisual);
}
unsafe extern "C" {
pub fn mj_copyModel(dest: *mut mjModel, src: *const mjModel) -> *mut mjModel;
}
unsafe extern "C" {
pub fn mj_saveModel(
m: *const mjModel,
filename: *const ::std::os::raw::c_char,
buffer: *mut ::std::os::raw::c_void,
buffer_sz: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_loadModel(filename: *const ::std::os::raw::c_char, vfs: *const mjVFS)
-> *mut mjModel;
}
unsafe extern "C" {
pub fn mj_loadModelBuffer(
buffer: *const ::std::os::raw::c_void,
buffer_sz: ::std::os::raw::c_int,
) -> *mut mjModel;
}
unsafe extern "C" {
pub fn mj_deleteModel(m: *mut mjModel);
}
unsafe extern "C" {
pub fn mj_sizeModel(m: *const mjModel) -> mjtSize;
}
unsafe extern "C" {
pub fn mj_makeData(m: *const mjModel) -> *mut mjData;
}
unsafe extern "C" {
pub fn mj_copyData(dest: *mut mjData, m: *const mjModel, src: *const mjData) -> *mut mjData;
}
unsafe extern "C" {
pub fn mjv_copyData(dest: *mut mjData, m: *const mjModel, src: *const mjData) -> *mut mjData;
}
unsafe extern "C" {
pub fn mj_resetData(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_resetDataDebug(
m: *const mjModel,
d: *mut mjData,
debug_value: ::std::os::raw::c_uchar,
);
}
unsafe extern "C" {
pub fn mj_resetDataKeyframe(m: *const mjModel, d: *mut mjData, key: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mj_markStack(d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_freeStack(d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_stackAllocByte(
d: *mut mjData,
bytes: usize,
alignment: usize,
) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
pub fn mj_stackAllocNum(d: *mut mjData, size: usize) -> *mut mjtNum;
}
unsafe extern "C" {
pub fn mj_stackAllocInt(d: *mut mjData, size: usize) -> *mut ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_deleteData(d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_resetCallbacks();
}
unsafe extern "C" {
pub fn mj_setConst(m: *mut mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_setLengthRange(
m: *mut mjModel,
d: *mut mjData,
index: ::std::os::raw::c_int,
opt: *const mjLROpt,
error: *mut ::std::os::raw::c_char,
error_sz: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_makeSpec() -> *mut mjSpec;
}
unsafe extern "C" {
pub fn mj_copySpec(s: *const mjSpec) -> *mut mjSpec;
}
unsafe extern "C" {
pub fn mj_deleteSpec(s: *mut mjSpec);
}
unsafe extern "C" {
pub fn mjs_activatePlugin(
s: *mut mjSpec,
name: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mjs_setDeepCopy(
s: *mut mjSpec,
deepcopy: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_printFormattedModel(
m: *const mjModel,
filename: *const ::std::os::raw::c_char,
float_format: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn mj_printModel(m: *const mjModel, filename: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn mj_printFormattedData(
m: *const mjModel,
d: *const mjData,
filename: *const ::std::os::raw::c_char,
float_format: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn mj_printData(
m: *const mjModel,
d: *const mjData,
filename: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn mju_printMat(mat: *const mjtNum, nr: ::std::os::raw::c_int, nc: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mju_printMatSparse(
mat: *const mjtNum,
nr: ::std::os::raw::c_int,
rownnz: *const ::std::os::raw::c_int,
rowadr: *const ::std::os::raw::c_int,
colind: *const ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_printSchema(
filename: *const ::std::os::raw::c_char,
buffer: *mut ::std::os::raw::c_char,
buffer_sz: ::std::os::raw::c_int,
flg_html: ::std::os::raw::c_int,
flg_pad: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_printScene(s: *const mjvScene, filename: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn mj_printFormattedScene(
s: *const mjvScene,
filename: *const ::std::os::raw::c_char,
float_format: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn mj_fwdKinematics(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_fwdPosition(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_fwdVelocity(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_fwdActuation(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_fwdAcceleration(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_fwdConstraint(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_Euler(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_RungeKutta(m: *const mjModel, d: *mut mjData, N: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mj_implicit(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_invPosition(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_invVelocity(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_invConstraint(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_compareFwdInv(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_sensorPos(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_sensorVel(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_sensorAcc(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_energyPos(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_energyVel(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_checkPos(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_checkVel(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_checkAcc(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_kinematics(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_comPos(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_camlight(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_flex(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_tendon(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_transmission(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_crb(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_makeM(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_factorM(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_solveM(
m: *const mjModel,
d: *mut mjData,
x: *mut mjtNum,
y: *const mjtNum,
n: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_solveM2(
m: *const mjModel,
d: *mut mjData,
x: *mut mjtNum,
y: *const mjtNum,
sqrtInvD: *const mjtNum,
n: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_comVel(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_passive(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_subtreeVel(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_rne(
m: *const mjModel,
d: *mut mjData,
flg_acc: ::std::os::raw::c_int,
result: *mut mjtNum,
);
}
unsafe extern "C" {
pub fn mj_rnePostConstraint(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_maxContact(
m: *const mjModel,
g1: ::std::os::raw::c_int,
g2: ::std::os::raw::c_int,
has_margin: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_collision(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_makeConstraint(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_island(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_projectConstraint(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_referenceConstraint(m: *const mjModel, d: *mut mjData);
}
unsafe extern "C" {
pub fn mj_constraintUpdate(
m: *const mjModel,
d: *mut mjData,
jar: *const mjtNum,
cost: *mut mjtNum,
flg_coneHessian: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_stateSize(m: *const mjModel, sig: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_getState(
m: *const mjModel,
d: *const mjData,
state: *mut mjtNum,
sig: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_extractState(
m: *const mjModel,
src: *const mjtNum,
srcsig: ::std::os::raw::c_int,
dst: *mut mjtNum,
dstsig: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_setState(
m: *const mjModel,
d: *mut mjData,
state: *const mjtNum,
sig: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_copyState(
m: *const mjModel,
src: *const mjData,
dst: *mut mjData,
sig: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_readCtrl(
m: *const mjModel,
d: *const mjData,
id: ::std::os::raw::c_int,
time: mjtNum,
interp: ::std::os::raw::c_int,
) -> mjtNum;
}
unsafe extern "C" {
pub fn mj_readSensor(
m: *const mjModel,
d: *const mjData,
id: ::std::os::raw::c_int,
time: mjtNum,
result: *mut mjtNum,
interp: ::std::os::raw::c_int,
) -> *const mjtNum;
}
unsafe extern "C" {
pub fn mj_initCtrlHistory(
m: *const mjModel,
d: *mut mjData,
id: ::std::os::raw::c_int,
times: *const mjtNum,
values: *const mjtNum,
);
}
unsafe extern "C" {
pub fn mj_initSensorHistory(
m: *const mjModel,
d: *mut mjData,
id: ::std::os::raw::c_int,
times: *const mjtNum,
values: *const mjtNum,
phase: mjtNum,
);
}
unsafe extern "C" {
pub fn mj_setKeyframe(m: *mut mjModel, d: *const mjData, k: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mj_addContact(
m: *const mjModel,
d: *mut mjData,
con: *const mjContact,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_isPyramidal(m: *const mjModel) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_isSparse(m: *const mjModel) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_isDual(m: *const mjModel) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_mulJacVec(m: *const mjModel, d: *const mjData, res: *mut mjtNum, vec: *const mjtNum);
}
unsafe extern "C" {
pub fn mj_mulJacTVec(m: *const mjModel, d: *const mjData, res: *mut mjtNum, vec: *const mjtNum);
}
unsafe extern "C" {
pub fn mj_jac(
m: *const mjModel,
d: *const mjData,
jacp: *mut mjtNum,
jacr: *mut mjtNum,
point: *const [mjtNum; 3usize],
body: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_jacBody(
m: *const mjModel,
d: *const mjData,
jacp: *mut mjtNum,
jacr: *mut mjtNum,
body: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_jacBodyCom(
m: *const mjModel,
d: *const mjData,
jacp: *mut mjtNum,
jacr: *mut mjtNum,
body: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_jacSubtreeCom(
m: *const mjModel,
d: *mut mjData,
jacp: *mut mjtNum,
body: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_jacGeom(
m: *const mjModel,
d: *const mjData,
jacp: *mut mjtNum,
jacr: *mut mjtNum,
geom: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_jacSite(
m: *const mjModel,
d: *const mjData,
jacp: *mut mjtNum,
jacr: *mut mjtNum,
site: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_jacPointAxis(
m: *const mjModel,
d: *mut mjData,
jacPoint: *mut mjtNum,
jacAxis: *mut mjtNum,
point: *const [mjtNum; 3usize],
axis: *const [mjtNum; 3usize],
body: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_jacDot(
m: *const mjModel,
d: *const mjData,
jacp: *mut mjtNum,
jacr: *mut mjtNum,
point: *const [mjtNum; 3usize],
body: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_angmomMat(
m: *const mjModel,
d: *mut mjData,
mat: *mut mjtNum,
body: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_name2id(
m: *const mjModel,
type_: ::std::os::raw::c_int,
name: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_id2name(
m: *const mjModel,
type_: ::std::os::raw::c_int,
id: ::std::os::raw::c_int,
) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mj_fullM(m: *const mjModel, dst: *mut mjtNum, M: *const mjtNum);
}
unsafe extern "C" {
pub fn mj_mulM(m: *const mjModel, d: *const mjData, res: *mut mjtNum, vec: *const mjtNum);
}
unsafe extern "C" {
pub fn mj_mulM2(m: *const mjModel, d: *const mjData, res: *mut mjtNum, vec: *const mjtNum);
}
unsafe extern "C" {
pub fn mj_addM(
m: *const mjModel,
d: *mut mjData,
dst: *mut mjtNum,
rownnz: *mut ::std::os::raw::c_int,
rowadr: *mut ::std::os::raw::c_int,
colind: *mut ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_applyFT(
m: *const mjModel,
d: *mut mjData,
force: *const [mjtNum; 3usize],
torque: *const [mjtNum; 3usize],
point: *const [mjtNum; 3usize],
body: ::std::os::raw::c_int,
qfrc_target: *mut mjtNum,
);
}
unsafe extern "C" {
pub fn mj_objectVelocity(
m: *const mjModel,
d: *const mjData,
objtype: ::std::os::raw::c_int,
objid: ::std::os::raw::c_int,
res: *mut [mjtNum; 6usize],
flg_local: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_objectAcceleration(
m: *const mjModel,
d: *const mjData,
objtype: ::std::os::raw::c_int,
objid: ::std::os::raw::c_int,
res: *mut [mjtNum; 6usize],
flg_local: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mj_geomDistance(
m: *const mjModel,
d: *mut mjData,
geom1: ::std::os::raw::c_int,
geom2: ::std::os::raw::c_int,
distmax: mjtNum,
fromto: *mut [mjtNum; 6usize],
) -> mjtNum;
}
unsafe extern "C" {
pub fn mj_contactForce(
m: *const mjModel,
d: *const mjData,
id: ::std::os::raw::c_int,
result: *mut [mjtNum; 6usize],
);
}
unsafe extern "C" {
pub fn mj_differentiatePos(
m: *const mjModel,
qvel: *mut mjtNum,
dt: mjtNum,
qpos1: *const mjtNum,
qpos2: *const mjtNum,
);
}
unsafe extern "C" {
pub fn mj_integratePos(m: *const mjModel, qpos: *mut mjtNum, qvel: *const mjtNum, dt: mjtNum);
}
unsafe extern "C" {
pub fn mj_normalizeQuat(m: *const mjModel, qpos: *mut mjtNum);
}
unsafe extern "C" {
pub fn mj_local2Global(
d: *mut mjData,
xpos: *mut [mjtNum; 3usize],
xmat: *mut [mjtNum; 9usize],
pos: *const [mjtNum; 3usize],
quat: *const [mjtNum; 4usize],
body: ::std::os::raw::c_int,
sameframe: mjtByte,
);
}
unsafe extern "C" {
pub fn mj_getTotalmass(m: *const mjModel) -> mjtNum;
}
unsafe extern "C" {
pub fn mj_setTotalmass(m: *mut mjModel, newmass: mjtNum);
}
unsafe extern "C" {
pub fn mj_getPluginConfig(
m: *const mjModel,
plugin_id: ::std::os::raw::c_int,
attrib: *const ::std::os::raw::c_char,
) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mj_loadPluginLibrary(path: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn mj_loadAllPluginLibraries(
directory: *const ::std::os::raw::c_char,
callback: mjfPluginLibraryLoadCallback,
);
}
unsafe extern "C" {
pub fn mj_version() -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mj_versionString() -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mj_ray(
m: *const mjModel,
d: *const mjData,
pnt: *const [mjtNum; 3usize],
vec: *const [mjtNum; 3usize],
geomgroup: *const mjtByte,
flg_static: mjtByte,
bodyexclude: ::std::os::raw::c_int,
geomid: *mut ::std::os::raw::c_int,
normal: *mut [mjtNum; 3usize],
) -> mjtNum;
}
unsafe extern "C" {
pub fn mj_multiRay(
m: *const mjModel,
d: *mut mjData,
pnt: *const [mjtNum; 3usize],
vec: *const mjtNum,
geomgroup: *const mjtByte,
flg_static: mjtByte,
bodyexclude: ::std::os::raw::c_int,
geomid: *mut ::std::os::raw::c_int,
dist: *mut mjtNum,
normal: *mut mjtNum,
nray: ::std::os::raw::c_int,
cutoff: mjtNum,
);
}
unsafe extern "C" {
pub fn mj_rayHfield(
m: *const mjModel,
d: *const mjData,
geomid: ::std::os::raw::c_int,
pnt: *const [mjtNum; 3usize],
vec: *const [mjtNum; 3usize],
normal: *mut [mjtNum; 3usize],
) -> mjtNum;
}
unsafe extern "C" {
pub fn mj_rayMesh(
m: *const mjModel,
d: *const mjData,
geomid: ::std::os::raw::c_int,
pnt: *const [mjtNum; 3usize],
vec: *const [mjtNum; 3usize],
normal: *mut [mjtNum; 3usize],
) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_rayGeom(
pos: *const [mjtNum; 3usize],
mat: *const [mjtNum; 9usize],
size: *const [mjtNum; 3usize],
pnt: *const [mjtNum; 3usize],
vec: *const [mjtNum; 3usize],
geomtype: ::std::os::raw::c_int,
normal: *mut [mjtNum; 3usize],
) -> mjtNum;
}
unsafe extern "C" {
pub fn mj_rayFlex(
m: *const mjModel,
d: *const mjData,
flex_layer: ::std::os::raw::c_int,
flg_vert: mjtByte,
flg_edge: mjtByte,
flg_face: mjtByte,
flg_skin: mjtByte,
flexid: ::std::os::raw::c_int,
pnt: *const [mjtNum; 3usize],
vec: *const [mjtNum; 3usize],
vertid: *mut ::std::os::raw::c_int,
normal: *mut [mjtNum; 3usize],
) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_raySkin(
nface: ::std::os::raw::c_int,
nvert: ::std::os::raw::c_int,
face: *const ::std::os::raw::c_int,
vert: *const f32,
pnt: *const [mjtNum; 3usize],
vec: *const [mjtNum; 3usize],
vertid: *mut ::std::os::raw::c_int,
) -> mjtNum;
}
unsafe extern "C" {
pub fn mjv_defaultCamera(cam: *mut mjvCamera);
}
unsafe extern "C" {
pub fn mjv_defaultFreeCamera(m: *const mjModel, cam: *mut mjvCamera);
}
unsafe extern "C" {
pub fn mjv_defaultPerturb(pert: *mut mjvPerturb);
}
unsafe extern "C" {
pub fn mjv_room2model(
modelpos: *mut [mjtNum; 3usize],
modelquat: *mut [mjtNum; 4usize],
roompos: *const [mjtNum; 3usize],
roomquat: *const [mjtNum; 4usize],
scn: *const mjvScene,
);
}
unsafe extern "C" {
pub fn mjv_model2room(
roompos: *mut [mjtNum; 3usize],
roomquat: *mut [mjtNum; 4usize],
modelpos: *const [mjtNum; 3usize],
modelquat: *const [mjtNum; 4usize],
scn: *const mjvScene,
);
}
unsafe extern "C" {
pub fn mjv_cameraInModel(
headpos: *mut [mjtNum; 3usize],
forward: *mut [mjtNum; 3usize],
up: *mut [mjtNum; 3usize],
scn: *const mjvScene,
);
}
unsafe extern "C" {
pub fn mjv_cameraInRoom(
headpos: *mut [mjtNum; 3usize],
forward: *mut [mjtNum; 3usize],
up: *mut [mjtNum; 3usize],
scn: *const mjvScene,
);
}
unsafe extern "C" {
pub fn mjv_frustumHeight(scn: *const mjvScene) -> mjtNum;
}
unsafe extern "C" {
pub fn mjv_alignToCamera(
res: *mut [mjtNum; 3usize],
vec: *const [mjtNum; 3usize],
forward: *const [mjtNum; 3usize],
);
}
unsafe extern "C" {
pub fn mjv_moveCamera(
m: *const mjModel,
action: ::std::os::raw::c_int,
reldx: mjtNum,
reldy: mjtNum,
scn: *const mjvScene,
cam: *mut mjvCamera,
);
}
unsafe extern "C" {
pub fn mjv_movePerturb(
m: *const mjModel,
d: *const mjData,
action: ::std::os::raw::c_int,
reldx: mjtNum,
reldy: mjtNum,
scn: *const mjvScene,
pert: *mut mjvPerturb,
);
}
unsafe extern "C" {
pub fn mjv_moveModel(
m: *const mjModel,
action: ::std::os::raw::c_int,
reldx: mjtNum,
reldy: mjtNum,
roomup: *const [mjtNum; 3usize],
scn: *mut mjvScene,
);
}
unsafe extern "C" {
pub fn mjv_initPerturb(
m: *const mjModel,
d: *mut mjData,
scn: *const mjvScene,
pert: *mut mjvPerturb,
);
}
unsafe extern "C" {
pub fn mjv_applyPerturbPose(
m: *const mjModel,
d: *mut mjData,
pert: *const mjvPerturb,
flg_paused: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mjv_applyPerturbForce(m: *const mjModel, d: *mut mjData, pert: *const mjvPerturb);
}
unsafe extern "C" {
pub fn mjv_averageCamera(cam1: *const mjvGLCamera, cam2: *const mjvGLCamera) -> mjvGLCamera;
}
unsafe extern "C" {
pub fn mjv_select(
m: *const mjModel,
d: *const mjData,
vopt: *const mjvOption,
aspectratio: mjtNum,
relx: mjtNum,
rely: mjtNum,
scn: *const mjvScene,
selpnt: *mut [mjtNum; 3usize],
geomid: *mut ::std::os::raw::c_int,
flexid: *mut ::std::os::raw::c_int,
skinid: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mjv_defaultOption(opt: *mut mjvOption);
}
unsafe extern "C" {
pub fn mjv_defaultFigure(fig: *mut mjvFigure);
}
unsafe extern "C" {
pub fn mjv_initGeom(
geom: *mut mjvGeom,
type_: ::std::os::raw::c_int,
size: *const [mjtNum; 3usize],
pos: *const [mjtNum; 3usize],
mat: *const [mjtNum; 9usize],
rgba: *const [f32; 4usize],
);
}
unsafe extern "C" {
pub fn mjv_connector(
geom: *mut mjvGeom,
type_: ::std::os::raw::c_int,
width: mjtNum,
from: *const [mjtNum; 3usize],
to: *const [mjtNum; 3usize],
);
}
unsafe extern "C" {
pub fn mjv_defaultScene(scn: *mut mjvScene);
}
unsafe extern "C" {
pub fn mjv_makeScene(m: *const mjModel, scn: *mut mjvScene, maxgeom: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mjv_freeScene(scn: *mut mjvScene);
}
unsafe extern "C" {
pub fn mjv_updateScene(
m: *const mjModel,
d: *mut mjData,
opt: *const mjvOption,
pert: *const mjvPerturb,
cam: *mut mjvCamera,
catmask: ::std::os::raw::c_int,
scn: *mut mjvScene,
);
}
unsafe extern "C" {
pub fn mjv_copyModel(dest: *mut mjModel, src: *const mjModel);
}
unsafe extern "C" {
pub fn mjv_addGeoms(
m: *const mjModel,
d: *mut mjData,
opt: *const mjvOption,
pert: *const mjvPerturb,
catmask: ::std::os::raw::c_int,
scn: *mut mjvScene,
);
}
unsafe extern "C" {
pub fn mjv_makeLights(m: *const mjModel, d: *const mjData, scn: *mut mjvScene);
}
unsafe extern "C" {
pub fn mjv_updateCamera(
m: *const mjModel,
d: *const mjData,
cam: *mut mjvCamera,
scn: *mut mjvScene,
);
}
unsafe extern "C" {
pub fn mjv_updateSkin(m: *const mjModel, d: *const mjData, scn: *mut mjvScene);
}
unsafe extern "C" {
pub fn mjv_cameraFrame(
headpos: *mut [mjtNum; 3usize],
forward: *mut [mjtNum; 3usize],
up: *mut [mjtNum; 3usize],
right: *mut [mjtNum; 3usize],
d: *const mjData,
cam: *const mjvCamera,
);
}
unsafe extern "C" {
pub fn mjv_cameraFrustum(
zver: *mut [f32; 2usize],
zhor: *mut [f32; 2usize],
zclip: *mut [f32; 2usize],
m: *const mjModel,
cam: *const mjvCamera,
);
}
unsafe extern "C" {
pub fn mjr_defaultContext(con: *mut mjrContext);
}
unsafe extern "C" {
pub fn mjr_makeContext(
m: *const mjModel,
con: *mut mjrContext,
fontscale: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mjr_changeFont(fontscale: ::std::os::raw::c_int, con: *mut mjrContext);
}
unsafe extern "C" {
pub fn mjr_addAux(
index: ::std::os::raw::c_int,
width: ::std::os::raw::c_int,
height: ::std::os::raw::c_int,
samples: ::std::os::raw::c_int,
con: *mut mjrContext,
);
}
unsafe extern "C" {
pub fn mjr_freeContext(con: *mut mjrContext);
}
unsafe extern "C" {
pub fn mjr_resizeOffscreen(
width: ::std::os::raw::c_int,
height: ::std::os::raw::c_int,
con: *mut mjrContext,
);
}
unsafe extern "C" {
pub fn mjr_uploadTexture(
m: *const mjModel,
con: *const mjrContext,
texid: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mjr_uploadMesh(m: *const mjModel, con: *const mjrContext, meshid: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mjr_uploadHField(
m: *const mjModel,
con: *const mjrContext,
hfieldid: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mjr_restoreBuffer(con: *const mjrContext);
}
unsafe extern "C" {
pub fn mjr_setBuffer(framebuffer: ::std::os::raw::c_int, con: *mut mjrContext);
}
unsafe extern "C" {
pub fn mjr_readPixels(
rgb: *mut ::std::os::raw::c_uchar,
depth: *mut f32,
viewport: mjrRect,
con: *const mjrContext,
);
}
unsafe extern "C" {
pub fn mjr_drawPixels(
rgb: *const ::std::os::raw::c_uchar,
depth: *const f32,
viewport: mjrRect,
con: *const mjrContext,
);
}
unsafe extern "C" {
pub fn mjr_blitBuffer(
src: mjrRect,
dst: mjrRect,
flg_color: ::std::os::raw::c_int,
flg_depth: ::std::os::raw::c_int,
con: *const mjrContext,
);
}
unsafe extern "C" {
pub fn mjr_setAux(index: ::std::os::raw::c_int, con: *const mjrContext);
}
unsafe extern "C" {
pub fn mjr_blitAux(
index: ::std::os::raw::c_int,
src: mjrRect,
left: ::std::os::raw::c_int,
bottom: ::std::os::raw::c_int,
con: *const mjrContext,
);
}
unsafe extern "C" {
pub fn mjr_text(
font: ::std::os::raw::c_int,
txt: *const ::std::os::raw::c_char,
con: *const mjrContext,
x: f32,
y: f32,
r: f32,
g: f32,
b: f32,
);
}
unsafe extern "C" {
pub fn mjr_overlay(
font: ::std::os::raw::c_int,
gridpos: ::std::os::raw::c_int,
viewport: mjrRect,
overlay: *const ::std::os::raw::c_char,
overlay2: *const ::std::os::raw::c_char,
con: *const mjrContext,
);
}
unsafe extern "C" {
pub fn mjr_maxViewport(con: *const mjrContext) -> mjrRect;
}
unsafe extern "C" {
pub fn mjr_rectangle(viewport: mjrRect, r: f32, g: f32, b: f32, a: f32);
}
unsafe extern "C" {
pub fn mjr_label(
viewport: mjrRect,
font: ::std::os::raw::c_int,
txt: *const ::std::os::raw::c_char,
r: f32,
g: f32,
b: f32,
a: f32,
rt: f32,
gt: f32,
bt: f32,
con: *const mjrContext,
);
}
unsafe extern "C" {
pub fn mjr_figure(viewport: mjrRect, fig: *mut mjvFigure, con: *const mjrContext);
}
unsafe extern "C" {
pub fn mjr_render(viewport: mjrRect, scn: *mut mjvScene, con: *const mjrContext);
}
unsafe extern "C" {
pub fn mjr_finish();
}
unsafe extern "C" {
pub fn mjr_getError() -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mjr_findRect(
x: ::std::os::raw::c_int,
y: ::std::os::raw::c_int,
nrect: ::std::os::raw::c_int,
rect: *const mjrRect,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mjui_themeSpacing(ind: ::std::os::raw::c_int) -> mjuiThemeSpacing;
}
unsafe extern "C" {
pub fn mjui_themeColor(ind: ::std::os::raw::c_int) -> mjuiThemeColor;
}
unsafe extern "C" {
pub fn mjui_add(ui: *mut mjUI, def: *const mjuiDef);
}
unsafe extern "C" {
pub fn mjui_addToSection(ui: *mut mjUI, sect: ::std::os::raw::c_int, def: *const mjuiDef);
}
unsafe extern "C" {
pub fn mjui_resize(ui: *mut mjUI, con: *const mjrContext);
}
unsafe extern "C" {
pub fn mjui_update(
section: ::std::os::raw::c_int,
item: ::std::os::raw::c_int,
ui: *const mjUI,
state: *const mjuiState,
con: *const mjrContext,
);
}
unsafe extern "C" {
pub fn mjui_event(
ui: *mut mjUI,
state: *mut mjuiState,
con: *const mjrContext,
) -> *mut mjuiItem;
}
unsafe extern "C" {
pub fn mjui_render(ui: *mut mjUI, state: *const mjuiState, con: *const mjrContext);
}
unsafe extern "C" {
pub fn mju_error(msg: *const ::std::os::raw::c_char, ...);
}
unsafe extern "C" {
pub fn mju_error_i(msg: *const ::std::os::raw::c_char, i: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mju_error_s(msg: *const ::std::os::raw::c_char, text: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn mju_warning(msg: *const ::std::os::raw::c_char, ...);
}
unsafe extern "C" {
pub fn mju_warning_i(msg: *const ::std::os::raw::c_char, i: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mju_warning_s(msg: *const ::std::os::raw::c_char, text: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn mju_clearHandlers();
}
unsafe extern "C" {
pub fn mju_malloc(size: usize) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
pub fn mju_free(ptr: *mut ::std::os::raw::c_void);
}
unsafe extern "C" {
pub fn mj_warning(d: *mut mjData, warning: ::std::os::raw::c_int, info: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mju_writeLog(type_: *const ::std::os::raw::c_char, msg: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn mjs_getError(s: *mut mjSpec) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mjs_isWarning(s: *mut mjSpec) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mju_zero3(res: *mut [mjtNum; 3usize]);
}
unsafe extern "C" {
pub fn mju_copy3(res: *mut [mjtNum; 3usize], data: *const [mjtNum; 3usize]);
}
unsafe extern "C" {
pub fn mju_scl3(res: *mut [mjtNum; 3usize], vec: *const [mjtNum; 3usize], scl: mjtNum);
}
unsafe extern "C" {
pub fn mju_add3(
res: *mut [mjtNum; 3usize],
vec1: *const [mjtNum; 3usize],
vec2: *const [mjtNum; 3usize],
);
}
unsafe extern "C" {
pub fn mju_sub3(
res: *mut [mjtNum; 3usize],
vec1: *const [mjtNum; 3usize],
vec2: *const [mjtNum; 3usize],
);
}
unsafe extern "C" {
pub fn mju_addTo3(res: *mut [mjtNum; 3usize], vec: *const [mjtNum; 3usize]);
}
unsafe extern "C" {
pub fn mju_subFrom3(res: *mut [mjtNum; 3usize], vec: *const [mjtNum; 3usize]);
}
unsafe extern "C" {
pub fn mju_addToScl3(res: *mut [mjtNum; 3usize], vec: *const [mjtNum; 3usize], scl: mjtNum);
}
unsafe extern "C" {
pub fn mju_addScl3(
res: *mut [mjtNum; 3usize],
vec1: *const [mjtNum; 3usize],
vec2: *const [mjtNum; 3usize],
scl: mjtNum,
);
}
unsafe extern "C" {
pub fn mju_normalize3(vec: *mut [mjtNum; 3usize]) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_norm3(vec: *const [mjtNum; 3usize]) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_dot3(vec1: *const [mjtNum; 3usize], vec2: *const [mjtNum; 3usize]) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_dist3(pos1: *const [mjtNum; 3usize], pos2: *const [mjtNum; 3usize]) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_mulMatVec3(
res: *mut [mjtNum; 3usize],
mat: *const [mjtNum; 9usize],
vec: *const [mjtNum; 3usize],
);
}
unsafe extern "C" {
pub fn mju_mulMatTVec3(
res: *mut [mjtNum; 3usize],
mat: *const [mjtNum; 9usize],
vec: *const [mjtNum; 3usize],
);
}
unsafe extern "C" {
pub fn mju_cross(
res: *mut [mjtNum; 3usize],
a: *const [mjtNum; 3usize],
b: *const [mjtNum; 3usize],
);
}
unsafe extern "C" {
pub fn mju_zero4(res: *mut [mjtNum; 4usize]);
}
unsafe extern "C" {
pub fn mju_unit4(res: *mut [mjtNum; 4usize]);
}
unsafe extern "C" {
pub fn mju_copy4(res: *mut [mjtNum; 4usize], data: *const [mjtNum; 4usize]);
}
unsafe extern "C" {
pub fn mju_normalize4(vec: *mut [mjtNum; 4usize]) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_zero(res: *mut mjtNum, n: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mju_fill(res: *mut mjtNum, val: mjtNum, n: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mju_copy(res: *mut mjtNum, vec: *const mjtNum, n: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mju_sum(vec: *const mjtNum, n: ::std::os::raw::c_int) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_L1(vec: *const mjtNum, n: ::std::os::raw::c_int) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_scl(res: *mut mjtNum, vec: *const mjtNum, scl: mjtNum, n: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mju_add(
res: *mut mjtNum,
vec1: *const mjtNum,
vec2: *const mjtNum,
n: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mju_sub(
res: *mut mjtNum,
vec1: *const mjtNum,
vec2: *const mjtNum,
n: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mju_addTo(res: *mut mjtNum, vec: *const mjtNum, n: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mju_subFrom(res: *mut mjtNum, vec: *const mjtNum, n: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mju_addToScl(
res: *mut mjtNum,
vec: *const mjtNum,
scl: mjtNum,
n: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mju_addScl(
res: *mut mjtNum,
vec1: *const mjtNum,
vec2: *const mjtNum,
scl: mjtNum,
n: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mju_normalize(res: *mut mjtNum, n: ::std::os::raw::c_int) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_norm(res: *const mjtNum, n: ::std::os::raw::c_int) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_dot(vec1: *const mjtNum, vec2: *const mjtNum, n: ::std::os::raw::c_int) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_mulMatVec(
res: *mut mjtNum,
mat: *const mjtNum,
vec: *const mjtNum,
nr: ::std::os::raw::c_int,
nc: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mju_mulMatTVec(
res: *mut mjtNum,
mat: *const mjtNum,
vec: *const mjtNum,
nr: ::std::os::raw::c_int,
nc: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mju_mulVecMatVec(
vec1: *const mjtNum,
mat: *const mjtNum,
vec2: *const mjtNum,
n: ::std::os::raw::c_int,
) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_transpose(
res: *mut mjtNum,
mat: *const mjtNum,
nr: ::std::os::raw::c_int,
nc: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mju_symmetrize(res: *mut mjtNum, mat: *const mjtNum, n: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mju_eye(mat: *mut mjtNum, n: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mju_mulMatMat(
res: *mut mjtNum,
mat1: *const mjtNum,
mat2: *const mjtNum,
r1: ::std::os::raw::c_int,
c1: ::std::os::raw::c_int,
c2: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mju_mulMatMatT(
res: *mut mjtNum,
mat1: *const mjtNum,
mat2: *const mjtNum,
r1: ::std::os::raw::c_int,
c1: ::std::os::raw::c_int,
r2: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mju_mulMatTMat(
res: *mut mjtNum,
mat1: *const mjtNum,
mat2: *const mjtNum,
r1: ::std::os::raw::c_int,
c1: ::std::os::raw::c_int,
c2: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mju_sqrMatTD(
res: *mut mjtNum,
mat: *const mjtNum,
diag: *const mjtNum,
nr: ::std::os::raw::c_int,
nc: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mju_transformSpatial(
res: *mut [mjtNum; 6usize],
vec: *const [mjtNum; 6usize],
flg_force: ::std::os::raw::c_int,
newpos: *const [mjtNum; 3usize],
oldpos: *const [mjtNum; 3usize],
rotnew2old: *const [mjtNum; 9usize],
);
}
unsafe extern "C" {
pub fn mju_dense2sparse(
res: *mut mjtNum,
mat: *const mjtNum,
nr: ::std::os::raw::c_int,
nc: ::std::os::raw::c_int,
rownnz: *mut ::std::os::raw::c_int,
rowadr: *mut ::std::os::raw::c_int,
colind: *mut ::std::os::raw::c_int,
nnz: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mju_sparse2dense(
res: *mut mjtNum,
mat: *const mjtNum,
nr: ::std::os::raw::c_int,
nc: ::std::os::raw::c_int,
rownnz: *const ::std::os::raw::c_int,
rowadr: *const ::std::os::raw::c_int,
colind: *const ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mju_rotVecQuat(
res: *mut [mjtNum; 3usize],
vec: *const [mjtNum; 3usize],
quat: *const [mjtNum; 4usize],
);
}
unsafe extern "C" {
pub fn mju_negQuat(res: *mut [mjtNum; 4usize], quat: *const [mjtNum; 4usize]);
}
unsafe extern "C" {
pub fn mju_mulQuat(
res: *mut [mjtNum; 4usize],
quat1: *const [mjtNum; 4usize],
quat2: *const [mjtNum; 4usize],
);
}
unsafe extern "C" {
pub fn mju_mulQuatAxis(
res: *mut [mjtNum; 4usize],
quat: *const [mjtNum; 4usize],
axis: *const [mjtNum; 3usize],
);
}
unsafe extern "C" {
pub fn mju_axisAngle2Quat(
res: *mut [mjtNum; 4usize],
axis: *const [mjtNum; 3usize],
angle: mjtNum,
);
}
unsafe extern "C" {
pub fn mju_quat2Vel(res: *mut [mjtNum; 3usize], quat: *const [mjtNum; 4usize], dt: mjtNum);
}
unsafe extern "C" {
pub fn mju_subQuat(
res: *mut [mjtNum; 3usize],
qa: *const [mjtNum; 4usize],
qb: *const [mjtNum; 4usize],
);
}
unsafe extern "C" {
pub fn mju_quat2Mat(res: *mut [mjtNum; 9usize], quat: *const [mjtNum; 4usize]);
}
unsafe extern "C" {
pub fn mju_mat2Quat(quat: *mut [mjtNum; 4usize], mat: *const [mjtNum; 9usize]);
}
unsafe extern "C" {
pub fn mju_derivQuat(
res: *mut [mjtNum; 4usize],
quat: *const [mjtNum; 4usize],
vel: *const [mjtNum; 3usize],
);
}
unsafe extern "C" {
pub fn mju_quatIntegrate(
quat: *mut [mjtNum; 4usize],
vel: *const [mjtNum; 3usize],
scale: mjtNum,
);
}
unsafe extern "C" {
pub fn mju_quatZ2Vec(quat: *mut [mjtNum; 4usize], vec: *const [mjtNum; 3usize]);
}
unsafe extern "C" {
pub fn mju_mat2Rot(
quat: *mut [mjtNum; 4usize],
mat: *const [mjtNum; 9usize],
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mju_euler2Quat(
quat: *mut [mjtNum; 4usize],
euler: *const [mjtNum; 3usize],
seq: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn mju_mulPose(
posres: *mut [mjtNum; 3usize],
quatres: *mut [mjtNum; 4usize],
pos1: *const [mjtNum; 3usize],
quat1: *const [mjtNum; 4usize],
pos2: *const [mjtNum; 3usize],
quat2: *const [mjtNum; 4usize],
);
}
unsafe extern "C" {
pub fn mju_negPose(
posres: *mut [mjtNum; 3usize],
quatres: *mut [mjtNum; 4usize],
pos: *const [mjtNum; 3usize],
quat: *const [mjtNum; 4usize],
);
}
unsafe extern "C" {
pub fn mju_trnVecPose(
res: *mut [mjtNum; 3usize],
pos: *const [mjtNum; 3usize],
quat: *const [mjtNum; 4usize],
vec: *const [mjtNum; 3usize],
);
}
unsafe extern "C" {
pub fn mju_cholFactor(
mat: *mut mjtNum,
n: ::std::os::raw::c_int,
mindiag: mjtNum,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mju_cholSolve(
res: *mut mjtNum,
mat: *const mjtNum,
vec: *const mjtNum,
n: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mju_cholUpdate(
mat: *mut mjtNum,
x: *mut mjtNum,
n: ::std::os::raw::c_int,
flg_plus: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mju_cholFactorBand(
mat: *mut mjtNum,
ntotal: ::std::os::raw::c_int,
nband: ::std::os::raw::c_int,
ndense: ::std::os::raw::c_int,
diagadd: mjtNum,
diagmul: mjtNum,
) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_cholSolveBand(
res: *mut mjtNum,
mat: *const mjtNum,
vec: *const mjtNum,
ntotal: ::std::os::raw::c_int,
nband: ::std::os::raw::c_int,
ndense: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mju_band2Dense(
res: *mut mjtNum,
mat: *const mjtNum,
ntotal: ::std::os::raw::c_int,
nband: ::std::os::raw::c_int,
ndense: ::std::os::raw::c_int,
flg_sym: mjtByte,
);
}
unsafe extern "C" {
pub fn mju_dense2Band(
res: *mut mjtNum,
mat: *const mjtNum,
ntotal: ::std::os::raw::c_int,
nband: ::std::os::raw::c_int,
ndense: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mju_bandMulMatVec(
res: *mut mjtNum,
mat: *const mjtNum,
vec: *const mjtNum,
ntotal: ::std::os::raw::c_int,
nband: ::std::os::raw::c_int,
ndense: ::std::os::raw::c_int,
nvec: ::std::os::raw::c_int,
flg_sym: mjtByte,
);
}
unsafe extern "C" {
pub fn mju_bandDiag(
i: ::std::os::raw::c_int,
ntotal: ::std::os::raw::c_int,
nband: ::std::os::raw::c_int,
ndense: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mju_eig3(
eigval: *mut [mjtNum; 3usize],
eigvec: *mut [mjtNum; 9usize],
quat: *mut [mjtNum; 4usize],
mat: *const [mjtNum; 9usize],
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mju_boxQP(
res: *mut mjtNum,
R: *mut mjtNum,
index: *mut ::std::os::raw::c_int,
H: *const mjtNum,
g: *const mjtNum,
n: ::std::os::raw::c_int,
lower: *const mjtNum,
upper: *const mjtNum,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mju_boxQPmalloc(
res: *mut *mut mjtNum,
R: *mut *mut mjtNum,
index: *mut *mut ::std::os::raw::c_int,
H: *mut *mut mjtNum,
g: *mut *mut mjtNum,
n: ::std::os::raw::c_int,
lower: *mut *mut mjtNum,
upper: *mut *mut mjtNum,
);
}
unsafe extern "C" {
pub fn mju_muscleGain(
len: mjtNum,
vel: mjtNum,
lengthrange: *const [mjtNum; 2usize],
acc0: mjtNum,
prm: *const [mjtNum; 9usize],
) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_muscleBias(
len: mjtNum,
lengthrange: *const [mjtNum; 2usize],
acc0: mjtNum,
prm: *const [mjtNum; 9usize],
) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_muscleDynamics(ctrl: mjtNum, act: mjtNum, prm: *const [mjtNum; 3usize]) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_encodePyramid(
pyramid: *mut mjtNum,
force: *const mjtNum,
mu: *const mjtNum,
dim: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mju_decodePyramid(
force: *mut mjtNum,
pyramid: *const mjtNum,
mu: *const mjtNum,
dim: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mju_springDamper(
pos0: mjtNum,
vel0: mjtNum,
Kp: mjtNum,
Kv: mjtNum,
dt: mjtNum,
) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_min(a: mjtNum, b: mjtNum) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_max(a: mjtNum, b: mjtNum) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_clip(x: mjtNum, min: mjtNum, max: mjtNum) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_sign(x: mjtNum) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_round(x: mjtNum) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mju_type2Str(type_: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mju_str2Type(str_: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mju_writeNumBytes(nbytes: usize) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mju_warningText(
warning: ::std::os::raw::c_int,
info: usize,
) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mju_isBad(x: mjtNum) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mju_isZero(vec: *const mjtNum, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mju_standardNormal(num2: *mut mjtNum) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_f2n(res: *mut mjtNum, vec: *const f32, n: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mju_n2f(res: *mut f32, vec: *const mjtNum, n: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mju_d2n(res: *mut mjtNum, vec: *const f64, n: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mju_n2d(res: *mut f64, vec: *const mjtNum, n: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mju_insertionSort(list: *mut mjtNum, n: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mju_insertionSortInt(list: *mut ::std::os::raw::c_int, n: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mju_Halton(index: ::std::os::raw::c_int, base: ::std::os::raw::c_int) -> mjtNum;
}
unsafe extern "C" {
pub fn mju_strncpy(
dst: *mut ::std::os::raw::c_char,
src: *const ::std::os::raw::c_char,
n: ::std::os::raw::c_int,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mju_sigmoid(x: mjtNum) -> mjtNum;
}
unsafe extern "C" {
pub fn mjc_getSDF(m: *const mjModel, id: ::std::os::raw::c_int) -> *const mjpPlugin;
}
unsafe extern "C" {
pub fn mjc_distance(
m: *const mjModel,
d: *const mjData,
s: *const mjSDF,
x: *const [mjtNum; 3usize],
) -> mjtNum;
}
unsafe extern "C" {
pub fn mjc_gradient(
m: *const mjModel,
d: *const mjData,
s: *const mjSDF,
gradient: *mut [mjtNum; 3usize],
x: *const [mjtNum; 3usize],
);
}
unsafe extern "C" {
pub fn mjd_transitionFD(
m: *const mjModel,
d: *mut mjData,
eps: mjtNum,
flg_centered: mjtByte,
A: *mut mjtNum,
B: *mut mjtNum,
C: *mut mjtNum,
D: *mut mjtNum,
);
}
unsafe extern "C" {
pub fn mjd_inverseFD(
m: *const mjModel,
d: *mut mjData,
eps: mjtNum,
flg_actuation: mjtByte,
DfDq: *mut mjtNum,
DfDv: *mut mjtNum,
DfDa: *mut mjtNum,
DsDq: *mut mjtNum,
DsDv: *mut mjtNum,
DsDa: *mut mjtNum,
DmDq: *mut mjtNum,
);
}
unsafe extern "C" {
pub fn mjd_subQuat(
qa: *const [mjtNum; 4usize],
qb: *const [mjtNum; 4usize],
Da: *mut [mjtNum; 9usize],
Db: *mut [mjtNum; 9usize],
);
}
unsafe extern "C" {
pub fn mjd_quatIntegrate(
vel: *const [mjtNum; 3usize],
scale: mjtNum,
Dquat: *mut [mjtNum; 9usize],
Dvel: *mut [mjtNum; 9usize],
Dscale: *mut [mjtNum; 3usize],
);
}
unsafe extern "C" {
pub fn mjp_defaultPlugin(plugin: *mut mjpPlugin);
}
unsafe extern "C" {
pub fn mjp_registerPlugin(plugin: *const mjpPlugin) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mjp_pluginCount() -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mjp_getPlugin(
name: *const ::std::os::raw::c_char,
slot: *mut ::std::os::raw::c_int,
) -> *const mjpPlugin;
}
unsafe extern "C" {
pub fn mjp_getPluginAtSlot(slot: ::std::os::raw::c_int) -> *const mjpPlugin;
}
unsafe extern "C" {
pub fn mjp_defaultResourceProvider(provider: *mut mjpResourceProvider);
}
unsafe extern "C" {
pub fn mjp_registerResourceProvider(
provider: *const mjpResourceProvider,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mjp_resourceProviderCount() -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mjp_getResourceProvider(
resource_name: *const ::std::os::raw::c_char,
) -> *const mjpResourceProvider;
}
unsafe extern "C" {
pub fn mjp_getResourceProviderAtSlot(slot: ::std::os::raw::c_int)
-> *const mjpResourceProvider;
}
unsafe extern "C" {
pub fn mjp_registerDecoder(decoder: *const mjpDecoder);
}
unsafe extern "C" {
pub fn mjp_defaultDecoder(decoder: *mut mjpDecoder);
}
unsafe extern "C" {
pub fn mjp_findDecoder(
resource: *const mjResource,
content_type: *const ::std::os::raw::c_char,
) -> *const mjpDecoder;
}
unsafe extern "C" {
pub fn mjp_registerEncoder(encoder: *const mjpEncoder);
}
unsafe extern "C" {
pub fn mjp_defaultEncoder(encoder: *mut mjpEncoder);
}
unsafe extern "C" {
pub fn mjp_findEncoder(
filename: *const ::std::os::raw::c_char,
content_type: *const ::std::os::raw::c_char,
) -> *const mjpEncoder;
}
unsafe extern "C" {
pub fn mju_openResource(
dir: *const ::std::os::raw::c_char,
name: *const ::std::os::raw::c_char,
vfs: *const mjVFS,
error: *mut ::std::os::raw::c_char,
nerror: usize,
) -> *mut mjResource;
}
unsafe extern "C" {
pub fn mju_closeResource(resource: *mut mjResource);
}
unsafe extern "C" {
pub fn mju_readResource(
resource: *mut mjResource,
buffer: *mut *const ::std::os::raw::c_void,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mju_getResourceDir(
resource: *mut mjResource,
dir: *mut *const ::std::os::raw::c_char,
ndir: *mut ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mju_isModifiedResource(
resource: *const mjResource,
timestamp: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mju_decodeResource(
resource: *mut mjResource,
content_type: *const ::std::os::raw::c_char,
vfs: *const mjVFS,
) -> *mut mjSpec;
}
unsafe extern "C" {
pub fn mju_threadPoolCreate(number_of_threads: usize) -> *mut mjThreadPool;
}
unsafe extern "C" {
pub fn mju_bindThreadPool(d: *mut mjData, thread_pool: *mut ::std::os::raw::c_void);
}
unsafe extern "C" {
pub fn mju_threadPoolEnqueue(thread_pool: *mut mjThreadPool, task: *mut mjTask);
}
unsafe extern "C" {
pub fn mju_threadPoolDestroy(thread_pool: *mut mjThreadPool);
}
unsafe extern "C" {
pub fn mju_defaultTask(task: *mut mjTask);
}
unsafe extern "C" {
pub fn mju_taskJoin(task: *mut mjTask);
}
unsafe extern "C" {
pub fn mjs_attach(
parent: *mut mjsElement,
child: *const mjsElement,
prefix: *const ::std::os::raw::c_char,
suffix: *const ::std::os::raw::c_char,
) -> *mut mjsElement;
}
unsafe extern "C" {
pub fn mjs_addBody(body: *mut mjsBody, def: *const mjsDefault) -> *mut mjsBody;
}
unsafe extern "C" {
pub fn mjs_addSite(body: *mut mjsBody, def: *const mjsDefault) -> *mut mjsSite;
}
unsafe extern "C" {
pub fn mjs_addJoint(body: *mut mjsBody, def: *const mjsDefault) -> *mut mjsJoint;
}
unsafe extern "C" {
pub fn mjs_addFreeJoint(body: *mut mjsBody) -> *mut mjsJoint;
}
unsafe extern "C" {
pub fn mjs_addGeom(body: *mut mjsBody, def: *const mjsDefault) -> *mut mjsGeom;
}
unsafe extern "C" {
pub fn mjs_addCamera(body: *mut mjsBody, def: *const mjsDefault) -> *mut mjsCamera;
}
unsafe extern "C" {
pub fn mjs_addLight(body: *mut mjsBody, def: *const mjsDefault) -> *mut mjsLight;
}
unsafe extern "C" {
pub fn mjs_addFrame(body: *mut mjsBody, parentframe: *mut mjsFrame) -> *mut mjsFrame;
}
unsafe extern "C" {
pub fn mjs_delete(spec: *mut mjSpec, element: *mut mjsElement) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mjs_addActuator(s: *mut mjSpec, def: *const mjsDefault) -> *mut mjsActuator;
}
unsafe extern "C" {
pub fn mjs_addSensor(s: *mut mjSpec) -> *mut mjsSensor;
}
unsafe extern "C" {
pub fn mjs_addFlex(s: *mut mjSpec) -> *mut mjsFlex;
}
unsafe extern "C" {
pub fn mjs_addPair(s: *mut mjSpec, def: *const mjsDefault) -> *mut mjsPair;
}
unsafe extern "C" {
pub fn mjs_addExclude(s: *mut mjSpec) -> *mut mjsExclude;
}
unsafe extern "C" {
pub fn mjs_addEquality(s: *mut mjSpec, def: *const mjsDefault) -> *mut mjsEquality;
}
unsafe extern "C" {
pub fn mjs_addTendon(s: *mut mjSpec, def: *const mjsDefault) -> *mut mjsTendon;
}
unsafe extern "C" {
pub fn mjs_wrapSite(
tendon: *mut mjsTendon,
name: *const ::std::os::raw::c_char,
) -> *mut mjsWrap;
}
unsafe extern "C" {
pub fn mjs_wrapGeom(
tendon: *mut mjsTendon,
name: *const ::std::os::raw::c_char,
sidesite: *const ::std::os::raw::c_char,
) -> *mut mjsWrap;
}
unsafe extern "C" {
pub fn mjs_wrapJoint(
tendon: *mut mjsTendon,
name: *const ::std::os::raw::c_char,
coef: f64,
) -> *mut mjsWrap;
}
unsafe extern "C" {
pub fn mjs_wrapPulley(tendon: *mut mjsTendon, divisor: f64) -> *mut mjsWrap;
}
unsafe extern "C" {
pub fn mjs_addNumeric(s: *mut mjSpec) -> *mut mjsNumeric;
}
unsafe extern "C" {
pub fn mjs_addText(s: *mut mjSpec) -> *mut mjsText;
}
unsafe extern "C" {
pub fn mjs_addTuple(s: *mut mjSpec) -> *mut mjsTuple;
}
unsafe extern "C" {
pub fn mjs_addKey(s: *mut mjSpec) -> *mut mjsKey;
}
unsafe extern "C" {
pub fn mjs_addPlugin(s: *mut mjSpec) -> *mut mjsPlugin;
}
unsafe extern "C" {
pub fn mjs_addDefault(
s: *mut mjSpec,
classname: *const ::std::os::raw::c_char,
parent: *const mjsDefault,
) -> *mut mjsDefault;
}
unsafe extern "C" {
pub fn mjs_setToMotor(actuator: *mut mjsActuator) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mjs_setToPosition(
actuator: *mut mjsActuator,
kp: f64,
kv: *mut f64,
dampratio: *mut f64,
timeconst: *mut f64,
inheritrange: f64,
) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mjs_setToIntVelocity(
actuator: *mut mjsActuator,
kp: f64,
kv: *mut f64,
dampratio: *mut f64,
timeconst: *mut f64,
inheritrange: f64,
) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mjs_setToVelocity(actuator: *mut mjsActuator, kv: f64) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mjs_setToDamper(actuator: *mut mjsActuator, kv: f64) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mjs_setToCylinder(
actuator: *mut mjsActuator,
timeconst: f64,
bias: f64,
area: f64,
diameter: f64,
) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mjs_setToMuscle(
actuator: *mut mjsActuator,
timeconst: *mut [f64; 2usize],
tausmooth: f64,
range: *mut [f64; 2usize],
force: f64,
scale: f64,
lmin: f64,
lmax: f64,
vmax: f64,
fpmax: f64,
fvmax: f64,
) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mjs_setToAdhesion(
actuator: *mut mjsActuator,
gain: f64,
) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mjs_setToDCMotor(
actuator: *mut mjsActuator,
motorconst: *mut [f64; 2usize],
resistance: f64,
nominal: *mut [f64; 3usize],
saturation: *mut [f64; 3usize],
inductance: *mut [f64; 2usize],
cogging: *mut [f64; 3usize],
controller: *mut [f64; 6usize],
thermal: *mut [f64; 6usize],
lugre: *mut [f64; 5usize],
input_mode: ::std::os::raw::c_int,
) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mjs_addMesh(s: *mut mjSpec, def: *const mjsDefault) -> *mut mjsMesh;
}
unsafe extern "C" {
pub fn mjs_addHField(s: *mut mjSpec) -> *mut mjsHField;
}
unsafe extern "C" {
pub fn mjs_addSkin(s: *mut mjSpec) -> *mut mjsSkin;
}
unsafe extern "C" {
pub fn mjs_addTexture(s: *mut mjSpec) -> *mut mjsTexture;
}
unsafe extern "C" {
pub fn mjs_addMaterial(s: *mut mjSpec, def: *const mjsDefault) -> *mut mjsMaterial;
}
unsafe extern "C" {
pub fn mjs_makeMesh(
mesh: *mut mjsMesh,
builtin: mjtMeshBuiltin,
params: *mut f64,
nparams: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mjs_getSpec(element: *mut mjsElement) -> *mut mjSpec;
}
unsafe extern "C" {
pub fn mjs_getCompiler(element: *mut mjsElement) -> *mut mjsCompiler;
}
unsafe extern "C" {
pub fn mjs_findSpec(spec: *mut mjSpec, name: *const ::std::os::raw::c_char) -> *mut mjSpec;
}
unsafe extern "C" {
pub fn mjs_findBody(s: *mut mjSpec, name: *const ::std::os::raw::c_char) -> *mut mjsBody;
}
unsafe extern "C" {
pub fn mjs_findElement(
s: *mut mjSpec,
type_: mjtObj,
name: *const ::std::os::raw::c_char,
) -> *mut mjsElement;
}
unsafe extern "C" {
pub fn mjs_findChild(body: *mut mjsBody, name: *const ::std::os::raw::c_char) -> *mut mjsBody;
}
unsafe extern "C" {
pub fn mjs_getParent(element: *mut mjsElement) -> *mut mjsBody;
}
unsafe extern "C" {
pub fn mjs_getFrame(element: *mut mjsElement) -> *mut mjsFrame;
}
unsafe extern "C" {
pub fn mjs_findFrame(s: *mut mjSpec, name: *const ::std::os::raw::c_char) -> *mut mjsFrame;
}
unsafe extern "C" {
pub fn mjs_getDefault(element: *mut mjsElement) -> *mut mjsDefault;
}
unsafe extern "C" {
pub fn mjs_findDefault(
s: *mut mjSpec,
classname: *const ::std::os::raw::c_char,
) -> *mut mjsDefault;
}
unsafe extern "C" {
pub fn mjs_getSpecDefault(s: *mut mjSpec) -> *mut mjsDefault;
}
unsafe extern "C" {
pub fn mjs_getId(element: *mut mjsElement) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mjs_firstChild(
body: *mut mjsBody,
type_: mjtObj,
recurse: ::std::os::raw::c_int,
) -> *mut mjsElement;
}
unsafe extern "C" {
pub fn mjs_nextChild(
body: *mut mjsBody,
child: *mut mjsElement,
recurse: ::std::os::raw::c_int,
) -> *mut mjsElement;
}
unsafe extern "C" {
pub fn mjs_firstElement(s: *mut mjSpec, type_: mjtObj) -> *mut mjsElement;
}
unsafe extern "C" {
pub fn mjs_nextElement(s: *mut mjSpec, element: *mut mjsElement) -> *mut mjsElement;
}
unsafe extern "C" {
pub fn mjs_getWrapTarget(wrap: *mut mjsWrap) -> *mut mjsElement;
}
unsafe extern "C" {
pub fn mjs_getWrapSideSite(wrap: *mut mjsWrap) -> *mut mjsSite;
}
unsafe extern "C" {
pub fn mjs_getWrapDivisor(wrap: *mut mjsWrap) -> f64;
}
unsafe extern "C" {
pub fn mjs_getWrapCoef(wrap: *mut mjsWrap) -> f64;
}
unsafe extern "C" {
pub fn mjs_setName(
element: *mut mjsElement,
name: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mjs_setBuffer(
dest: *mut mjByteVec,
array: *const ::std::os::raw::c_void,
size: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mjs_setString(dest: *mut mjString, text: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn mjs_setStringVec(dest: *mut mjStringVec, text: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn mjs_setInStringVec(
dest: *mut mjStringVec,
i: ::std::os::raw::c_int,
text: *const ::std::os::raw::c_char,
) -> mjtByte;
}
unsafe extern "C" {
pub fn mjs_appendString(dest: *mut mjStringVec, text: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn mjs_setInt(
dest: *mut mjIntVec,
array: *const ::std::os::raw::c_int,
size: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mjs_appendIntVec(
dest: *mut mjIntVecVec,
array: *const ::std::os::raw::c_int,
size: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mjs_setFloat(dest: *mut mjFloatVec, array: *const f32, size: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mjs_appendFloatVec(
dest: *mut mjFloatVecVec,
array: *const f32,
size: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn mjs_setDouble(dest: *mut mjDoubleVec, array: *const f64, size: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn mjs_setPluginAttributes(plugin: *mut mjsPlugin, attributes: *mut ::std::os::raw::c_void);
}
unsafe extern "C" {
pub fn mjs_getName(element: *mut mjsElement) -> *mut mjString;
}
unsafe extern "C" {
pub fn mjs_getString(source: *const mjString) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mjs_getDouble(
source: *const mjDoubleVec,
size: *mut ::std::os::raw::c_int,
) -> *const f64;
}
unsafe extern "C" {
pub fn mjs_getWrapNum(tendonspec: *const mjsTendon) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mjs_getWrap(tendonspec: *const mjsTendon, i: ::std::os::raw::c_int) -> *mut mjsWrap;
}
unsafe extern "C" {
pub fn mjs_getPluginAttributes(plugin: *const mjsPlugin) -> *const ::std::os::raw::c_void;
}
unsafe extern "C" {
pub fn mjs_setDefault(element: *mut mjsElement, def: *const mjsDefault);
}
unsafe extern "C" {
pub fn mjs_setFrame(dest: *mut mjsElement, frame: *mut mjsFrame) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mjs_resolveOrientation(
quat: *mut [f64; 4usize],
degree: mjtByte,
sequence: *const ::std::os::raw::c_char,
orientation: *const mjsOrientation,
) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn mjs_bodyToFrame(body: *mut *mut mjsBody) -> *mut mjsFrame;
}
unsafe extern "C" {
pub fn mjs_setUserValue(
element: *mut mjsElement,
key: *const ::std::os::raw::c_char,
data: *const ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn mjs_setUserValueWithCleanup(
element: *mut mjsElement,
key: *const ::std::os::raw::c_char,
data: *const ::std::os::raw::c_void,
cleanup: ::std::option::Option<unsafe extern "C" fn(arg1: *const ::std::os::raw::c_void)>,
);
}
unsafe extern "C" {
pub fn mjs_getUserValue(
element: *mut mjsElement,
key: *const ::std::os::raw::c_char,
) -> *const ::std::os::raw::c_void;
}
unsafe extern "C" {
pub fn mjs_deleteUserValue(element: *mut mjsElement, key: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn mjs_sensorDim(sensor: *const mjsSensor) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn mjs_defaultSpec(spec: *mut mjSpec);
}
unsafe extern "C" {
pub fn mjs_defaultOrientation(orient: *mut mjsOrientation);
}
unsafe extern "C" {
pub fn mjs_defaultBody(body: *mut mjsBody);
}
unsafe extern "C" {
pub fn mjs_defaultFrame(frame: *mut mjsFrame);
}
unsafe extern "C" {
pub fn mjs_defaultJoint(joint: *mut mjsJoint);
}
unsafe extern "C" {
pub fn mjs_defaultGeom(geom: *mut mjsGeom);
}
unsafe extern "C" {
pub fn mjs_defaultSite(site: *mut mjsSite);
}
unsafe extern "C" {
pub fn mjs_defaultCamera(camera: *mut mjsCamera);
}
unsafe extern "C" {
pub fn mjs_defaultLight(light: *mut mjsLight);
}
unsafe extern "C" {
pub fn mjs_defaultFlex(flex: *mut mjsFlex);
}
unsafe extern "C" {
pub fn mjs_defaultMesh(mesh: *mut mjsMesh);
}
unsafe extern "C" {
pub fn mjs_defaultHField(hfield: *mut mjsHField);
}
unsafe extern "C" {
pub fn mjs_defaultSkin(skin: *mut mjsSkin);
}
unsafe extern "C" {
pub fn mjs_defaultTexture(texture: *mut mjsTexture);
}
unsafe extern "C" {
pub fn mjs_defaultMaterial(material: *mut mjsMaterial);
}
unsafe extern "C" {
pub fn mjs_defaultPair(pair: *mut mjsPair);
}
unsafe extern "C" {
pub fn mjs_defaultEquality(equality: *mut mjsEquality);
}
unsafe extern "C" {
pub fn mjs_defaultTendon(tendon: *mut mjsTendon);
}
unsafe extern "C" {
pub fn mjs_defaultActuator(actuator: *mut mjsActuator);
}
unsafe extern "C" {
pub fn mjs_defaultSensor(sensor: *mut mjsSensor);
}
unsafe extern "C" {
pub fn mjs_defaultNumeric(numeric: *mut mjsNumeric);
}
unsafe extern "C" {
pub fn mjs_defaultText(text: *mut mjsText);
}
unsafe extern "C" {
pub fn mjs_defaultTuple(tuple: *mut mjsTuple);
}
unsafe extern "C" {
pub fn mjs_defaultKey(key: *mut mjsKey);
}
unsafe extern "C" {
pub fn mjs_defaultPlugin(plugin: *mut mjsPlugin);
}
unsafe extern "C" {
pub fn mjs_asBody(element: *mut mjsElement) -> *mut mjsBody;
}
unsafe extern "C" {
pub fn mjs_asGeom(element: *mut mjsElement) -> *mut mjsGeom;
}
unsafe extern "C" {
pub fn mjs_asJoint(element: *mut mjsElement) -> *mut mjsJoint;
}
unsafe extern "C" {
pub fn mjs_asSite(element: *mut mjsElement) -> *mut mjsSite;
}
unsafe extern "C" {
pub fn mjs_asCamera(element: *mut mjsElement) -> *mut mjsCamera;
}
unsafe extern "C" {
pub fn mjs_asLight(element: *mut mjsElement) -> *mut mjsLight;
}
unsafe extern "C" {
pub fn mjs_asFrame(element: *mut mjsElement) -> *mut mjsFrame;
}
unsafe extern "C" {
pub fn mjs_asActuator(element: *mut mjsElement) -> *mut mjsActuator;
}
unsafe extern "C" {
pub fn mjs_asSensor(element: *mut mjsElement) -> *mut mjsSensor;
}
unsafe extern "C" {
pub fn mjs_asFlex(element: *mut mjsElement) -> *mut mjsFlex;
}
unsafe extern "C" {
pub fn mjs_asPair(element: *mut mjsElement) -> *mut mjsPair;
}
unsafe extern "C" {
pub fn mjs_asEquality(element: *mut mjsElement) -> *mut mjsEquality;
}
unsafe extern "C" {
pub fn mjs_asExclude(element: *mut mjsElement) -> *mut mjsExclude;
}
unsafe extern "C" {
pub fn mjs_asTendon(element: *mut mjsElement) -> *mut mjsTendon;
}
unsafe extern "C" {
pub fn mjs_asNumeric(element: *mut mjsElement) -> *mut mjsNumeric;
}
unsafe extern "C" {
pub fn mjs_asText(element: *mut mjsElement) -> *mut mjsText;
}
unsafe extern "C" {
pub fn mjs_asTuple(element: *mut mjsElement) -> *mut mjsTuple;
}
unsafe extern "C" {
pub fn mjs_asKey(element: *mut mjsElement) -> *mut mjsKey;
}
unsafe extern "C" {
pub fn mjs_asMesh(element: *mut mjsElement) -> *mut mjsMesh;
}
unsafe extern "C" {
pub fn mjs_asHField(element: *mut mjsElement) -> *mut mjsHField;
}
unsafe extern "C" {
pub fn mjs_asSkin(element: *mut mjsElement) -> *mut mjsSkin;
}
unsafe extern "C" {
pub fn mjs_asTexture(element: *mut mjsElement) -> *mut mjsTexture;
}
unsafe extern "C" {
pub fn mjs_asMaterial(element: *mut mjsElement) -> *mut mjsMaterial;
}
unsafe extern "C" {
pub fn mjs_asPlugin(element: *mut mjsElement) -> *mut mjsPlugin;
}