Files
Mujoco_WASM/unity/Runtime/Bindings/MujocoBindings.cs
T
Saran Tunyasuvunakool 3577e2cf8b Version 2.1.2: Python bindings, OBJ assets support, bugfixes.
PiperOrigin-RevId: 434731612
Change-Id: I0cfda3e7a3d1c72036764986efc252ffa1b8c6b0
2022-03-15 14:04:44 +00:00

3462 lines
117 KiB
C#

// Copyright 2019 DeepMind Technologies Limited
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using System;
using System.Runtime.InteropServices;
using System.Text;
using System.Collections.Generic;
using SizeDict = System.Collections.Generic.Dictionary<string, string[]>;
using NestedDictionary = System.Collections.Generic.Dictionary<string, System.Collections.Generic.Dictionary<string, string[]>>;
namespace Mujoco {
public static class MujocoLib {
// ----------------------------------Constants----------------------------------
public const double mjPI = 3.141592653589793;
public const double mjMAXVAL = 10000000000.0;
public const double mjMINMU = 1e-05;
public const double mjMINIMP = 0.0001;
public const double mjMAXIMP = 0.9999;
public const int mjMAXCONPAIR = 50;
public const int mjMAXVFS = 2000;
public const int mjMAXVFSNAME = 1000;
public const int mjNEQDATA = 7;
public const int mjNDYN = 10;
public const int mjNGAIN = 10;
public const int mjNBIAS = 10;
public const int mjNFLUID = 12;
public const int mjNREF = 2;
public const int mjNIMP = 5;
public const int mjNSOLVER = 1000;
public const int mjNAUX = 10;
public const int mjMAXTEXTURE = 1000;
public const bool mjUSEDOUBLE = true;
public const double mjMINVAL = 1e-15;
public const int mjMAXUISECT = 10;
public const int mjMAXUIITEM = 80;
public const int mjMAXUITEXT = 300;
public const int mjMAXUINAME = 40;
public const int mjMAXUIMULTI = 35;
public const int mjMAXUIEDIT = 7;
public const int mjMAXUIRECT = 25;
public const int mjSEPCLOSED = 1000;
public const int mjKEY_ESCAPE = 256;
public const int mjKEY_ENTER = 257;
public const int mjKEY_TAB = 258;
public const int mjKEY_BACKSPACE = 259;
public const int mjKEY_INSERT = 260;
public const int mjKEY_DELETE = 261;
public const int mjKEY_RIGHT = 262;
public const int mjKEY_LEFT = 263;
public const int mjKEY_DOWN = 264;
public const int mjKEY_UP = 265;
public const int mjKEY_PAGE_UP = 266;
public const int mjKEY_PAGE_DOWN = 267;
public const int mjKEY_HOME = 268;
public const int mjKEY_END = 269;
public const int mjKEY_F1 = 290;
public const int mjKEY_F2 = 291;
public const int mjKEY_F3 = 292;
public const int mjKEY_F4 = 293;
public const int mjKEY_F5 = 294;
public const int mjKEY_F6 = 295;
public const int mjKEY_F7 = 296;
public const int mjKEY_F8 = 297;
public const int mjKEY_F9 = 298;
public const int mjKEY_F10 = 299;
public const int mjKEY_F11 = 300;
public const int mjKEY_F12 = 301;
public const int mjNGROUP = 6;
public const int mjMAXLIGHT = 100;
public const int mjMAXOVERLAY = 500;
public const int mjMAXLINE = 100;
public const int mjMAXLINEPNT = 1000;
public const int mjMAXPLANEGRID = 200;
public const int mjVERSION_HEADER = 212;
// ------------------------------------Enums------------------------------------
public enum mjtWarning : int{
mjWARN_INERTIA = 0,
mjWARN_CONTACTFULL = 1,
mjWARN_CNSTRFULL = 2,
mjWARN_VGEOMFULL = 3,
mjWARN_BADQPOS = 4,
mjWARN_BADQVEL = 5,
mjWARN_BADQACC = 6,
mjWARN_BADCTRL = 7,
mjNWARNING = 8,
}
public enum mjtTimer : int{
mjTIMER_STEP = 0,
mjTIMER_FORWARD = 1,
mjTIMER_INVERSE = 2,
mjTIMER_POSITION = 3,
mjTIMER_VELOCITY = 4,
mjTIMER_ACTUATION = 5,
mjTIMER_ACCELERATION = 6,
mjTIMER_CONSTRAINT = 7,
mjTIMER_POS_KINEMATICS = 8,
mjTIMER_POS_INERTIA = 9,
mjTIMER_POS_COLLISION = 10,
mjTIMER_POS_MAKE = 11,
mjTIMER_POS_PROJECT = 12,
mjNTIMER = 13,
}
public enum mjtDisableBit : int{
mjDSBL_CONSTRAINT = 1,
mjDSBL_EQUALITY = 2,
mjDSBL_FRICTIONLOSS = 4,
mjDSBL_LIMIT = 8,
mjDSBL_CONTACT = 16,
mjDSBL_PASSIVE = 32,
mjDSBL_GRAVITY = 64,
mjDSBL_CLAMPCTRL = 128,
mjDSBL_WARMSTART = 256,
mjDSBL_FILTERPARENT = 512,
mjDSBL_ACTUATION = 1024,
mjDSBL_REFSAFE = 2048,
mjNDISABLE = 12,
}
public enum mjtEnableBit : int{
mjENBL_OVERRIDE = 1,
mjENBL_ENERGY = 2,
mjENBL_FWDINV = 4,
mjENBL_SENSORNOISE = 8,
mjNENABLE = 4,
}
public enum mjtJoint : int{
mjJNT_FREE = 0,
mjJNT_BALL = 1,
mjJNT_SLIDE = 2,
mjJNT_HINGE = 3,
}
public enum mjtGeom : int{
mjGEOM_PLANE = 0,
mjGEOM_HFIELD = 1,
mjGEOM_SPHERE = 2,
mjGEOM_CAPSULE = 3,
mjGEOM_ELLIPSOID = 4,
mjGEOM_CYLINDER = 5,
mjGEOM_BOX = 6,
mjGEOM_MESH = 7,
mjNGEOMTYPES = 8,
mjGEOM_ARROW = 100,
mjGEOM_ARROW1 = 101,
mjGEOM_ARROW2 = 102,
mjGEOM_LINE = 103,
mjGEOM_SKIN = 104,
mjGEOM_LABEL = 105,
mjGEOM_NONE = 1001,
}
public enum mjtCamLight : int{
mjCAMLIGHT_FIXED = 0,
mjCAMLIGHT_TRACK = 1,
mjCAMLIGHT_TRACKCOM = 2,
mjCAMLIGHT_TARGETBODY = 3,
mjCAMLIGHT_TARGETBODYCOM = 4,
}
public enum mjtTexture : int{
mjTEXTURE_2D = 0,
mjTEXTURE_CUBE = 1,
mjTEXTURE_SKYBOX = 2,
}
public enum mjtIntegrator : int{
mjINT_EULER = 0,
mjINT_RK4 = 1,
}
public enum mjtCollision : int{
mjCOL_ALL = 0,
mjCOL_PAIR = 1,
mjCOL_DYNAMIC = 2,
}
public enum mjtCone : int{
mjCONE_PYRAMIDAL = 0,
mjCONE_ELLIPTIC = 1,
}
public enum mjtJacobian : int{
mjJAC_DENSE = 0,
mjJAC_SPARSE = 1,
mjJAC_AUTO = 2,
}
public enum mjtSolver : int{
mjSOL_PGS = 0,
mjSOL_CG = 1,
mjSOL_NEWTON = 2,
}
public enum mjtEq : int{
mjEQ_CONNECT = 0,
mjEQ_WELD = 1,
mjEQ_JOINT = 2,
mjEQ_TENDON = 3,
mjEQ_DISTANCE = 4,
}
public enum mjtWrap : int{
mjWRAP_NONE = 0,
mjWRAP_JOINT = 1,
mjWRAP_PULLEY = 2,
mjWRAP_SITE = 3,
mjWRAP_SPHERE = 4,
mjWRAP_CYLINDER = 5,
}
public enum mjtTrn : int{
mjTRN_JOINT = 0,
mjTRN_JOINTINPARENT = 1,
mjTRN_SLIDERCRANK = 2,
mjTRN_TENDON = 3,
mjTRN_SITE = 4,
mjTRN_UNDEFINED = 1000,
}
public enum mjtDyn : int{
mjDYN_NONE = 0,
mjDYN_INTEGRATOR = 1,
mjDYN_FILTER = 2,
mjDYN_MUSCLE = 3,
mjDYN_USER = 4,
}
public enum mjtGain : int{
mjGAIN_FIXED = 0,
mjGAIN_MUSCLE = 1,
mjGAIN_USER = 2,
}
public enum mjtBias : int{
mjBIAS_NONE = 0,
mjBIAS_AFFINE = 1,
mjBIAS_MUSCLE = 2,
mjBIAS_USER = 3,
}
public enum mjtObj : int{
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_MESH = 9,
mjOBJ_SKIN = 10,
mjOBJ_HFIELD = 11,
mjOBJ_TEXTURE = 12,
mjOBJ_MATERIAL = 13,
mjOBJ_PAIR = 14,
mjOBJ_EXCLUDE = 15,
mjOBJ_EQUALITY = 16,
mjOBJ_TENDON = 17,
mjOBJ_ACTUATOR = 18,
mjOBJ_SENSOR = 19,
mjOBJ_NUMERIC = 20,
mjOBJ_TEXT = 21,
mjOBJ_TUPLE = 22,
mjOBJ_KEY = 23,
}
public enum mjtConstraint : int{
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,
}
public enum mjtConstraintState : int{
mjCNSTRSTATE_SATISFIED = 0,
mjCNSTRSTATE_QUADRATIC = 1,
mjCNSTRSTATE_LINEARNEG = 2,
mjCNSTRSTATE_LINEARPOS = 3,
mjCNSTRSTATE_CONE = 4,
}
public enum mjtSensor : int{
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_JOINTPOS = 8,
mjSENS_JOINTVEL = 9,
mjSENS_TENDONPOS = 10,
mjSENS_TENDONVEL = 11,
mjSENS_ACTUATORPOS = 12,
mjSENS_ACTUATORVEL = 13,
mjSENS_ACTUATORFRC = 14,
mjSENS_BALLQUAT = 15,
mjSENS_BALLANGVEL = 16,
mjSENS_JOINTLIMITPOS = 17,
mjSENS_JOINTLIMITVEL = 18,
mjSENS_JOINTLIMITFRC = 19,
mjSENS_TENDONLIMITPOS = 20,
mjSENS_TENDONLIMITVEL = 21,
mjSENS_TENDONLIMITFRC = 22,
mjSENS_FRAMEPOS = 23,
mjSENS_FRAMEQUAT = 24,
mjSENS_FRAMEXAXIS = 25,
mjSENS_FRAMEYAXIS = 26,
mjSENS_FRAMEZAXIS = 27,
mjSENS_FRAMELINVEL = 28,
mjSENS_FRAMEANGVEL = 29,
mjSENS_FRAMELINACC = 30,
mjSENS_FRAMEANGACC = 31,
mjSENS_SUBTREECOM = 32,
mjSENS_SUBTREELINVEL = 33,
mjSENS_SUBTREEANGMOM = 34,
mjSENS_USER = 35,
}
public enum mjtStage : int{
mjSTAGE_NONE = 0,
mjSTAGE_POS = 1,
mjSTAGE_VEL = 2,
mjSTAGE_ACC = 3,
}
public enum mjtDataType : int{
mjDATATYPE_REAL = 0,
mjDATATYPE_POSITIVE = 1,
mjDATATYPE_AXIS = 2,
mjDATATYPE_QUATERNION = 3,
}
public enum mjtLRMode : int{
mjLRMODE_NONE = 0,
mjLRMODE_MUSCLE = 1,
mjLRMODE_MUSCLEUSER = 2,
mjLRMODE_ALL = 3,
}
public enum mjtGridPos : int{
mjGRID_TOPLEFT = 0,
mjGRID_TOPRIGHT = 1,
mjGRID_BOTTOMLEFT = 2,
mjGRID_BOTTOMRIGHT = 3,
}
public enum mjtFramebuffer : int{
mjFB_WINDOW = 0,
mjFB_OFFSCREEN = 1,
}
public enum mjtFontScale : int{
mjFONTSCALE_50 = 50,
mjFONTSCALE_100 = 100,
mjFONTSCALE_150 = 150,
mjFONTSCALE_200 = 200,
mjFONTSCALE_250 = 250,
mjFONTSCALE_300 = 300,
}
public enum mjtFont : int{
mjFONT_NORMAL = 0,
mjFONT_SHADOW = 1,
mjFONT_BIG = 2,
}
public enum mjtButton : int{
mjBUTTON_NONE = 0,
mjBUTTON_LEFT = 1,
mjBUTTON_RIGHT = 2,
mjBUTTON_MIDDLE = 3,
}
public enum mjtEvent : int{
mjEVENT_NONE = 0,
mjEVENT_MOVE = 1,
mjEVENT_PRESS = 2,
mjEVENT_RELEASE = 3,
mjEVENT_SCROLL = 4,
mjEVENT_KEY = 5,
mjEVENT_RESIZE = 6,
}
public enum mjtCatBit : int{
mjCAT_STATIC = 1,
mjCAT_DYNAMIC = 2,
mjCAT_DECOR = 4,
mjCAT_ALL = 7,
}
public enum mjtMouse : int{
mjMOUSE_NONE = 0,
mjMOUSE_ROTATE_V = 1,
mjMOUSE_ROTATE_H = 2,
mjMOUSE_MOVE_V = 3,
mjMOUSE_MOVE_H = 4,
mjMOUSE_ZOOM = 5,
mjMOUSE_SELECT = 6,
}
public enum mjtPertBit : int{
mjPERT_TRANSLATE = 1,
mjPERT_ROTATE = 2,
}
public enum mjtCamera : int{
mjCAMERA_FREE = 0,
mjCAMERA_TRACKING = 1,
mjCAMERA_FIXED = 2,
mjCAMERA_USER = 3,
}
public enum mjtLabel : int{
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_SKIN = 10,
mjLABEL_SELECTION = 11,
mjLABEL_SELPNT = 12,
mjLABEL_CONTACTFORCE = 13,
mjNLABEL = 14,
}
public enum mjtFrame : int{
mjFRAME_NONE = 0,
mjFRAME_BODY = 1,
mjFRAME_GEOM = 2,
mjFRAME_SITE = 3,
mjFRAME_CAMERA = 4,
mjFRAME_LIGHT = 5,
mjFRAME_WORLD = 6,
mjNFRAME = 7,
}
public enum mjtVisFlag : int{
mjVIS_CONVEXHULL = 0,
mjVIS_TEXTURE = 1,
mjVIS_JOINT = 2,
mjVIS_ACTUATOR = 3,
mjVIS_CAMERA = 4,
mjVIS_LIGHT = 5,
mjVIS_TENDON = 6,
mjVIS_RANGEFINDER = 7,
mjVIS_CONSTRAINT = 8,
mjVIS_INERTIA = 9,
mjVIS_SCLINERTIA = 10,
mjVIS_PERTFORCE = 11,
mjVIS_PERTOBJ = 12,
mjVIS_CONTACTPOINT = 13,
mjVIS_CONTACTFORCE = 14,
mjVIS_CONTACTSPLIT = 15,
mjVIS_TRANSPARENT = 16,
mjVIS_AUTOCONNECT = 17,
mjVIS_COM = 18,
mjVIS_SELECT = 19,
mjVIS_STATIC = 20,
mjVIS_SKIN = 21,
mjNVISFLAG = 22,
}
public enum mjtRndFlag : int{
mjRND_SHADOW = 0,
mjRND_WIREFRAME = 1,
mjRND_REFLECTION = 2,
mjRND_ADDITIVE = 3,
mjRND_SKYBOX = 4,
mjRND_FOG = 5,
mjRND_HAZE = 6,
mjRND_SEGMENT = 7,
mjRND_IDCOLOR = 8,
mjNRNDFLAG = 9,
}
public enum mjtStereo : int{
mjSTEREO_NONE = 0,
mjSTEREO_QUADBUFFERED = 1,
mjSTEREO_SIDEBYSIDE = 2,
}
// -----------------------------struct declarations-----------------------------
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjContact_ {
public double dist;
public fixed double pos[3];
public fixed double frame[9];
public double includemargin;
public fixed double friction[5];
public fixed double solref[2];
public fixed double solimp[5];
public double mu;
public fixed double H[36];
public int dim;
public int geom1;
public int geom2;
public int exclude;
public int efc_address;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjWarningStat_ {
public int lastinfo;
public int number;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjTimerStat_ {
public double duration;
public int number;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjSolverStat_ {
public double improvement;
public double gradient;
public double lineslope;
public int nactive;
public int nchange;
public int neval;
public int nupdate;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjData_ {
public int nstack;
public int nbuffer;
public int pstack;
public int maxuse_stack;
public int maxuse_con;
public int maxuse_efc;
public mjWarningStat_ warning0;
public mjWarningStat_ warning1;
public mjWarningStat_ warning2;
public mjWarningStat_ warning3;
public mjWarningStat_ warning4;
public mjWarningStat_ warning5;
public mjWarningStat_ warning6;
public mjWarningStat_ warning7;
public mjTimerStat_ timer0;
public mjTimerStat_ timer1;
public mjTimerStat_ timer2;
public mjTimerStat_ timer3;
public mjTimerStat_ timer4;
public mjTimerStat_ timer5;
public mjTimerStat_ timer6;
public mjTimerStat_ timer7;
public mjTimerStat_ timer8;
public mjTimerStat_ timer9;
public mjTimerStat_ timer10;
public mjTimerStat_ timer11;
public mjTimerStat_ timer12;
public mjSolverStat_ solver0;
public mjSolverStat_ solver1;
public mjSolverStat_ solver2;
public mjSolverStat_ solver3;
public mjSolverStat_ solver4;
public mjSolverStat_ solver5;
public mjSolverStat_ solver6;
public mjSolverStat_ solver7;
public mjSolverStat_ solver8;
public mjSolverStat_ solver9;
public mjSolverStat_ solver10;
public mjSolverStat_ solver11;
public mjSolverStat_ solver12;
public mjSolverStat_ solver13;
public mjSolverStat_ solver14;
public mjSolverStat_ solver15;
public mjSolverStat_ solver16;
public mjSolverStat_ solver17;
public mjSolverStat_ solver18;
public mjSolverStat_ solver19;
public mjSolverStat_ solver20;
public mjSolverStat_ solver21;
public mjSolverStat_ solver22;
public mjSolverStat_ solver23;
public mjSolverStat_ solver24;
public mjSolverStat_ solver25;
public mjSolverStat_ solver26;
public mjSolverStat_ solver27;
public mjSolverStat_ solver28;
public mjSolverStat_ solver29;
public mjSolverStat_ solver30;
public mjSolverStat_ solver31;
public mjSolverStat_ solver32;
public mjSolverStat_ solver33;
public mjSolverStat_ solver34;
public mjSolverStat_ solver35;
public mjSolverStat_ solver36;
public mjSolverStat_ solver37;
public mjSolverStat_ solver38;
public mjSolverStat_ solver39;
public mjSolverStat_ solver40;
public mjSolverStat_ solver41;
public mjSolverStat_ solver42;
public mjSolverStat_ solver43;
public mjSolverStat_ solver44;
public mjSolverStat_ solver45;
public mjSolverStat_ solver46;
public mjSolverStat_ solver47;
public mjSolverStat_ solver48;
public mjSolverStat_ solver49;
public mjSolverStat_ solver50;
public mjSolverStat_ solver51;
public mjSolverStat_ solver52;
public mjSolverStat_ solver53;
public mjSolverStat_ solver54;
public mjSolverStat_ solver55;
public mjSolverStat_ solver56;
public mjSolverStat_ solver57;
public mjSolverStat_ solver58;
public mjSolverStat_ solver59;
public mjSolverStat_ solver60;
public mjSolverStat_ solver61;
public mjSolverStat_ solver62;
public mjSolverStat_ solver63;
public mjSolverStat_ solver64;
public mjSolverStat_ solver65;
public mjSolverStat_ solver66;
public mjSolverStat_ solver67;
public mjSolverStat_ solver68;
public mjSolverStat_ solver69;
public mjSolverStat_ solver70;
public mjSolverStat_ solver71;
public mjSolverStat_ solver72;
public mjSolverStat_ solver73;
public mjSolverStat_ solver74;
public mjSolverStat_ solver75;
public mjSolverStat_ solver76;
public mjSolverStat_ solver77;
public mjSolverStat_ solver78;
public mjSolverStat_ solver79;
public mjSolverStat_ solver80;
public mjSolverStat_ solver81;
public mjSolverStat_ solver82;
public mjSolverStat_ solver83;
public mjSolverStat_ solver84;
public mjSolverStat_ solver85;
public mjSolverStat_ solver86;
public mjSolverStat_ solver87;
public mjSolverStat_ solver88;
public mjSolverStat_ solver89;
public mjSolverStat_ solver90;
public mjSolverStat_ solver91;
public mjSolverStat_ solver92;
public mjSolverStat_ solver93;
public mjSolverStat_ solver94;
public mjSolverStat_ solver95;
public mjSolverStat_ solver96;
public mjSolverStat_ solver97;
public mjSolverStat_ solver98;
public mjSolverStat_ solver99;
public mjSolverStat_ solver100;
public mjSolverStat_ solver101;
public mjSolverStat_ solver102;
public mjSolverStat_ solver103;
public mjSolverStat_ solver104;
public mjSolverStat_ solver105;
public mjSolverStat_ solver106;
public mjSolverStat_ solver107;
public mjSolverStat_ solver108;
public mjSolverStat_ solver109;
public mjSolverStat_ solver110;
public mjSolverStat_ solver111;
public mjSolverStat_ solver112;
public mjSolverStat_ solver113;
public mjSolverStat_ solver114;
public mjSolverStat_ solver115;
public mjSolverStat_ solver116;
public mjSolverStat_ solver117;
public mjSolverStat_ solver118;
public mjSolverStat_ solver119;
public mjSolverStat_ solver120;
public mjSolverStat_ solver121;
public mjSolverStat_ solver122;
public mjSolverStat_ solver123;
public mjSolverStat_ solver124;
public mjSolverStat_ solver125;
public mjSolverStat_ solver126;
public mjSolverStat_ solver127;
public mjSolverStat_ solver128;
public mjSolverStat_ solver129;
public mjSolverStat_ solver130;
public mjSolverStat_ solver131;
public mjSolverStat_ solver132;
public mjSolverStat_ solver133;
public mjSolverStat_ solver134;
public mjSolverStat_ solver135;
public mjSolverStat_ solver136;
public mjSolverStat_ solver137;
public mjSolverStat_ solver138;
public mjSolverStat_ solver139;
public mjSolverStat_ solver140;
public mjSolverStat_ solver141;
public mjSolverStat_ solver142;
public mjSolverStat_ solver143;
public mjSolverStat_ solver144;
public mjSolverStat_ solver145;
public mjSolverStat_ solver146;
public mjSolverStat_ solver147;
public mjSolverStat_ solver148;
public mjSolverStat_ solver149;
public mjSolverStat_ solver150;
public mjSolverStat_ solver151;
public mjSolverStat_ solver152;
public mjSolverStat_ solver153;
public mjSolverStat_ solver154;
public mjSolverStat_ solver155;
public mjSolverStat_ solver156;
public mjSolverStat_ solver157;
public mjSolverStat_ solver158;
public mjSolverStat_ solver159;
public mjSolverStat_ solver160;
public mjSolverStat_ solver161;
public mjSolverStat_ solver162;
public mjSolverStat_ solver163;
public mjSolverStat_ solver164;
public mjSolverStat_ solver165;
public mjSolverStat_ solver166;
public mjSolverStat_ solver167;
public mjSolverStat_ solver168;
public mjSolverStat_ solver169;
public mjSolverStat_ solver170;
public mjSolverStat_ solver171;
public mjSolverStat_ solver172;
public mjSolverStat_ solver173;
public mjSolverStat_ solver174;
public mjSolverStat_ solver175;
public mjSolverStat_ solver176;
public mjSolverStat_ solver177;
public mjSolverStat_ solver178;
public mjSolverStat_ solver179;
public mjSolverStat_ solver180;
public mjSolverStat_ solver181;
public mjSolverStat_ solver182;
public mjSolverStat_ solver183;
public mjSolverStat_ solver184;
public mjSolverStat_ solver185;
public mjSolverStat_ solver186;
public mjSolverStat_ solver187;
public mjSolverStat_ solver188;
public mjSolverStat_ solver189;
public mjSolverStat_ solver190;
public mjSolverStat_ solver191;
public mjSolverStat_ solver192;
public mjSolverStat_ solver193;
public mjSolverStat_ solver194;
public mjSolverStat_ solver195;
public mjSolverStat_ solver196;
public mjSolverStat_ solver197;
public mjSolverStat_ solver198;
public mjSolverStat_ solver199;
public mjSolverStat_ solver200;
public mjSolverStat_ solver201;
public mjSolverStat_ solver202;
public mjSolverStat_ solver203;
public mjSolverStat_ solver204;
public mjSolverStat_ solver205;
public mjSolverStat_ solver206;
public mjSolverStat_ solver207;
public mjSolverStat_ solver208;
public mjSolverStat_ solver209;
public mjSolverStat_ solver210;
public mjSolverStat_ solver211;
public mjSolverStat_ solver212;
public mjSolverStat_ solver213;
public mjSolverStat_ solver214;
public mjSolverStat_ solver215;
public mjSolverStat_ solver216;
public mjSolverStat_ solver217;
public mjSolverStat_ solver218;
public mjSolverStat_ solver219;
public mjSolverStat_ solver220;
public mjSolverStat_ solver221;
public mjSolverStat_ solver222;
public mjSolverStat_ solver223;
public mjSolverStat_ solver224;
public mjSolverStat_ solver225;
public mjSolverStat_ solver226;
public mjSolverStat_ solver227;
public mjSolverStat_ solver228;
public mjSolverStat_ solver229;
public mjSolverStat_ solver230;
public mjSolverStat_ solver231;
public mjSolverStat_ solver232;
public mjSolverStat_ solver233;
public mjSolverStat_ solver234;
public mjSolverStat_ solver235;
public mjSolverStat_ solver236;
public mjSolverStat_ solver237;
public mjSolverStat_ solver238;
public mjSolverStat_ solver239;
public mjSolverStat_ solver240;
public mjSolverStat_ solver241;
public mjSolverStat_ solver242;
public mjSolverStat_ solver243;
public mjSolverStat_ solver244;
public mjSolverStat_ solver245;
public mjSolverStat_ solver246;
public mjSolverStat_ solver247;
public mjSolverStat_ solver248;
public mjSolverStat_ solver249;
public mjSolverStat_ solver250;
public mjSolverStat_ solver251;
public mjSolverStat_ solver252;
public mjSolverStat_ solver253;
public mjSolverStat_ solver254;
public mjSolverStat_ solver255;
public mjSolverStat_ solver256;
public mjSolverStat_ solver257;
public mjSolverStat_ solver258;
public mjSolverStat_ solver259;
public mjSolverStat_ solver260;
public mjSolverStat_ solver261;
public mjSolverStat_ solver262;
public mjSolverStat_ solver263;
public mjSolverStat_ solver264;
public mjSolverStat_ solver265;
public mjSolverStat_ solver266;
public mjSolverStat_ solver267;
public mjSolverStat_ solver268;
public mjSolverStat_ solver269;
public mjSolverStat_ solver270;
public mjSolverStat_ solver271;
public mjSolverStat_ solver272;
public mjSolverStat_ solver273;
public mjSolverStat_ solver274;
public mjSolverStat_ solver275;
public mjSolverStat_ solver276;
public mjSolverStat_ solver277;
public mjSolverStat_ solver278;
public mjSolverStat_ solver279;
public mjSolverStat_ solver280;
public mjSolverStat_ solver281;
public mjSolverStat_ solver282;
public mjSolverStat_ solver283;
public mjSolverStat_ solver284;
public mjSolverStat_ solver285;
public mjSolverStat_ solver286;
public mjSolverStat_ solver287;
public mjSolverStat_ solver288;
public mjSolverStat_ solver289;
public mjSolverStat_ solver290;
public mjSolverStat_ solver291;
public mjSolverStat_ solver292;
public mjSolverStat_ solver293;
public mjSolverStat_ solver294;
public mjSolverStat_ solver295;
public mjSolverStat_ solver296;
public mjSolverStat_ solver297;
public mjSolverStat_ solver298;
public mjSolverStat_ solver299;
public mjSolverStat_ solver300;
public mjSolverStat_ solver301;
public mjSolverStat_ solver302;
public mjSolverStat_ solver303;
public mjSolverStat_ solver304;
public mjSolverStat_ solver305;
public mjSolverStat_ solver306;
public mjSolverStat_ solver307;
public mjSolverStat_ solver308;
public mjSolverStat_ solver309;
public mjSolverStat_ solver310;
public mjSolverStat_ solver311;
public mjSolverStat_ solver312;
public mjSolverStat_ solver313;
public mjSolverStat_ solver314;
public mjSolverStat_ solver315;
public mjSolverStat_ solver316;
public mjSolverStat_ solver317;
public mjSolverStat_ solver318;
public mjSolverStat_ solver319;
public mjSolverStat_ solver320;
public mjSolverStat_ solver321;
public mjSolverStat_ solver322;
public mjSolverStat_ solver323;
public mjSolverStat_ solver324;
public mjSolverStat_ solver325;
public mjSolverStat_ solver326;
public mjSolverStat_ solver327;
public mjSolverStat_ solver328;
public mjSolverStat_ solver329;
public mjSolverStat_ solver330;
public mjSolverStat_ solver331;
public mjSolverStat_ solver332;
public mjSolverStat_ solver333;
public mjSolverStat_ solver334;
public mjSolverStat_ solver335;
public mjSolverStat_ solver336;
public mjSolverStat_ solver337;
public mjSolverStat_ solver338;
public mjSolverStat_ solver339;
public mjSolverStat_ solver340;
public mjSolverStat_ solver341;
public mjSolverStat_ solver342;
public mjSolverStat_ solver343;
public mjSolverStat_ solver344;
public mjSolverStat_ solver345;
public mjSolverStat_ solver346;
public mjSolverStat_ solver347;
public mjSolverStat_ solver348;
public mjSolverStat_ solver349;
public mjSolverStat_ solver350;
public mjSolverStat_ solver351;
public mjSolverStat_ solver352;
public mjSolverStat_ solver353;
public mjSolverStat_ solver354;
public mjSolverStat_ solver355;
public mjSolverStat_ solver356;
public mjSolverStat_ solver357;
public mjSolverStat_ solver358;
public mjSolverStat_ solver359;
public mjSolverStat_ solver360;
public mjSolverStat_ solver361;
public mjSolverStat_ solver362;
public mjSolverStat_ solver363;
public mjSolverStat_ solver364;
public mjSolverStat_ solver365;
public mjSolverStat_ solver366;
public mjSolverStat_ solver367;
public mjSolverStat_ solver368;
public mjSolverStat_ solver369;
public mjSolverStat_ solver370;
public mjSolverStat_ solver371;
public mjSolverStat_ solver372;
public mjSolverStat_ solver373;
public mjSolverStat_ solver374;
public mjSolverStat_ solver375;
public mjSolverStat_ solver376;
public mjSolverStat_ solver377;
public mjSolverStat_ solver378;
public mjSolverStat_ solver379;
public mjSolverStat_ solver380;
public mjSolverStat_ solver381;
public mjSolverStat_ solver382;
public mjSolverStat_ solver383;
public mjSolverStat_ solver384;
public mjSolverStat_ solver385;
public mjSolverStat_ solver386;
public mjSolverStat_ solver387;
public mjSolverStat_ solver388;
public mjSolverStat_ solver389;
public mjSolverStat_ solver390;
public mjSolverStat_ solver391;
public mjSolverStat_ solver392;
public mjSolverStat_ solver393;
public mjSolverStat_ solver394;
public mjSolverStat_ solver395;
public mjSolverStat_ solver396;
public mjSolverStat_ solver397;
public mjSolverStat_ solver398;
public mjSolverStat_ solver399;
public mjSolverStat_ solver400;
public mjSolverStat_ solver401;
public mjSolverStat_ solver402;
public mjSolverStat_ solver403;
public mjSolverStat_ solver404;
public mjSolverStat_ solver405;
public mjSolverStat_ solver406;
public mjSolverStat_ solver407;
public mjSolverStat_ solver408;
public mjSolverStat_ solver409;
public mjSolverStat_ solver410;
public mjSolverStat_ solver411;
public mjSolverStat_ solver412;
public mjSolverStat_ solver413;
public mjSolverStat_ solver414;
public mjSolverStat_ solver415;
public mjSolverStat_ solver416;
public mjSolverStat_ solver417;
public mjSolverStat_ solver418;
public mjSolverStat_ solver419;
public mjSolverStat_ solver420;
public mjSolverStat_ solver421;
public mjSolverStat_ solver422;
public mjSolverStat_ solver423;
public mjSolverStat_ solver424;
public mjSolverStat_ solver425;
public mjSolverStat_ solver426;
public mjSolverStat_ solver427;
public mjSolverStat_ solver428;
public mjSolverStat_ solver429;
public mjSolverStat_ solver430;
public mjSolverStat_ solver431;
public mjSolverStat_ solver432;
public mjSolverStat_ solver433;
public mjSolverStat_ solver434;
public mjSolverStat_ solver435;
public mjSolverStat_ solver436;
public mjSolverStat_ solver437;
public mjSolverStat_ solver438;
public mjSolverStat_ solver439;
public mjSolverStat_ solver440;
public mjSolverStat_ solver441;
public mjSolverStat_ solver442;
public mjSolverStat_ solver443;
public mjSolverStat_ solver444;
public mjSolverStat_ solver445;
public mjSolverStat_ solver446;
public mjSolverStat_ solver447;
public mjSolverStat_ solver448;
public mjSolverStat_ solver449;
public mjSolverStat_ solver450;
public mjSolverStat_ solver451;
public mjSolverStat_ solver452;
public mjSolverStat_ solver453;
public mjSolverStat_ solver454;
public mjSolverStat_ solver455;
public mjSolverStat_ solver456;
public mjSolverStat_ solver457;
public mjSolverStat_ solver458;
public mjSolverStat_ solver459;
public mjSolverStat_ solver460;
public mjSolverStat_ solver461;
public mjSolverStat_ solver462;
public mjSolverStat_ solver463;
public mjSolverStat_ solver464;
public mjSolverStat_ solver465;
public mjSolverStat_ solver466;
public mjSolverStat_ solver467;
public mjSolverStat_ solver468;
public mjSolverStat_ solver469;
public mjSolverStat_ solver470;
public mjSolverStat_ solver471;
public mjSolverStat_ solver472;
public mjSolverStat_ solver473;
public mjSolverStat_ solver474;
public mjSolverStat_ solver475;
public mjSolverStat_ solver476;
public mjSolverStat_ solver477;
public mjSolverStat_ solver478;
public mjSolverStat_ solver479;
public mjSolverStat_ solver480;
public mjSolverStat_ solver481;
public mjSolverStat_ solver482;
public mjSolverStat_ solver483;
public mjSolverStat_ solver484;
public mjSolverStat_ solver485;
public mjSolverStat_ solver486;
public mjSolverStat_ solver487;
public mjSolverStat_ solver488;
public mjSolverStat_ solver489;
public mjSolverStat_ solver490;
public mjSolverStat_ solver491;
public mjSolverStat_ solver492;
public mjSolverStat_ solver493;
public mjSolverStat_ solver494;
public mjSolverStat_ solver495;
public mjSolverStat_ solver496;
public mjSolverStat_ solver497;
public mjSolverStat_ solver498;
public mjSolverStat_ solver499;
public mjSolverStat_ solver500;
public mjSolverStat_ solver501;
public mjSolverStat_ solver502;
public mjSolverStat_ solver503;
public mjSolverStat_ solver504;
public mjSolverStat_ solver505;
public mjSolverStat_ solver506;
public mjSolverStat_ solver507;
public mjSolverStat_ solver508;
public mjSolverStat_ solver509;
public mjSolverStat_ solver510;
public mjSolverStat_ solver511;
public mjSolverStat_ solver512;
public mjSolverStat_ solver513;
public mjSolverStat_ solver514;
public mjSolverStat_ solver515;
public mjSolverStat_ solver516;
public mjSolverStat_ solver517;
public mjSolverStat_ solver518;
public mjSolverStat_ solver519;
public mjSolverStat_ solver520;
public mjSolverStat_ solver521;
public mjSolverStat_ solver522;
public mjSolverStat_ solver523;
public mjSolverStat_ solver524;
public mjSolverStat_ solver525;
public mjSolverStat_ solver526;
public mjSolverStat_ solver527;
public mjSolverStat_ solver528;
public mjSolverStat_ solver529;
public mjSolverStat_ solver530;
public mjSolverStat_ solver531;
public mjSolverStat_ solver532;
public mjSolverStat_ solver533;
public mjSolverStat_ solver534;
public mjSolverStat_ solver535;
public mjSolverStat_ solver536;
public mjSolverStat_ solver537;
public mjSolverStat_ solver538;
public mjSolverStat_ solver539;
public mjSolverStat_ solver540;
public mjSolverStat_ solver541;
public mjSolverStat_ solver542;
public mjSolverStat_ solver543;
public mjSolverStat_ solver544;
public mjSolverStat_ solver545;
public mjSolverStat_ solver546;
public mjSolverStat_ solver547;
public mjSolverStat_ solver548;
public mjSolverStat_ solver549;
public mjSolverStat_ solver550;
public mjSolverStat_ solver551;
public mjSolverStat_ solver552;
public mjSolverStat_ solver553;
public mjSolverStat_ solver554;
public mjSolverStat_ solver555;
public mjSolverStat_ solver556;
public mjSolverStat_ solver557;
public mjSolverStat_ solver558;
public mjSolverStat_ solver559;
public mjSolverStat_ solver560;
public mjSolverStat_ solver561;
public mjSolverStat_ solver562;
public mjSolverStat_ solver563;
public mjSolverStat_ solver564;
public mjSolverStat_ solver565;
public mjSolverStat_ solver566;
public mjSolverStat_ solver567;
public mjSolverStat_ solver568;
public mjSolverStat_ solver569;
public mjSolverStat_ solver570;
public mjSolverStat_ solver571;
public mjSolverStat_ solver572;
public mjSolverStat_ solver573;
public mjSolverStat_ solver574;
public mjSolverStat_ solver575;
public mjSolverStat_ solver576;
public mjSolverStat_ solver577;
public mjSolverStat_ solver578;
public mjSolverStat_ solver579;
public mjSolverStat_ solver580;
public mjSolverStat_ solver581;
public mjSolverStat_ solver582;
public mjSolverStat_ solver583;
public mjSolverStat_ solver584;
public mjSolverStat_ solver585;
public mjSolverStat_ solver586;
public mjSolverStat_ solver587;
public mjSolverStat_ solver588;
public mjSolverStat_ solver589;
public mjSolverStat_ solver590;
public mjSolverStat_ solver591;
public mjSolverStat_ solver592;
public mjSolverStat_ solver593;
public mjSolverStat_ solver594;
public mjSolverStat_ solver595;
public mjSolverStat_ solver596;
public mjSolverStat_ solver597;
public mjSolverStat_ solver598;
public mjSolverStat_ solver599;
public mjSolverStat_ solver600;
public mjSolverStat_ solver601;
public mjSolverStat_ solver602;
public mjSolverStat_ solver603;
public mjSolverStat_ solver604;
public mjSolverStat_ solver605;
public mjSolverStat_ solver606;
public mjSolverStat_ solver607;
public mjSolverStat_ solver608;
public mjSolverStat_ solver609;
public mjSolverStat_ solver610;
public mjSolverStat_ solver611;
public mjSolverStat_ solver612;
public mjSolverStat_ solver613;
public mjSolverStat_ solver614;
public mjSolverStat_ solver615;
public mjSolverStat_ solver616;
public mjSolverStat_ solver617;
public mjSolverStat_ solver618;
public mjSolverStat_ solver619;
public mjSolverStat_ solver620;
public mjSolverStat_ solver621;
public mjSolverStat_ solver622;
public mjSolverStat_ solver623;
public mjSolverStat_ solver624;
public mjSolverStat_ solver625;
public mjSolverStat_ solver626;
public mjSolverStat_ solver627;
public mjSolverStat_ solver628;
public mjSolverStat_ solver629;
public mjSolverStat_ solver630;
public mjSolverStat_ solver631;
public mjSolverStat_ solver632;
public mjSolverStat_ solver633;
public mjSolverStat_ solver634;
public mjSolverStat_ solver635;
public mjSolverStat_ solver636;
public mjSolverStat_ solver637;
public mjSolverStat_ solver638;
public mjSolverStat_ solver639;
public mjSolverStat_ solver640;
public mjSolverStat_ solver641;
public mjSolverStat_ solver642;
public mjSolverStat_ solver643;
public mjSolverStat_ solver644;
public mjSolverStat_ solver645;
public mjSolverStat_ solver646;
public mjSolverStat_ solver647;
public mjSolverStat_ solver648;
public mjSolverStat_ solver649;
public mjSolverStat_ solver650;
public mjSolverStat_ solver651;
public mjSolverStat_ solver652;
public mjSolverStat_ solver653;
public mjSolverStat_ solver654;
public mjSolverStat_ solver655;
public mjSolverStat_ solver656;
public mjSolverStat_ solver657;
public mjSolverStat_ solver658;
public mjSolverStat_ solver659;
public mjSolverStat_ solver660;
public mjSolverStat_ solver661;
public mjSolverStat_ solver662;
public mjSolverStat_ solver663;
public mjSolverStat_ solver664;
public mjSolverStat_ solver665;
public mjSolverStat_ solver666;
public mjSolverStat_ solver667;
public mjSolverStat_ solver668;
public mjSolverStat_ solver669;
public mjSolverStat_ solver670;
public mjSolverStat_ solver671;
public mjSolverStat_ solver672;
public mjSolverStat_ solver673;
public mjSolverStat_ solver674;
public mjSolverStat_ solver675;
public mjSolverStat_ solver676;
public mjSolverStat_ solver677;
public mjSolverStat_ solver678;
public mjSolverStat_ solver679;
public mjSolverStat_ solver680;
public mjSolverStat_ solver681;
public mjSolverStat_ solver682;
public mjSolverStat_ solver683;
public mjSolverStat_ solver684;
public mjSolverStat_ solver685;
public mjSolverStat_ solver686;
public mjSolverStat_ solver687;
public mjSolverStat_ solver688;
public mjSolverStat_ solver689;
public mjSolverStat_ solver690;
public mjSolverStat_ solver691;
public mjSolverStat_ solver692;
public mjSolverStat_ solver693;
public mjSolverStat_ solver694;
public mjSolverStat_ solver695;
public mjSolverStat_ solver696;
public mjSolverStat_ solver697;
public mjSolverStat_ solver698;
public mjSolverStat_ solver699;
public mjSolverStat_ solver700;
public mjSolverStat_ solver701;
public mjSolverStat_ solver702;
public mjSolverStat_ solver703;
public mjSolverStat_ solver704;
public mjSolverStat_ solver705;
public mjSolverStat_ solver706;
public mjSolverStat_ solver707;
public mjSolverStat_ solver708;
public mjSolverStat_ solver709;
public mjSolverStat_ solver710;
public mjSolverStat_ solver711;
public mjSolverStat_ solver712;
public mjSolverStat_ solver713;
public mjSolverStat_ solver714;
public mjSolverStat_ solver715;
public mjSolverStat_ solver716;
public mjSolverStat_ solver717;
public mjSolverStat_ solver718;
public mjSolverStat_ solver719;
public mjSolverStat_ solver720;
public mjSolverStat_ solver721;
public mjSolverStat_ solver722;
public mjSolverStat_ solver723;
public mjSolverStat_ solver724;
public mjSolverStat_ solver725;
public mjSolverStat_ solver726;
public mjSolverStat_ solver727;
public mjSolverStat_ solver728;
public mjSolverStat_ solver729;
public mjSolverStat_ solver730;
public mjSolverStat_ solver731;
public mjSolverStat_ solver732;
public mjSolverStat_ solver733;
public mjSolverStat_ solver734;
public mjSolverStat_ solver735;
public mjSolverStat_ solver736;
public mjSolverStat_ solver737;
public mjSolverStat_ solver738;
public mjSolverStat_ solver739;
public mjSolverStat_ solver740;
public mjSolverStat_ solver741;
public mjSolverStat_ solver742;
public mjSolverStat_ solver743;
public mjSolverStat_ solver744;
public mjSolverStat_ solver745;
public mjSolverStat_ solver746;
public mjSolverStat_ solver747;
public mjSolverStat_ solver748;
public mjSolverStat_ solver749;
public mjSolverStat_ solver750;
public mjSolverStat_ solver751;
public mjSolverStat_ solver752;
public mjSolverStat_ solver753;
public mjSolverStat_ solver754;
public mjSolverStat_ solver755;
public mjSolverStat_ solver756;
public mjSolverStat_ solver757;
public mjSolverStat_ solver758;
public mjSolverStat_ solver759;
public mjSolverStat_ solver760;
public mjSolverStat_ solver761;
public mjSolverStat_ solver762;
public mjSolverStat_ solver763;
public mjSolverStat_ solver764;
public mjSolverStat_ solver765;
public mjSolverStat_ solver766;
public mjSolverStat_ solver767;
public mjSolverStat_ solver768;
public mjSolverStat_ solver769;
public mjSolverStat_ solver770;
public mjSolverStat_ solver771;
public mjSolverStat_ solver772;
public mjSolverStat_ solver773;
public mjSolverStat_ solver774;
public mjSolverStat_ solver775;
public mjSolverStat_ solver776;
public mjSolverStat_ solver777;
public mjSolverStat_ solver778;
public mjSolverStat_ solver779;
public mjSolverStat_ solver780;
public mjSolverStat_ solver781;
public mjSolverStat_ solver782;
public mjSolverStat_ solver783;
public mjSolverStat_ solver784;
public mjSolverStat_ solver785;
public mjSolverStat_ solver786;
public mjSolverStat_ solver787;
public mjSolverStat_ solver788;
public mjSolverStat_ solver789;
public mjSolverStat_ solver790;
public mjSolverStat_ solver791;
public mjSolverStat_ solver792;
public mjSolverStat_ solver793;
public mjSolverStat_ solver794;
public mjSolverStat_ solver795;
public mjSolverStat_ solver796;
public mjSolverStat_ solver797;
public mjSolverStat_ solver798;
public mjSolverStat_ solver799;
public mjSolverStat_ solver800;
public mjSolverStat_ solver801;
public mjSolverStat_ solver802;
public mjSolverStat_ solver803;
public mjSolverStat_ solver804;
public mjSolverStat_ solver805;
public mjSolverStat_ solver806;
public mjSolverStat_ solver807;
public mjSolverStat_ solver808;
public mjSolverStat_ solver809;
public mjSolverStat_ solver810;
public mjSolverStat_ solver811;
public mjSolverStat_ solver812;
public mjSolverStat_ solver813;
public mjSolverStat_ solver814;
public mjSolverStat_ solver815;
public mjSolverStat_ solver816;
public mjSolverStat_ solver817;
public mjSolverStat_ solver818;
public mjSolverStat_ solver819;
public mjSolverStat_ solver820;
public mjSolverStat_ solver821;
public mjSolverStat_ solver822;
public mjSolverStat_ solver823;
public mjSolverStat_ solver824;
public mjSolverStat_ solver825;
public mjSolverStat_ solver826;
public mjSolverStat_ solver827;
public mjSolverStat_ solver828;
public mjSolverStat_ solver829;
public mjSolverStat_ solver830;
public mjSolverStat_ solver831;
public mjSolverStat_ solver832;
public mjSolverStat_ solver833;
public mjSolverStat_ solver834;
public mjSolverStat_ solver835;
public mjSolverStat_ solver836;
public mjSolverStat_ solver837;
public mjSolverStat_ solver838;
public mjSolverStat_ solver839;
public mjSolverStat_ solver840;
public mjSolverStat_ solver841;
public mjSolverStat_ solver842;
public mjSolverStat_ solver843;
public mjSolverStat_ solver844;
public mjSolverStat_ solver845;
public mjSolverStat_ solver846;
public mjSolverStat_ solver847;
public mjSolverStat_ solver848;
public mjSolverStat_ solver849;
public mjSolverStat_ solver850;
public mjSolverStat_ solver851;
public mjSolverStat_ solver852;
public mjSolverStat_ solver853;
public mjSolverStat_ solver854;
public mjSolverStat_ solver855;
public mjSolverStat_ solver856;
public mjSolverStat_ solver857;
public mjSolverStat_ solver858;
public mjSolverStat_ solver859;
public mjSolverStat_ solver860;
public mjSolverStat_ solver861;
public mjSolverStat_ solver862;
public mjSolverStat_ solver863;
public mjSolverStat_ solver864;
public mjSolverStat_ solver865;
public mjSolverStat_ solver866;
public mjSolverStat_ solver867;
public mjSolverStat_ solver868;
public mjSolverStat_ solver869;
public mjSolverStat_ solver870;
public mjSolverStat_ solver871;
public mjSolverStat_ solver872;
public mjSolverStat_ solver873;
public mjSolverStat_ solver874;
public mjSolverStat_ solver875;
public mjSolverStat_ solver876;
public mjSolverStat_ solver877;
public mjSolverStat_ solver878;
public mjSolverStat_ solver879;
public mjSolverStat_ solver880;
public mjSolverStat_ solver881;
public mjSolverStat_ solver882;
public mjSolverStat_ solver883;
public mjSolverStat_ solver884;
public mjSolverStat_ solver885;
public mjSolverStat_ solver886;
public mjSolverStat_ solver887;
public mjSolverStat_ solver888;
public mjSolverStat_ solver889;
public mjSolverStat_ solver890;
public mjSolverStat_ solver891;
public mjSolverStat_ solver892;
public mjSolverStat_ solver893;
public mjSolverStat_ solver894;
public mjSolverStat_ solver895;
public mjSolverStat_ solver896;
public mjSolverStat_ solver897;
public mjSolverStat_ solver898;
public mjSolverStat_ solver899;
public mjSolverStat_ solver900;
public mjSolverStat_ solver901;
public mjSolverStat_ solver902;
public mjSolverStat_ solver903;
public mjSolverStat_ solver904;
public mjSolverStat_ solver905;
public mjSolverStat_ solver906;
public mjSolverStat_ solver907;
public mjSolverStat_ solver908;
public mjSolverStat_ solver909;
public mjSolverStat_ solver910;
public mjSolverStat_ solver911;
public mjSolverStat_ solver912;
public mjSolverStat_ solver913;
public mjSolverStat_ solver914;
public mjSolverStat_ solver915;
public mjSolverStat_ solver916;
public mjSolverStat_ solver917;
public mjSolverStat_ solver918;
public mjSolverStat_ solver919;
public mjSolverStat_ solver920;
public mjSolverStat_ solver921;
public mjSolverStat_ solver922;
public mjSolverStat_ solver923;
public mjSolverStat_ solver924;
public mjSolverStat_ solver925;
public mjSolverStat_ solver926;
public mjSolverStat_ solver927;
public mjSolverStat_ solver928;
public mjSolverStat_ solver929;
public mjSolverStat_ solver930;
public mjSolverStat_ solver931;
public mjSolverStat_ solver932;
public mjSolverStat_ solver933;
public mjSolverStat_ solver934;
public mjSolverStat_ solver935;
public mjSolverStat_ solver936;
public mjSolverStat_ solver937;
public mjSolverStat_ solver938;
public mjSolverStat_ solver939;
public mjSolverStat_ solver940;
public mjSolverStat_ solver941;
public mjSolverStat_ solver942;
public mjSolverStat_ solver943;
public mjSolverStat_ solver944;
public mjSolverStat_ solver945;
public mjSolverStat_ solver946;
public mjSolverStat_ solver947;
public mjSolverStat_ solver948;
public mjSolverStat_ solver949;
public mjSolverStat_ solver950;
public mjSolverStat_ solver951;
public mjSolverStat_ solver952;
public mjSolverStat_ solver953;
public mjSolverStat_ solver954;
public mjSolverStat_ solver955;
public mjSolverStat_ solver956;
public mjSolverStat_ solver957;
public mjSolverStat_ solver958;
public mjSolverStat_ solver959;
public mjSolverStat_ solver960;
public mjSolverStat_ solver961;
public mjSolverStat_ solver962;
public mjSolverStat_ solver963;
public mjSolverStat_ solver964;
public mjSolverStat_ solver965;
public mjSolverStat_ solver966;
public mjSolverStat_ solver967;
public mjSolverStat_ solver968;
public mjSolverStat_ solver969;
public mjSolverStat_ solver970;
public mjSolverStat_ solver971;
public mjSolverStat_ solver972;
public mjSolverStat_ solver973;
public mjSolverStat_ solver974;
public mjSolverStat_ solver975;
public mjSolverStat_ solver976;
public mjSolverStat_ solver977;
public mjSolverStat_ solver978;
public mjSolverStat_ solver979;
public mjSolverStat_ solver980;
public mjSolverStat_ solver981;
public mjSolverStat_ solver982;
public mjSolverStat_ solver983;
public mjSolverStat_ solver984;
public mjSolverStat_ solver985;
public mjSolverStat_ solver986;
public mjSolverStat_ solver987;
public mjSolverStat_ solver988;
public mjSolverStat_ solver989;
public mjSolverStat_ solver990;
public mjSolverStat_ solver991;
public mjSolverStat_ solver992;
public mjSolverStat_ solver993;
public mjSolverStat_ solver994;
public mjSolverStat_ solver995;
public mjSolverStat_ solver996;
public mjSolverStat_ solver997;
public mjSolverStat_ solver998;
public mjSolverStat_ solver999;
public int solver_iter;
public int solver_nnz;
public fixed double solver_fwdinv[2];
public int ne;
public int nf;
public int nefc;
public int ncon;
public double time;
public fixed double energy[2];
public void* buffer;
public double* stack;
public double* qpos;
public double* qvel;
public double* act;
public double* qacc_warmstart;
public double* ctrl;
public double* qfrc_applied;
public double* xfrc_applied;
public double* mocap_pos;
public double* mocap_quat;
public double* qacc;
public double* act_dot;
public double* userdata;
public double* sensordata;
public double* xpos;
public double* xquat;
public double* xmat;
public double* xipos;
public double* ximat;
public double* xanchor;
public double* xaxis;
public double* geom_xpos;
public double* geom_xmat;
public double* site_xpos;
public double* site_xmat;
public double* cam_xpos;
public double* cam_xmat;
public double* light_xpos;
public double* light_xdir;
public double* subtree_com;
public double* cdof;
public double* cinert;
public int* ten_wrapadr;
public int* ten_wrapnum;
public int* ten_J_rownnz;
public int* ten_J_rowadr;
public int* ten_J_colind;
public double* ten_length;
public double* ten_J;
public int* wrap_obj;
public double* wrap_xpos;
public double* actuator_length;
public double* actuator_moment;
public double* crb;
public double* qM;
public double* qLD;
public double* qLDiagInv;
public double* qLDiagSqrtInv;
public mjContact_* contact;
public int* efc_type;
public int* efc_id;
public int* efc_J_rownnz;
public int* efc_J_rowadr;
public int* efc_J_rowsuper;
public int* efc_J_colind;
public int* efc_JT_rownnz;
public int* efc_JT_rowadr;
public int* efc_JT_rowsuper;
public int* efc_JT_colind;
public double* efc_J;
public double* efc_JT;
public double* efc_pos;
public double* efc_margin;
public double* efc_frictionloss;
public double* efc_diagApprox;
public double* efc_KBIP;
public double* efc_D;
public double* efc_R;
public int* efc_AR_rownnz;
public int* efc_AR_rowadr;
public int* efc_AR_colind;
public double* efc_AR;
public double* ten_velocity;
public double* actuator_velocity;
public double* cvel;
public double* cdof_dot;
public double* qfrc_bias;
public double* qfrc_passive;
public double* efc_vel;
public double* efc_aref;
public double* subtree_linvel;
public double* subtree_angmom;
public double* actuator_force;
public double* qfrc_actuator;
public double* qfrc_unc;
public double* qacc_unc;
public double* efc_b;
public double* efc_force;
public int* efc_state;
public double* qfrc_constraint;
public double* qfrc_inverse;
public double* cacc;
public double* cfrc_int;
public double* cfrc_ext;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjLROpt_ {
public int mode;
public int useexisting;
public int uselimit;
public double accel;
public double maxforce;
public double timeconst;
public double timestep;
public double inttotal;
public double inteval;
public double tolrange;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct _mjVFS
{
public int nfile;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2000 * 1000)] public char[] filename;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2000)] public int[] filesize;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2000)] public IntPtr[] filedata;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjOption_ {
public double timestep;
public double apirate;
public double impratio;
public double tolerance;
public double noslip_tolerance;
public double mpr_tolerance;
public fixed double gravity[3];
public fixed double wind[3];
public fixed double magnetic[3];
public double density;
public double viscosity;
public double o_margin;
public fixed double o_solref[2];
public fixed double o_solimp[5];
public int integrator;
public int collision;
public int cone;
public int jacobian;
public int solver;
public int iterations;
public int noslip_iterations;
public int mpr_iterations;
public int disableflags;
public int enableflags;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct global {
public float fovy;
public float ipd;
public float linewidth;
public float glow;
public int offwidth;
public int offheight;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct quality {
public int shadowsize;
public int offsamples;
public int numslices;
public int numstacks;
public int numquads;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct headlight {
public fixed float ambient[3];
public fixed float diffuse[3];
public fixed float specular[3];
public int active;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct map {
public float stiffness;
public float stiffnessrot;
public float force;
public float torque;
public float alpha;
public float fogstart;
public float fogend;
public float znear;
public float zfar;
public float haze;
public float shadowclip;
public float shadowscale;
public float actuatortendon;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct scale {
public float forcewidth;
public float contactwidth;
public float contactheight;
public float connect;
public float com;
public float camera;
public float light;
public float selectpoint;
public float jointlength;
public float jointwidth;
public float actuatorlength;
public float actuatorwidth;
public float framelength;
public float framewidth;
public float constraint;
public float slidercrank;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct rgba {
public fixed float fog[4];
public fixed float haze[4];
public fixed float force[4];
public fixed float inertia[4];
public fixed float joint[4];
public fixed float actuator[4];
public fixed float actuatornegative[4];
public fixed float actuatorpositive[4];
public fixed float com[4];
public fixed float camera[4];
public fixed float light[4];
public fixed float selectpoint[4];
public fixed float connect[4];
public fixed float contactpoint[4];
public fixed float contactforce[4];
public fixed float contactfriction[4];
public fixed float contacttorque[4];
public fixed float contactgap[4];
public fixed float rangefinder[4];
public fixed float constraint[4];
public fixed float slidercrank[4];
public fixed float crankbroken[4];
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjVisual_ {
public global global;
public quality quality;
public headlight headlight;
public map map;
public scale scale;
public rgba rgba;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjStatistic_ {
public double meaninertia;
public double meanmass;
public double meansize;
public double extent;
public fixed double center[3];
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjModel_ {
public int nq;
public int nv;
public int nu;
public int na;
public int nbody;
public int njnt;
public int ngeom;
public int nsite;
public int ncam;
public int nlight;
public int nmesh;
public int nmeshvert;
public int nmeshtexvert;
public int nmeshface;
public int nmeshgraph;
public int nskin;
public int nskinvert;
public int nskintexvert;
public int nskinface;
public int nskinbone;
public int nskinbonevert;
public int nhfield;
public int nhfielddata;
public int ntex;
public int ntexdata;
public int nmat;
public int npair;
public int nexclude;
public int neq;
public int ntendon;
public int nwrap;
public int nsensor;
public int nnumeric;
public int nnumericdata;
public int ntext;
public int ntextdata;
public int ntuple;
public int ntupledata;
public int nkey;
public int nmocap;
public int nuser_body;
public int nuser_jnt;
public int nuser_geom;
public int nuser_site;
public int nuser_cam;
public int nuser_tendon;
public int nuser_actuator;
public int nuser_sensor;
public int nnames;
public int nM;
public int nemax;
public int njmax;
public int nconmax;
public int nstack;
public int nuserdata;
public int nsensordata;
public int nbuffer;
public mjOption_ opt;
public mjVisual_ vis;
public mjStatistic_ stat;
public void* buffer;
public double* qpos0;
public double* qpos_spring;
public int* body_parentid;
public int* body_rootid;
public int* body_weldid;
public int* body_mocapid;
public int* body_jntnum;
public int* body_jntadr;
public int* body_dofnum;
public int* body_dofadr;
public int* body_geomnum;
public int* body_geomadr;
public byte* body_simple;
public byte* body_sameframe;
public double* body_pos;
public double* body_quat;
public double* body_ipos;
public double* body_iquat;
public double* body_mass;
public double* body_subtreemass;
public double* body_inertia;
public double* body_invweight0;
public double* body_user;
public int* jnt_type;
public int* jnt_qposadr;
public int* jnt_dofadr;
public int* jnt_bodyid;
public int* jnt_group;
public byte* jnt_limited;
public double* jnt_solref;
public double* jnt_solimp;
public double* jnt_pos;
public double* jnt_axis;
public double* jnt_stiffness;
public double* jnt_range;
public double* jnt_margin;
public double* jnt_user;
public int* dof_bodyid;
public int* dof_jntid;
public int* dof_parentid;
public int* dof_Madr;
public int* dof_simplenum;
public double* dof_solref;
public double* dof_solimp;
public double* dof_frictionloss;
public double* dof_armature;
public double* dof_damping;
public double* dof_invweight0;
public double* dof_M0;
public int* geom_type;
public int* geom_contype;
public int* geom_conaffinity;
public int* geom_condim;
public int* geom_bodyid;
public int* geom_dataid;
public int* geom_matid;
public int* geom_group;
public int* geom_priority;
public byte* geom_sameframe;
public double* geom_solmix;
public double* geom_solref;
public double* geom_solimp;
public double* geom_size;
public double* geom_rbound;
public double* geom_pos;
public double* geom_quat;
public double* geom_friction;
public double* geom_margin;
public double* geom_gap;
public double* geom_fluid;
public double* geom_user;
public float* geom_rgba;
public int* site_type;
public int* site_bodyid;
public int* site_matid;
public int* site_group;
public byte* site_sameframe;
public double* site_size;
public double* site_pos;
public double* site_quat;
public double* site_user;
public float* site_rgba;
public int* cam_mode;
public int* cam_bodyid;
public int* cam_targetbodyid;
public double* cam_pos;
public double* cam_quat;
public double* cam_poscom0;
public double* cam_pos0;
public double* cam_mat0;
public double* cam_fovy;
public double* cam_ipd;
public double* cam_user;
public int* light_mode;
public int* light_bodyid;
public int* light_targetbodyid;
public byte* light_directional;
public byte* light_castshadow;
public byte* light_active;
public double* light_pos;
public double* light_dir;
public double* light_poscom0;
public double* light_pos0;
public double* light_dir0;
public float* light_attenuation;
public float* light_cutoff;
public float* light_exponent;
public float* light_ambient;
public float* light_diffuse;
public float* light_specular;
public int* mesh_vertadr;
public int* mesh_vertnum;
public int* mesh_texcoordadr;
public int* mesh_faceadr;
public int* mesh_facenum;
public int* mesh_graphadr;
public float* mesh_vert;
public float* mesh_normal;
public float* mesh_texcoord;
public int* mesh_face;
public int* mesh_graph;
public int* skin_matid;
public float* skin_rgba;
public float* skin_inflate;
public int* skin_vertadr;
public int* skin_vertnum;
public int* skin_texcoordadr;
public int* skin_faceadr;
public int* skin_facenum;
public int* skin_boneadr;
public int* skin_bonenum;
public float* skin_vert;
public float* skin_texcoord;
public int* skin_face;
public int* skin_bonevertadr;
public int* skin_bonevertnum;
public float* skin_bonebindpos;
public float* skin_bonebindquat;
public int* skin_bonebodyid;
public int* skin_bonevertid;
public float* skin_bonevertweight;
public double* hfield_size;
public int* hfield_nrow;
public int* hfield_ncol;
public int* hfield_adr;
public float* hfield_data;
public int* tex_type;
public int* tex_height;
public int* tex_width;
public int* tex_adr;
public byte* tex_rgb;
public int* mat_texid;
public byte* mat_texuniform;
public float* mat_texrepeat;
public float* mat_emission;
public float* mat_specular;
public float* mat_shininess;
public float* mat_reflectance;
public float* mat_rgba;
public int* pair_dim;
public int* pair_geom1;
public int* pair_geom2;
public int* pair_signature;
public double* pair_solref;
public double* pair_solimp;
public double* pair_margin;
public double* pair_gap;
public double* pair_friction;
public int* exclude_signature;
public int* eq_type;
public int* eq_obj1id;
public int* eq_obj2id;
public byte* eq_active;
public double* eq_solref;
public double* eq_solimp;
public double* eq_data;
public int* tendon_adr;
public int* tendon_num;
public int* tendon_matid;
public int* tendon_group;
public byte* tendon_limited;
public double* tendon_width;
public double* tendon_solref_lim;
public double* tendon_solimp_lim;
public double* tendon_solref_fri;
public double* tendon_solimp_fri;
public double* tendon_range;
public double* tendon_margin;
public double* tendon_stiffness;
public double* tendon_damping;
public double* tendon_frictionloss;
public double* tendon_lengthspring;
public double* tendon_length0;
public double* tendon_invweight0;
public double* tendon_user;
public float* tendon_rgba;
public int* wrap_type;
public int* wrap_objid;
public double* wrap_prm;
public int* actuator_trntype;
public int* actuator_dyntype;
public int* actuator_gaintype;
public int* actuator_biastype;
public int* actuator_trnid;
public int* actuator_group;
public byte* actuator_ctrllimited;
public byte* actuator_forcelimited;
public double* actuator_dynprm;
public double* actuator_gainprm;
public double* actuator_biasprm;
public double* actuator_ctrlrange;
public double* actuator_forcerange;
public double* actuator_gear;
public double* actuator_cranklength;
public double* actuator_acc0;
public double* actuator_length0;
public double* actuator_lengthrange;
public double* actuator_user;
public int* sensor_type;
public int* sensor_datatype;
public int* sensor_needstage;
public int* sensor_objtype;
public int* sensor_objid;
public int* sensor_reftype;
public int* sensor_refid;
public int* sensor_dim;
public int* sensor_adr;
public double* sensor_cutoff;
public double* sensor_noise;
public double* sensor_user;
public int* numeric_adr;
public int* numeric_size;
public double* numeric_data;
public int* text_adr;
public int* text_size;
public char* text_data;
public int* tuple_adr;
public int* tuple_size;
public int* tuple_objtype;
public int* tuple_objid;
public double* tuple_objprm;
public double* key_time;
public double* key_qpos;
public double* key_qvel;
public double* key_act;
public double* key_mpos;
public double* key_mquat;
public int* name_bodyadr;
public int* name_jntadr;
public int* name_geomadr;
public int* name_siteadr;
public int* name_camadr;
public int* name_lightadr;
public int* name_meshadr;
public int* name_skinadr;
public int* name_hfieldadr;
public int* name_texadr;
public int* name_matadr;
public int* name_pairadr;
public int* name_excludeadr;
public int* name_eqadr;
public int* name_tendonadr;
public int* name_actuatoradr;
public int* name_sensoradr;
public int* name_numericadr;
public int* name_textadr;
public int* name_tupleadr;
public int* name_keyadr;
public char* names;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjrRect_ {
public int left;
public int bottom;
public int width;
public int height;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjrContext_ {
public float lineWidth;
public float shadowClip;
public float shadowScale;
public float fogStart;
public float fogEnd;
public fixed float fogRGBA[4];
public int shadowSize;
public int offWidth;
public int offHeight;
public int offSamples;
public int fontScale;
public fixed int auxWidth[10];
public fixed int auxHeight[10];
public fixed int auxSamples[10];
public uint offFBO;
public uint offFBO_r;
public uint offColor;
public uint offColor_r;
public uint offDepthStencil;
public uint offDepthStencil_r;
public uint shadowFBO;
public uint shadowTex;
public fixed uint auxFBO[10];
public fixed uint auxFBO_r[10];
public fixed uint auxColor[10];
public fixed uint auxColor_r[10];
public int ntexture;
public fixed int textureType[100];
public fixed uint texture[100];
public uint basePlane;
public uint baseMesh;
public uint baseHField;
public uint baseBuiltin;
public uint baseFontNormal;
public uint baseFontShadow;
public uint baseFontBig;
public int rangePlane;
public int rangeMesh;
public int rangeHField;
public int rangeBuiltin;
public int rangeFont;
public int nskin;
public uint* skinvertVBO;
public uint* skinnormalVBO;
public uint* skintexcoordVBO;
public uint* skinfaceVBO;
public fixed int charWidth[127];
public fixed int charWidthBig[127];
public int charHeight;
public int charHeightBig;
public int glewInitialized;
public int windowAvailable;
public int windowSamples;
public int windowStereo;
public int windowDoublebuffer;
public int currentBuffer;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjuiState_ {
public int nrect;
public mjrRect_ rect0;
public mjrRect_ rect1;
public mjrRect_ rect2;
public mjrRect_ rect3;
public mjrRect_ rect4;
public mjrRect_ rect5;
public mjrRect_ rect6;
public mjrRect_ rect7;
public mjrRect_ rect8;
public mjrRect_ rect9;
public mjrRect_ rect10;
public mjrRect_ rect11;
public mjrRect_ rect12;
public mjrRect_ rect13;
public mjrRect_ rect14;
public mjrRect_ rect15;
public mjrRect_ rect16;
public mjrRect_ rect17;
public mjrRect_ rect18;
public mjrRect_ rect19;
public mjrRect_ rect20;
public mjrRect_ rect21;
public mjrRect_ rect22;
public mjrRect_ rect23;
public mjrRect_ rect24;
public void* userdata;
public int type;
public int left;
public int right;
public int middle;
public int doubleclick;
public int button;
public double buttontime;
public double x;
public double y;
public double dx;
public double dy;
public double sx;
public double sy;
public int control;
public int shift;
public int alt;
public int key;
public double keytime;
public int mouserect;
public int dragrect;
public int dragbutton;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjuiThemeSpacing_ {
public int total;
public int scroll;
public int label;
public int section;
public int itemside;
public int itemmid;
public int itemver;
public int texthor;
public int textver;
public int linescroll;
public int samples;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjuiThemeColor_ {
public fixed float master[3];
public fixed float thumb[3];
public fixed float secttitle[3];
public fixed float sectfont[3];
public fixed float sectsymbol[3];
public fixed float sectpane[3];
public fixed float shortcut[3];
public fixed float fontactive[3];
public fixed float fontinactive[3];
public fixed float decorinactive[3];
public fixed float decorinactive2[3];
public fixed float button[3];
public fixed float check[3];
public fixed float radio[3];
public fixed float select[3];
public fixed float select2[3];
public fixed float slider[3];
public fixed float slider2[3];
public fixed float edit[3];
public fixed float edit2[3];
public fixed float cursor[3];
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjuiItemSingle_ {
public int modifier;
public int shortcut;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjuiItemMulti_ {
public int nelem;
public fixed sbyte name[35 * 40];
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjuiItemSlider_ {
public fixed double range[2];
public double divisions;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjuiItemEdit_ {
public int nelem;
public fixed double range[7 * 2];
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjuiSection_ {
public fixed sbyte name[40];
public int state;
public int modifier;
public int shortcut;
public int nitem;
public mjrRect_ rtitle;
public mjrRect_ rcontent;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjUI_ {
public mjuiThemeSpacing_ spacing;
public mjuiThemeColor_ color;
public mjfItemEnable predicate;
public void* userdata;
public int rectid;
public int auxid;
public int radiocol;
public int width;
public int height;
public int maxheight;
public int scroll;
public int mousesect;
public int mouseitem;
public int mousehelp;
public int editsect;
public int edititem;
public int editcursor;
public int editscroll;
public fixed sbyte edittext[300];
public mjuiItem_* editchanged;
public int nsect;
public mjuiSection_ sect0;
public mjuiSection_ sect1;
public mjuiSection_ sect2;
public mjuiSection_ sect3;
public mjuiSection_ sect4;
public mjuiSection_ sect5;
public mjuiSection_ sect6;
public mjuiSection_ sect7;
public mjuiSection_ sect8;
public mjuiSection_ sect9;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjuiDef_ {
public int type;
public fixed sbyte name[40];
public int state;
public void* pdata;
public fixed sbyte other[300];
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjvPerturb_ {
public int select;
public int skinselect;
public int active;
public int active2;
public fixed double refpos[3];
public fixed double refquat[4];
public fixed double localpos[3];
public double scale;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjvCamera_ {
public int type;
public int fixedcamid;
public int trackbodyid;
public fixed double lookat[3];
public double distance;
public double azimuth;
public double elevation;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjvGLCamera_ {
public fixed float pos[3];
public fixed float forward[3];
public fixed float up[3];
public float frustum_center;
public float frustum_bottom;
public float frustum_top;
public float frustum_near;
public float frustum_far;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjvGeom_ {
public int type;
public int dataid;
public int objtype;
public int objid;
public int category;
public int texid;
public int texuniform;
public int texcoord;
public int segid;
public fixed float texrepeat[2];
public fixed float size[3];
public fixed float pos[3];
public fixed float mat[9];
public fixed float rgba[4];
public float emission;
public float specular;
public float shininess;
public float reflectance;
public fixed sbyte label[100];
public float camdist;
public float modelrbound;
public byte transparent;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjvLight_ {
public fixed float pos[3];
public fixed float dir[3];
public fixed float attenuation[3];
public float cutoff;
public float exponent;
public fixed float ambient[3];
public fixed float diffuse[3];
public fixed float specular[3];
public byte headlight;
public byte directional;
public byte castshadow;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjvOption_ {
public int label;
public int frame;
public fixed byte geomgroup[6];
public fixed byte sitegroup[6];
public fixed byte jointgroup[6];
public fixed byte tendongroup[6];
public fixed byte actuatorgroup[6];
public fixed byte flags[22];
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjvScene_ {
public int maxgeom;
public int ngeom;
public mjvGeom_* geoms;
public int* geomorder;
public int nskin;
public int* skinfacenum;
public int* skinvertadr;
public int* skinvertnum;
public float* skinvert;
public float* skinnormal;
public int nlight;
public mjvLight_ lights0;
public mjvLight_ lights1;
public mjvLight_ lights2;
public mjvLight_ lights3;
public mjvLight_ lights4;
public mjvLight_ lights5;
public mjvLight_ lights6;
public mjvLight_ lights7;
public mjvLight_ lights8;
public mjvLight_ lights9;
public mjvLight_ lights10;
public mjvLight_ lights11;
public mjvLight_ lights12;
public mjvLight_ lights13;
public mjvLight_ lights14;
public mjvLight_ lights15;
public mjvLight_ lights16;
public mjvLight_ lights17;
public mjvLight_ lights18;
public mjvLight_ lights19;
public mjvLight_ lights20;
public mjvLight_ lights21;
public mjvLight_ lights22;
public mjvLight_ lights23;
public mjvLight_ lights24;
public mjvLight_ lights25;
public mjvLight_ lights26;
public mjvLight_ lights27;
public mjvLight_ lights28;
public mjvLight_ lights29;
public mjvLight_ lights30;
public mjvLight_ lights31;
public mjvLight_ lights32;
public mjvLight_ lights33;
public mjvLight_ lights34;
public mjvLight_ lights35;
public mjvLight_ lights36;
public mjvLight_ lights37;
public mjvLight_ lights38;
public mjvLight_ lights39;
public mjvLight_ lights40;
public mjvLight_ lights41;
public mjvLight_ lights42;
public mjvLight_ lights43;
public mjvLight_ lights44;
public mjvLight_ lights45;
public mjvLight_ lights46;
public mjvLight_ lights47;
public mjvLight_ lights48;
public mjvLight_ lights49;
public mjvLight_ lights50;
public mjvLight_ lights51;
public mjvLight_ lights52;
public mjvLight_ lights53;
public mjvLight_ lights54;
public mjvLight_ lights55;
public mjvLight_ lights56;
public mjvLight_ lights57;
public mjvLight_ lights58;
public mjvLight_ lights59;
public mjvLight_ lights60;
public mjvLight_ lights61;
public mjvLight_ lights62;
public mjvLight_ lights63;
public mjvLight_ lights64;
public mjvLight_ lights65;
public mjvLight_ lights66;
public mjvLight_ lights67;
public mjvLight_ lights68;
public mjvLight_ lights69;
public mjvLight_ lights70;
public mjvLight_ lights71;
public mjvLight_ lights72;
public mjvLight_ lights73;
public mjvLight_ lights74;
public mjvLight_ lights75;
public mjvLight_ lights76;
public mjvLight_ lights77;
public mjvLight_ lights78;
public mjvLight_ lights79;
public mjvLight_ lights80;
public mjvLight_ lights81;
public mjvLight_ lights82;
public mjvLight_ lights83;
public mjvLight_ lights84;
public mjvLight_ lights85;
public mjvLight_ lights86;
public mjvLight_ lights87;
public mjvLight_ lights88;
public mjvLight_ lights89;
public mjvLight_ lights90;
public mjvLight_ lights91;
public mjvLight_ lights92;
public mjvLight_ lights93;
public mjvLight_ lights94;
public mjvLight_ lights95;
public mjvLight_ lights96;
public mjvLight_ lights97;
public mjvLight_ lights98;
public mjvLight_ lights99;
public mjvGLCamera_ camera0;
public mjvGLCamera_ camera1;
public byte enabletransform;
public fixed float translate[3];
public fixed float rotate[4];
public float scale;
public int stereo;
public fixed byte flags[9];
public int framewidth;
public fixed float framergb[3];
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct mjvFigure_ {
public int flg_legend;
public fixed int flg_ticklabel[2];
public int flg_extend;
public int flg_barplot;
public int flg_selection;
public int flg_symmetric;
public float linewidth;
public float gridwidth;
public fixed int gridsize[2];
public fixed float gridrgb[3];
public fixed float figurergba[4];
public fixed float panergba[4];
public fixed float legendrgba[4];
public fixed float textrgb[3];
public fixed float linergb[100 * 3];
public fixed float range[2 * 2];
public fixed sbyte xformat[20];
public fixed sbyte yformat[20];
public fixed sbyte minwidth[20];
public fixed sbyte title[1000];
public fixed sbyte xlabel[100];
public fixed sbyte linename[100 * 100];
public int legendoffset;
public int subplot;
public fixed int highlight[2];
public int highlightid;
public float selection;
public fixed int linepnt[100];
public fixed float linedata[100 * 2000];
public fixed int xaxispixel[2];
public fixed int yaxispixel[2];
public fixed float xaxisdata[2];
public fixed float yaxisdata[2];
}public struct mjuiItem_ {}public struct mjfItemEnable {}
// ----------------------------Function declarations----------------------------
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mj_activate([MarshalAs(UnmanagedType.LPStr)]string filename);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_deactivate();
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_defaultVFS(void* vfs);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mj_addFileVFS(void* vfs, [MarshalAs(UnmanagedType.LPStr)]string directory, [MarshalAs(UnmanagedType.LPStr)]string filename);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mj_makeEmptyFileVFS(void* vfs, [MarshalAs(UnmanagedType.LPStr)]string filename, int filesize);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mj_findFileVFS(void* vfs, [MarshalAs(UnmanagedType.LPStr)]string filename);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mj_deleteFileVFS(void* vfs, [MarshalAs(UnmanagedType.LPStr)]string filename);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_deleteVFS(void* vfs);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern mjModel_* mj_loadXML([MarshalAs(UnmanagedType.LPStr)]string filename, void* vfs, StringBuilder error, int error_sz);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mj_saveLastXML([MarshalAs(UnmanagedType.LPStr)]string filename, mjModel_* m, StringBuilder error, int error_sz);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_freeLastXML();
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mj_printSchema([MarshalAs(UnmanagedType.LPStr)]string filename, StringBuilder buffer, int buffer_sz, int flg_html, int flg_pad);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_step(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_step1(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_step2(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_forward(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_inverse(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_forwardSkip(mjModel_* m, mjData_* d, int skipstage, int skipsensor);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_inverseSkip(mjModel_* m, mjData_* d, int skipstage, int skipsensor);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_defaultLROpt(mjLROpt_* opt);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_defaultSolRefImp(double* solref, double* solimp);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_defaultOption(mjOption_* opt);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_defaultVisual(mjVisual_* vis);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern mjModel_* mj_copyModel(mjModel_* dest, mjModel_* src);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_saveModel(mjModel_* m, [MarshalAs(UnmanagedType.LPStr)]string filename, void* buffer, int buffer_sz);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern mjModel_* mj_loadModel([MarshalAs(UnmanagedType.LPStr)]string filename, void* vfs);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_deleteModel(mjModel_* m);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mj_sizeModel(mjModel_* m);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern mjData_* mj_makeData(mjModel_* m);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern mjData_* mj_copyData(mjData_* dest, mjModel_* m, mjData_* src);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_resetData(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_resetDataDebug(mjModel_* m, mjData_* d, byte debug_value);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_resetDataKeyframe(mjModel_* m, mjData_* d, int key);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double* mj_stackAlloc(mjData_* d, int size);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_deleteData(mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_resetCallbacks();
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_setConst(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mj_setLengthRange(mjModel_* m, mjData_* d, int index, mjLROpt_* opt, StringBuilder error, int error_sz);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_printFormattedModel(mjModel_* m, [MarshalAs(UnmanagedType.LPStr)]string filename, [MarshalAs(UnmanagedType.LPStr)]string float_format);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_printModel(mjModel_* m, [MarshalAs(UnmanagedType.LPStr)]string filename);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_printFormattedData(mjModel_* m, mjData_* d, [MarshalAs(UnmanagedType.LPStr)]string filename, [MarshalAs(UnmanagedType.LPStr)]string float_format);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_printData(mjModel_* m, mjData_* d, [MarshalAs(UnmanagedType.LPStr)]string filename);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_printMat(double* mat, int nr, int nc);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_printMatSparse(double* mat, int nr, int* rownnz, int* rowadr, int* colind);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_fwdPosition(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_fwdVelocity(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_fwdActuation(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_fwdAcceleration(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_fwdConstraint(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_Euler(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_RungeKutta(mjModel_* m, mjData_* d, int N);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_invPosition(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_invVelocity(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_invConstraint(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_compareFwdInv(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_sensorPos(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_sensorVel(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_sensorAcc(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_energyPos(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_energyVel(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_checkPos(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_checkVel(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_checkAcc(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_kinematics(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_comPos(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_camlight(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_tendon(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_transmission(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_crb(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_factorM(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_solveM(mjModel_* m, mjData_* d, double* x, double* y, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_solveM2(mjModel_* m, mjData_* d, double* x, double* y, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_comVel(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_passive(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_subtreeVel(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_rne(mjModel_* m, mjData_* d, int flg_acc, double* result);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_rnePostConstraint(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_collision(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_makeConstraint(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_projectConstraint(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_referenceConstraint(mjModel_* m, mjData_* d);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_constraintUpdate(mjModel_* m, mjData_* d, double* jar, double* cost, int flg_coneHessian);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mj_addContact(mjModel_* m, mjData_* d, mjContact_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mj_isPyramidal(mjModel_* m);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mj_isSparse(mjModel_* m);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mj_isDual(mjModel_* m);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_mulJacVec(mjModel_* m, mjData_* d, double* res, double* vec);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_mulJacTVec(mjModel_* m, mjData_* d, double* res, double* vec);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_jac(mjModel_* m, mjData_* d, double* jacp, double* jacr, double* point, int body);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_jacBody(mjModel_* m, mjData_* d, double* jacp, double* jacr, int body);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_jacBodyCom(mjModel_* m, mjData_* d, double* jacp, double* jacr, int body);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_jacGeom(mjModel_* m, mjData_* d, double* jacp, double* jacr, int geom);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_jacSite(mjModel_* m, mjData_* d, double* jacp, double* jacr, int site);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_jacPointAxis(mjModel_* m, mjData_* d, double* jacPoint, double* jacAxis, double* point, double* axis, int body);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mj_name2id(mjModel_* m, int type, [MarshalAs(UnmanagedType.LPStr)]string name);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.LPStr)]
public static unsafe extern string mj_id2name(mjModel_* m, int type, int id);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_fullM(mjModel_* m, double* dst, double* M);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_mulM(mjModel_* m, mjData_* d, double* res, double* vec);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_mulM2(mjModel_* m, mjData_* d, double* res, double* vec);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_addM(mjModel_* m, mjData_* d, double* dst, int* rownnz, int* rowadr, int* colind);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_applyFT(mjModel_* m, mjData_* d, double* force, double* torque, double* point, int body, double* qfrc_target);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_objectVelocity(mjModel_* m, mjData_* d, int objtype, int objid, double* res, int flg_local);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_objectAcceleration(mjModel_* m, mjData_* d, int objtype, int objid, double* res, int flg_local);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_contactForce(mjModel_* m, mjData_* d, int id, double* result);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_differentiatePos(mjModel_* m, double* qvel, double dt, double* qpos1, double* qpos2);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_integratePos(mjModel_* m, double* qpos, double* qvel, double dt);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_normalizeQuat(mjModel_* m, double* qpos);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_local2Global(mjData_* d, double* xpos, double* xmat, double* pos, double* quat, int body, byte sameframe);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mj_getTotalmass(mjModel_* m);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_setTotalmass(mjModel_* m, double newmass);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mj_version();
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mj_ray(mjModel_* m, mjData_* d, double* pnt, double* vec, byte* geomgroup, byte flg_static, int bodyexclude, int* geomid);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mj_rayHfield(mjModel_* m, mjData_* d, int geomid, double* pnt, double* vec);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mj_rayMesh(mjModel_* m, mjData_* d, int geomid, double* pnt, double* vec);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_rayGeom(double* pos, double* mat, double* size, double* pnt, double* vec, int geomtype);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_raySkin(int nface, int nvert, int* face, float* vert, double* pnt, double* vec, int* vertid);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_defaultCamera(mjvCamera_* cam);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_defaultPerturb(mjvPerturb_* pert);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_room2model(double* modelpos, double* modelquat, double* roompos, double* roomquat, mjvScene_* scn);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_model2room(double* roompos, double* roomquat, double* modelpos, double* modelquat, mjvScene_* scn);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_cameraInModel(double* headpos, double* forward, double* up, mjvScene_* scn);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_cameraInRoom(double* headpos, double* forward, double* up, mjvScene_* scn);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mjv_frustumHeight(mjvScene_* scn);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_alignToCamera(double* res, double* vec, double* forward);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_moveCamera(mjModel_* m, int action, double reldx, double reldy, mjvScene_* scn, mjvCamera_* cam);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_movePerturb(mjModel_* m, mjData_* d, int action, double reldx, double reldy, mjvScene_* scn, mjvPerturb_* pert);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_moveModel(mjModel_* m, int action, double reldx, double reldy, double* roomup, mjvScene_* scn);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_initPerturb(mjModel_* m, mjData_* d, mjvScene_* scn, mjvPerturb_* pert);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_applyPerturbPose(mjModel_* m, mjData_* d, mjvPerturb_* pert, int flg_paused);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_applyPerturbForce(mjModel_* m, mjData_* d, mjvPerturb_* pert);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern mjvGLCamera_* mjv_averageCamera(mjvGLCamera_* cam1, mjvGLCamera_* cam2);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mjv_select(mjModel_* m, mjData_* d, mjvOption_* vopt, double aspectratio, double relx, double rely, mjvScene_* scn, double* selpnt, int* geomid, int* skinid);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_defaultOption(mjvOption_* opt);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_defaultFigure(mjvFigure_* fig);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_initGeom(mjvGeom_* geom, int type, double* size, double* pos, double* mat, float* rgba);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_makeConnector(mjvGeom_* geom, int type, double width, double a0, double a1, double a2, double b0, double b1, double b2);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_defaultScene(mjvScene_* scn);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_makeScene(mjModel_* m, mjvScene_* scn, int maxgeom);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_freeScene(mjvScene_* scn);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_updateScene(mjModel_* m, mjData_* d, mjvOption_* opt, mjvPerturb_* pert, mjvCamera_* cam, int catmask, mjvScene_* scn);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_addGeoms(mjModel_* m, mjData_* d, mjvOption_* opt, mjvPerturb_* pert, int catmask, mjvScene_* scn);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_makeLights(mjModel_* m, mjData_* d, mjvScene_* scn);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_updateCamera(mjModel_* m, mjData_* d, mjvCamera_* cam, mjvScene_* scn);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjv_updateSkin(mjModel_* m, mjData_* d, mjvScene_* scn);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_defaultContext(mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_makeContext(mjModel_* m, mjrContext_* con, int fontscale);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_changeFont(int fontscale, mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_addAux(int index, int width, int height, int samples, mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_freeContext(mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_uploadTexture(mjModel_* m, mjrContext_* con, int texid);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_uploadMesh(mjModel_* m, mjrContext_* con, int meshid);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_uploadHField(mjModel_* m, mjrContext_* con, int hfieldid);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_restoreBuffer(mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_setBuffer(int framebuffer, mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_readPixels(byte* rgb, float* depth, mjrRect_* viewport, mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_drawPixels(byte* rgb, float* depth, mjrRect_* viewport, mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_blitBuffer(mjrRect_* src, mjrRect_* dst, int flg_color, int flg_depth, mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_setAux(int index, mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_blitAux(int index, mjrRect_* src, int left, int bottom, mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_text(int font, [MarshalAs(UnmanagedType.LPStr)]string txt, mjrContext_* con, float x, float y, float r, float g, float b);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_overlay(int font, int gridpos, mjrRect_* viewport, [MarshalAs(UnmanagedType.LPStr)]string overlay, [MarshalAs(UnmanagedType.LPStr)]string overlay2, mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern mjrRect_* mjr_maxViewport(mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_rectangle(mjrRect_* viewport, float r, float g, float b, float a);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_label(mjrRect_* viewport, int font, [MarshalAs(UnmanagedType.LPStr)]string txt, float r, float g, float b, float a, float rt, float gt, float bt, mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_figure(mjrRect_* viewport, mjvFigure_* fig, mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_render(mjrRect_* viewport, mjvScene_* scn, mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjr_finish();
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mjr_getError();
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mjr_findRect(int x, int y, int nrect, mjrRect_* rect);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern mjuiThemeSpacing_* mjui_themeSpacing(int ind);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern mjuiThemeColor_* mjui_themeColor(int ind);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjui_add(mjUI_* ui, mjuiDef_* def);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjui_addToSection(mjUI_* ui, int sect, mjuiDef_* def);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjui_resize(mjUI_* ui, mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjui_update(int section, int item, mjUI_* ui, mjuiState_* state, mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern mjuiItem_* mjui_event(mjUI_* ui, mjuiState_* state, mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mjui_render(mjUI_* ui, mjuiState_* state, mjrContext_* con);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_error([MarshalAs(UnmanagedType.LPStr)]string msg);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_error_i([MarshalAs(UnmanagedType.LPStr)]string msg, int i);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_error_s([MarshalAs(UnmanagedType.LPStr)]string msg, [MarshalAs(UnmanagedType.LPStr)]string text);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_warning([MarshalAs(UnmanagedType.LPStr)]string msg);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_warning_i([MarshalAs(UnmanagedType.LPStr)]string msg, int i);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_warning_s([MarshalAs(UnmanagedType.LPStr)]string msg, [MarshalAs(UnmanagedType.LPStr)]string text);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_clearHandlers();
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void* mju_malloc(uint size);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_free(void* ptr);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mj_warning(mjData_* d, int warning, int info);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_writeLog([MarshalAs(UnmanagedType.LPStr)]string type, [MarshalAs(UnmanagedType.LPStr)]string msg);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_zero3(double* res);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_copy3(double* res, double* data);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_scl3(double* res, double* vec, double scl);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_add3(double* res, double* vec1, double* vec2);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_sub3(double* res, double* vec1, double* vec2);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_addTo3(double* res, double* vec);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_subFrom3(double* res, double* vec);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_addToScl3(double* res, double* vec, double scl);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_addScl3(double* res, double* vec1, double* vec2, double scl);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_normalize3(double* res);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_norm3(double* vec);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_dot3(double* vec1, double* vec2);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_dist3(double* pos1, double* pos2);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_rotVecMat(double* res, double* vec, double* mat);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_rotVecMatT(double* res, double* vec, double* mat);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_cross(double* res, double* a, double* b);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_zero4(double* res);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_unit4(double* res);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_copy4(double* res, double* data);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_normalize4(double* res);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_zero(double* res, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_copy(double* res, double* data, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_sum(double* vec, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_L1(double* vec, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_scl(double* res, double* vec, double scl, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_add(double* res, double* vec1, double* vec2, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_sub(double* res, double* vec1, double* vec2, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_addTo(double* res, double* vec, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_subFrom(double* res, double* vec, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_addToScl(double* res, double* vec, double scl, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_addScl(double* res, double* vec1, double* vec2, double scl, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_normalize(double* res, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_norm(double* res, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_dot(double* vec1, double* vec2, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_mulMatVec(double* res, double* mat, double* vec, int nr, int nc);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_mulMatTVec(double* res, double* mat, double* vec, int nr, int nc);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_transpose(double* res, double* mat, int nr, int nc);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_mulMatMat(double* res, double* mat1, double* mat2, int r1, int c1, int c2);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_mulMatMatT(double* res, double* mat1, double* mat2, int r1, int c1, int r2);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_mulMatTMat(double* res, double* mat1, double* mat2, int r1, int c1, int c2);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_sqrMatTD(double* res, double* mat, double* diag, int nr, int nc);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_transformSpatial(double* res, double* vec, int flg_force, double* newpos, double* oldpos, double* rotnew2old);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_rotVecQuat(double* res, double* vec, double* quat);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_negQuat(double* res, double* quat);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_mulQuat(double* res, double* quat1, double* quat2);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_mulQuatAxis(double* res, double* quat, double* axis);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_axisAngle2Quat(double* res, double* axis, double angle);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_quat2Vel(double* res, double* quat, double dt);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_subQuat(double* res, double* qa, double* qb);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_quat2Mat(double* res, double* quat);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_mat2Quat(double* quat, double* mat);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_derivQuat(double* res, double* quat, double* vel);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_quatIntegrate(double* quat, double* vel, double scale);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_quatZ2Vec(double* quat, double* vec);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_mulPose(double* posres, double* quatres, double* pos1, double* quat1, double* pos2, double* quat2);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_negPose(double* posres, double* quatres, double* pos, double* quat);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_trnVecPose(double* res, double* pos, double* quat, double* vec);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mju_cholFactor(double* mat, int n, double mindiag);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_cholSolve(double* res, double* mat, double* vec, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mju_cholUpdate(double* mat, double* x, int n, int flg_plus);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mju_eig3(double* eigval, double* eigvec, double* quat, double* mat);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_muscleGain(double len, double vel, double* lengthrange, double acc0, double* prm);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_muscleBias(double len, double* lengthrange, double acc0, double* prm);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_muscleDynamics(double ctrl, double act, double* prm);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_encodePyramid(double* pyramid, double* force, double* mu, int dim);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_decodePyramid(double* force, double* pyramid, double* mu, int dim);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_springDamper(double pos0, double vel0, double Kp, double Kv, double dt);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_min(double a, double b);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_max(double a, double b);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_sign(double x);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mju_round(double x);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.LPStr)]
public static unsafe extern string mju_type2Str(int type);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mju_str2Type([MarshalAs(UnmanagedType.LPStr)]string str);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.LPStr)]
public static unsafe extern string mju_warningText(int warning, int info);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mju_isBad(double x);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern int mju_isZero(double* vec, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_standardNormal(double* num2);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_f2n(double* res, float* vec, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_n2f(float* res, double* vec, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_d2n(double* res, double* vec, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_n2d(double* res, double* vec, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_insertionSort(double* list, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern void mju_insertionSortInt(int* list, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_Halton(int index, int base_);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.LPStr)]
public static unsafe extern string mju_strncpy(StringBuilder dst, [MarshalAs(UnmanagedType.LPStr)]string src, int n);
[DllImport("mujoco", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern double mju_sigmoid(double x);
}
}