1#[repr(C)]
4pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
5impl<T> __BindgenUnionField<T> {
6 #[inline]
7 pub const fn new() -> Self {
8 __BindgenUnionField(::std::marker::PhantomData)
9 }
10 #[inline]
11 pub unsafe fn as_ref(&self) -> &T {
12 ::std::mem::transmute(self)
13 }
14 #[inline]
15 pub unsafe fn as_mut(&mut self) -> &mut T {
16 ::std::mem::transmute(self)
17 }
18}
19impl<T> ::std::default::Default for __BindgenUnionField<T> {
20 #[inline]
21 fn default() -> Self {
22 Self::new()
23 }
24}
25impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
26 #[inline]
27 fn clone(&self) -> Self {
28 *self
29 }
30}
31impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
32impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
33 fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
34 fmt.write_str("__BindgenUnionField")
35 }
36}
37impl<T> ::std::hash::Hash for __BindgenUnionField<T> {
38 fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {}
39}
40impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> {
41 fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
42 true
43 }
44}
45impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {}
46pub const mjVERSION_HEADER: u32 = 3009000;
47pub const mjMINVAL: f64 = 0.000000000000001;
48pub const mjPI: f64 = 3.141592653589793;
49pub const mjMAXVAL: f64 = 10000000000.0;
50pub const mjMINMU: f64 = 0.00001;
51pub const mjMINIMP: f64 = 0.0001;
52pub const mjMAXIMP: f64 = 0.9999;
53pub const mjMAXCONPAIR: u32 = 50;
54pub const mjMAXTREEDEPTH: u32 = 50;
55pub const mjMAXFLEXNODES: u32 = 27;
56pub const mjMINAWAKE: u32 = 10;
57pub const mjNEQDATA: u32 = 11;
58pub const mjNDYN: u32 = 10;
59pub const mjNGAIN: u32 = 10;
60pub const mjNBIAS: u32 = 10;
61pub const mjNFLUID: u32 = 12;
62pub const mjNREF: u32 = 2;
63pub const mjNIMP: u32 = 5;
64pub const mjNPOLY: u32 = 2;
65pub const mjNSENS: u32 = 3;
66pub const mjNSOLVER: u32 = 200;
67pub const mjNISLAND: u32 = 20;
68pub const mjMAXTHREAD: u32 = 128;
69pub const mjNGROUP: u32 = 6;
70pub const mjMAXLIGHT: u32 = 100;
71pub const mjMAXOVERLAY: u32 = 500;
72pub const mjMAXLINE: u32 = 100;
73pub const mjMAXLINEPNT: u32 = 1001;
74pub const mjMAXPLANEGRID: u32 = 200;
75pub const mjNAUX: u32 = 10;
76pub const mjMAXTEXTURE: u32 = 1000;
77pub const mjMAXMATERIAL: u32 = 1000;
78pub const mjMAXUISECT: u32 = 10;
79pub const mjMAXUIITEM: u32 = 200;
80pub const mjMAXUITEXT: u32 = 300;
81pub const mjMAXUINAME: u32 = 40;
82pub const mjMAXUIMULTI: u32 = 35;
83pub const mjMAXUIEDIT: u32 = 7;
84pub const mjMAXUIRECT: u32 = 25;
85pub const mjSEPCLOSED: u32 = 1000;
86pub const mjPRESERVE: u32 = 2000;
87pub const mjKEY_ESCAPE: u32 = 256;
88pub const mjKEY_ENTER: u32 = 257;
89pub const mjKEY_TAB: u32 = 258;
90pub const mjKEY_BACKSPACE: u32 = 259;
91pub const mjKEY_INSERT: u32 = 260;
92pub const mjKEY_DELETE: u32 = 261;
93pub const mjKEY_RIGHT: u32 = 262;
94pub const mjKEY_LEFT: u32 = 263;
95pub const mjKEY_DOWN: u32 = 264;
96pub const mjKEY_UP: u32 = 265;
97pub const mjKEY_PAGE_UP: u32 = 266;
98pub const mjKEY_PAGE_DOWN: u32 = 267;
99pub const mjKEY_HOME: u32 = 268;
100pub const mjKEY_END: u32 = 269;
101pub const mjKEY_F1: u32 = 290;
102pub const mjKEY_F2: u32 = 291;
103pub const mjKEY_F3: u32 = 292;
104pub const mjKEY_F4: u32 = 293;
105pub const mjKEY_F5: u32 = 294;
106pub const mjKEY_F6: u32 = 295;
107pub const mjKEY_F7: u32 = 296;
108pub const mjKEY_F8: u32 = 297;
109pub const mjKEY_F9: u32 = 298;
110pub const mjKEY_F10: u32 = 299;
111pub const mjKEY_F11: u32 = 300;
112pub const mjKEY_F12: u32 = 301;
113pub const mjKEY_NUMPAD_0: u32 = 320;
114pub const mjKEY_NUMPAD_9: u32 = 329;
115pub type mjtNum = f64;
116pub type mjtByte = ::std::os::raw::c_uchar;
117pub type mjtBool = bool;
118pub type mjtSize = i64;
119#[repr(u32)]
120#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
121pub enum mjtDisableBit_ {
122 mjDSBL_CONSTRAINT = 1,
123 mjDSBL_EQUALITY = 2,
124 mjDSBL_FRICTIONLOSS = 4,
125 mjDSBL_LIMIT = 8,
126 mjDSBL_CONTACT = 16,
127 mjDSBL_SPRING = 32,
128 mjDSBL_DAMPER = 64,
129 mjDSBL_GRAVITY = 128,
130 mjDSBL_CLAMPCTRL = 256,
131 mjDSBL_WARMSTART = 512,
132 mjDSBL_FILTERPARENT = 1024,
133 mjDSBL_ACTUATION = 2048,
134 mjDSBL_REFSAFE = 4096,
135 mjDSBL_SENSOR = 8192,
136 mjDSBL_MIDPHASE = 16384,
137 mjDSBL_EULERDAMP = 32768,
138 mjDSBL_AUTORESET = 65536,
139 mjDSBL_NATIVECCD = 131072,
140 mjDSBL_ISLAND = 262144,
141 mjDSBL_MULTICCD = 524288,
142 mjNDISABLE = 20,
143}
144pub use self::mjtDisableBit_ as mjtDisableBit;
145#[repr(u32)]
146#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
147pub enum mjtEnableBit_ {
148 mjENBL_OVERRIDE = 1,
149 mjENBL_ENERGY = 2,
150 mjENBL_FWDINV = 4,
151 mjENBL_INVDISCRETE = 8,
152 mjENBL_SLEEP = 16,
153 mjENBL_DIAGEXACT = 32,
154 mjNENABLE = 6,
155}
156pub use self::mjtEnableBit_ as mjtEnableBit;
157#[repr(u32)]
158#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
159pub enum mjtJoint_ {
160 mjJNT_FREE = 0,
161 mjJNT_BALL = 1,
162 mjJNT_SLIDE = 2,
163 mjJNT_HINGE = 3,
164}
165pub use self::mjtJoint_ as mjtJoint;
166#[repr(u32)]
167#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
168pub enum mjtGeom_ {
169 mjGEOM_PLANE = 0,
170 mjGEOM_HFIELD = 1,
171 mjGEOM_SPHERE = 2,
172 mjGEOM_CAPSULE = 3,
173 mjGEOM_ELLIPSOID = 4,
174 mjGEOM_CYLINDER = 5,
175 mjGEOM_BOX = 6,
176 mjGEOM_MESH = 7,
177 mjGEOM_SDF = 8,
178 mjNGEOMTYPES = 9,
179 mjGEOM_ARROW = 100,
180 mjGEOM_ARROW1 = 101,
181 mjGEOM_ARROW2 = 102,
182 mjGEOM_LINE = 103,
183 mjGEOM_LINEBOX = 104,
184 mjGEOM_FLEX = 105,
185 mjGEOM_SKIN = 106,
186 mjGEOM_LABEL = 107,
187 mjGEOM_TRIANGLE = 108,
188 mjGEOM_NONE = 1001,
189}
190pub use self::mjtGeom_ as mjtGeom;
191#[repr(u32)]
192#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
193pub enum mjtProjection_ {
194 mjPROJ_PERSPECTIVE = 0,
195 mjPROJ_ORTHOGRAPHIC = 1,
196}
197pub use self::mjtProjection_ as mjtProjection;
198#[repr(u32)]
199#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
200pub enum mjtCamLight_ {
201 mjCAMLIGHT_FIXED = 0,
202 mjCAMLIGHT_TRACK = 1,
203 mjCAMLIGHT_TRACKCOM = 2,
204 mjCAMLIGHT_TARGETBODY = 3,
205 mjCAMLIGHT_TARGETBODYCOM = 4,
206}
207pub use self::mjtCamLight_ as mjtCamLight;
208#[repr(u32)]
209#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
210pub enum mjtLightType_ {
211 mjLIGHT_SPOT = 0,
212 mjLIGHT_DIRECTIONAL = 1,
213 mjLIGHT_POINT = 2,
214 mjLIGHT_IMAGE = 3,
215}
216pub use self::mjtLightType_ as mjtLightType;
217#[repr(u32)]
218#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
219pub enum mjtTexture_ {
220 mjTEXTURE_2D = 0,
221 mjTEXTURE_CUBE = 1,
222 mjTEXTURE_SKYBOX = 2,
223}
224pub use self::mjtTexture_ as mjtTexture;
225#[repr(u32)]
226#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
227pub enum mjtTextureRole_ {
228 mjTEXROLE_USER = 0,
229 mjTEXROLE_RGB = 1,
230 mjTEXROLE_OCCLUSION = 2,
231 mjTEXROLE_ROUGHNESS = 3,
232 mjTEXROLE_METALLIC = 4,
233 mjTEXROLE_NORMAL = 5,
234 mjTEXROLE_OPACITY = 6,
235 mjTEXROLE_EMISSIVE = 7,
236 mjTEXROLE_RGBA = 8,
237 mjTEXROLE_ORM = 9,
238 mjNTEXROLE = 10,
239}
240pub use self::mjtTextureRole_ as mjtTextureRole;
241#[repr(u32)]
242#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
243pub enum mjtColorSpace_ {
244 mjCOLORSPACE_AUTO = 0,
245 mjCOLORSPACE_LINEAR = 1,
246 mjCOLORSPACE_SRGB = 2,
247}
248pub use self::mjtColorSpace_ as mjtColorSpace;
249#[repr(u32)]
250#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
251pub enum mjtIntegrator_ {
252 mjINT_EULER = 0,
253 mjINT_RK4 = 1,
254 mjINT_IMPLICIT = 2,
255 mjINT_IMPLICITFAST = 3,
256}
257pub use self::mjtIntegrator_ as mjtIntegrator;
258#[repr(u32)]
259#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
260pub enum mjtCone_ {
261 mjCONE_PYRAMIDAL = 0,
262 mjCONE_ELLIPTIC = 1,
263}
264pub use self::mjtCone_ as mjtCone;
265#[repr(u32)]
266#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
267pub enum mjtJacobian_ {
268 mjJAC_DENSE = 0,
269 mjJAC_SPARSE = 1,
270 mjJAC_AUTO = 2,
271}
272pub use self::mjtJacobian_ as mjtJacobian;
273#[repr(u32)]
274#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
275pub enum mjtSolver_ {
276 mjSOL_PGS = 0,
277 mjSOL_CG = 1,
278 mjSOL_NEWTON = 2,
279}
280pub use self::mjtSolver_ as mjtSolver;
281#[repr(u32)]
282#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
283pub enum mjtEq_ {
284 mjEQ_CONNECT = 0,
285 mjEQ_WELD = 1,
286 mjEQ_JOINT = 2,
287 mjEQ_TENDON = 3,
288 mjEQ_FLEX = 4,
289 mjEQ_FLEXVERT = 5,
290 mjEQ_FLEXSTRAIN = 6,
291 mjEQ_DISTANCE = 7,
292}
293pub use self::mjtEq_ as mjtEq;
294#[repr(u32)]
295#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
296pub enum mjtWrap_ {
297 mjWRAP_NONE = 0,
298 mjWRAP_JOINT = 1,
299 mjWRAP_PULLEY = 2,
300 mjWRAP_SITE = 3,
301 mjWRAP_SPHERE = 4,
302 mjWRAP_CYLINDER = 5,
303}
304pub use self::mjtWrap_ as mjtWrap;
305#[repr(u32)]
306#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
307pub enum mjtTrn_ {
308 mjTRN_JOINT = 0,
309 mjTRN_JOINTINPARENT = 1,
310 mjTRN_SLIDERCRANK = 2,
311 mjTRN_TENDON = 3,
312 mjTRN_SITE = 4,
313 mjTRN_BODY = 5,
314 mjTRN_UNDEFINED = 1000,
315}
316pub use self::mjtTrn_ as mjtTrn;
317#[repr(u32)]
318#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
319pub enum mjtDyn_ {
320 mjDYN_NONE = 0,
321 mjDYN_INTEGRATOR = 1,
322 mjDYN_FILTER = 2,
323 mjDYN_FILTEREXACT = 3,
324 mjDYN_MUSCLE = 4,
325 mjDYN_DCMOTOR = 5,
326 mjDYN_USER = 6,
327}
328pub use self::mjtDyn_ as mjtDyn;
329#[repr(u32)]
330#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
331pub enum mjtGain_ {
332 mjGAIN_FIXED = 0,
333 mjGAIN_AFFINE = 1,
334 mjGAIN_MUSCLE = 2,
335 mjGAIN_DCMOTOR = 3,
336 mjGAIN_USER = 4,
337}
338pub use self::mjtGain_ as mjtGain;
339#[repr(u32)]
340#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
341pub enum mjtBias_ {
342 mjBIAS_NONE = 0,
343 mjBIAS_AFFINE = 1,
344 mjBIAS_MUSCLE = 2,
345 mjBIAS_DCMOTOR = 3,
346 mjBIAS_USER = 4,
347}
348pub use self::mjtBias_ as mjtBias;
349#[repr(u32)]
350#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
351pub enum mjtObj_ {
352 mjOBJ_UNKNOWN = 0,
353 mjOBJ_BODY = 1,
354 mjOBJ_XBODY = 2,
355 mjOBJ_JOINT = 3,
356 mjOBJ_DOF = 4,
357 mjOBJ_GEOM = 5,
358 mjOBJ_SITE = 6,
359 mjOBJ_CAMERA = 7,
360 mjOBJ_LIGHT = 8,
361 mjOBJ_FLEX = 9,
362 mjOBJ_MESH = 10,
363 mjOBJ_SKIN = 11,
364 mjOBJ_HFIELD = 12,
365 mjOBJ_TEXTURE = 13,
366 mjOBJ_MATERIAL = 14,
367 mjOBJ_PAIR = 15,
368 mjOBJ_EXCLUDE = 16,
369 mjOBJ_EQUALITY = 17,
370 mjOBJ_TENDON = 18,
371 mjOBJ_ACTUATOR = 19,
372 mjOBJ_SENSOR = 20,
373 mjOBJ_NUMERIC = 21,
374 mjOBJ_TEXT = 22,
375 mjOBJ_TUPLE = 23,
376 mjOBJ_KEY = 24,
377 mjOBJ_PLUGIN = 25,
378 mjNOBJECT = 26,
379 mjOBJ_FRAME = 100,
380 mjOBJ_DEFAULT = 101,
381 mjOBJ_MODEL = 102,
382}
383pub use self::mjtObj_ as mjtObj;
384#[repr(u32)]
385#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
386pub enum mjtSensor_ {
387 mjSENS_TOUCH = 0,
388 mjSENS_ACCELEROMETER = 1,
389 mjSENS_VELOCIMETER = 2,
390 mjSENS_GYRO = 3,
391 mjSENS_FORCE = 4,
392 mjSENS_TORQUE = 5,
393 mjSENS_MAGNETOMETER = 6,
394 mjSENS_RANGEFINDER = 7,
395 mjSENS_CAMPROJECTION = 8,
396 mjSENS_JOINTPOS = 9,
397 mjSENS_JOINTVEL = 10,
398 mjSENS_TENDONPOS = 11,
399 mjSENS_TENDONVEL = 12,
400 mjSENS_ACTUATORPOS = 13,
401 mjSENS_ACTUATORVEL = 14,
402 mjSENS_ACTUATORFRC = 15,
403 mjSENS_JOINTACTFRC = 16,
404 mjSENS_TENDONACTFRC = 17,
405 mjSENS_BALLQUAT = 18,
406 mjSENS_BALLANGVEL = 19,
407 mjSENS_JOINTLIMITPOS = 20,
408 mjSENS_JOINTLIMITVEL = 21,
409 mjSENS_JOINTLIMITFRC = 22,
410 mjSENS_TENDONLIMITPOS = 23,
411 mjSENS_TENDONLIMITVEL = 24,
412 mjSENS_TENDONLIMITFRC = 25,
413 mjSENS_FRAMEPOS = 26,
414 mjSENS_FRAMEQUAT = 27,
415 mjSENS_FRAMEXAXIS = 28,
416 mjSENS_FRAMEYAXIS = 29,
417 mjSENS_FRAMEZAXIS = 30,
418 mjSENS_FRAMELINVEL = 31,
419 mjSENS_FRAMEANGVEL = 32,
420 mjSENS_FRAMELINACC = 33,
421 mjSENS_FRAMEANGACC = 34,
422 mjSENS_SUBTREECOM = 35,
423 mjSENS_SUBTREELINVEL = 36,
424 mjSENS_SUBTREEANGMOM = 37,
425 mjSENS_INSIDESITE = 38,
426 mjSENS_GEOMDIST = 39,
427 mjSENS_GEOMNORMAL = 40,
428 mjSENS_GEOMFROMTO = 41,
429 mjSENS_CONTACT = 42,
430 mjSENS_E_POTENTIAL = 43,
431 mjSENS_E_KINETIC = 44,
432 mjSENS_CLOCK = 45,
433 mjSENS_TACTILE = 46,
434 mjSENS_PLUGIN = 47,
435 mjSENS_USER = 48,
436}
437pub use self::mjtSensor_ as mjtSensor;
438#[repr(u32)]
439#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
440pub enum mjtStage_ {
441 mjSTAGE_NONE = 0,
442 mjSTAGE_POS = 1,
443 mjSTAGE_VEL = 2,
444 mjSTAGE_ACC = 3,
445}
446pub use self::mjtStage_ as mjtStage;
447#[repr(u32)]
448#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
449pub enum mjtDataType_ {
450 mjDATATYPE_REAL = 0,
451 mjDATATYPE_POSITIVE = 1,
452 mjDATATYPE_AXIS = 2,
453 mjDATATYPE_QUATERNION = 3,
454}
455pub use self::mjtDataType_ as mjtDataType;
456#[repr(u32)]
457#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
458pub enum mjtConDataField_ {
459 mjCONDATA_FOUND = 0,
460 mjCONDATA_FORCE = 1,
461 mjCONDATA_TORQUE = 2,
462 mjCONDATA_DIST = 3,
463 mjCONDATA_POS = 4,
464 mjCONDATA_NORMAL = 5,
465 mjCONDATA_TANGENT = 6,
466 mjNCONDATA = 7,
467}
468pub use self::mjtConDataField_ as mjtConDataField;
469#[repr(u32)]
470#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
471pub enum mjtRayDataField_ {
472 mjRAYDATA_DIST = 0,
473 mjRAYDATA_DIR = 1,
474 mjRAYDATA_ORIGIN = 2,
475 mjRAYDATA_POINT = 3,
476 mjRAYDATA_NORMAL = 4,
477 mjRAYDATA_DEPTH = 5,
478 mjNRAYDATA = 6,
479}
480pub use self::mjtRayDataField_ as mjtRayDataField;
481#[repr(u32)]
482#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
483pub enum mjtCamOutBit_ {
484 mjCAMOUT_RGB = 1,
485 mjCAMOUT_DEPTH = 2,
486 mjCAMOUT_DIST = 4,
487 mjCAMOUT_NORMAL = 8,
488 mjCAMOUT_SEG = 16,
489 mjNCAMOUT = 5,
490}
491pub use self::mjtCamOutBit_ as mjtCamOutBit;
492#[repr(u8)]
493#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
494pub enum mjtSameFrame_ {
495 mjSAMEFRAME_NONE = 0,
496 mjSAMEFRAME_BODY = 1,
497 mjSAMEFRAME_INERTIA = 2,
498 mjSAMEFRAME_BODYROT = 3,
499 mjSAMEFRAME_INERTIAROT = 4,
500}
501pub use self::mjtSameFrame_ as mjtSameFrame;
502#[repr(u32)]
503#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
504pub enum mjtSleepPolicy_ {
505 mjSLEEP_AUTO = 0,
506 mjSLEEP_AUTO_NEVER = 1,
507 mjSLEEP_AUTO_ALLOWED = 2,
508 mjSLEEP_NEVER = 3,
509 mjSLEEP_ALLOWED = 4,
510 mjSLEEP_INIT = 5,
511}
512pub use self::mjtSleepPolicy_ as mjtSleepPolicy;
513#[repr(u32)]
514#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
515pub enum mjtLRMode_ {
516 mjLRMODE_NONE = 0,
517 mjLRMODE_MUSCLE = 1,
518 mjLRMODE_MUSCLEUSER = 2,
519 mjLRMODE_ALL = 3,
520}
521pub use self::mjtLRMode_ as mjtLRMode;
522#[repr(u32)]
523#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
524pub enum mjtFlexSelf_ {
525 mjFLEXSELF_NONE = 0,
526 mjFLEXSELF_NARROW = 1,
527 mjFLEXSELF_BVH = 2,
528 mjFLEXSELF_SAP = 3,
529 mjFLEXSELF_AUTO = 4,
530}
531pub use self::mjtFlexSelf_ as mjtFlexSelf;
532#[repr(u32)]
533#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
534pub enum mjtSDFType_ {
535 mjSDFTYPE_SINGLE = 0,
536 mjSDFTYPE_INTERSECTION = 1,
537 mjSDFTYPE_MIDSURFACE = 2,
538 mjSDFTYPE_COLLISION = 3,
539}
540pub use self::mjtSDFType_ as mjtSDFType;
541#[repr(u32)]
542#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
543pub enum mjtState_ {
544 mjSTATE_TIME = 1,
545 mjSTATE_QPOS = 2,
546 mjSTATE_QVEL = 4,
547 mjSTATE_ACT = 8,
548 mjSTATE_HISTORY = 16,
549 mjSTATE_WARMSTART = 32,
550 mjSTATE_CTRL = 64,
551 mjSTATE_QFRC_APPLIED = 128,
552 mjSTATE_XFRC_APPLIED = 256,
553 mjSTATE_EQ_ACTIVE = 512,
554 mjSTATE_MOCAP_POS = 1024,
555 mjSTATE_MOCAP_QUAT = 2048,
556 mjSTATE_USERDATA = 4096,
557 mjSTATE_PLUGIN = 8192,
558 mjNSTATE = 14,
559 mjSTATE_PHYSICS = 30,
560 mjSTATE_FULLPHYSICS = 8223,
561 mjSTATE_USER = 8128,
562 mjSTATE_INTEGRATION = 16383,
563}
564pub use self::mjtState_ as mjtState;
565#[repr(u32)]
566#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
567pub enum mjtConstraint_ {
568 mjCNSTR_EQUALITY = 0,
569 mjCNSTR_FRICTION_DOF = 1,
570 mjCNSTR_FRICTION_TENDON = 2,
571 mjCNSTR_LIMIT_JOINT = 3,
572 mjCNSTR_LIMIT_TENDON = 4,
573 mjCNSTR_CONTACT_FRICTIONLESS = 5,
574 mjCNSTR_CONTACT_PYRAMIDAL = 6,
575 mjCNSTR_CONTACT_ELLIPTIC = 7,
576}
577pub use self::mjtConstraint_ as mjtConstraint;
578#[repr(u32)]
579#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
580pub enum mjtConstraintState_ {
581 mjCNSTRSTATE_SATISFIED = 0,
582 mjCNSTRSTATE_QUADRATIC = 1,
583 mjCNSTRSTATE_LINEARNEG = 2,
584 mjCNSTRSTATE_LINEARPOS = 3,
585 mjCNSTRSTATE_CONE = 4,
586}
587pub use self::mjtConstraintState_ as mjtConstraintState;
588#[repr(u32)]
589#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
590pub enum mjtWarning_ {
591 mjWARN_INERTIA = 0,
592 mjWARN_CONTACTFULL = 1,
593 mjWARN_CNSTRFULL = 2,
594 mjWARN_BADQPOS = 3,
595 mjWARN_BADQVEL = 4,
596 mjWARN_BADQACC = 5,
597 mjWARN_BADCTRL = 6,
598 mjNWARNING = 7,
599}
600pub use self::mjtWarning_ as mjtWarning;
601#[repr(u32)]
602#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
603pub enum mjtTimer_ {
604 mjTIMER_STEP = 0,
605 mjTIMER_FORWARD = 1,
606 mjTIMER_INVERSE = 2,
607 mjTIMER_POSITION = 3,
608 mjTIMER_VELOCITY = 4,
609 mjTIMER_ACTUATION = 5,
610 mjTIMER_CONSTRAINT = 6,
611 mjTIMER_ADVANCE = 7,
612 mjTIMER_POS_KINEMATICS = 8,
613 mjTIMER_POS_INERTIA = 9,
614 mjTIMER_POS_COLLISION = 10,
615 mjTIMER_POS_MAKE = 11,
616 mjTIMER_POS_PROJECT = 12,
617 mjTIMER_COL_BROAD = 13,
618 mjTIMER_COL_NARROW = 14,
619 mjNTIMER = 15,
620}
621pub use self::mjtTimer_ as mjtTimer;
622#[repr(i32)]
623#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
624pub enum mjtSleepState_ {
625 mjS_STATIC = -1,
626 mjS_ASLEEP = 0,
627 mjS_AWAKE = 1,
628}
629pub use self::mjtSleepState_ as mjtSleepState;
630#[repr(C)]
631#[derive(Debug, Clone)]
632pub struct mjLROpt_ {
633 pub mode: ::std::os::raw::c_int,
634 pub useexisting: ::std::os::raw::c_int,
635 pub uselimit: ::std::os::raw::c_int,
636 pub accel: mjtNum,
637 pub maxforce: mjtNum,
638 pub timeconst: mjtNum,
639 pub timestep: mjtNum,
640 pub inttotal: mjtNum,
641 pub interval: mjtNum,
642 pub tolrange: mjtNum,
643}
644pub type mjLROpt = mjLROpt_;
645#[repr(C)]
646#[derive(Debug, Clone)]
647pub struct mjCache_ {
648 pub impl_: *mut ::std::os::raw::c_void,
649}
650pub type mjCache = mjCache_;
651#[repr(C)]
652#[derive(Debug, Clone)]
653pub struct mjVFS_ {
654 pub impl_: *mut ::std::os::raw::c_void,
655}
656pub type mjVFS = mjVFS_;
657#[repr(C)]
658#[cfg_attr(feature = "viewer", derive(mujoco_rs_derive::ThreeWayMerge))]
659#[derive(Debug, Clone, PartialEq)]
660pub struct mjOption_ {
661 pub timestep: mjtNum,
662 pub impratio: mjtNum,
663 pub tolerance: mjtNum,
664 pub ls_tolerance: mjtNum,
665 pub noslip_tolerance: mjtNum,
666 pub ccd_tolerance: mjtNum,
667 pub sleep_tolerance: mjtNum,
668 pub gravity: [mjtNum; 3usize],
669 pub wind: [mjtNum; 3usize],
670 pub magnetic: [mjtNum; 3usize],
671 pub density: mjtNum,
672 pub viscosity: mjtNum,
673 pub o_margin: mjtNum,
674 pub o_solref: [mjtNum; 2usize],
675 pub o_solimp: [mjtNum; 5usize],
676 pub o_friction: [mjtNum; 5usize],
677 pub integrator: ::std::os::raw::c_int,
678 pub cone: ::std::os::raw::c_int,
679 pub jacobian: ::std::os::raw::c_int,
680 pub solver: ::std::os::raw::c_int,
681 pub iterations: ::std::os::raw::c_int,
682 pub ls_iterations: ::std::os::raw::c_int,
683 pub noslip_iterations: ::std::os::raw::c_int,
684 pub ccd_iterations: ::std::os::raw::c_int,
685 pub disableflags: ::std::os::raw::c_int,
686 pub enableflags: ::std::os::raw::c_int,
687 pub disableactuator: ::std::os::raw::c_int,
688 pub sdf_initpoints: ::std::os::raw::c_int,
689 pub sdf_iterations: ::std::os::raw::c_int,
690}
691pub type mjOption = mjOption_;
692#[repr(C)]
693#[cfg_attr(feature = "viewer", derive(mujoco_rs_derive::ThreeWayMerge))]
694#[derive(Debug, Clone, PartialEq)]
695pub struct mjVisual_ {
696 pub global: mjVisual___bindgen_ty_1,
697 pub quality: mjVisual___bindgen_ty_2,
698 pub headlight: mjVisual___bindgen_ty_3,
699 pub map: mjVisual___bindgen_ty_4,
700 pub scale: mjVisual___bindgen_ty_5,
701 pub rgba: mjVisual___bindgen_ty_6,
702}
703#[repr(C)]
704#[cfg_attr(feature = "viewer", derive(mujoco_rs_derive::ThreeWayMerge))]
705#[derive(Debug, Clone, PartialEq)]
706pub struct mjVisual___bindgen_ty_1 {
707 pub cameraid: ::std::os::raw::c_int,
708 pub orthographic: ::std::os::raw::c_int,
709 pub fovy: f32,
710 pub ipd: f32,
711 pub azimuth: f32,
712 pub elevation: f32,
713 pub linewidth: f32,
714 pub glow: f32,
715 pub realtime: f32,
716 pub offwidth: ::std::os::raw::c_int,
717 pub offheight: ::std::os::raw::c_int,
718 pub ellipsoidinertia: ::std::os::raw::c_int,
719 pub bvactive: ::std::os::raw::c_int,
720}
721#[repr(C)]
722#[cfg_attr(feature = "viewer", derive(mujoco_rs_derive::ThreeWayMerge))]
723#[derive(Debug, Clone, PartialEq)]
724pub struct mjVisual___bindgen_ty_2 {
725 pub shadowsize: ::std::os::raw::c_int,
726 pub offsamples: ::std::os::raw::c_int,
727 pub numslices: ::std::os::raw::c_int,
728 pub numstacks: ::std::os::raw::c_int,
729 pub numquads: ::std::os::raw::c_int,
730}
731#[repr(C)]
732#[cfg_attr(feature = "viewer", derive(mujoco_rs_derive::ThreeWayMerge))]
733#[derive(Debug, Clone, PartialEq)]
734pub struct mjVisual___bindgen_ty_3 {
735 pub ambient: [f32; 3usize],
736 pub diffuse: [f32; 3usize],
737 pub specular: [f32; 3usize],
738 pub active: ::std::os::raw::c_int,
739}
740#[repr(C)]
741#[cfg_attr(feature = "viewer", derive(mujoco_rs_derive::ThreeWayMerge))]
742#[derive(Debug, Clone, PartialEq)]
743pub struct mjVisual___bindgen_ty_4 {
744 pub stiffness: f32,
745 pub stiffnessrot: f32,
746 pub force: f32,
747 pub torque: f32,
748 pub alpha: f32,
749 pub fogstart: f32,
750 pub fogend: f32,
751 pub znear: f32,
752 pub zfar: f32,
753 pub haze: f32,
754 pub shadowclip: f32,
755 pub shadowscale: f32,
756 pub actuatortendon: f32,
757}
758#[repr(C)]
759#[cfg_attr(feature = "viewer", derive(mujoco_rs_derive::ThreeWayMerge))]
760#[derive(Debug, Clone, PartialEq)]
761pub struct mjVisual___bindgen_ty_5 {
762 pub forcewidth: f32,
763 pub contactwidth: f32,
764 pub contactheight: f32,
765 pub connect: f32,
766 pub com: f32,
767 pub camera: f32,
768 pub light: f32,
769 pub selectpoint: f32,
770 pub jointlength: f32,
771 pub jointwidth: f32,
772 pub actuatorlength: f32,
773 pub actuatorwidth: f32,
774 pub framelength: f32,
775 pub framewidth: f32,
776 pub constraint: f32,
777 pub slidercrank: f32,
778 pub frustum: f32,
779}
780#[repr(C)]
781#[cfg_attr(feature = "viewer", derive(mujoco_rs_derive::ThreeWayMerge))]
782#[derive(Debug, Clone, PartialEq)]
783pub struct mjVisual___bindgen_ty_6 {
784 pub fog: [f32; 4usize],
785 pub haze: [f32; 4usize],
786 pub force: [f32; 4usize],
787 pub inertia: [f32; 4usize],
788 pub joint: [f32; 4usize],
789 pub actuator: [f32; 4usize],
790 pub actuatornegative: [f32; 4usize],
791 pub actuatorpositive: [f32; 4usize],
792 pub com: [f32; 4usize],
793 pub camera: [f32; 4usize],
794 pub light: [f32; 4usize],
795 pub selectpoint: [f32; 4usize],
796 pub connect: [f32; 4usize],
797 pub contactpoint: [f32; 4usize],
798 pub contactforce: [f32; 4usize],
799 pub contactfriction: [f32; 4usize],
800 pub contacttorque: [f32; 4usize],
801 pub contactgap: [f32; 4usize],
802 pub rangefinder: [f32; 4usize],
803 pub constraint: [f32; 4usize],
804 pub slidercrank: [f32; 4usize],
805 pub crankbroken: [f32; 4usize],
806 pub frustum: [f32; 4usize],
807 pub bv: [f32; 4usize],
808 pub bvactive: [f32; 4usize],
809}
810pub type mjVisual = mjVisual_;
811#[repr(C)]
812#[cfg_attr(feature = "viewer", derive(mujoco_rs_derive::ThreeWayMerge))]
813#[derive(Debug, Clone, PartialEq, Default)]
814pub struct mjStatistic_ {
815 pub meaninertia: mjtNum,
816 pub meanmass: mjtNum,
817 pub meansize: mjtNum,
818 pub extent: mjtNum,
819 pub center: [mjtNum; 3usize],
820}
821pub type mjStatistic = mjStatistic_;
822#[repr(C)]
823#[derive(Debug, Clone)]
824pub struct mjModel_ {
825 pub nq: mjtSize,
826 pub nv: mjtSize,
827 pub nu: mjtSize,
828 pub na: mjtSize,
829 pub nbody: mjtSize,
830 pub nbvh: mjtSize,
831 pub nbvhstatic: mjtSize,
832 pub nbvhdynamic: mjtSize,
833 pub noct: mjtSize,
834 pub njnt: mjtSize,
835 pub ntree: mjtSize,
836 pub nM: mjtSize,
837 pub nB: mjtSize,
838 pub nC: mjtSize,
839 pub nD: mjtSize,
840 pub ngeom: mjtSize,
841 pub nsite: mjtSize,
842 pub ncam: mjtSize,
843 pub nlight: mjtSize,
844 pub nflex: mjtSize,
845 pub nflexnode: mjtSize,
846 pub nflexvert: mjtSize,
847 pub nflexedge: mjtSize,
848 pub nflexelem: mjtSize,
849 pub nflexelemdata: mjtSize,
850 pub nflexstiffness: mjtSize,
851 pub nflexbending: mjtSize,
852 pub nflexelemedge: mjtSize,
853 pub nflexshelldata: mjtSize,
854 pub nflexevpair: mjtSize,
855 pub nflextexcoord: mjtSize,
856 pub nJfe: mjtSize,
857 pub nJfv: mjtSize,
858 pub nmesh: mjtSize,
859 pub nmeshvert: mjtSize,
860 pub nmeshnormal: mjtSize,
861 pub nmeshtexcoord: mjtSize,
862 pub nmeshface: mjtSize,
863 pub nmeshgraph: mjtSize,
864 pub nmeshpoly: mjtSize,
865 pub nmeshpolyvert: mjtSize,
866 pub nmeshpolymap: mjtSize,
867 pub nskin: mjtSize,
868 pub nskinvert: mjtSize,
869 pub nskintexvert: mjtSize,
870 pub nskinface: mjtSize,
871 pub nskinbone: mjtSize,
872 pub nskinbonevert: mjtSize,
873 pub nhfield: mjtSize,
874 pub nhfielddata: mjtSize,
875 pub ntex: mjtSize,
876 pub ntexdata: mjtSize,
877 pub nmat: mjtSize,
878 pub npair: mjtSize,
879 pub nexclude: mjtSize,
880 pub neq: mjtSize,
881 pub ntendon: mjtSize,
882 pub nJten: mjtSize,
883 pub nwrap: mjtSize,
884 pub nsensor: mjtSize,
885 pub nnumeric: mjtSize,
886 pub nnumericdata: mjtSize,
887 pub ntext: mjtSize,
888 pub ntextdata: mjtSize,
889 pub ntuple: mjtSize,
890 pub ntupledata: mjtSize,
891 pub nkey: mjtSize,
892 pub nmocap: mjtSize,
893 pub nplugin: mjtSize,
894 pub npluginattr: mjtSize,
895 pub nuser_body: mjtSize,
896 pub nuser_jnt: mjtSize,
897 pub nuser_geom: mjtSize,
898 pub nuser_site: mjtSize,
899 pub nuser_cam: mjtSize,
900 pub nuser_tendon: mjtSize,
901 pub nuser_actuator: mjtSize,
902 pub nuser_sensor: mjtSize,
903 pub nnames: mjtSize,
904 pub npaths: mjtSize,
905 pub nnames_map: mjtSize,
906 pub nJmom: mjtSize,
907 pub ngravcomp: mjtSize,
908 pub nemax: mjtSize,
909 pub njmax: mjtSize,
910 pub nconmax: mjtSize,
911 pub nuserdata: mjtSize,
912 pub nsensordata: mjtSize,
913 pub npluginstate: mjtSize,
914 pub nhistory: mjtSize,
915 pub narena: mjtSize,
916 pub nbuffer: mjtSize,
917 pub opt: mjOption,
918 pub vis: mjVisual,
919 pub stat: mjStatistic,
920 pub buffer: *mut ::std::os::raw::c_void,
921 pub qpos0: *mut mjtNum,
922 pub qpos_spring: *mut mjtNum,
923 pub body_parentid: *mut ::std::os::raw::c_int,
924 pub body_rootid: *mut ::std::os::raw::c_int,
925 pub body_weldid: *mut ::std::os::raw::c_int,
926 pub body_mocapid: *mut ::std::os::raw::c_int,
927 pub body_jntnum: *mut ::std::os::raw::c_int,
928 pub body_jntadr: *mut ::std::os::raw::c_int,
929 pub body_dofnum: *mut ::std::os::raw::c_int,
930 pub body_dofadr: *mut ::std::os::raw::c_int,
931 pub body_treeid: *mut ::std::os::raw::c_int,
932 pub body_geomnum: *mut ::std::os::raw::c_int,
933 pub body_geomadr: *mut ::std::os::raw::c_int,
934 pub body_simple: *mut mjtByte,
935 pub body_sameframe: *mut mjtByte,
936 pub body_pos: *mut mjtNum,
937 pub body_quat: *mut mjtNum,
938 pub body_ipos: *mut mjtNum,
939 pub body_iquat: *mut mjtNum,
940 pub body_mass: *mut mjtNum,
941 pub body_subtreemass: *mut mjtNum,
942 pub body_inertia: *mut mjtNum,
943 pub body_invweight0: *mut mjtNum,
944 pub body_gravcomp: *mut mjtNum,
945 pub body_margin: *mut mjtNum,
946 pub body_user: *mut mjtNum,
947 pub body_plugin: *mut ::std::os::raw::c_int,
948 pub body_contype: *mut ::std::os::raw::c_int,
949 pub body_conaffinity: *mut ::std::os::raw::c_int,
950 pub body_bvhadr: *mut ::std::os::raw::c_int,
951 pub body_bvhnum: *mut ::std::os::raw::c_int,
952 pub bvh_depth: *mut ::std::os::raw::c_int,
953 pub bvh_child: *mut ::std::os::raw::c_int,
954 pub bvh_nodeid: *mut ::std::os::raw::c_int,
955 pub bvh_aabb: *mut mjtNum,
956 pub oct_depth: *mut ::std::os::raw::c_int,
957 pub oct_child: *mut ::std::os::raw::c_int,
958 pub oct_aabb: *mut mjtNum,
959 pub oct_coeff: *mut mjtNum,
960 pub jnt_type: *mut ::std::os::raw::c_int,
961 pub jnt_qposadr: *mut ::std::os::raw::c_int,
962 pub jnt_dofadr: *mut ::std::os::raw::c_int,
963 pub jnt_bodyid: *mut ::std::os::raw::c_int,
964 pub jnt_actuatorid: *mut ::std::os::raw::c_int,
965 pub jnt_group: *mut ::std::os::raw::c_int,
966 pub jnt_limited: *mut mjtBool,
967 pub jnt_actfrclimited: *mut mjtBool,
968 pub jnt_actgravcomp: *mut mjtBool,
969 pub jnt_solref: *mut mjtNum,
970 pub jnt_solimp: *mut mjtNum,
971 pub jnt_pos: *mut mjtNum,
972 pub jnt_axis: *mut mjtNum,
973 pub jnt_stiffness: *mut mjtNum,
974 pub jnt_stiffnesspoly: *mut mjtNum,
975 pub jnt_range: *mut mjtNum,
976 pub jnt_actfrcrange: *mut mjtNum,
977 pub jnt_margin: *mut mjtNum,
978 pub jnt_user: *mut mjtNum,
979 pub dof_bodyid: *mut ::std::os::raw::c_int,
980 pub dof_jntid: *mut ::std::os::raw::c_int,
981 pub dof_parentid: *mut ::std::os::raw::c_int,
982 pub dof_treeid: *mut ::std::os::raw::c_int,
983 pub dof_Madr: *mut ::std::os::raw::c_int,
984 pub dof_simplenum: *mut ::std::os::raw::c_int,
985 pub dof_solref: *mut mjtNum,
986 pub dof_solimp: *mut mjtNum,
987 pub dof_frictionloss: *mut mjtNum,
988 pub dof_armature: *mut mjtNum,
989 pub dof_damping: *mut mjtNum,
990 pub dof_dampingpoly: *mut mjtNum,
991 pub dof_invweight0: *mut mjtNum,
992 pub dof_M0: *mut mjtNum,
993 pub dof_length: *mut mjtNum,
994 pub tree_bodyadr: *mut ::std::os::raw::c_int,
995 pub tree_bodynum: *mut ::std::os::raw::c_int,
996 pub tree_dofadr: *mut ::std::os::raw::c_int,
997 pub tree_dofnum: *mut ::std::os::raw::c_int,
998 pub tree_sleep_policy: *mut ::std::os::raw::c_int,
999 pub geom_type: *mut ::std::os::raw::c_int,
1000 pub geom_contype: *mut ::std::os::raw::c_int,
1001 pub geom_conaffinity: *mut ::std::os::raw::c_int,
1002 pub geom_condim: *mut ::std::os::raw::c_int,
1003 pub geom_bodyid: *mut ::std::os::raw::c_int,
1004 pub geom_dataid: *mut ::std::os::raw::c_int,
1005 pub geom_matid: *mut ::std::os::raw::c_int,
1006 pub geom_group: *mut ::std::os::raw::c_int,
1007 pub geom_priority: *mut ::std::os::raw::c_int,
1008 pub geom_plugin: *mut ::std::os::raw::c_int,
1009 pub geom_sameframe: *mut mjtByte,
1010 pub geom_solmix: *mut mjtNum,
1011 pub geom_solref: *mut mjtNum,
1012 pub geom_solimp: *mut mjtNum,
1013 pub geom_size: *mut mjtNum,
1014 pub geom_aabb: *mut mjtNum,
1015 pub geom_rbound: *mut mjtNum,
1016 pub geom_pos: *mut mjtNum,
1017 pub geom_quat: *mut mjtNum,
1018 pub geom_friction: *mut mjtNum,
1019 pub geom_margin: *mut mjtNum,
1020 pub geom_gap: *mut mjtNum,
1021 pub geom_fluid: *mut mjtNum,
1022 pub geom_user: *mut mjtNum,
1023 pub geom_rgba: *mut f32,
1024 pub site_type: *mut ::std::os::raw::c_int,
1025 pub site_bodyid: *mut ::std::os::raw::c_int,
1026 pub site_matid: *mut ::std::os::raw::c_int,
1027 pub site_group: *mut ::std::os::raw::c_int,
1028 pub site_sameframe: *mut mjtByte,
1029 pub site_size: *mut mjtNum,
1030 pub site_pos: *mut mjtNum,
1031 pub site_quat: *mut mjtNum,
1032 pub site_user: *mut mjtNum,
1033 pub site_rgba: *mut f32,
1034 pub cam_mode: *mut ::std::os::raw::c_int,
1035 pub cam_bodyid: *mut ::std::os::raw::c_int,
1036 pub cam_targetbodyid: *mut ::std::os::raw::c_int,
1037 pub cam_pos: *mut mjtNum,
1038 pub cam_quat: *mut mjtNum,
1039 pub cam_poscom0: *mut mjtNum,
1040 pub cam_pos0: *mut mjtNum,
1041 pub cam_mat0: *mut mjtNum,
1042 pub cam_projection: *mut ::std::os::raw::c_int,
1043 pub cam_fovy: *mut mjtNum,
1044 pub cam_ipd: *mut mjtNum,
1045 pub cam_resolution: *mut ::std::os::raw::c_int,
1046 pub cam_output: *mut ::std::os::raw::c_int,
1047 pub cam_sensorsize: *mut f32,
1048 pub cam_intrinsic: *mut f32,
1049 pub cam_user: *mut mjtNum,
1050 pub light_mode: *mut ::std::os::raw::c_int,
1051 pub light_bodyid: *mut ::std::os::raw::c_int,
1052 pub light_targetbodyid: *mut ::std::os::raw::c_int,
1053 pub light_type: *mut ::std::os::raw::c_int,
1054 pub light_texid: *mut ::std::os::raw::c_int,
1055 pub light_castshadow: *mut mjtBool,
1056 pub light_bulbradius: *mut f32,
1057 pub light_intensity: *mut f32,
1058 pub light_range: *mut f32,
1059 pub light_active: *mut mjtBool,
1060 pub light_pos: *mut mjtNum,
1061 pub light_dir: *mut mjtNum,
1062 pub light_poscom0: *mut mjtNum,
1063 pub light_pos0: *mut mjtNum,
1064 pub light_dir0: *mut mjtNum,
1065 pub light_attenuation: *mut f32,
1066 pub light_cutoff: *mut f32,
1067 pub light_exponent: *mut f32,
1068 pub light_ambient: *mut f32,
1069 pub light_diffuse: *mut f32,
1070 pub light_specular: *mut f32,
1071 pub flex_contype: *mut ::std::os::raw::c_int,
1072 pub flex_conaffinity: *mut ::std::os::raw::c_int,
1073 pub flex_condim: *mut ::std::os::raw::c_int,
1074 pub flex_priority: *mut ::std::os::raw::c_int,
1075 pub flex_solmix: *mut mjtNum,
1076 pub flex_solref: *mut mjtNum,
1077 pub flex_solimp: *mut mjtNum,
1078 pub flex_friction: *mut mjtNum,
1079 pub flex_margin: *mut mjtNum,
1080 pub flex_gap: *mut mjtNum,
1081 pub flex_internal: *mut mjtBool,
1082 pub flex_selfcollide: *mut ::std::os::raw::c_int,
1083 pub flex_activelayers: *mut ::std::os::raw::c_int,
1084 pub flex_passive: *mut ::std::os::raw::c_int,
1085 pub flex_dim: *mut ::std::os::raw::c_int,
1086 pub flex_matid: *mut ::std::os::raw::c_int,
1087 pub flex_group: *mut ::std::os::raw::c_int,
1088 pub flex_interp: *mut ::std::os::raw::c_int,
1089 pub flex_cellnum: *mut ::std::os::raw::c_int,
1090 pub flex_nodeadr: *mut ::std::os::raw::c_int,
1091 pub flex_nodenum: *mut ::std::os::raw::c_int,
1092 pub flex_vertadr: *mut ::std::os::raw::c_int,
1093 pub flex_vertnum: *mut ::std::os::raw::c_int,
1094 pub flex_edgeadr: *mut ::std::os::raw::c_int,
1095 pub flex_edgenum: *mut ::std::os::raw::c_int,
1096 pub flex_elemadr: *mut ::std::os::raw::c_int,
1097 pub flex_elemnum: *mut ::std::os::raw::c_int,
1098 pub flex_elemdataadr: *mut ::std::os::raw::c_int,
1099 pub flex_stiffnessadr: *mut ::std::os::raw::c_int,
1100 pub flex_elemedgeadr: *mut ::std::os::raw::c_int,
1101 pub flex_bendingadr: *mut ::std::os::raw::c_int,
1102 pub flex_shellnum: *mut ::std::os::raw::c_int,
1103 pub flex_shelldataadr: *mut ::std::os::raw::c_int,
1104 pub flex_evpairadr: *mut ::std::os::raw::c_int,
1105 pub flex_evpairnum: *mut ::std::os::raw::c_int,
1106 pub flex_texcoordadr: *mut ::std::os::raw::c_int,
1107 pub flex_nodebodyid: *mut ::std::os::raw::c_int,
1108 pub flex_vertbodyid: *mut ::std::os::raw::c_int,
1109 pub flex_vertedgeadr: *mut ::std::os::raw::c_int,
1110 pub flex_vertedgenum: *mut ::std::os::raw::c_int,
1111 pub flex_vertedge: *mut ::std::os::raw::c_int,
1112 pub flex_edge: *mut ::std::os::raw::c_int,
1113 pub flex_edgeflap: *mut ::std::os::raw::c_int,
1114 pub flex_elem: *mut ::std::os::raw::c_int,
1115 pub flex_elemtexcoord: *mut ::std::os::raw::c_int,
1116 pub flex_elemedge: *mut ::std::os::raw::c_int,
1117 pub flex_elemlayer: *mut ::std::os::raw::c_int,
1118 pub flex_shell: *mut ::std::os::raw::c_int,
1119 pub flex_evpair: *mut ::std::os::raw::c_int,
1120 pub flex_vert: *mut mjtNum,
1121 pub flex_vert0: *mut mjtNum,
1122 pub flex_vertmetric: *mut mjtNum,
1123 pub flex_node: *mut mjtNum,
1124 pub flex_node0: *mut mjtNum,
1125 pub flexedge_length0: *mut mjtNum,
1126 pub flexedge_invweight0: *mut mjtNum,
1127 pub flex_radius: *mut mjtNum,
1128 pub flex_size: *mut mjtNum,
1129 pub flex_stiffness: *mut mjtNum,
1130 pub flex_bending: *mut mjtNum,
1131 pub flex_damping: *mut mjtNum,
1132 pub flex_edgestiffness: *mut mjtNum,
1133 pub flex_edgedamping: *mut mjtNum,
1134 pub flex_edgeequality: *mut ::std::os::raw::c_int,
1135 pub flex_rigid: *mut mjtBool,
1136 pub flexedge_rigid: *mut mjtBool,
1137 pub flex_centered: *mut mjtBool,
1138 pub flex_flatskin: *mut mjtBool,
1139 pub flex_bvhadr: *mut ::std::os::raw::c_int,
1140 pub flex_bvhnum: *mut ::std::os::raw::c_int,
1141 pub flexedge_J_rownnz: *mut ::std::os::raw::c_int,
1142 pub flexedge_J_rowadr: *mut ::std::os::raw::c_int,
1143 pub flexedge_J_colind: *mut ::std::os::raw::c_int,
1144 pub flexvert_J_rownnz: *mut ::std::os::raw::c_int,
1145 pub flexvert_J_rowadr: *mut ::std::os::raw::c_int,
1146 pub flexvert_J_colind: *mut ::std::os::raw::c_int,
1147 pub flex_rgba: *mut f32,
1148 pub flex_texcoord: *mut f32,
1149 pub mesh_vertadr: *mut ::std::os::raw::c_int,
1150 pub mesh_vertnum: *mut ::std::os::raw::c_int,
1151 pub mesh_faceadr: *mut ::std::os::raw::c_int,
1152 pub mesh_facenum: *mut ::std::os::raw::c_int,
1153 pub mesh_bvhadr: *mut ::std::os::raw::c_int,
1154 pub mesh_bvhnum: *mut ::std::os::raw::c_int,
1155 pub mesh_octadr: *mut ::std::os::raw::c_int,
1156 pub mesh_octnum: *mut ::std::os::raw::c_int,
1157 pub mesh_normaladr: *mut ::std::os::raw::c_int,
1158 pub mesh_normalnum: *mut ::std::os::raw::c_int,
1159 pub mesh_texcoordadr: *mut ::std::os::raw::c_int,
1160 pub mesh_texcoordnum: *mut ::std::os::raw::c_int,
1161 pub mesh_graphadr: *mut ::std::os::raw::c_int,
1162 pub mesh_vert: *mut f32,
1163 pub mesh_normal: *mut f32,
1164 pub mesh_texcoord: *mut f32,
1165 pub mesh_face: *mut ::std::os::raw::c_int,
1166 pub mesh_facenormal: *mut ::std::os::raw::c_int,
1167 pub mesh_facetexcoord: *mut ::std::os::raw::c_int,
1168 pub mesh_graph: *mut ::std::os::raw::c_int,
1169 pub mesh_scale: *mut mjtNum,
1170 pub mesh_pos: *mut mjtNum,
1171 pub mesh_quat: *mut mjtNum,
1172 pub mesh_pathadr: *mut ::std::os::raw::c_int,
1173 pub mesh_polynum: *mut ::std::os::raw::c_int,
1174 pub mesh_polyadr: *mut ::std::os::raw::c_int,
1175 pub mesh_polynormal: *mut mjtNum,
1176 pub mesh_polyvertadr: *mut ::std::os::raw::c_int,
1177 pub mesh_polyvertnum: *mut ::std::os::raw::c_int,
1178 pub mesh_polyvert: *mut ::std::os::raw::c_int,
1179 pub mesh_polymapadr: *mut ::std::os::raw::c_int,
1180 pub mesh_polymapnum: *mut ::std::os::raw::c_int,
1181 pub mesh_polymap: *mut ::std::os::raw::c_int,
1182 pub skin_matid: *mut ::std::os::raw::c_int,
1183 pub skin_group: *mut ::std::os::raw::c_int,
1184 pub skin_rgba: *mut f32,
1185 pub skin_inflate: *mut f32,
1186 pub skin_vertadr: *mut ::std::os::raw::c_int,
1187 pub skin_vertnum: *mut ::std::os::raw::c_int,
1188 pub skin_texcoordadr: *mut ::std::os::raw::c_int,
1189 pub skin_faceadr: *mut ::std::os::raw::c_int,
1190 pub skin_facenum: *mut ::std::os::raw::c_int,
1191 pub skin_boneadr: *mut ::std::os::raw::c_int,
1192 pub skin_bonenum: *mut ::std::os::raw::c_int,
1193 pub skin_vert: *mut f32,
1194 pub skin_texcoord: *mut f32,
1195 pub skin_face: *mut ::std::os::raw::c_int,
1196 pub skin_bonevertadr: *mut ::std::os::raw::c_int,
1197 pub skin_bonevertnum: *mut ::std::os::raw::c_int,
1198 pub skin_bonebindpos: *mut f32,
1199 pub skin_bonebindquat: *mut f32,
1200 pub skin_bonebodyid: *mut ::std::os::raw::c_int,
1201 pub skin_bonevertid: *mut ::std::os::raw::c_int,
1202 pub skin_bonevertweight: *mut f32,
1203 pub skin_pathadr: *mut ::std::os::raw::c_int,
1204 pub hfield_size: *mut mjtNum,
1205 pub hfield_nrow: *mut ::std::os::raw::c_int,
1206 pub hfield_ncol: *mut ::std::os::raw::c_int,
1207 pub hfield_adr: *mut ::std::os::raw::c_int,
1208 pub hfield_data: *mut f32,
1209 pub hfield_pathadr: *mut ::std::os::raw::c_int,
1210 pub tex_type: *mut ::std::os::raw::c_int,
1211 pub tex_colorspace: *mut ::std::os::raw::c_int,
1212 pub tex_height: *mut ::std::os::raw::c_int,
1213 pub tex_width: *mut ::std::os::raw::c_int,
1214 pub tex_nchannel: *mut ::std::os::raw::c_int,
1215 pub tex_adr: *mut mjtSize,
1216 pub tex_data: *mut mjtByte,
1217 pub tex_pathadr: *mut ::std::os::raw::c_int,
1218 pub mat_texid: *mut ::std::os::raw::c_int,
1219 pub mat_texuniform: *mut mjtBool,
1220 pub mat_texrepeat: *mut f32,
1221 pub mat_emission: *mut f32,
1222 pub mat_specular: *mut f32,
1223 pub mat_shininess: *mut f32,
1224 pub mat_reflectance: *mut f32,
1225 pub mat_metallic: *mut f32,
1226 pub mat_roughness: *mut f32,
1227 pub mat_rgba: *mut f32,
1228 pub pair_dim: *mut ::std::os::raw::c_int,
1229 pub pair_geom1: *mut ::std::os::raw::c_int,
1230 pub pair_geom2: *mut ::std::os::raw::c_int,
1231 pub pair_signature: *mut ::std::os::raw::c_int,
1232 pub pair_solref: *mut mjtNum,
1233 pub pair_solreffriction: *mut mjtNum,
1234 pub pair_solimp: *mut mjtNum,
1235 pub pair_margin: *mut mjtNum,
1236 pub pair_gap: *mut mjtNum,
1237 pub pair_friction: *mut mjtNum,
1238 pub exclude_signature: *mut ::std::os::raw::c_int,
1239 pub eq_type: *mut ::std::os::raw::c_int,
1240 pub eq_obj1id: *mut ::std::os::raw::c_int,
1241 pub eq_obj2id: *mut ::std::os::raw::c_int,
1242 pub eq_objtype: *mut ::std::os::raw::c_int,
1243 pub eq_active0: *mut mjtBool,
1244 pub eq_solref: *mut mjtNum,
1245 pub eq_solimp: *mut mjtNum,
1246 pub eq_data: *mut mjtNum,
1247 pub tendon_adr: *mut ::std::os::raw::c_int,
1248 pub tendon_num: *mut ::std::os::raw::c_int,
1249 pub tendon_matid: *mut ::std::os::raw::c_int,
1250 pub tendon_actuatorid: *mut ::std::os::raw::c_int,
1251 pub tendon_group: *mut ::std::os::raw::c_int,
1252 pub tendon_treenum: *mut ::std::os::raw::c_int,
1253 pub tendon_treeid: *mut ::std::os::raw::c_int,
1254 pub ten_J_rownnz: *mut ::std::os::raw::c_int,
1255 pub ten_J_rowadr: *mut ::std::os::raw::c_int,
1256 pub ten_J_colind: *mut ::std::os::raw::c_int,
1257 pub tendon_limited: *mut mjtBool,
1258 pub tendon_actfrclimited: *mut mjtBool,
1259 pub tendon_width: *mut mjtNum,
1260 pub tendon_solref_lim: *mut mjtNum,
1261 pub tendon_solimp_lim: *mut mjtNum,
1262 pub tendon_solref_fri: *mut mjtNum,
1263 pub tendon_solimp_fri: *mut mjtNum,
1264 pub tendon_range: *mut mjtNum,
1265 pub tendon_actfrcrange: *mut mjtNum,
1266 pub tendon_margin: *mut mjtNum,
1267 pub tendon_stiffness: *mut mjtNum,
1268 pub tendon_stiffnesspoly: *mut mjtNum,
1269 pub tendon_damping: *mut mjtNum,
1270 pub tendon_dampingpoly: *mut mjtNum,
1271 pub tendon_armature: *mut mjtNum,
1272 pub tendon_frictionloss: *mut mjtNum,
1273 pub tendon_lengthspring: *mut mjtNum,
1274 pub tendon_length0: *mut mjtNum,
1275 pub tendon_invweight0: *mut mjtNum,
1276 pub tendon_user: *mut mjtNum,
1277 pub tendon_rgba: *mut f32,
1278 pub wrap_type: *mut ::std::os::raw::c_int,
1279 pub wrap_objid: *mut ::std::os::raw::c_int,
1280 pub wrap_prm: *mut mjtNum,
1281 pub actuator_trntype: *mut ::std::os::raw::c_int,
1282 pub actuator_dyntype: *mut ::std::os::raw::c_int,
1283 pub actuator_gaintype: *mut ::std::os::raw::c_int,
1284 pub actuator_biastype: *mut ::std::os::raw::c_int,
1285 pub actuator_trnid: *mut ::std::os::raw::c_int,
1286 pub actuator_damping: *mut mjtNum,
1287 pub actuator_dampingpoly: *mut mjtNum,
1288 pub actuator_armature: *mut mjtNum,
1289 pub actuator_actadr: *mut ::std::os::raw::c_int,
1290 pub actuator_actnum: *mut ::std::os::raw::c_int,
1291 pub actuator_group: *mut ::std::os::raw::c_int,
1292 pub actuator_history: *mut ::std::os::raw::c_int,
1293 pub actuator_historyadr: *mut ::std::os::raw::c_int,
1294 pub actuator_delay: *mut mjtNum,
1295 pub actuator_ctrllimited: *mut mjtBool,
1296 pub actuator_forcelimited: *mut mjtBool,
1297 pub actuator_actlimited: *mut mjtBool,
1298 pub actuator_dynprm: *mut mjtNum,
1299 pub actuator_gainprm: *mut mjtNum,
1300 pub actuator_biasprm: *mut mjtNum,
1301 pub actuator_actearly: *mut mjtBool,
1302 pub actuator_ctrlrange: *mut mjtNum,
1303 pub actuator_forcerange: *mut mjtNum,
1304 pub actuator_actrange: *mut mjtNum,
1305 pub actuator_gear: *mut mjtNum,
1306 pub actuator_cranklength: *mut mjtNum,
1307 pub actuator_acc0: *mut mjtNum,
1308 pub actuator_length0: *mut mjtNum,
1309 pub actuator_lengthrange: *mut mjtNum,
1310 pub actuator_user: *mut mjtNum,
1311 pub actuator_plugin: *mut ::std::os::raw::c_int,
1312 pub sensor_type: *mut ::std::os::raw::c_int,
1313 pub sensor_datatype: *mut ::std::os::raw::c_int,
1314 pub sensor_needstage: *mut ::std::os::raw::c_int,
1315 pub sensor_objtype: *mut ::std::os::raw::c_int,
1316 pub sensor_objid: *mut ::std::os::raw::c_int,
1317 pub sensor_reftype: *mut ::std::os::raw::c_int,
1318 pub sensor_refid: *mut ::std::os::raw::c_int,
1319 pub sensor_intprm: *mut ::std::os::raw::c_int,
1320 pub sensor_dim: *mut ::std::os::raw::c_int,
1321 pub sensor_adr: *mut ::std::os::raw::c_int,
1322 pub sensor_cutoff: *mut mjtNum,
1323 pub sensor_noise: *mut mjtNum,
1324 pub sensor_history: *mut ::std::os::raw::c_int,
1325 pub sensor_historyadr: *mut ::std::os::raw::c_int,
1326 pub sensor_delay: *mut mjtNum,
1327 pub sensor_interval: *mut mjtNum,
1328 pub sensor_user: *mut mjtNum,
1329 pub sensor_plugin: *mut ::std::os::raw::c_int,
1330 pub plugin: *mut ::std::os::raw::c_int,
1331 pub plugin_stateadr: *mut ::std::os::raw::c_int,
1332 pub plugin_statenum: *mut ::std::os::raw::c_int,
1333 pub plugin_attr: *mut ::std::os::raw::c_char,
1334 pub plugin_attradr: *mut ::std::os::raw::c_int,
1335 pub numeric_adr: *mut ::std::os::raw::c_int,
1336 pub numeric_size: *mut ::std::os::raw::c_int,
1337 pub numeric_data: *mut mjtNum,
1338 pub text_adr: *mut ::std::os::raw::c_int,
1339 pub text_size: *mut ::std::os::raw::c_int,
1340 pub text_data: *mut ::std::os::raw::c_char,
1341 pub tuple_adr: *mut ::std::os::raw::c_int,
1342 pub tuple_size: *mut ::std::os::raw::c_int,
1343 pub tuple_objtype: *mut ::std::os::raw::c_int,
1344 pub tuple_objid: *mut ::std::os::raw::c_int,
1345 pub tuple_objprm: *mut mjtNum,
1346 pub key_time: *mut mjtNum,
1347 pub key_qpos: *mut mjtNum,
1348 pub key_qvel: *mut mjtNum,
1349 pub key_act: *mut mjtNum,
1350 pub key_mpos: *mut mjtNum,
1351 pub key_mquat: *mut mjtNum,
1352 pub key_ctrl: *mut mjtNum,
1353 pub name_bodyadr: *mut ::std::os::raw::c_int,
1354 pub name_jntadr: *mut ::std::os::raw::c_int,
1355 pub name_geomadr: *mut ::std::os::raw::c_int,
1356 pub name_siteadr: *mut ::std::os::raw::c_int,
1357 pub name_camadr: *mut ::std::os::raw::c_int,
1358 pub name_lightadr: *mut ::std::os::raw::c_int,
1359 pub name_flexadr: *mut ::std::os::raw::c_int,
1360 pub name_meshadr: *mut ::std::os::raw::c_int,
1361 pub name_skinadr: *mut ::std::os::raw::c_int,
1362 pub name_hfieldadr: *mut ::std::os::raw::c_int,
1363 pub name_texadr: *mut ::std::os::raw::c_int,
1364 pub name_matadr: *mut ::std::os::raw::c_int,
1365 pub name_pairadr: *mut ::std::os::raw::c_int,
1366 pub name_excludeadr: *mut ::std::os::raw::c_int,
1367 pub name_eqadr: *mut ::std::os::raw::c_int,
1368 pub name_tendonadr: *mut ::std::os::raw::c_int,
1369 pub name_actuatoradr: *mut ::std::os::raw::c_int,
1370 pub name_sensoradr: *mut ::std::os::raw::c_int,
1371 pub name_numericadr: *mut ::std::os::raw::c_int,
1372 pub name_textadr: *mut ::std::os::raw::c_int,
1373 pub name_tupleadr: *mut ::std::os::raw::c_int,
1374 pub name_keyadr: *mut ::std::os::raw::c_int,
1375 pub name_pluginadr: *mut ::std::os::raw::c_int,
1376 pub names: *mut ::std::os::raw::c_char,
1377 pub names_map: *mut ::std::os::raw::c_int,
1378 pub paths: *mut ::std::os::raw::c_char,
1379 pub B_rownnz: *mut ::std::os::raw::c_int,
1380 pub B_rowadr: *mut ::std::os::raw::c_int,
1381 pub B_colind: *mut ::std::os::raw::c_int,
1382 pub M_rownnz: *mut ::std::os::raw::c_int,
1383 pub M_rowadr: *mut ::std::os::raw::c_int,
1384 pub M_colind: *mut ::std::os::raw::c_int,
1385 pub mapM2M: *mut ::std::os::raw::c_int,
1386 pub D_rownnz: *mut ::std::os::raw::c_int,
1387 pub D_rowadr: *mut ::std::os::raw::c_int,
1388 pub D_diag: *mut ::std::os::raw::c_int,
1389 pub D_colind: *mut ::std::os::raw::c_int,
1390 pub mapM2D: *mut ::std::os::raw::c_int,
1391 pub mapD2M: *mut ::std::os::raw::c_int,
1392 pub signature: u64,
1393}
1394pub type mjModel = mjModel_;
1395#[repr(u32)]
1396#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
1397pub enum mjtTaskStatus_ {
1398 mjTASK_NEW = 0,
1399 mjTASK_QUEUED = 1,
1400 mjTASK_COMPLETED = 2,
1401}
1402pub use self::mjtTaskStatus_ as mjtTaskStatus;
1403pub type mjfTask = ::std::option::Option<
1404 unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
1405>;
1406#[repr(C)]
1407#[derive(Debug, Clone)]
1408pub struct mjThreadPool_ {
1409 pub nworker: ::std::os::raw::c_int,
1410}
1411pub type mjThreadPool = mjThreadPool_;
1412#[repr(C)]
1413#[derive(Debug, Clone)]
1414pub struct mjTask_ {
1415 pub func: mjfTask,
1416 pub args: *mut ::std::os::raw::c_void,
1417 pub status: ::std::os::raw::c_int,
1418}
1419pub type mjTask = mjTask_;
1420#[repr(C)]
1421#[derive(Debug, Clone)]
1422pub struct mjPreContact_ {
1423 pub dist: mjtNum,
1424 pub pos: [mjtNum; 3usize],
1425 pub normal: [mjtNum; 3usize],
1426 pub tangent: [mjtNum; 3usize],
1427}
1428pub type mjPreContact = mjPreContact_;
1429#[repr(C)]
1430#[derive(Debug, Clone)]
1431pub struct mjContact_ {
1432 pub dist: mjtNum,
1433 pub pos: [mjtNum; 3usize],
1434 pub frame: [mjtNum; 9usize],
1435 pub includemargin: mjtNum,
1436 pub friction: [mjtNum; 5usize],
1437 pub solref: [mjtNum; 2usize],
1438 pub solreffriction: [mjtNum; 2usize],
1439 pub solimp: [mjtNum; 5usize],
1440 pub mu: mjtNum,
1441 pub H: [mjtNum; 36usize],
1442 pub dim: ::std::os::raw::c_int,
1443 pub geom1: ::std::os::raw::c_int,
1444 pub geom2: ::std::os::raw::c_int,
1445 pub geom: [::std::os::raw::c_int; 2usize],
1446 pub flex: [::std::os::raw::c_int; 2usize],
1447 pub elem: [::std::os::raw::c_int; 2usize],
1448 pub vert: [::std::os::raw::c_int; 2usize],
1449 pub exclude: ::std::os::raw::c_int,
1450 pub efc_address: ::std::os::raw::c_int,
1451}
1452pub type mjContact = mjContact_;
1453#[repr(C)]
1454#[derive(Debug, Clone)]
1455pub struct mjWarningStat_ {
1456 pub lastinfo: ::std::os::raw::c_int,
1457 pub number: ::std::os::raw::c_int,
1458}
1459pub type mjWarningStat = mjWarningStat_;
1460#[repr(C)]
1461#[derive(Debug, Clone)]
1462pub struct mjTimerStat_ {
1463 pub duration: mjtNum,
1464 pub number: ::std::os::raw::c_int,
1465}
1466pub type mjTimerStat = mjTimerStat_;
1467#[repr(C)]
1468#[derive(Debug, Clone)]
1469pub struct mjSolverStat_ {
1470 pub improvement: mjtNum,
1471 pub gradient: mjtNum,
1472 pub lineslope: mjtNum,
1473 pub nactive: ::std::os::raw::c_int,
1474 pub nchange: ::std::os::raw::c_int,
1475 pub neval: ::std::os::raw::c_int,
1476 pub nupdate: ::std::os::raw::c_int,
1477}
1478pub type mjSolverStat = mjSolverStat_;
1479#[repr(C)]
1480#[derive(Debug, Clone)]
1481pub struct mjData_ {
1482 pub narena: mjtSize,
1483 pub nbuffer: mjtSize,
1484 pub nplugin: ::std::os::raw::c_int,
1485 pub pstack: usize,
1486 pub pbase: usize,
1487 pub parena: usize,
1488 pub maxuse_stack: mjtSize,
1489 pub maxuse_threadstack: [mjtSize; 128usize],
1490 pub maxuse_arena: mjtSize,
1491 pub maxuse_con: ::std::os::raw::c_int,
1492 pub maxuse_efc: ::std::os::raw::c_int,
1493 pub solver: [mjSolverStat; 4000usize],
1494 pub solver_niter: [::std::os::raw::c_int; 20usize],
1495 pub solver_nnz: [::std::os::raw::c_int; 20usize],
1496 pub solver_fwdinv: [mjtNum; 2usize],
1497 pub warning: [mjWarningStat; 7usize],
1498 pub timer: [mjTimerStat; 15usize],
1499 pub ncon: ::std::os::raw::c_int,
1500 pub ne: ::std::os::raw::c_int,
1501 pub nf: ::std::os::raw::c_int,
1502 pub nl: ::std::os::raw::c_int,
1503 pub nefc: ::std::os::raw::c_int,
1504 pub nJ: ::std::os::raw::c_int,
1505 pub nY: ::std::os::raw::c_int,
1506 pub nA: ::std::os::raw::c_int,
1507 pub nisland: ::std::os::raw::c_int,
1508 pub nidof: ::std::os::raw::c_int,
1509 pub ntree_awake: ::std::os::raw::c_int,
1510 pub nbody_awake: ::std::os::raw::c_int,
1511 pub nparent_awake: ::std::os::raw::c_int,
1512 pub nv_awake: ::std::os::raw::c_int,
1513 pub flg_energypos: mjtBool,
1514 pub flg_energyvel: mjtBool,
1515 pub flg_subtreevel: mjtBool,
1516 pub flg_rnepost: mjtBool,
1517 pub time: mjtNum,
1518 pub energy: [mjtNum; 2usize],
1519 pub buffer: *mut ::std::os::raw::c_void,
1520 pub arena: *mut ::std::os::raw::c_void,
1521 pub qpos: *mut mjtNum,
1522 pub qvel: *mut mjtNum,
1523 pub act: *mut mjtNum,
1524 pub history: *mut mjtNum,
1525 pub qacc_warmstart: *mut mjtNum,
1526 pub plugin_state: *mut mjtNum,
1527 pub ctrl: *mut mjtNum,
1528 pub qfrc_applied: *mut mjtNum,
1529 pub xfrc_applied: *mut mjtNum,
1530 pub eq_active: *mut mjtBool,
1531 pub mocap_pos: *mut mjtNum,
1532 pub mocap_quat: *mut mjtNum,
1533 pub qacc: *mut mjtNum,
1534 pub act_dot: *mut mjtNum,
1535 pub userdata: *mut mjtNum,
1536 pub sensordata: *mut mjtNum,
1537 pub tree_asleep: *mut ::std::os::raw::c_int,
1538 pub plugin: *mut ::std::os::raw::c_int,
1539 pub plugin_data: *mut usize,
1540 pub xpos: *mut mjtNum,
1541 pub xquat: *mut mjtNum,
1542 pub xmat: *mut mjtNum,
1543 pub xipos: *mut mjtNum,
1544 pub ximat: *mut mjtNum,
1545 pub xanchor: *mut mjtNum,
1546 pub xaxis: *mut mjtNum,
1547 pub geom_xpos: *mut mjtNum,
1548 pub geom_xmat: *mut mjtNum,
1549 pub site_xpos: *mut mjtNum,
1550 pub site_xmat: *mut mjtNum,
1551 pub cam_xpos: *mut mjtNum,
1552 pub cam_xmat: *mut mjtNum,
1553 pub light_xpos: *mut mjtNum,
1554 pub light_xdir: *mut mjtNum,
1555 pub subtree_com: *mut mjtNum,
1556 pub cdof: *mut mjtNum,
1557 pub cinert: *mut mjtNum,
1558 pub flexvert_xpos: *mut mjtNum,
1559 pub flexelem_aabb: *mut mjtNum,
1560 pub flexedge_J: *mut mjtNum,
1561 pub flexedge_length: *mut mjtNum,
1562 pub flexvert_J: *mut mjtNum,
1563 pub flexvert_length: *mut mjtNum,
1564 pub bvh_aabb_dyn: *mut mjtNum,
1565 pub ten_wrapadr: *mut ::std::os::raw::c_int,
1566 pub ten_wrapnum: *mut ::std::os::raw::c_int,
1567 pub ten_J: *mut mjtNum,
1568 pub ten_length: *mut mjtNum,
1569 pub wrap_obj: *mut ::std::os::raw::c_int,
1570 pub wrap_xpos: *mut mjtNum,
1571 pub actuator_length: *mut mjtNum,
1572 pub moment_rownnz: *mut ::std::os::raw::c_int,
1573 pub moment_rowadr: *mut ::std::os::raw::c_int,
1574 pub moment_colind: *mut ::std::os::raw::c_int,
1575 pub actuator_moment: *mut mjtNum,
1576 pub crb: *mut mjtNum,
1577 pub qM: *mut mjtNum,
1578 pub M: *mut mjtNum,
1579 pub qLD: *mut mjtNum,
1580 pub qLDiagInv: *mut mjtNum,
1581 pub bvh_active: *mut mjtBool,
1582 pub tree_awake: *mut ::std::os::raw::c_int,
1583 pub body_awake: *mut ::std::os::raw::c_int,
1584 pub body_awake_ind: *mut ::std::os::raw::c_int,
1585 pub parent_awake_ind: *mut ::std::os::raw::c_int,
1586 pub dof_awake_ind: *mut ::std::os::raw::c_int,
1587 pub flexedge_velocity: *mut mjtNum,
1588 pub ten_velocity: *mut mjtNum,
1589 pub actuator_velocity: *mut mjtNum,
1590 pub cvel: *mut mjtNum,
1591 pub cdof_dot: *mut mjtNum,
1592 pub qfrc_bias: *mut mjtNum,
1593 pub qfrc_spring: *mut mjtNum,
1594 pub qfrc_damper: *mut mjtNum,
1595 pub qfrc_gravcomp: *mut mjtNum,
1596 pub qfrc_fluid: *mut mjtNum,
1597 pub qfrc_passive: *mut mjtNum,
1598 pub subtree_linvel: *mut mjtNum,
1599 pub subtree_angmom: *mut mjtNum,
1600 pub qH: *mut mjtNum,
1601 pub qHDiagInv: *mut mjtNum,
1602 pub qDeriv: *mut mjtNum,
1603 pub qLU: *mut mjtNum,
1604 pub actuator_force: *mut mjtNum,
1605 pub qfrc_actuator: *mut mjtNum,
1606 pub qfrc_smooth: *mut mjtNum,
1607 pub qacc_smooth: *mut mjtNum,
1608 pub qfrc_constraint: *mut mjtNum,
1609 pub qfrc_inverse: *mut mjtNum,
1610 pub cacc: *mut mjtNum,
1611 pub cfrc_int: *mut mjtNum,
1612 pub cfrc_ext: *mut mjtNum,
1613 pub contact: *mut mjContact,
1614 pub efc_type: *mut ::std::os::raw::c_int,
1615 pub efc_id: *mut ::std::os::raw::c_int,
1616 pub efc_J_rownnz: *mut ::std::os::raw::c_int,
1617 pub efc_J_rowadr: *mut ::std::os::raw::c_int,
1618 pub efc_J_rowsuper: *mut ::std::os::raw::c_int,
1619 pub efc_J_colind: *mut ::std::os::raw::c_int,
1620 pub efc_J: *mut mjtNum,
1621 pub efc_pos: *mut mjtNum,
1622 pub efc_margin: *mut mjtNum,
1623 pub efc_frictionloss: *mut mjtNum,
1624 pub efc_diagApprox: *mut mjtNum,
1625 pub efc_KBIP: *mut mjtNum,
1626 pub efc_D: *mut mjtNum,
1627 pub efc_R: *mut mjtNum,
1628 pub tendon_efcadr: *mut ::std::os::raw::c_int,
1629 pub tree_island: *mut ::std::os::raw::c_int,
1630 pub island_ntree: *mut ::std::os::raw::c_int,
1631 pub island_itreeadr: *mut ::std::os::raw::c_int,
1632 pub map_itree2tree: *mut ::std::os::raw::c_int,
1633 pub dof_island: *mut ::std::os::raw::c_int,
1634 pub island_nv: *mut ::std::os::raw::c_int,
1635 pub island_idofadr: *mut ::std::os::raw::c_int,
1636 pub island_dofadr: *mut ::std::os::raw::c_int,
1637 pub map_dof2idof: *mut ::std::os::raw::c_int,
1638 pub map_idof2dof: *mut ::std::os::raw::c_int,
1639 pub ifrc_smooth: *mut mjtNum,
1640 pub iacc_smooth: *mut mjtNum,
1641 pub iM_rownnz: *mut ::std::os::raw::c_int,
1642 pub iM_rowadr: *mut ::std::os::raw::c_int,
1643 pub iM_colind: *mut ::std::os::raw::c_int,
1644 pub iM: *mut mjtNum,
1645 pub iLD: *mut mjtNum,
1646 pub iLDiagInv: *mut mjtNum,
1647 pub iacc: *mut mjtNum,
1648 pub efc_island: *mut ::std::os::raw::c_int,
1649 pub island_ne: *mut ::std::os::raw::c_int,
1650 pub island_nf: *mut ::std::os::raw::c_int,
1651 pub island_nefc: *mut ::std::os::raw::c_int,
1652 pub island_iefcadr: *mut ::std::os::raw::c_int,
1653 pub map_efc2iefc: *mut ::std::os::raw::c_int,
1654 pub map_iefc2efc: *mut ::std::os::raw::c_int,
1655 pub iefc_type: *mut ::std::os::raw::c_int,
1656 pub iefc_id: *mut ::std::os::raw::c_int,
1657 pub iefc_J_rownnz: *mut ::std::os::raw::c_int,
1658 pub iefc_J_rowadr: *mut ::std::os::raw::c_int,
1659 pub iefc_J_rowsuper: *mut ::std::os::raw::c_int,
1660 pub iefc_J_colind: *mut ::std::os::raw::c_int,
1661 pub iefc_J: *mut mjtNum,
1662 pub iefc_frictionloss: *mut mjtNum,
1663 pub iefc_D: *mut mjtNum,
1664 pub iefc_R: *mut mjtNum,
1665 pub efc_Y_rownnz: *mut ::std::os::raw::c_int,
1666 pub efc_Y_rowadr: *mut ::std::os::raw::c_int,
1667 pub efc_Y_colind: *mut ::std::os::raw::c_int,
1668 pub efc_Y: *mut mjtNum,
1669 pub efc_AR_rownnz: *mut ::std::os::raw::c_int,
1670 pub efc_AR_rowadr: *mut ::std::os::raw::c_int,
1671 pub efc_AR_colind: *mut ::std::os::raw::c_int,
1672 pub efc_AR: *mut mjtNum,
1673 pub efc_vel: *mut mjtNum,
1674 pub efc_aref: *mut mjtNum,
1675 pub efc_b: *mut mjtNum,
1676 pub iefc_aref: *mut mjtNum,
1677 pub iefc_state: *mut ::std::os::raw::c_int,
1678 pub iefc_force: *mut mjtNum,
1679 pub efc_state: *mut ::std::os::raw::c_int,
1680 pub efc_force: *mut mjtNum,
1681 pub ifrc_constraint: *mut mjtNum,
1682 pub threadpool: usize,
1683 pub signature: u64,
1684}
1685pub type mjData = mjData_;
1686pub type mjfGeneric =
1687 ::std::option::Option<unsafe extern "C" fn(m: *const mjModel, d: *mut mjData)>;
1688pub type mjfConFilt = ::std::option::Option<
1689 unsafe extern "C" fn(
1690 m: *const mjModel,
1691 d: *mut mjData,
1692 geom1: ::std::os::raw::c_int,
1693 geom2: ::std::os::raw::c_int,
1694 ) -> ::std::os::raw::c_int,
1695>;
1696pub type mjfSensor = ::std::option::Option<
1697 unsafe extern "C" fn(m: *const mjModel, d: *mut mjData, stage: ::std::os::raw::c_int),
1698>;
1699pub type mjfTime = ::std::option::Option<unsafe extern "C" fn() -> mjtNum>;
1700pub type mjfAct = ::std::option::Option<
1701 unsafe extern "C" fn(m: *const mjModel, d: *const mjData, id: ::std::os::raw::c_int) -> mjtNum,
1702>;
1703pub type mjfCollision = ::std::option::Option<
1704 unsafe extern "C" fn(
1705 m: *const mjModel,
1706 d: *mut mjData,
1707 con: *mut mjPreContact,
1708 g1: ::std::os::raw::c_int,
1709 g2: ::std::os::raw::c_int,
1710 margin: mjtNum,
1711 ) -> ::std::os::raw::c_int,
1712>;
1713pub type mjString = ::std::os::raw::c_void;
1714pub type mjStringVec = ::std::os::raw::c_void;
1715pub type mjIntVec = ::std::os::raw::c_void;
1716pub type mjIntVecVec = ::std::os::raw::c_void;
1717pub type mjFloatVec = ::std::os::raw::c_void;
1718pub type mjFloatVecVec = ::std::os::raw::c_void;
1719pub type mjDoubleVec = ::std::os::raw::c_void;
1720pub type mjByteVec = ::std::os::raw::c_void;
1721#[repr(u32)]
1722#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
1723pub enum mjtGeomInertia_ {
1724 mjINERTIA_VOLUME = 0,
1725 mjINERTIA_SHELL = 1,
1726}
1727pub use self::mjtGeomInertia_ as mjtGeomInertia;
1728#[repr(u32)]
1729#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
1730pub enum mjtMeshInertia_ {
1731 mjMESH_INERTIA_CONVEX = 0,
1732 mjMESH_INERTIA_EXACT = 1,
1733 mjMESH_INERTIA_LEGACY = 2,
1734 mjMESH_INERTIA_SHELL = 3,
1735}
1736pub use self::mjtMeshInertia_ as mjtMeshInertia;
1737#[repr(u32)]
1738#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
1739pub enum mjtMeshBuiltin_ {
1740 mjMESH_BUILTIN_NONE = 0,
1741 mjMESH_BUILTIN_SPHERE = 1,
1742 mjMESH_BUILTIN_HEMISPHERE = 2,
1743 mjMESH_BUILTIN_CONE = 3,
1744 mjMESH_BUILTIN_SUPERSPHERE = 4,
1745 mjMESH_BUILTIN_SUPERTORUS = 5,
1746 mjMESH_BUILTIN_WEDGE = 6,
1747 mjMESH_BUILTIN_PLATE = 7,
1748}
1749pub use self::mjtMeshBuiltin_ as mjtMeshBuiltin;
1750#[repr(u32)]
1751#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
1752pub enum mjtBuiltin_ {
1753 mjBUILTIN_NONE = 0,
1754 mjBUILTIN_GRADIENT = 1,
1755 mjBUILTIN_CHECKER = 2,
1756 mjBUILTIN_FLAT = 3,
1757}
1758pub use self::mjtBuiltin_ as mjtBuiltin;
1759#[repr(u32)]
1760#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
1761pub enum mjtMark_ {
1762 mjMARK_NONE = 0,
1763 mjMARK_EDGE = 1,
1764 mjMARK_CROSS = 2,
1765 mjMARK_RANDOM = 3,
1766}
1767pub use self::mjtMark_ as mjtMark;
1768#[repr(u32)]
1769#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
1770pub enum mjtLimited_ {
1771 mjLIMITED_FALSE = 0,
1772 mjLIMITED_TRUE = 1,
1773 mjLIMITED_AUTO = 2,
1774}
1775pub use self::mjtLimited_ as mjtLimited;
1776#[repr(u32)]
1777#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
1778pub enum mjtAlignFree_ {
1779 mjALIGNFREE_FALSE = 0,
1780 mjALIGNFREE_TRUE = 1,
1781 mjALIGNFREE_AUTO = 2,
1782}
1783pub use self::mjtAlignFree_ as mjtAlignFree;
1784#[repr(u32)]
1785#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
1786pub enum mjtInertiaFromGeom_ {
1787 mjINERTIAFROMGEOM_FALSE = 0,
1788 mjINERTIAFROMGEOM_TRUE = 1,
1789 mjINERTIAFROMGEOM_AUTO = 2,
1790}
1791pub use self::mjtInertiaFromGeom_ as mjtInertiaFromGeom;
1792#[repr(u32)]
1793#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
1794pub enum mjtOrientation_ {
1795 mjORIENTATION_QUAT = 0,
1796 mjORIENTATION_AXISANGLE = 1,
1797 mjORIENTATION_XYAXES = 2,
1798 mjORIENTATION_ZAXIS = 3,
1799 mjORIENTATION_EULER = 4,
1800}
1801pub use self::mjtOrientation_ as mjtOrientation;
1802#[repr(u32)]
1803#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
1804pub enum mjtCTimer_ {
1805 mjCTIMER_TOTAL = 0,
1806 mjCTIMER_ASSETS = 1,
1807 mjCTIMER_TEXTURE = 2,
1808 mjCTIMER_MESH_LOAD = 3,
1809 mjCTIMER_MESH_HULL = 4,
1810 mjCTIMER_MESH_POLYGON = 5,
1811 mjCTIMER_MESH_INERTIA = 6,
1812 mjCTIMER_MESH_BVH = 7,
1813 mjCTIMER_MESH_OCTREE = 8,
1814 mjNCTIMER = 9,
1815}
1816pub use self::mjtCTimer_ as mjtCTimer;
1817#[repr(C)]
1818#[derive(Debug)]
1819pub struct mjsElement_ {
1820 pub(crate) elemtype: mjtObj,
1821 pub(crate) signature: u64,
1822}
1823pub type mjsElement = mjsElement_;
1824#[repr(C)]
1825#[derive(Debug)]
1826pub struct mjsCompiler_ {
1827 pub(crate) autolimits: mjtByte,
1828 pub(crate) boundmass: f64,
1829 pub(crate) boundinertia: f64,
1830 pub(crate) settotalmass: f64,
1831 pub(crate) balanceinertia: mjtByte,
1832 pub(crate) fitaabb: mjtByte,
1833 pub(crate) degree: mjtByte,
1834 pub(crate) eulerseq: [::std::os::raw::c_char; 3usize],
1835 pub(crate) discardvisual: mjtByte,
1836 pub(crate) usethread: mjtByte,
1837 pub(crate) fusestatic: mjtByte,
1838 pub(crate) inertiafromgeom: ::std::os::raw::c_int,
1839 pub(crate) inertiagrouprange: [::std::os::raw::c_int; 2usize],
1840 pub(crate) saveinertial: mjtByte,
1841 pub(crate) alignfree: ::std::os::raw::c_int,
1842 pub(crate) LRopt: mjLROpt,
1843 pub(crate) meshdir: *mut mjString,
1844 pub(crate) texturedir: *mut mjString,
1845}
1846pub type mjsCompiler = mjsCompiler_;
1847#[repr(C)]
1848#[derive(Debug)]
1849pub struct mjSpec_ {
1850 pub element: *mut mjsElement,
1851 pub modelname: *mut mjString,
1852 pub compiler: mjsCompiler,
1853 pub strippath: mjtByte,
1854 pub option: mjOption,
1855 pub visual: mjVisual,
1856 pub stat: mjStatistic,
1857 pub memory: mjtSize,
1858 pub nemax: ::std::os::raw::c_int,
1859 pub nuserdata: ::std::os::raw::c_int,
1860 pub nuser_body: ::std::os::raw::c_int,
1861 pub nuser_jnt: ::std::os::raw::c_int,
1862 pub nuser_geom: ::std::os::raw::c_int,
1863 pub nuser_site: ::std::os::raw::c_int,
1864 pub nuser_cam: ::std::os::raw::c_int,
1865 pub nuser_tendon: ::std::os::raw::c_int,
1866 pub nuser_actuator: ::std::os::raw::c_int,
1867 pub nuser_sensor: ::std::os::raw::c_int,
1868 pub nkey: ::std::os::raw::c_int,
1869 pub njmax: ::std::os::raw::c_int,
1870 pub nconmax: ::std::os::raw::c_int,
1871 pub nstack: mjtSize,
1872 pub comment: *mut mjString,
1873 pub modelfiledir: *mut mjString,
1874 pub hasImplicitPluginElem: mjtByte,
1875}
1876pub type mjSpec = mjSpec_;
1877#[repr(C)]
1878#[derive(Debug)]
1879pub struct mjsOrientation_ {
1880 pub(crate) type_: mjtOrientation,
1881 pub(crate) axisangle: [f64; 4usize],
1882 pub(crate) xyaxes: [f64; 6usize],
1883 pub(crate) zaxis: [f64; 3usize],
1884 pub(crate) euler: [f64; 3usize],
1885}
1886pub type mjsOrientation = mjsOrientation_;
1887#[repr(C)]
1888#[derive(Debug)]
1889pub struct mjsPlugin_ {
1890 pub(crate) element: *mut mjsElement,
1891 pub(crate) name: *mut mjString,
1892 pub(crate) plugin_name: *mut mjString,
1893 pub(crate) active: mjtByte,
1894 pub(crate) info: *mut mjString,
1895}
1896pub type mjsPlugin = mjsPlugin_;
1897#[repr(C)]
1898#[derive(Debug)]
1899pub struct mjsBody_ {
1900 pub(crate) element: *mut mjsElement,
1901 pub(crate) childclass: *mut mjString,
1902 pub(crate) pos: [f64; 3usize],
1903 pub(crate) quat: [f64; 4usize],
1904 pub(crate) alt: mjsOrientation,
1905 pub(crate) mass: f64,
1906 pub(crate) ipos: [f64; 3usize],
1907 pub(crate) iquat: [f64; 4usize],
1908 pub(crate) inertia: [f64; 3usize],
1909 pub(crate) ialt: mjsOrientation,
1910 pub(crate) fullinertia: [f64; 6usize],
1911 pub(crate) mocap: mjtByte,
1912 pub(crate) gravcomp: f64,
1913 pub(crate) sleep: mjtSleepPolicy,
1914 pub(crate) userdata: *mut mjDoubleVec,
1915 pub(crate) explicitinertial: mjtByte,
1916 pub(crate) plugin: mjsPlugin,
1917 pub(crate) info: *mut mjString,
1918}
1919pub type mjsBody = mjsBody_;
1920#[repr(C)]
1921#[derive(Debug)]
1922pub struct mjsFrame_ {
1923 pub(crate) element: *mut mjsElement,
1924 pub(crate) childclass: *mut mjString,
1925 pub(crate) pos: [f64; 3usize],
1926 pub(crate) quat: [f64; 4usize],
1927 pub(crate) alt: mjsOrientation,
1928 pub(crate) info: *mut mjString,
1929}
1930pub type mjsFrame = mjsFrame_;
1931#[repr(C)]
1932#[derive(Debug)]
1933pub struct mjsJoint_ {
1934 pub(crate) element: *mut mjsElement,
1935 pub(crate) type_: mjtJoint,
1936 pub(crate) pos: [f64; 3usize],
1937 pub(crate) axis: [f64; 3usize],
1938 pub(crate) ref_: f64,
1939 pub(crate) align: ::std::os::raw::c_int,
1940 pub(crate) stiffness: [f64; 3usize],
1941 pub(crate) springref: f64,
1942 pub(crate) springdamper: [f64; 2usize],
1943 pub(crate) limited: ::std::os::raw::c_int,
1944 pub(crate) range: [f64; 2usize],
1945 pub(crate) margin: f64,
1946 pub(crate) solref_limit: [mjtNum; 2usize],
1947 pub(crate) solimp_limit: [mjtNum; 5usize],
1948 pub(crate) actfrclimited: ::std::os::raw::c_int,
1949 pub(crate) actfrcrange: [f64; 2usize],
1950 pub(crate) armature: f64,
1951 pub(crate) damping: [f64; 3usize],
1952 pub(crate) frictionloss: f64,
1953 pub(crate) solref_friction: [mjtNum; 2usize],
1954 pub(crate) solimp_friction: [mjtNum; 5usize],
1955 pub(crate) group: ::std::os::raw::c_int,
1956 pub(crate) actgravcomp: mjtByte,
1957 pub(crate) userdata: *mut mjDoubleVec,
1958 pub(crate) info: *mut mjString,
1959}
1960pub type mjsJoint = mjsJoint_;
1961#[repr(C)]
1962#[derive(Debug)]
1963pub struct mjsGeom_ {
1964 pub(crate) element: *mut mjsElement,
1965 pub(crate) type_: mjtGeom,
1966 pub(crate) pos: [f64; 3usize],
1967 pub(crate) quat: [f64; 4usize],
1968 pub(crate) alt: mjsOrientation,
1969 pub(crate) fromto: [f64; 6usize],
1970 pub(crate) size: [f64; 3usize],
1971 pub(crate) contype: ::std::os::raw::c_int,
1972 pub(crate) conaffinity: ::std::os::raw::c_int,
1973 pub(crate) condim: ::std::os::raw::c_int,
1974 pub(crate) priority: ::std::os::raw::c_int,
1975 pub(crate) friction: [f64; 3usize],
1976 pub(crate) solmix: f64,
1977 pub(crate) solref: [mjtNum; 2usize],
1978 pub(crate) solimp: [mjtNum; 5usize],
1979 pub(crate) margin: f64,
1980 pub(crate) gap: f64,
1981 pub(crate) mass: f64,
1982 pub(crate) density: f64,
1983 pub(crate) typeinertia: mjtGeomInertia,
1984 pub(crate) fluid_ellipsoid: mjtNum,
1985 pub(crate) fluid_coefs: [mjtNum; 5usize],
1986 pub(crate) material: *mut mjString,
1987 pub(crate) rgba: [f32; 4usize],
1988 pub(crate) group: ::std::os::raw::c_int,
1989 pub(crate) hfieldname: *mut mjString,
1990 pub(crate) meshname: *mut mjString,
1991 pub(crate) fitscale: f64,
1992 pub(crate) userdata: *mut mjDoubleVec,
1993 pub(crate) plugin: mjsPlugin,
1994 pub(crate) info: *mut mjString,
1995}
1996pub type mjsGeom = mjsGeom_;
1997#[repr(C)]
1998#[derive(Debug)]
1999pub struct mjsSite_ {
2000 pub(crate) element: *mut mjsElement,
2001 pub(crate) pos: [f64; 3usize],
2002 pub(crate) quat: [f64; 4usize],
2003 pub(crate) alt: mjsOrientation,
2004 pub(crate) fromto: [f64; 6usize],
2005 pub(crate) size: [f64; 3usize],
2006 pub(crate) type_: mjtGeom,
2007 pub(crate) material: *mut mjString,
2008 pub(crate) group: ::std::os::raw::c_int,
2009 pub(crate) rgba: [f32; 4usize],
2010 pub(crate) userdata: *mut mjDoubleVec,
2011 pub(crate) info: *mut mjString,
2012}
2013pub type mjsSite = mjsSite_;
2014#[repr(C)]
2015#[derive(Debug)]
2016pub struct mjsCamera_ {
2017 pub(crate) element: *mut mjsElement,
2018 pub(crate) pos: [f64; 3usize],
2019 pub(crate) quat: [f64; 4usize],
2020 pub(crate) alt: mjsOrientation,
2021 pub(crate) mode: mjtCamLight,
2022 pub(crate) targetbody: *mut mjString,
2023 pub(crate) proj: mjtProjection,
2024 pub(crate) resolution: [::std::os::raw::c_int; 2usize],
2025 pub(crate) output: ::std::os::raw::c_int,
2026 pub(crate) fovy: f64,
2027 pub(crate) ipd: f64,
2028 pub(crate) intrinsic: [f32; 4usize],
2029 pub(crate) sensor_size: [f32; 2usize],
2030 pub(crate) focal_length: [f32; 2usize],
2031 pub(crate) focal_pixel: [f32; 2usize],
2032 pub(crate) principal_length: [f32; 2usize],
2033 pub(crate) principal_pixel: [f32; 2usize],
2034 pub(crate) userdata: *mut mjDoubleVec,
2035 pub(crate) info: *mut mjString,
2036}
2037pub type mjsCamera = mjsCamera_;
2038#[repr(C)]
2039#[derive(Debug)]
2040pub struct mjsLight_ {
2041 pub(crate) element: *mut mjsElement,
2042 pub(crate) pos: [f64; 3usize],
2043 pub(crate) dir: [f64; 3usize],
2044 pub(crate) mode: mjtCamLight,
2045 pub(crate) targetbody: *mut mjString,
2046 pub(crate) active: mjtByte,
2047 pub(crate) type_: mjtLightType,
2048 pub(crate) texture: *mut mjString,
2049 pub(crate) castshadow: mjtByte,
2050 pub(crate) bulbradius: f32,
2051 pub(crate) intensity: f32,
2052 pub(crate) range: f32,
2053 pub(crate) attenuation: [f32; 3usize],
2054 pub(crate) cutoff: f32,
2055 pub(crate) exponent: f32,
2056 pub(crate) ambient: [f32; 3usize],
2057 pub(crate) diffuse: [f32; 3usize],
2058 pub(crate) specular: [f32; 3usize],
2059 pub(crate) info: *mut mjString,
2060}
2061pub type mjsLight = mjsLight_;
2062#[repr(C)]
2063#[derive(Debug)]
2064pub struct mjsFlex_ {
2065 pub(crate) element: *mut mjsElement,
2066 pub(crate) contype: ::std::os::raw::c_int,
2067 pub(crate) conaffinity: ::std::os::raw::c_int,
2068 pub(crate) condim: ::std::os::raw::c_int,
2069 pub(crate) priority: ::std::os::raw::c_int,
2070 pub(crate) friction: [f64; 3usize],
2071 pub(crate) solmix: f64,
2072 pub(crate) solref: [mjtNum; 2usize],
2073 pub(crate) solimp: [mjtNum; 5usize],
2074 pub(crate) margin: f64,
2075 pub(crate) gap: f64,
2076 pub(crate) dim: ::std::os::raw::c_int,
2077 pub(crate) radius: f64,
2078 pub(crate) size: [f64; 3usize],
2079 pub(crate) internal: mjtByte,
2080 pub(crate) flatskin: mjtByte,
2081 pub(crate) selfcollide: ::std::os::raw::c_int,
2082 pub(crate) passive: ::std::os::raw::c_int,
2083 pub(crate) activelayers: ::std::os::raw::c_int,
2084 pub(crate) group: ::std::os::raw::c_int,
2085 pub(crate) edgestiffness: f64,
2086 pub(crate) edgedamping: f64,
2087 pub(crate) rgba: [f32; 4usize],
2088 pub(crate) material: *mut mjString,
2089 pub(crate) young: f64,
2090 pub(crate) poisson: f64,
2091 pub(crate) damping: f64,
2092 pub(crate) thickness: f64,
2093 pub(crate) elastic2d: ::std::os::raw::c_int,
2094 pub(crate) cellcount: [::std::os::raw::c_int; 3usize],
2095 pub(crate) order: ::std::os::raw::c_int,
2096 pub(crate) nodebody: *mut mjStringVec,
2097 pub(crate) vertbody: *mut mjStringVec,
2098 pub(crate) node: *mut mjDoubleVec,
2099 pub(crate) vert: *mut mjDoubleVec,
2100 pub(crate) elem: *mut mjIntVec,
2101 pub(crate) texcoord: *mut mjFloatVec,
2102 pub(crate) elemtexcoord: *mut mjIntVec,
2103 pub(crate) info: *mut mjString,
2104}
2105pub type mjsFlex = mjsFlex_;
2106#[repr(C)]
2107#[derive(Debug)]
2108pub struct mjsMesh_ {
2109 pub(crate) element: *mut mjsElement,
2110 pub(crate) content_type: *mut mjString,
2111 pub(crate) file: *mut mjString,
2112 pub(crate) refpos: [f64; 3usize],
2113 pub(crate) refquat: [f64; 4usize],
2114 pub(crate) scale: [f64; 3usize],
2115 pub(crate) inertia: mjtMeshInertia,
2116 pub(crate) smoothnormal: mjtByte,
2117 pub(crate) needsdf: mjtByte,
2118 pub(crate) maxhullvert: ::std::os::raw::c_int,
2119 pub(crate) uservert: *mut mjFloatVec,
2120 pub(crate) usernormal: *mut mjFloatVec,
2121 pub(crate) usertexcoord: *mut mjFloatVec,
2122 pub(crate) userface: *mut mjIntVec,
2123 pub(crate) userfacenormal: *mut mjIntVec,
2124 pub(crate) userfacetexcoord: *mut mjIntVec,
2125 pub(crate) plugin: mjsPlugin,
2126 pub(crate) material: *mut mjString,
2127 pub(crate) octree_maxdepth: ::std::os::raw::c_int,
2128 pub(crate) info: *mut mjString,
2129}
2130pub type mjsMesh = mjsMesh_;
2131#[repr(C)]
2132#[derive(Debug)]
2133pub struct mjsHField_ {
2134 pub(crate) element: *mut mjsElement,
2135 pub(crate) content_type: *mut mjString,
2136 pub(crate) file: *mut mjString,
2137 pub(crate) size: [f64; 4usize],
2138 pub(crate) nrow: ::std::os::raw::c_int,
2139 pub(crate) ncol: ::std::os::raw::c_int,
2140 pub(crate) userdata: *mut mjFloatVec,
2141 pub(crate) info: *mut mjString,
2142}
2143pub type mjsHField = mjsHField_;
2144#[repr(C)]
2145#[derive(Debug)]
2146pub struct mjsSkin_ {
2147 pub(crate) element: *mut mjsElement,
2148 pub(crate) file: *mut mjString,
2149 pub(crate) material: *mut mjString,
2150 pub(crate) rgba: [f32; 4usize],
2151 pub(crate) inflate: f32,
2152 pub(crate) group: ::std::os::raw::c_int,
2153 pub(crate) vert: *mut mjFloatVec,
2154 pub(crate) texcoord: *mut mjFloatVec,
2155 pub(crate) face: *mut mjIntVec,
2156 pub(crate) bodyname: *mut mjStringVec,
2157 pub(crate) bindpos: *mut mjFloatVec,
2158 pub(crate) bindquat: *mut mjFloatVec,
2159 pub(crate) vertid: *mut mjIntVecVec,
2160 pub(crate) vertweight: *mut mjFloatVecVec,
2161 pub(crate) info: *mut mjString,
2162}
2163pub type mjsSkin = mjsSkin_;
2164#[repr(C)]
2165#[derive(Debug)]
2166pub struct mjsTexture_ {
2167 pub(crate) element: *mut mjsElement,
2168 pub(crate) type_: mjtTexture,
2169 pub(crate) colorspace: mjtColorSpace,
2170 pub(crate) builtin: ::std::os::raw::c_int,
2171 pub(crate) mark: ::std::os::raw::c_int,
2172 pub(crate) rgb1: [f64; 3usize],
2173 pub(crate) rgb2: [f64; 3usize],
2174 pub(crate) markrgb: [f64; 3usize],
2175 pub(crate) random: f64,
2176 pub(crate) height: ::std::os::raw::c_int,
2177 pub(crate) width: ::std::os::raw::c_int,
2178 pub(crate) nchannel: ::std::os::raw::c_int,
2179 pub(crate) content_type: *mut mjString,
2180 pub(crate) file: *mut mjString,
2181 pub(crate) gridsize: [::std::os::raw::c_int; 2usize],
2182 pub(crate) gridlayout: [::std::os::raw::c_char; 12usize],
2183 pub(crate) cubefiles: *mut mjStringVec,
2184 pub(crate) data: *mut mjByteVec,
2185 pub(crate) hflip: mjtByte,
2186 pub(crate) vflip: mjtByte,
2187 pub(crate) info: *mut mjString,
2188}
2189pub type mjsTexture = mjsTexture_;
2190#[repr(C)]
2191#[derive(Debug)]
2192pub struct mjsMaterial_ {
2193 pub(crate) element: *mut mjsElement,
2194 pub(crate) textures: *mut mjStringVec,
2195 pub(crate) texuniform: mjtByte,
2196 pub(crate) texrepeat: [f32; 2usize],
2197 pub(crate) emission: f32,
2198 pub(crate) specular: f32,
2199 pub(crate) shininess: f32,
2200 pub(crate) reflectance: f32,
2201 pub(crate) metallic: f32,
2202 pub(crate) roughness: f32,
2203 pub(crate) rgba: [f32; 4usize],
2204 pub(crate) info: *mut mjString,
2205}
2206pub type mjsMaterial = mjsMaterial_;
2207#[repr(C)]
2208#[derive(Debug)]
2209pub struct mjsPair_ {
2210 pub(crate) element: *mut mjsElement,
2211 pub(crate) geomname1: *mut mjString,
2212 pub(crate) geomname2: *mut mjString,
2213 pub(crate) condim: ::std::os::raw::c_int,
2214 pub(crate) solref: [mjtNum; 2usize],
2215 pub(crate) solreffriction: [mjtNum; 2usize],
2216 pub(crate) solimp: [mjtNum; 5usize],
2217 pub(crate) margin: f64,
2218 pub(crate) gap: f64,
2219 pub(crate) friction: [f64; 5usize],
2220 pub(crate) info: *mut mjString,
2221}
2222pub type mjsPair = mjsPair_;
2223#[repr(C)]
2224#[derive(Debug)]
2225pub struct mjsExclude_ {
2226 pub(crate) element: *mut mjsElement,
2227 pub(crate) bodyname1: *mut mjString,
2228 pub(crate) bodyname2: *mut mjString,
2229 pub(crate) info: *mut mjString,
2230}
2231pub type mjsExclude = mjsExclude_;
2232#[repr(C)]
2233#[derive(Debug)]
2234pub struct mjsEquality_ {
2235 pub(crate) element: *mut mjsElement,
2236 pub(crate) type_: mjtEq,
2237 pub(crate) data: [f64; 11usize],
2238 pub(crate) active: mjtByte,
2239 pub(crate) name1: *mut mjString,
2240 pub(crate) name2: *mut mjString,
2241 pub(crate) objtype: mjtObj,
2242 pub(crate) solref: [mjtNum; 2usize],
2243 pub(crate) solimp: [mjtNum; 5usize],
2244 pub(crate) info: *mut mjString,
2245}
2246pub type mjsEquality = mjsEquality_;
2247#[repr(C)]
2248#[derive(Debug)]
2249pub struct mjsTendon_ {
2250 pub(crate) element: *mut mjsElement,
2251 pub(crate) stiffness: [f64; 3usize],
2252 pub(crate) springlength: [f64; 2usize],
2253 pub(crate) damping: [f64; 3usize],
2254 pub(crate) frictionloss: f64,
2255 pub(crate) solref_friction: [mjtNum; 2usize],
2256 pub(crate) solimp_friction: [mjtNum; 5usize],
2257 pub(crate) armature: f64,
2258 pub(crate) limited: ::std::os::raw::c_int,
2259 pub(crate) actfrclimited: ::std::os::raw::c_int,
2260 pub(crate) range: [f64; 2usize],
2261 pub(crate) actfrcrange: [f64; 2usize],
2262 pub(crate) margin: f64,
2263 pub(crate) solref_limit: [mjtNum; 2usize],
2264 pub(crate) solimp_limit: [mjtNum; 5usize],
2265 pub(crate) material: *mut mjString,
2266 pub(crate) width: f64,
2267 pub(crate) rgba: [f32; 4usize],
2268 pub(crate) group: ::std::os::raw::c_int,
2269 pub(crate) userdata: *mut mjDoubleVec,
2270 pub(crate) info: *mut mjString,
2271}
2272pub type mjsTendon = mjsTendon_;
2273#[repr(C)]
2274#[derive(Debug)]
2275pub struct mjsWrap_ {
2276 pub(crate) element: *mut mjsElement,
2277 pub(crate) type_: mjtWrap,
2278 pub(crate) info: *mut mjString,
2279}
2280pub type mjsWrap = mjsWrap_;
2281#[repr(C)]
2282#[derive(Debug)]
2283pub struct mjsActuator_ {
2284 pub(crate) element: *mut mjsElement,
2285 pub(crate) gaintype: mjtGain,
2286 pub(crate) gainprm: [f64; 10usize],
2287 pub(crate) biastype: mjtBias,
2288 pub(crate) biasprm: [f64; 10usize],
2289 pub(crate) dyntype: mjtDyn,
2290 pub(crate) dynprm: [f64; 10usize],
2291 pub(crate) actdim: ::std::os::raw::c_int,
2292 pub(crate) actearly: mjtByte,
2293 pub(crate) trntype: mjtTrn,
2294 pub(crate) gear: [f64; 6usize],
2295 pub(crate) target: *mut mjString,
2296 pub(crate) refsite: *mut mjString,
2297 pub(crate) slidersite: *mut mjString,
2298 pub(crate) cranklength: f64,
2299 pub(crate) lengthrange: [f64; 2usize],
2300 pub(crate) inheritrange: f64,
2301 pub(crate) damping: [f64; 3usize],
2302 pub(crate) armature: f64,
2303 pub(crate) ctrllimited: ::std::os::raw::c_int,
2304 pub(crate) ctrlrange: [f64; 2usize],
2305 pub(crate) forcelimited: ::std::os::raw::c_int,
2306 pub(crate) forcerange: [f64; 2usize],
2307 pub(crate) actlimited: ::std::os::raw::c_int,
2308 pub(crate) actrange: [f64; 2usize],
2309 pub(crate) group: ::std::os::raw::c_int,
2310 pub(crate) nsample: ::std::os::raw::c_int,
2311 pub(crate) interp: ::std::os::raw::c_int,
2312 pub(crate) delay: f64,
2313 pub(crate) userdata: *mut mjDoubleVec,
2314 pub(crate) plugin: mjsPlugin,
2315 pub(crate) info: *mut mjString,
2316}
2317pub type mjsActuator = mjsActuator_;
2318#[repr(C)]
2319#[derive(Debug)]
2320pub struct mjsSensor_ {
2321 pub(crate) element: *mut mjsElement,
2322 pub(crate) type_: mjtSensor,
2323 pub(crate) objtype: mjtObj,
2324 pub(crate) objname: *mut mjString,
2325 pub(crate) reftype: mjtObj,
2326 pub(crate) refname: *mut mjString,
2327 pub(crate) intprm: [::std::os::raw::c_int; 3usize],
2328 pub(crate) datatype: mjtDataType,
2329 pub(crate) needstage: mjtStage,
2330 pub(crate) dim: ::std::os::raw::c_int,
2331 pub(crate) cutoff: f64,
2332 pub(crate) noise: f64,
2333 pub(crate) nsample: ::std::os::raw::c_int,
2334 pub(crate) interp: ::std::os::raw::c_int,
2335 pub(crate) delay: f64,
2336 pub(crate) interval: [f64; 2usize],
2337 pub(crate) userdata: *mut mjDoubleVec,
2338 pub(crate) plugin: mjsPlugin,
2339 pub(crate) info: *mut mjString,
2340}
2341pub type mjsSensor = mjsSensor_;
2342#[repr(C)]
2343#[derive(Debug)]
2344pub struct mjsNumeric_ {
2345 pub(crate) element: *mut mjsElement,
2346 pub(crate) data: *mut mjDoubleVec,
2347 pub(crate) size: ::std::os::raw::c_int,
2348 pub(crate) info: *mut mjString,
2349}
2350pub type mjsNumeric = mjsNumeric_;
2351#[repr(C)]
2352#[derive(Debug)]
2353pub struct mjsText_ {
2354 pub(crate) element: *mut mjsElement,
2355 pub(crate) data: *mut mjString,
2356 pub(crate) info: *mut mjString,
2357}
2358pub type mjsText = mjsText_;
2359#[repr(C)]
2360#[derive(Debug)]
2361pub struct mjsTuple_ {
2362 pub(crate) element: *mut mjsElement,
2363 pub(crate) objtype: *mut mjIntVec,
2364 pub(crate) objname: *mut mjStringVec,
2365 pub(crate) objprm: *mut mjDoubleVec,
2366 pub(crate) info: *mut mjString,
2367}
2368pub type mjsTuple = mjsTuple_;
2369#[repr(C)]
2370#[derive(Debug)]
2371pub struct mjsKey_ {
2372 pub(crate) element: *mut mjsElement,
2373 pub(crate) time: f64,
2374 pub(crate) qpos: *mut mjDoubleVec,
2375 pub(crate) qvel: *mut mjDoubleVec,
2376 pub(crate) act: *mut mjDoubleVec,
2377 pub(crate) mpos: *mut mjDoubleVec,
2378 pub(crate) mquat: *mut mjDoubleVec,
2379 pub(crate) ctrl: *mut mjDoubleVec,
2380 pub(crate) info: *mut mjString,
2381}
2382pub type mjsKey = mjsKey_;
2383#[repr(C)]
2384#[derive(Debug)]
2385pub struct mjsDefault_ {
2386 pub(crate) element: *mut mjsElement,
2387 pub(crate) joint: *mut mjsJoint,
2388 pub(crate) geom: *mut mjsGeom,
2389 pub(crate) site: *mut mjsSite,
2390 pub(crate) camera: *mut mjsCamera,
2391 pub(crate) light: *mut mjsLight,
2392 pub(crate) flex: *mut mjsFlex,
2393 pub(crate) mesh: *mut mjsMesh,
2394 pub(crate) material: *mut mjsMaterial,
2395 pub(crate) pair: *mut mjsPair,
2396 pub(crate) equality: *mut mjsEquality,
2397 pub(crate) tendon: *mut mjsTendon,
2398 pub(crate) actuator: *mut mjsActuator,
2399}
2400pub type mjsDefault = mjsDefault_;
2401#[repr(u32)]
2402#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
2403pub enum mjtCatBit_ {
2404 mjCAT_STATIC = 1,
2405 mjCAT_DYNAMIC = 2,
2406 mjCAT_DECOR = 4,
2407 mjCAT_ALL = 7,
2408}
2409pub use self::mjtCatBit_ as mjtCatBit;
2410#[repr(u32)]
2411#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
2412pub enum mjtMouse_ {
2413 mjMOUSE_NONE = 0,
2414 mjMOUSE_ROTATE_V = 1,
2415 mjMOUSE_ROTATE_H = 2,
2416 mjMOUSE_MOVE_V = 3,
2417 mjMOUSE_MOVE_H = 4,
2418 mjMOUSE_ZOOM = 5,
2419 mjMOUSE_MOVE_V_REL = 6,
2420 mjMOUSE_MOVE_H_REL = 7,
2421}
2422pub use self::mjtMouse_ as mjtMouse;
2423#[repr(u32)]
2424#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
2425pub enum mjtPertBit_ {
2426 mjPERT_TRANSLATE = 1,
2427 mjPERT_ROTATE = 2,
2428}
2429pub use self::mjtPertBit_ as mjtPertBit;
2430#[repr(u32)]
2431#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
2432pub enum mjtCamera_ {
2433 mjCAMERA_FREE = 0,
2434 mjCAMERA_TRACKING = 1,
2435 mjCAMERA_FIXED = 2,
2436 mjCAMERA_USER = 3,
2437}
2438pub use self::mjtCamera_ as mjtCamera;
2439#[repr(u32)]
2440#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
2441pub enum mjtLabel_ {
2442 mjLABEL_NONE = 0,
2443 mjLABEL_BODY = 1,
2444 mjLABEL_JOINT = 2,
2445 mjLABEL_GEOM = 3,
2446 mjLABEL_SITE = 4,
2447 mjLABEL_CAMERA = 5,
2448 mjLABEL_LIGHT = 6,
2449 mjLABEL_TENDON = 7,
2450 mjLABEL_ACTUATOR = 8,
2451 mjLABEL_CONSTRAINT = 9,
2452 mjLABEL_FLEX = 10,
2453 mjLABEL_SKIN = 11,
2454 mjLABEL_SELECTION = 12,
2455 mjLABEL_SELPNT = 13,
2456 mjLABEL_CONTACTPOINT = 14,
2457 mjLABEL_CONTACTFORCE = 15,
2458 mjLABEL_ISLAND = 16,
2459 mjNLABEL = 17,
2460}
2461pub use self::mjtLabel_ as mjtLabel;
2462#[repr(u32)]
2463#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
2464pub enum mjtFrame_ {
2465 mjFRAME_NONE = 0,
2466 mjFRAME_BODY = 1,
2467 mjFRAME_GEOM = 2,
2468 mjFRAME_SITE = 3,
2469 mjFRAME_CAMERA = 4,
2470 mjFRAME_LIGHT = 5,
2471 mjFRAME_CONTACT = 6,
2472 mjFRAME_WORLD = 7,
2473 mjNFRAME = 8,
2474}
2475pub use self::mjtFrame_ as mjtFrame;
2476#[repr(u32)]
2477#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
2478pub enum mjtVisFlag_ {
2479 mjVIS_CONVEXHULL = 0,
2480 mjVIS_TEXTURE = 1,
2481 mjVIS_JOINT = 2,
2482 mjVIS_CAMERA = 3,
2483 mjVIS_ACTUATOR = 4,
2484 mjVIS_ACTIVATION = 5,
2485 mjVIS_LIGHT = 6,
2486 mjVIS_TENDON = 7,
2487 mjVIS_RANGEFINDER = 8,
2488 mjVIS_CONSTRAINT = 9,
2489 mjVIS_INERTIA = 10,
2490 mjVIS_SCLINERTIA = 11,
2491 mjVIS_PERTFORCE = 12,
2492 mjVIS_PERTOBJ = 13,
2493 mjVIS_CONTACTPOINT = 14,
2494 mjVIS_ISLAND = 15,
2495 mjVIS_CONTACTFORCE = 16,
2496 mjVIS_CONTACTSPLIT = 17,
2497 mjVIS_TRANSPARENT = 18,
2498 mjVIS_AUTOCONNECT = 19,
2499 mjVIS_COM = 20,
2500 mjVIS_SELECT = 21,
2501 mjVIS_STATIC = 22,
2502 mjVIS_SKIN = 23,
2503 mjVIS_FLEXVERT = 24,
2504 mjVIS_FLEXEDGE = 25,
2505 mjVIS_FLEXFACE = 26,
2506 mjVIS_FLEXSKIN = 27,
2507 mjVIS_BODYBVH = 28,
2508 mjVIS_MESHBVH = 29,
2509 mjVIS_SDFITER = 30,
2510 mjNVISFLAG = 31,
2511}
2512pub use self::mjtVisFlag_ as mjtVisFlag;
2513#[repr(u32)]
2514#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
2515pub enum mjtRndFlag_ {
2516 mjRND_SHADOW = 0,
2517 mjRND_WIREFRAME = 1,
2518 mjRND_REFLECTION = 2,
2519 mjRND_ADDITIVE = 3,
2520 mjRND_SKYBOX = 4,
2521 mjRND_FOG = 5,
2522 mjRND_HAZE = 6,
2523 mjRND_DEPTH = 7,
2524 mjRND_SEGMENT = 8,
2525 mjRND_IDCOLOR = 9,
2526 mjRND_CULL_FACE = 10,
2527 mjNRNDFLAG = 11,
2528}
2529pub use self::mjtRndFlag_ as mjtRndFlag;
2530#[repr(u32)]
2531#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
2532pub enum mjtStereo_ {
2533 mjSTEREO_NONE = 0,
2534 mjSTEREO_QUADBUFFERED = 1,
2535 mjSTEREO_SIDEBYSIDE = 2,
2536}
2537pub use self::mjtStereo_ as mjtStereo;
2538#[repr(C)]
2539#[derive(Debug, Clone)]
2540pub struct mjvPerturb_ {
2541 pub select: ::std::os::raw::c_int,
2542 pub flexselect: ::std::os::raw::c_int,
2543 pub skinselect: ::std::os::raw::c_int,
2544 pub active: ::std::os::raw::c_int,
2545 pub active2: ::std::os::raw::c_int,
2546 pub refpos: [mjtNum; 3usize],
2547 pub refquat: [mjtNum; 4usize],
2548 pub refselpos: [mjtNum; 3usize],
2549 pub localpos: [mjtNum; 3usize],
2550 pub localmass: mjtNum,
2551 pub scale: mjtNum,
2552}
2553pub type mjvPerturb = mjvPerturb_;
2554#[repr(C)]
2555#[derive(Debug, Clone)]
2556pub struct mjvCamera_ {
2557 pub type_: ::std::os::raw::c_int,
2558 pub fixedcamid: ::std::os::raw::c_int,
2559 pub trackbodyid: ::std::os::raw::c_int,
2560 pub lookat: [mjtNum; 3usize],
2561 pub distance: mjtNum,
2562 pub azimuth: mjtNum,
2563 pub elevation: mjtNum,
2564 pub orthographic: ::std::os::raw::c_int,
2565}
2566pub type mjvCamera = mjvCamera_;
2567#[repr(C)]
2568#[derive(Debug, Clone)]
2569pub struct mjvGLCamera_ {
2570 pub pos: [f32; 3usize],
2571 pub forward: [f32; 3usize],
2572 pub up: [f32; 3usize],
2573 pub frustum_center: f32,
2574 pub frustum_width: f32,
2575 pub frustum_bottom: f32,
2576 pub frustum_top: f32,
2577 pub frustum_near: f32,
2578 pub frustum_far: f32,
2579 pub orthographic: ::std::os::raw::c_int,
2580}
2581pub type mjvGLCamera = mjvGLCamera_;
2582#[repr(C)]
2583#[derive(Debug, Clone)]
2584pub struct mjvGeom_ {
2585 pub type_: ::std::os::raw::c_int,
2586 pub dataid: ::std::os::raw::c_int,
2587 pub objtype: ::std::os::raw::c_int,
2588 pub objid: ::std::os::raw::c_int,
2589 pub category: ::std::os::raw::c_int,
2590 pub matid: ::std::os::raw::c_int,
2591 pub texcoord: ::std::os::raw::c_int,
2592 pub segid: ::std::os::raw::c_int,
2593 pub size: [f32; 3usize],
2594 pub pos: [f32; 3usize],
2595 pub mat: [f32; 9usize],
2596 pub rgba: [f32; 4usize],
2597 pub emission: f32,
2598 pub specular: f32,
2599 pub shininess: f32,
2600 pub reflectance: f32,
2601 pub label: [::std::os::raw::c_char; 100usize],
2602 pub camdist: f32,
2603 pub modelrbound: f32,
2604 pub transparent: mjtByte,
2605}
2606pub type mjvGeom = mjvGeom_;
2607#[repr(C)]
2608#[derive(Debug, Clone)]
2609pub struct mjvLight_ {
2610 pub id: ::std::os::raw::c_int,
2611 pub pos: [f32; 3usize],
2612 pub dir: [f32; 3usize],
2613 pub type_: ::std::os::raw::c_int,
2614 pub texid: ::std::os::raw::c_int,
2615 pub attenuation: [f32; 3usize],
2616 pub cutoff: f32,
2617 pub exponent: f32,
2618 pub ambient: [f32; 3usize],
2619 pub diffuse: [f32; 3usize],
2620 pub specular: [f32; 3usize],
2621 pub headlight: mjtByte,
2622 pub castshadow: mjtByte,
2623 pub bulbradius: f32,
2624 pub intensity: f32,
2625 pub range: f32,
2626}
2627pub type mjvLight = mjvLight_;
2628#[repr(C)]
2629#[derive(Debug, Clone)]
2630pub struct mjvOption_ {
2631 pub label: ::std::os::raw::c_int,
2632 pub frame: ::std::os::raw::c_int,
2633 pub geomgroup: [mjtByte; 6usize],
2634 pub sitegroup: [mjtByte; 6usize],
2635 pub jointgroup: [mjtByte; 6usize],
2636 pub tendongroup: [mjtByte; 6usize],
2637 pub actuatorgroup: [mjtByte; 6usize],
2638 pub flexgroup: [mjtByte; 6usize],
2639 pub skingroup: [mjtByte; 6usize],
2640 pub flags: [mjtByte; 31usize],
2641 pub bvh_depth: ::std::os::raw::c_int,
2642 pub flex_layer: ::std::os::raw::c_int,
2643}
2644pub type mjvOption = mjvOption_;
2645#[repr(C)]
2646#[derive(Debug, Clone)]
2647pub struct mjvScene_ {
2648 pub maxgeom: ::std::os::raw::c_int,
2649 pub ngeom: ::std::os::raw::c_int,
2650 pub geoms: *mut mjvGeom,
2651 pub geomorder: *mut ::std::os::raw::c_int,
2652 pub nflex: ::std::os::raw::c_int,
2653 pub flexedgeadr: *mut ::std::os::raw::c_int,
2654 pub flexedgenum: *mut ::std::os::raw::c_int,
2655 pub flexvertadr: *mut ::std::os::raw::c_int,
2656 pub flexvertnum: *mut ::std::os::raw::c_int,
2657 pub flexfaceadr: *mut ::std::os::raw::c_int,
2658 pub flexfacenum: *mut ::std::os::raw::c_int,
2659 pub flexfaceused: *mut ::std::os::raw::c_int,
2660 pub flexedge: *mut ::std::os::raw::c_int,
2661 pub flexvert: *mut f32,
2662 pub flexface: *mut f32,
2663 pub flexnormal: *mut f32,
2664 pub flextexcoord: *mut f32,
2665 pub flexvertopt: mjtByte,
2666 pub flexedgeopt: mjtByte,
2667 pub flexfaceopt: mjtByte,
2668 pub flexskinopt: mjtByte,
2669 pub nskin: ::std::os::raw::c_int,
2670 pub skinfacenum: *mut ::std::os::raw::c_int,
2671 pub skinvertadr: *mut ::std::os::raw::c_int,
2672 pub skinvertnum: *mut ::std::os::raw::c_int,
2673 pub skinvert: *mut f32,
2674 pub skinnormal: *mut f32,
2675 pub nlight: ::std::os::raw::c_int,
2676 pub lights: [mjvLight; 100usize],
2677 pub camera: [mjvGLCamera; 2usize],
2678 pub enabletransform: mjtByte,
2679 pub translate: [f32; 3usize],
2680 pub rotate: [f32; 4usize],
2681 pub scale: f32,
2682 pub stereo: ::std::os::raw::c_int,
2683 pub flags: [mjtByte; 11usize],
2684 pub framewidth: ::std::os::raw::c_int,
2685 pub framergb: [f32; 3usize],
2686 pub status: ::std::os::raw::c_int,
2687}
2688pub type mjvScene = mjvScene_;
2689#[repr(C)]
2690#[derive(Debug, Clone)]
2691pub struct mjvFigure_ {
2692 pub flg_legend: ::std::os::raw::c_int,
2693 pub flg_ticklabel: [::std::os::raw::c_int; 2usize],
2694 pub flg_extend: ::std::os::raw::c_int,
2695 pub flg_barplot: ::std::os::raw::c_int,
2696 pub flg_selection: ::std::os::raw::c_int,
2697 pub flg_symmetric: ::std::os::raw::c_int,
2698 pub linewidth: f32,
2699 pub gridwidth: f32,
2700 pub gridsize: [::std::os::raw::c_int; 2usize],
2701 pub gridrgb: [f32; 3usize],
2702 pub figurergba: [f32; 4usize],
2703 pub panergba: [f32; 4usize],
2704 pub legendrgba: [f32; 4usize],
2705 pub textrgb: [f32; 3usize],
2706 pub linergb: [[f32; 3usize]; 100usize],
2707 pub range: [[f32; 2usize]; 2usize],
2708 pub xformat: [::std::os::raw::c_char; 20usize],
2709 pub yformat: [::std::os::raw::c_char; 20usize],
2710 pub minwidth: [::std::os::raw::c_char; 20usize],
2711 pub title: [::std::os::raw::c_char; 1000usize],
2712 pub xlabel: [::std::os::raw::c_char; 100usize],
2713 pub linename: [[::std::os::raw::c_char; 100usize]; 100usize],
2714 pub legendoffset: ::std::os::raw::c_int,
2715 pub subplot: ::std::os::raw::c_int,
2716 pub highlight: [::std::os::raw::c_int; 2usize],
2717 pub highlightid: ::std::os::raw::c_int,
2718 pub selection: f32,
2719 pub linepnt: [::std::os::raw::c_int; 100usize],
2720 pub linedata: [[f32; 2002usize]; 100usize],
2721 pub xaxispixel: [::std::os::raw::c_int; 2usize],
2722 pub yaxispixel: [::std::os::raw::c_int; 2usize],
2723 pub xaxisdata: [f32; 2usize],
2724 pub yaxisdata: [f32; 2usize],
2725}
2726pub type mjvFigure = mjvFigure_;
2727#[repr(C)]
2728#[derive(Debug, Clone)]
2729pub struct mjResource_ {
2730 pub name: *mut ::std::os::raw::c_char,
2731 pub data: *mut ::std::os::raw::c_void,
2732 pub vfs: *mut mjVFS,
2733 pub timestamp: [::std::os::raw::c_char; 512usize],
2734 pub provider: *const mjpResourceProvider,
2735}
2736pub type mjResource = mjResource_;
2737pub type mjfOpenResource =
2738 ::std::option::Option<unsafe extern "C" fn(resource: *mut mjResource) -> ::std::os::raw::c_int>;
2739pub type mjfReadResource = ::std::option::Option<
2740 unsafe extern "C" fn(
2741 resource: *mut mjResource,
2742 buffer: *mut *const ::std::os::raw::c_void,
2743 ) -> ::std::os::raw::c_int,
2744>;
2745pub type mjfCloseResource = ::std::option::Option<unsafe extern "C" fn(resource: *mut mjResource)>;
2746pub type mjfMountResource =
2747 ::std::option::Option<unsafe extern "C" fn(resource: *mut mjResource) -> ::std::os::raw::c_int>;
2748pub type mjfUnmountResource =
2749 ::std::option::Option<unsafe extern "C" fn(resource: *mut mjResource) -> ::std::os::raw::c_int>;
2750pub type mjfResourceModified = ::std::option::Option<
2751 unsafe extern "C" fn(
2752 resource: *const mjResource,
2753 timestamp: *const ::std::os::raw::c_char,
2754 ) -> ::std::os::raw::c_int,
2755>;
2756#[repr(C)]
2757#[derive(Debug, Clone)]
2758pub struct mjpResourceProvider {
2759 pub prefix: *const ::std::os::raw::c_char,
2760 pub open: mjfOpenResource,
2761 pub read: mjfReadResource,
2762 pub close: mjfCloseResource,
2763 pub mount: mjfMountResource,
2764 pub unmount: mjfUnmountResource,
2765 pub modified: mjfResourceModified,
2766 pub data: *mut ::std::os::raw::c_void,
2767}
2768pub type mjfDecode = ::std::option::Option<
2769 unsafe extern "C" fn(resource: *mut mjResource, vfs: *const mjVFS) -> *mut mjSpec,
2770>;
2771pub type mjfCanDecode = ::std::option::Option<
2772 unsafe extern "C" fn(resource: *const mjResource) -> ::std::os::raw::c_int,
2773>;
2774#[repr(C)]
2775#[derive(Debug, Clone)]
2776pub struct mjpDecoder {
2777 pub content_type: *const ::std::os::raw::c_char,
2778 pub extension: *const ::std::os::raw::c_char,
2779 pub can_decode: mjfCanDecode,
2780 pub decode: mjfDecode,
2781}
2782pub type mjfEncode = ::std::option::Option<
2783 unsafe extern "C" fn(
2784 s: *const mjSpec,
2785 m: *const mjModel,
2786 vfs: *const mjVFS,
2787 resource: *mut mjResource,
2788 ) -> ::std::os::raw::c_int,
2789>;
2790#[repr(C)]
2791#[derive(Debug, Clone)]
2792pub struct mjpEncoder {
2793 pub content_type: *const ::std::os::raw::c_char,
2794 pub extension: *const ::std::os::raw::c_char,
2795 pub encode: mjfEncode,
2796 pub close_resource: mjfCloseResource,
2797}
2798#[repr(u32)]
2799#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
2800pub enum mjtPluginCapabilityBit_ {
2801 mjPLUGIN_ACTUATOR = 1,
2802 mjPLUGIN_SENSOR = 2,
2803 mjPLUGIN_PASSIVE = 4,
2804 mjPLUGIN_SDF = 8,
2805}
2806pub use self::mjtPluginCapabilityBit_ as mjtPluginCapabilityBit;
2807#[repr(C)]
2808#[derive(Debug, Clone)]
2809pub struct mjpPlugin_ {
2810 pub name: *const ::std::os::raw::c_char,
2811 pub nattribute: ::std::os::raw::c_int,
2812 pub attributes: *const *const ::std::os::raw::c_char,
2813 pub capabilityflags: ::std::os::raw::c_int,
2814 pub needstage: ::std::os::raw::c_int,
2815 pub nstate: ::std::option::Option<
2816 unsafe extern "C" fn(
2817 m: *const mjModel,
2818 instance: ::std::os::raw::c_int,
2819 ) -> ::std::os::raw::c_int,
2820 >,
2821 pub nsensordata: ::std::option::Option<
2822 unsafe extern "C" fn(
2823 m: *const mjModel,
2824 instance: ::std::os::raw::c_int,
2825 sensor_id: ::std::os::raw::c_int,
2826 ) -> ::std::os::raw::c_int,
2827 >,
2828 pub init: ::std::option::Option<
2829 unsafe extern "C" fn(
2830 m: *const mjModel,
2831 d: *mut mjData,
2832 instance: ::std::os::raw::c_int,
2833 ) -> ::std::os::raw::c_int,
2834 >,
2835 pub destroy: ::std::option::Option<
2836 unsafe extern "C" fn(d: *mut mjData, instance: ::std::os::raw::c_int),
2837 >,
2838 pub copy: ::std::option::Option<
2839 unsafe extern "C" fn(
2840 dest: *mut mjData,
2841 m: *const mjModel,
2842 src: *const mjData,
2843 instance: ::std::os::raw::c_int,
2844 ),
2845 >,
2846 pub reset: ::std::option::Option<
2847 unsafe extern "C" fn(
2848 m: *const mjModel,
2849 plugin_state: *mut mjtNum,
2850 plugin_data: *mut ::std::os::raw::c_void,
2851 instance: ::std::os::raw::c_int,
2852 ),
2853 >,
2854 pub compute: ::std::option::Option<
2855 unsafe extern "C" fn(
2856 m: *const mjModel,
2857 d: *mut mjData,
2858 instance: ::std::os::raw::c_int,
2859 capability_bit: ::std::os::raw::c_int,
2860 ),
2861 >,
2862 pub advance: ::std::option::Option<
2863 unsafe extern "C" fn(m: *const mjModel, d: *mut mjData, instance: ::std::os::raw::c_int),
2864 >,
2865 pub visualize: ::std::option::Option<
2866 unsafe extern "C" fn(
2867 m: *const mjModel,
2868 d: *mut mjData,
2869 opt: *const mjvOption,
2870 scn: *mut mjvScene,
2871 instance: ::std::os::raw::c_int,
2872 ),
2873 >,
2874 pub actuator_act_dot: ::std::option::Option<
2875 unsafe extern "C" fn(m: *const mjModel, d: *mut mjData, instance: ::std::os::raw::c_int),
2876 >,
2877 pub sdf_distance: ::std::option::Option<
2878 unsafe extern "C" fn(
2879 point: *const [mjtNum; 3usize],
2880 d: *const mjData,
2881 instance: ::std::os::raw::c_int,
2882 ) -> mjtNum,
2883 >,
2884 pub sdf_gradient: ::std::option::Option<
2885 unsafe extern "C" fn(
2886 gradient: *mut [mjtNum; 3usize],
2887 point: *const [mjtNum; 3usize],
2888 d: *const mjData,
2889 instance: ::std::os::raw::c_int,
2890 ),
2891 >,
2892 pub sdf_staticdistance: ::std::option::Option<
2893 unsafe extern "C" fn(point: *const [mjtNum; 3usize], attributes: *const mjtNum) -> mjtNum,
2894 >,
2895 pub sdf_attribute: ::std::option::Option<
2896 unsafe extern "C" fn(
2897 attribute: *mut mjtNum,
2898 name: *mut *const ::std::os::raw::c_char,
2899 value: *mut *const ::std::os::raw::c_char,
2900 ),
2901 >,
2902 pub sdf_aabb: ::std::option::Option<
2903 unsafe extern "C" fn(aabb: *mut [mjtNum; 6usize], attributes: *const mjtNum),
2904 >,
2905}
2906pub type mjpPlugin = mjpPlugin_;
2907#[repr(C)]
2908#[derive(Debug, Clone)]
2909pub struct mjSDF_ {
2910 pub plugin: *mut *const mjpPlugin,
2911 pub id: *mut ::std::os::raw::c_int,
2912 pub type_: mjtSDFType,
2913 pub relpos: *mut mjtNum,
2914 pub relmat: *mut mjtNum,
2915 pub geomtype: *mut mjtGeom,
2916}
2917pub type mjSDF = mjSDF_;
2918pub type mjfPluginLibraryLoadCallback = ::std::option::Option<
2919 unsafe extern "C" fn(
2920 filename: *const ::std::os::raw::c_char,
2921 first: ::std::os::raw::c_int,
2922 count: ::std::os::raw::c_int,
2923 ),
2924>;
2925#[repr(u32)]
2926#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
2927pub enum mjtGridPos_ {
2928 mjGRID_TOPLEFT = 0,
2929 mjGRID_TOPRIGHT = 1,
2930 mjGRID_BOTTOMLEFT = 2,
2931 mjGRID_BOTTOMRIGHT = 3,
2932 mjGRID_TOP = 4,
2933 mjGRID_BOTTOM = 5,
2934 mjGRID_LEFT = 6,
2935 mjGRID_RIGHT = 7,
2936}
2937pub use self::mjtGridPos_ as mjtGridPos;
2938#[repr(u32)]
2939#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
2940pub enum mjtFramebuffer_ {
2941 mjFB_WINDOW = 0,
2942 mjFB_OFFSCREEN = 1,
2943}
2944pub use self::mjtFramebuffer_ as mjtFramebuffer;
2945#[repr(u32)]
2946#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
2947pub enum mjtDepthMap_ {
2948 mjDEPTH_ZERONEAR = 0,
2949 mjDEPTH_ZEROFAR = 1,
2950}
2951pub use self::mjtDepthMap_ as mjtDepthMap;
2952#[repr(u32)]
2953#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
2954pub enum mjtFontScale_ {
2955 mjFONTSCALE_50 = 50,
2956 mjFONTSCALE_100 = 100,
2957 mjFONTSCALE_150 = 150,
2958 mjFONTSCALE_200 = 200,
2959 mjFONTSCALE_250 = 250,
2960 mjFONTSCALE_300 = 300,
2961}
2962pub use self::mjtFontScale_ as mjtFontScale;
2963#[repr(u32)]
2964#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
2965pub enum mjtFont_ {
2966 mjFONT_NORMAL = 0,
2967 mjFONT_SHADOW = 1,
2968 mjFONT_BIG = 2,
2969}
2970pub use self::mjtFont_ as mjtFont;
2971#[repr(C)]
2972#[derive(Debug, Clone, Copy)]
2973pub struct mjrRect_ {
2974 pub left: ::std::os::raw::c_int,
2975 pub bottom: ::std::os::raw::c_int,
2976 pub width: ::std::os::raw::c_int,
2977 pub height: ::std::os::raw::c_int,
2978}
2979pub type mjrRect = mjrRect_;
2980#[repr(C)]
2981#[derive(Debug, Clone)]
2982pub struct mjrContext_ {
2983 pub lineWidth: f32,
2984 pub shadowClip: f32,
2985 pub shadowScale: f32,
2986 pub fogStart: f32,
2987 pub fogEnd: f32,
2988 pub fogRGBA: [f32; 4usize],
2989 pub shadowSize: ::std::os::raw::c_int,
2990 pub offWidth: ::std::os::raw::c_int,
2991 pub offHeight: ::std::os::raw::c_int,
2992 pub offSamples: ::std::os::raw::c_int,
2993 pub fontScale: ::std::os::raw::c_int,
2994 pub auxWidth: [::std::os::raw::c_int; 10usize],
2995 pub auxHeight: [::std::os::raw::c_int; 10usize],
2996 pub auxSamples: [::std::os::raw::c_int; 10usize],
2997 pub offFBO: ::std::os::raw::c_uint,
2998 pub offFBO_r: ::std::os::raw::c_uint,
2999 pub offColor: ::std::os::raw::c_uint,
3000 pub offColor_r: ::std::os::raw::c_uint,
3001 pub offDepthStencil: ::std::os::raw::c_uint,
3002 pub offDepthStencil_r: ::std::os::raw::c_uint,
3003 pub shadowFBO: ::std::os::raw::c_uint,
3004 pub shadowTex: ::std::os::raw::c_uint,
3005 pub auxFBO: [::std::os::raw::c_uint; 10usize],
3006 pub auxFBO_r: [::std::os::raw::c_uint; 10usize],
3007 pub auxColor: [::std::os::raw::c_uint; 10usize],
3008 pub auxColor_r: [::std::os::raw::c_uint; 10usize],
3009 pub mat_texid: [::std::os::raw::c_int; 10000usize],
3010 pub mat_texuniform: [::std::os::raw::c_int; 1000usize],
3011 pub mat_texrepeat: [f32; 2000usize],
3012 pub ntexture: ::std::os::raw::c_int,
3013 pub textureType: [::std::os::raw::c_int; 1000usize],
3014 pub texture: [::std::os::raw::c_uint; 1000usize],
3015 pub basePlane: ::std::os::raw::c_uint,
3016 pub baseMesh: ::std::os::raw::c_uint,
3017 pub baseHField: ::std::os::raw::c_uint,
3018 pub baseBuiltin: ::std::os::raw::c_uint,
3019 pub baseFontNormal: ::std::os::raw::c_uint,
3020 pub baseFontShadow: ::std::os::raw::c_uint,
3021 pub baseFontBig: ::std::os::raw::c_uint,
3022 pub rangePlane: ::std::os::raw::c_int,
3023 pub rangeMesh: ::std::os::raw::c_int,
3024 pub rangeHField: ::std::os::raw::c_int,
3025 pub rangeBuiltin: ::std::os::raw::c_int,
3026 pub rangeFont: ::std::os::raw::c_int,
3027 pub nskin: ::std::os::raw::c_int,
3028 pub skinvertVBO: *mut ::std::os::raw::c_uint,
3029 pub skinnormalVBO: *mut ::std::os::raw::c_uint,
3030 pub skintexcoordVBO: *mut ::std::os::raw::c_uint,
3031 pub skinfaceVBO: *mut ::std::os::raw::c_uint,
3032 pub charWidth: [::std::os::raw::c_int; 127usize],
3033 pub charWidthBig: [::std::os::raw::c_int; 127usize],
3034 pub charHeight: ::std::os::raw::c_int,
3035 pub charHeightBig: ::std::os::raw::c_int,
3036 pub glInitialized: ::std::os::raw::c_int,
3037 pub windowAvailable: ::std::os::raw::c_int,
3038 pub windowSamples: ::std::os::raw::c_int,
3039 pub windowStereo: ::std::os::raw::c_int,
3040 pub windowDoublebuffer: ::std::os::raw::c_int,
3041 pub currentBuffer: ::std::os::raw::c_int,
3042 pub readPixelFormat: ::std::os::raw::c_int,
3043 pub readDepthMap: ::std::os::raw::c_int,
3044}
3045pub type mjrContext = mjrContext_;
3046#[repr(u32)]
3047#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
3048pub enum mjtButton_ {
3049 mjBUTTON_NONE = 0,
3050 mjBUTTON_LEFT = 1,
3051 mjBUTTON_RIGHT = 2,
3052 mjBUTTON_MIDDLE = 3,
3053}
3054pub use self::mjtButton_ as mjtButton;
3055#[repr(u32)]
3056#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
3057pub enum mjtEvent_ {
3058 mjEVENT_NONE = 0,
3059 mjEVENT_MOVE = 1,
3060 mjEVENT_PRESS = 2,
3061 mjEVENT_RELEASE = 3,
3062 mjEVENT_SCROLL = 4,
3063 mjEVENT_KEY = 5,
3064 mjEVENT_RESIZE = 6,
3065 mjEVENT_REDRAW = 7,
3066 mjEVENT_FILESDROP = 8,
3067}
3068pub use self::mjtEvent_ as mjtEvent;
3069#[repr(i32)]
3070#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
3071pub enum mjtItem_ {
3072 mjITEM_END = -2,
3073 mjITEM_SECTION = -1,
3074 mjITEM_SEPARATOR = 0,
3075 mjITEM_STATIC = 1,
3076 mjITEM_BUTTON = 2,
3077 mjITEM_CHECKINT = 3,
3078 mjITEM_CHECKBYTE = 4,
3079 mjITEM_RADIO = 5,
3080 mjITEM_RADIOLINE = 6,
3081 mjITEM_SELECT = 7,
3082 mjITEM_SLIDERINT = 8,
3083 mjITEM_SLIDERNUM = 9,
3084 mjITEM_EDITINT = 10,
3085 mjITEM_EDITNUM = 11,
3086 mjITEM_EDITFLOAT = 12,
3087 mjITEM_EDITTXT = 13,
3088 mjNITEM = 14,
3089}
3090pub use self::mjtItem_ as mjtItem;
3091#[repr(u32)]
3092#[derive(Debug, Clone, Hash, PartialEq, Eq, Copy)]
3093pub enum mjtSection_ {
3094 mjSECT_CLOSED = 0,
3095 mjSECT_OPEN = 1,
3096 mjSECT_FIXED = 2,
3097}
3098pub use self::mjtSection_ as mjtSection;
3099pub type mjfItemEnable = ::std::option::Option<
3100 unsafe extern "C" fn(
3101 category: ::std::os::raw::c_int,
3102 data: *mut ::std::os::raw::c_void,
3103 ) -> ::std::os::raw::c_int,
3104>;
3105#[repr(C)]
3106#[derive(Debug, Clone, Copy)]
3107pub struct mjuiState_ {
3108 pub nrect: ::std::os::raw::c_int,
3109 pub rect: [mjrRect; 25usize],
3110 pub userdata: *mut ::std::os::raw::c_void,
3111 pub type_: ::std::os::raw::c_int,
3112 pub left: ::std::os::raw::c_int,
3113 pub right: ::std::os::raw::c_int,
3114 pub middle: ::std::os::raw::c_int,
3115 pub doubleclick: ::std::os::raw::c_int,
3116 pub button: ::std::os::raw::c_int,
3117 pub buttontime: f64,
3118 pub x: f64,
3119 pub y: f64,
3120 pub dx: f64,
3121 pub dy: f64,
3122 pub sx: f64,
3123 pub sy: f64,
3124 pub control: ::std::os::raw::c_int,
3125 pub shift: ::std::os::raw::c_int,
3126 pub alt: ::std::os::raw::c_int,
3127 pub key: ::std::os::raw::c_int,
3128 pub keytime: f64,
3129 pub mouserect: ::std::os::raw::c_int,
3130 pub dragrect: ::std::os::raw::c_int,
3131 pub dragbutton: ::std::os::raw::c_int,
3132 pub dropcount: ::std::os::raw::c_int,
3133 pub droppaths: *mut *const ::std::os::raw::c_char,
3134}
3135pub type mjuiState = mjuiState_;
3136#[repr(C)]
3137#[derive(Debug, Clone, Copy)]
3138pub struct mjuiThemeSpacing_ {
3139 pub total: ::std::os::raw::c_int,
3140 pub scroll: ::std::os::raw::c_int,
3141 pub label: ::std::os::raw::c_int,
3142 pub section: ::std::os::raw::c_int,
3143 pub cornersect: ::std::os::raw::c_int,
3144 pub cornersep: ::std::os::raw::c_int,
3145 pub itemside: ::std::os::raw::c_int,
3146 pub itemmid: ::std::os::raw::c_int,
3147 pub itemver: ::std::os::raw::c_int,
3148 pub texthor: ::std::os::raw::c_int,
3149 pub textver: ::std::os::raw::c_int,
3150 pub linescroll: ::std::os::raw::c_int,
3151 pub samples: ::std::os::raw::c_int,
3152}
3153pub type mjuiThemeSpacing = mjuiThemeSpacing_;
3154#[repr(C)]
3155#[derive(Debug, Clone, Copy)]
3156pub struct mjuiThemeColor_ {
3157 pub master: [f32; 3usize],
3158 pub thumb: [f32; 3usize],
3159 pub secttitle: [f32; 3usize],
3160 pub secttitle2: [f32; 3usize],
3161 pub secttitleuncheck: [f32; 3usize],
3162 pub secttitleuncheck2: [f32; 3usize],
3163 pub secttitlecheck: [f32; 3usize],
3164 pub secttitlecheck2: [f32; 3usize],
3165 pub sectfont: [f32; 3usize],
3166 pub sectsymbol: [f32; 3usize],
3167 pub sectpane: [f32; 3usize],
3168 pub separator: [f32; 3usize],
3169 pub separator2: [f32; 3usize],
3170 pub shortcut: [f32; 3usize],
3171 pub fontactive: [f32; 3usize],
3172 pub fontinactive: [f32; 3usize],
3173 pub decorinactive: [f32; 3usize],
3174 pub decorinactive2: [f32; 3usize],
3175 pub button: [f32; 3usize],
3176 pub check: [f32; 3usize],
3177 pub radio: [f32; 3usize],
3178 pub select: [f32; 3usize],
3179 pub select2: [f32; 3usize],
3180 pub slider: [f32; 3usize],
3181 pub slider2: [f32; 3usize],
3182 pub edit: [f32; 3usize],
3183 pub edit2: [f32; 3usize],
3184 pub cursor: [f32; 3usize],
3185}
3186pub type mjuiThemeColor = mjuiThemeColor_;
3187#[repr(C)]
3188#[derive(Debug, Clone, Copy)]
3189pub struct mjuiItemSingle_ {
3190 pub modifier: ::std::os::raw::c_int,
3191 pub shortcut: ::std::os::raw::c_int,
3192}
3193#[repr(C)]
3194#[derive(Debug, Clone, Copy)]
3195pub struct mjuiItemMulti_ {
3196 pub nelem: ::std::os::raw::c_int,
3197 pub name: [[::std::os::raw::c_char; 40usize]; 35usize],
3198}
3199#[repr(C)]
3200#[derive(Debug, Clone, Copy)]
3201pub struct mjuiItemSlider_ {
3202 pub range: [f64; 2usize],
3203 pub divisions: f64,
3204}
3205#[repr(C)]
3206#[derive(Debug, Clone, Copy)]
3207pub struct mjuiItemEdit_ {
3208 pub nelem: ::std::os::raw::c_int,
3209 pub range: [[f64; 2usize]; 7usize],
3210}
3211#[repr(C)]
3212#[derive(Clone, Copy)]
3213pub struct mjuiItem_ {
3214 pub type_: ::std::os::raw::c_int,
3215 pub name: [::std::os::raw::c_char; 40usize],
3216 pub state: ::std::os::raw::c_int,
3217 pub pdata: *mut ::std::os::raw::c_void,
3218 pub sectionid: ::std::os::raw::c_int,
3219 pub itemid: ::std::os::raw::c_int,
3220 pub userid: ::std::os::raw::c_int,
3221 pub __bindgen_anon_1: mjuiItem___bindgen_ty_1,
3222 pub rect: mjrRect,
3223 pub skip: ::std::os::raw::c_int,
3224}
3225#[repr(C)]
3226#[derive(Clone, Copy)]
3227pub struct mjuiItem___bindgen_ty_1 {
3228 pub single: __BindgenUnionField<mjuiItemSingle_>,
3229 pub multi: __BindgenUnionField<mjuiItemMulti_>,
3230 pub slider: __BindgenUnionField<mjuiItemSlider_>,
3231 pub edit: __BindgenUnionField<mjuiItemEdit_>,
3232 pub bindgen_union_field: [u64; 176usize],
3233}
3234pub type mjuiItem = mjuiItem_;
3235#[repr(C)]
3236#[derive(Clone, Copy)]
3237pub struct mjuiSection_ {
3238 pub name: [::std::os::raw::c_char; 40usize],
3239 pub state: ::std::os::raw::c_int,
3240 pub modifier: ::std::os::raw::c_int,
3241 pub shortcut: ::std::os::raw::c_int,
3242 pub checkbox: ::std::os::raw::c_int,
3243 pub nitem: ::std::os::raw::c_int,
3244 pub item: [mjuiItem; 200usize],
3245 pub rtitle: mjrRect,
3246 pub rcontent: mjrRect,
3247 pub lastclick: ::std::os::raw::c_int,
3248}
3249pub type mjuiSection = mjuiSection_;
3250#[repr(C)]
3251#[derive(Clone)]
3252pub struct mjUI_ {
3253 pub spacing: mjuiThemeSpacing,
3254 pub color: mjuiThemeColor,
3255 pub predicate: mjfItemEnable,
3256 pub userdata: *mut ::std::os::raw::c_void,
3257 pub rectid: ::std::os::raw::c_int,
3258 pub auxid: ::std::os::raw::c_int,
3259 pub radiocol: ::std::os::raw::c_int,
3260 pub width: ::std::os::raw::c_int,
3261 pub height: ::std::os::raw::c_int,
3262 pub maxheight: ::std::os::raw::c_int,
3263 pub scroll: ::std::os::raw::c_int,
3264 pub mousesect: ::std::os::raw::c_int,
3265 pub mouseitem: ::std::os::raw::c_int,
3266 pub mousehelp: ::std::os::raw::c_int,
3267 pub mouseclicks: ::std::os::raw::c_int,
3268 pub mousesectcheck: ::std::os::raw::c_int,
3269 pub editsect: ::std::os::raw::c_int,
3270 pub edititem: ::std::os::raw::c_int,
3271 pub editcursor: ::std::os::raw::c_int,
3272 pub editscroll: ::std::os::raw::c_int,
3273 pub edittext: [::std::os::raw::c_char; 300usize],
3274 pub editchanged: *mut mjuiItem,
3275 pub nsect: ::std::os::raw::c_int,
3276 pub sect: [mjuiSection; 10usize],
3277}
3278pub type mjUI = mjUI_;
3279#[repr(C)]
3280#[derive(Debug, Clone, Copy)]
3281pub struct mjuiDef_ {
3282 pub type_: ::std::os::raw::c_int,
3283 pub name: [::std::os::raw::c_char; 40usize],
3284 pub state: ::std::os::raw::c_int,
3285 pub pdata: *mut ::std::os::raw::c_void,
3286 pub other: [::std::os::raw::c_char; 300usize],
3287 pub otherint: ::std::os::raw::c_int,
3288}
3289pub type mjuiDef = mjuiDef_;
3290unsafe extern "C" {
3291 pub static mut mju_user_error:
3292 ::std::option::Option<unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char)>;
3293}
3294unsafe extern "C" {
3295 pub static mut mju_user_warning:
3296 ::std::option::Option<unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char)>;
3297}
3298unsafe extern "C" {
3299 pub static mut mju_user_malloc:
3300 ::std::option::Option<unsafe extern "C" fn(arg1: usize) -> *mut ::std::os::raw::c_void>;
3301}
3302unsafe extern "C" {
3303 pub static mut mju_user_free:
3304 ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
3305}
3306unsafe extern "C" {
3307 pub static mut mjcb_passive: mjfGeneric;
3308}
3309unsafe extern "C" {
3310 pub static mut mjcb_control: mjfGeneric;
3311}
3312unsafe extern "C" {
3313 pub static mut mjcb_contactfilter: mjfConFilt;
3314}
3315unsafe extern "C" {
3316 pub static mut mjcb_sensor: mjfSensor;
3317}
3318unsafe extern "C" {
3319 pub static mut mjcb_time: mjfTime;
3320}
3321unsafe extern "C" {
3322 pub static mut mjcb_act_dyn: mjfAct;
3323}
3324unsafe extern "C" {
3325 pub static mut mjcb_act_gain: mjfAct;
3326}
3327unsafe extern "C" {
3328 pub static mut mjcb_act_bias: mjfAct;
3329}
3330unsafe extern "C" {
3331 pub static mut mjCOLLISIONFUNC: [[mjfCollision; 9usize]; 9usize];
3332}
3333unsafe extern "C" {
3334 pub static mut mjDISABLESTRING: [*const ::std::os::raw::c_char; 20usize];
3335}
3336unsafe extern "C" {
3337 pub static mut mjENABLESTRING: [*const ::std::os::raw::c_char; 6usize];
3338}
3339unsafe extern "C" {
3340 pub static mut mjTIMERSTRING: [*const ::std::os::raw::c_char; 15usize];
3341}
3342unsafe extern "C" {
3343 pub static mut mjLABELSTRING: [*const ::std::os::raw::c_char; 17usize];
3344}
3345unsafe extern "C" {
3346 pub static mut mjFRAMESTRING: [*const ::std::os::raw::c_char; 8usize];
3347}
3348unsafe extern "C" {
3349 pub static mut mjVISSTRING: [[*const ::std::os::raw::c_char; 3usize]; 31usize];
3350}
3351unsafe extern "C" {
3352 pub static mut mjRNDSTRING: [[*const ::std::os::raw::c_char; 3usize]; 11usize];
3353}
3354unsafe extern "C" {
3355 pub fn mj_defaultVFS(vfs: *mut mjVFS);
3356}
3357unsafe extern "C" {
3358 pub fn mj_mountVFS(
3359 vfs: *mut mjVFS,
3360 filepath: *const ::std::os::raw::c_char,
3361 provider: *const mjpResourceProvider,
3362 ) -> ::std::os::raw::c_int;
3363}
3364unsafe extern "C" {
3365 pub fn mj_unmountVFS(
3366 vfs: *mut mjVFS,
3367 filename: *const ::std::os::raw::c_char,
3368 ) -> ::std::os::raw::c_int;
3369}
3370unsafe extern "C" {
3371 pub fn mj_addFileVFS(
3372 vfs: *mut mjVFS,
3373 directory: *const ::std::os::raw::c_char,
3374 filename: *const ::std::os::raw::c_char,
3375 ) -> ::std::os::raw::c_int;
3376}
3377unsafe extern "C" {
3378 pub fn mj_addBufferVFS(
3379 vfs: *mut mjVFS,
3380 name: *const ::std::os::raw::c_char,
3381 buffer: *const ::std::os::raw::c_void,
3382 nbuffer: ::std::os::raw::c_int,
3383 ) -> ::std::os::raw::c_int;
3384}
3385unsafe extern "C" {
3386 pub fn mj_deleteFileVFS(
3387 vfs: *mut mjVFS,
3388 filename: *const ::std::os::raw::c_char,
3389 ) -> ::std::os::raw::c_int;
3390}
3391unsafe extern "C" {
3392 pub fn mj_containsBufferVFS(
3393 vfs: *mut mjVFS,
3394 name: *const ::std::os::raw::c_char,
3395 ) -> ::std::os::raw::c_int;
3396}
3397unsafe extern "C" {
3398 pub fn mj_containsFileVFS(
3399 vfs: *mut mjVFS,
3400 directory: *const ::std::os::raw::c_char,
3401 filename: *const ::std::os::raw::c_char,
3402 ) -> ::std::os::raw::c_int;
3403}
3404unsafe extern "C" {
3405 pub fn mj_deleteVFS(vfs: *mut mjVFS);
3406}
3407unsafe extern "C" {
3408 pub fn mj_getCacheSize(cache: *const mjCache) -> usize;
3409}
3410unsafe extern "C" {
3411 pub fn mj_getCacheCapacity(cache: *const mjCache) -> usize;
3412}
3413unsafe extern "C" {
3414 pub fn mj_setCacheCapacity(cache: *mut mjCache, size: usize) -> usize;
3415}
3416unsafe extern "C" {
3417 pub fn mj_getCache() -> *mut mjCache;
3418}
3419unsafe extern "C" {
3420 pub fn mj_clearCache(cache: *mut mjCache);
3421}
3422unsafe extern "C" {
3423 pub fn mj_loadXML(
3424 filename: *const ::std::os::raw::c_char,
3425 vfs: *const mjVFS,
3426 error: *mut ::std::os::raw::c_char,
3427 error_sz: ::std::os::raw::c_int,
3428 ) -> *mut mjModel;
3429}
3430unsafe extern "C" {
3431 pub fn mj_parseXML(
3432 filename: *const ::std::os::raw::c_char,
3433 vfs: *const mjVFS,
3434 error: *mut ::std::os::raw::c_char,
3435 error_sz: ::std::os::raw::c_int,
3436 ) -> *mut mjSpec;
3437}
3438unsafe extern "C" {
3439 pub fn mj_parseXMLString(
3440 xml: *const ::std::os::raw::c_char,
3441 vfs: *const mjVFS,
3442 error: *mut ::std::os::raw::c_char,
3443 error_sz: ::std::os::raw::c_int,
3444 ) -> *mut mjSpec;
3445}
3446unsafe extern "C" {
3447 pub fn mj_parse(
3448 filename: *const ::std::os::raw::c_char,
3449 content_type: *const ::std::os::raw::c_char,
3450 vfs: *const mjVFS,
3451 error: *mut ::std::os::raw::c_char,
3452 error_sz: ::std::os::raw::c_int,
3453 ) -> *mut mjSpec;
3454}
3455unsafe extern "C" {
3456 pub fn mj_encode(
3457 s: *const mjSpec,
3458 m: *const mjModel,
3459 filename: *const ::std::os::raw::c_char,
3460 content_type: *const ::std::os::raw::c_char,
3461 vfs: *const mjVFS,
3462 error: *mut ::std::os::raw::c_char,
3463 error_sz: ::std::os::raw::c_int,
3464 ) -> ::std::os::raw::c_int;
3465}
3466unsafe extern "C" {
3467 pub fn mj_compile(s: *mut mjSpec, vfs: *const mjVFS) -> *mut mjModel;
3468}
3469unsafe extern "C" {
3470 pub fn mj_copyBack(s: *mut mjSpec, m: *const mjModel) -> ::std::os::raw::c_int;
3471}
3472unsafe extern "C" {
3473 pub fn mj_recompile(
3474 s: *mut mjSpec,
3475 vfs: *const mjVFS,
3476 m: *mut mjModel,
3477 d: *mut mjData,
3478 ) -> ::std::os::raw::c_int;
3479}
3480unsafe extern "C" {
3481 pub fn mj_saveLastXML(
3482 filename: *const ::std::os::raw::c_char,
3483 m: *const mjModel,
3484 error: *mut ::std::os::raw::c_char,
3485 error_sz: ::std::os::raw::c_int,
3486 ) -> ::std::os::raw::c_int;
3487}
3488unsafe extern "C" {
3489 pub fn mj_freeLastXML();
3490}
3491unsafe extern "C" {
3492 pub fn mj_saveXMLString(
3493 s: *const mjSpec,
3494 xml: *mut ::std::os::raw::c_char,
3495 xml_sz: ::std::os::raw::c_int,
3496 error: *mut ::std::os::raw::c_char,
3497 error_sz: ::std::os::raw::c_int,
3498 ) -> ::std::os::raw::c_int;
3499}
3500unsafe extern "C" {
3501 pub fn mj_saveXML(
3502 s: *const mjSpec,
3503 filename: *const ::std::os::raw::c_char,
3504 error: *mut ::std::os::raw::c_char,
3505 error_sz: ::std::os::raw::c_int,
3506 ) -> ::std::os::raw::c_int;
3507}
3508unsafe extern "C" {
3509 pub fn mju_getXMLDependencies(
3510 filename: *const ::std::os::raw::c_char,
3511 dependencies: *mut mjStringVec,
3512 );
3513}
3514unsafe extern "C" {
3515 pub fn mj_step(m: *const mjModel, d: *mut mjData);
3516}
3517unsafe extern "C" {
3518 pub fn mj_step1(m: *const mjModel, d: *mut mjData);
3519}
3520unsafe extern "C" {
3521 pub fn mj_step2(m: *const mjModel, d: *mut mjData);
3522}
3523unsafe extern "C" {
3524 pub fn mj_forward(m: *const mjModel, d: *mut mjData);
3525}
3526unsafe extern "C" {
3527 pub fn mj_inverse(m: *const mjModel, d: *mut mjData);
3528}
3529unsafe extern "C" {
3530 pub fn mj_forwardSkip(
3531 m: *const mjModel,
3532 d: *mut mjData,
3533 skipstage: ::std::os::raw::c_int,
3534 skipsensor: ::std::os::raw::c_int,
3535 );
3536}
3537unsafe extern "C" {
3538 pub fn mj_inverseSkip(
3539 m: *const mjModel,
3540 d: *mut mjData,
3541 skipstage: ::std::os::raw::c_int,
3542 skipsensor: ::std::os::raw::c_int,
3543 );
3544}
3545unsafe extern "C" {
3546 pub fn mj_defaultLROpt(opt: *mut mjLROpt);
3547}
3548unsafe extern "C" {
3549 pub fn mj_defaultSolRefImp(solref: *mut mjtNum, solimp: *mut mjtNum);
3550}
3551unsafe extern "C" {
3552 pub fn mj_defaultOption(opt: *mut mjOption);
3553}
3554unsafe extern "C" {
3555 pub fn mj_defaultVisual(vis: *mut mjVisual);
3556}
3557unsafe extern "C" {
3558 pub fn mj_copyModel(dest: *mut mjModel, src: *const mjModel) -> *mut mjModel;
3559}
3560unsafe extern "C" {
3561 pub fn mj_saveModel(
3562 m: *const mjModel,
3563 filename: *const ::std::os::raw::c_char,
3564 buffer: *mut ::std::os::raw::c_void,
3565 buffer_sz: ::std::os::raw::c_int,
3566 );
3567}
3568unsafe extern "C" {
3569 pub fn mj_loadModel(filename: *const ::std::os::raw::c_char, vfs: *const mjVFS)
3570 -> *mut mjModel;
3571}
3572unsafe extern "C" {
3573 pub fn mj_loadModelBuffer(
3574 buffer: *const ::std::os::raw::c_void,
3575 buffer_sz: ::std::os::raw::c_int,
3576 ) -> *mut mjModel;
3577}
3578unsafe extern "C" {
3579 pub fn mj_deleteModel(m: *mut mjModel);
3580}
3581unsafe extern "C" {
3582 pub fn mj_sizeModel(m: *const mjModel) -> mjtSize;
3583}
3584unsafe extern "C" {
3585 pub fn mj_makeData(m: *const mjModel) -> *mut mjData;
3586}
3587unsafe extern "C" {
3588 pub fn mj_copyData(dest: *mut mjData, m: *const mjModel, src: *const mjData) -> *mut mjData;
3589}
3590unsafe extern "C" {
3591 pub fn mjv_copyData(dest: *mut mjData, m: *const mjModel, src: *const mjData) -> *mut mjData;
3592}
3593unsafe extern "C" {
3594 pub fn mj_resetData(m: *const mjModel, d: *mut mjData);
3595}
3596unsafe extern "C" {
3597 pub fn mj_resetDataDebug(
3598 m: *const mjModel,
3599 d: *mut mjData,
3600 debug_value: ::std::os::raw::c_uchar,
3601 );
3602}
3603unsafe extern "C" {
3604 pub fn mj_resetDataKeyframe(m: *const mjModel, d: *mut mjData, key: ::std::os::raw::c_int);
3605}
3606unsafe extern "C" {
3607 pub fn mj_markStack(d: *mut mjData);
3608}
3609unsafe extern "C" {
3610 pub fn mj_freeStack(d: *mut mjData);
3611}
3612unsafe extern "C" {
3613 pub fn mj_stackAllocByte(
3614 d: *mut mjData,
3615 bytes: usize,
3616 alignment: usize,
3617 ) -> *mut ::std::os::raw::c_void;
3618}
3619unsafe extern "C" {
3620 pub fn mj_stackAllocNum(d: *mut mjData, size: usize) -> *mut mjtNum;
3621}
3622unsafe extern "C" {
3623 pub fn mj_stackAllocInt(d: *mut mjData, size: usize) -> *mut ::std::os::raw::c_int;
3624}
3625unsafe extern "C" {
3626 pub fn mj_deleteData(d: *mut mjData);
3627}
3628unsafe extern "C" {
3629 pub fn mj_resetCallbacks();
3630}
3631unsafe extern "C" {
3632 pub fn mj_setConst(m: *mut mjModel, d: *mut mjData);
3633}
3634unsafe extern "C" {
3635 pub fn mj_setLengthRange(
3636 m: *mut mjModel,
3637 d: *mut mjData,
3638 index: ::std::os::raw::c_int,
3639 opt: *const mjLROpt,
3640 error: *mut ::std::os::raw::c_char,
3641 error_sz: ::std::os::raw::c_int,
3642 ) -> ::std::os::raw::c_int;
3643}
3644unsafe extern "C" {
3645 pub fn mj_makeSpec() -> *mut mjSpec;
3646}
3647unsafe extern "C" {
3648 pub fn mj_copySpec(s: *const mjSpec) -> *mut mjSpec;
3649}
3650unsafe extern "C" {
3651 pub fn mj_deleteSpec(s: *mut mjSpec);
3652}
3653unsafe extern "C" {
3654 pub fn mjs_activatePlugin(
3655 s: *mut mjSpec,
3656 name: *const ::std::os::raw::c_char,
3657 ) -> ::std::os::raw::c_int;
3658}
3659unsafe extern "C" {
3660 pub fn mjs_setDeepCopy(
3661 s: *mut mjSpec,
3662 deepcopy: ::std::os::raw::c_int,
3663 ) -> ::std::os::raw::c_int;
3664}
3665unsafe extern "C" {
3666 pub fn mj_printFormattedModel(
3667 m: *const mjModel,
3668 filename: *const ::std::os::raw::c_char,
3669 float_format: *const ::std::os::raw::c_char,
3670 );
3671}
3672unsafe extern "C" {
3673 pub fn mj_printModel(m: *const mjModel, filename: *const ::std::os::raw::c_char);
3674}
3675unsafe extern "C" {
3676 pub fn mj_printFormattedData(
3677 m: *const mjModel,
3678 d: *const mjData,
3679 filename: *const ::std::os::raw::c_char,
3680 float_format: *const ::std::os::raw::c_char,
3681 );
3682}
3683unsafe extern "C" {
3684 pub fn mj_printData(
3685 m: *const mjModel,
3686 d: *const mjData,
3687 filename: *const ::std::os::raw::c_char,
3688 );
3689}
3690unsafe extern "C" {
3691 pub fn mju_printMat(mat: *const mjtNum, nr: ::std::os::raw::c_int, nc: ::std::os::raw::c_int);
3692}
3693unsafe extern "C" {
3694 pub fn mju_printMatSparse(
3695 mat: *const mjtNum,
3696 nr: ::std::os::raw::c_int,
3697 rownnz: *const ::std::os::raw::c_int,
3698 rowadr: *const ::std::os::raw::c_int,
3699 colind: *const ::std::os::raw::c_int,
3700 );
3701}
3702unsafe extern "C" {
3703 pub fn mj_printSchema(
3704 filename: *const ::std::os::raw::c_char,
3705 buffer: *mut ::std::os::raw::c_char,
3706 buffer_sz: ::std::os::raw::c_int,
3707 flg_html: ::std::os::raw::c_int,
3708 flg_pad: ::std::os::raw::c_int,
3709 ) -> ::std::os::raw::c_int;
3710}
3711unsafe extern "C" {
3712 pub fn mj_printScene(s: *const mjvScene, filename: *const ::std::os::raw::c_char);
3713}
3714unsafe extern "C" {
3715 pub fn mj_printFormattedScene(
3716 s: *const mjvScene,
3717 filename: *const ::std::os::raw::c_char,
3718 float_format: *const ::std::os::raw::c_char,
3719 );
3720}
3721unsafe extern "C" {
3722 pub fn mj_fwdKinematics(m: *const mjModel, d: *mut mjData);
3723}
3724unsafe extern "C" {
3725 pub fn mj_fwdPosition(m: *const mjModel, d: *mut mjData);
3726}
3727unsafe extern "C" {
3728 pub fn mj_fwdVelocity(m: *const mjModel, d: *mut mjData);
3729}
3730unsafe extern "C" {
3731 pub fn mj_fwdActuation(m: *const mjModel, d: *mut mjData);
3732}
3733unsafe extern "C" {
3734 pub fn mj_fwdAcceleration(m: *const mjModel, d: *mut mjData);
3735}
3736unsafe extern "C" {
3737 pub fn mj_fwdConstraint(m: *const mjModel, d: *mut mjData);
3738}
3739unsafe extern "C" {
3740 pub fn mj_Euler(m: *const mjModel, d: *mut mjData);
3741}
3742unsafe extern "C" {
3743 pub fn mj_RungeKutta(m: *const mjModel, d: *mut mjData, N: ::std::os::raw::c_int);
3744}
3745unsafe extern "C" {
3746 pub fn mj_implicit(m: *const mjModel, d: *mut mjData);
3747}
3748unsafe extern "C" {
3749 pub fn mj_invPosition(m: *const mjModel, d: *mut mjData);
3750}
3751unsafe extern "C" {
3752 pub fn mj_invVelocity(m: *const mjModel, d: *mut mjData);
3753}
3754unsafe extern "C" {
3755 pub fn mj_invConstraint(m: *const mjModel, d: *mut mjData);
3756}
3757unsafe extern "C" {
3758 pub fn mj_compareFwdInv(m: *const mjModel, d: *mut mjData);
3759}
3760unsafe extern "C" {
3761 pub fn mj_sensorPos(m: *const mjModel, d: *mut mjData);
3762}
3763unsafe extern "C" {
3764 pub fn mj_sensorVel(m: *const mjModel, d: *mut mjData);
3765}
3766unsafe extern "C" {
3767 pub fn mj_sensorAcc(m: *const mjModel, d: *mut mjData);
3768}
3769unsafe extern "C" {
3770 pub fn mj_energyPos(m: *const mjModel, d: *mut mjData);
3771}
3772unsafe extern "C" {
3773 pub fn mj_energyVel(m: *const mjModel, d: *mut mjData);
3774}
3775unsafe extern "C" {
3776 pub fn mj_checkPos(m: *const mjModel, d: *mut mjData);
3777}
3778unsafe extern "C" {
3779 pub fn mj_checkVel(m: *const mjModel, d: *mut mjData);
3780}
3781unsafe extern "C" {
3782 pub fn mj_checkAcc(m: *const mjModel, d: *mut mjData);
3783}
3784unsafe extern "C" {
3785 pub fn mj_kinematics(m: *const mjModel, d: *mut mjData);
3786}
3787unsafe extern "C" {
3788 pub fn mj_comPos(m: *const mjModel, d: *mut mjData);
3789}
3790unsafe extern "C" {
3791 pub fn mj_camlight(m: *const mjModel, d: *mut mjData);
3792}
3793unsafe extern "C" {
3794 pub fn mj_flex(m: *const mjModel, d: *mut mjData);
3795}
3796unsafe extern "C" {
3797 pub fn mj_tendon(m: *const mjModel, d: *mut mjData);
3798}
3799unsafe extern "C" {
3800 pub fn mj_transmission(m: *const mjModel, d: *mut mjData);
3801}
3802unsafe extern "C" {
3803 pub fn mj_crb(m: *const mjModel, d: *mut mjData);
3804}
3805unsafe extern "C" {
3806 pub fn mj_makeM(m: *const mjModel, d: *mut mjData);
3807}
3808unsafe extern "C" {
3809 pub fn mj_factorM(m: *const mjModel, d: *mut mjData);
3810}
3811unsafe extern "C" {
3812 pub fn mj_solveM(
3813 m: *const mjModel,
3814 d: *mut mjData,
3815 x: *mut mjtNum,
3816 y: *const mjtNum,
3817 n: ::std::os::raw::c_int,
3818 );
3819}
3820unsafe extern "C" {
3821 pub fn mj_solveM2(
3822 m: *const mjModel,
3823 d: *mut mjData,
3824 x: *mut mjtNum,
3825 y: *const mjtNum,
3826 sqrtInvD: *const mjtNum,
3827 n: ::std::os::raw::c_int,
3828 );
3829}
3830unsafe extern "C" {
3831 pub fn mj_comVel(m: *const mjModel, d: *mut mjData);
3832}
3833unsafe extern "C" {
3834 pub fn mj_passive(m: *const mjModel, d: *mut mjData);
3835}
3836unsafe extern "C" {
3837 pub fn mj_subtreeVel(m: *const mjModel, d: *mut mjData);
3838}
3839unsafe extern "C" {
3840 pub fn mj_rne(
3841 m: *const mjModel,
3842 d: *mut mjData,
3843 flg_acc: ::std::os::raw::c_int,
3844 result: *mut mjtNum,
3845 );
3846}
3847unsafe extern "C" {
3848 pub fn mj_rnePostConstraint(m: *const mjModel, d: *mut mjData);
3849}
3850unsafe extern "C" {
3851 pub fn mj_maxContact(
3852 m: *const mjModel,
3853 g1: ::std::os::raw::c_int,
3854 g2: ::std::os::raw::c_int,
3855 has_margin: ::std::os::raw::c_int,
3856 ) -> ::std::os::raw::c_int;
3857}
3858unsafe extern "C" {
3859 pub fn mj_collision(m: *const mjModel, d: *mut mjData);
3860}
3861unsafe extern "C" {
3862 pub fn mj_makeConstraint(m: *const mjModel, d: *mut mjData);
3863}
3864unsafe extern "C" {
3865 pub fn mj_island(m: *const mjModel, d: *mut mjData);
3866}
3867unsafe extern "C" {
3868 pub fn mj_projectConstraint(m: *const mjModel, d: *mut mjData);
3869}
3870unsafe extern "C" {
3871 pub fn mj_referenceConstraint(m: *const mjModel, d: *mut mjData);
3872}
3873unsafe extern "C" {
3874 pub fn mj_constraintUpdate(
3875 m: *const mjModel,
3876 d: *mut mjData,
3877 jar: *const mjtNum,
3878 cost: *mut mjtNum,
3879 flg_coneHessian: ::std::os::raw::c_int,
3880 );
3881}
3882unsafe extern "C" {
3883 pub fn mj_stateSize(m: *const mjModel, sig: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3884}
3885unsafe extern "C" {
3886 pub fn mj_getState(
3887 m: *const mjModel,
3888 d: *const mjData,
3889 state: *mut mjtNum,
3890 sig: ::std::os::raw::c_int,
3891 );
3892}
3893unsafe extern "C" {
3894 pub fn mj_extractState(
3895 m: *const mjModel,
3896 src: *const mjtNum,
3897 srcsig: ::std::os::raw::c_int,
3898 dst: *mut mjtNum,
3899 dstsig: ::std::os::raw::c_int,
3900 );
3901}
3902unsafe extern "C" {
3903 pub fn mj_setState(
3904 m: *const mjModel,
3905 d: *mut mjData,
3906 state: *const mjtNum,
3907 sig: ::std::os::raw::c_int,
3908 );
3909}
3910unsafe extern "C" {
3911 pub fn mj_copyState(
3912 m: *const mjModel,
3913 src: *const mjData,
3914 dst: *mut mjData,
3915 sig: ::std::os::raw::c_int,
3916 );
3917}
3918unsafe extern "C" {
3919 pub fn mj_readCtrl(
3920 m: *const mjModel,
3921 d: *const mjData,
3922 id: ::std::os::raw::c_int,
3923 time: mjtNum,
3924 interp: ::std::os::raw::c_int,
3925 ) -> mjtNum;
3926}
3927unsafe extern "C" {
3928 pub fn mj_readSensor(
3929 m: *const mjModel,
3930 d: *const mjData,
3931 id: ::std::os::raw::c_int,
3932 time: mjtNum,
3933 result: *mut mjtNum,
3934 interp: ::std::os::raw::c_int,
3935 ) -> *const mjtNum;
3936}
3937unsafe extern "C" {
3938 pub fn mj_initCtrlHistory(
3939 m: *const mjModel,
3940 d: *mut mjData,
3941 id: ::std::os::raw::c_int,
3942 times: *const mjtNum,
3943 values: *const mjtNum,
3944 );
3945}
3946unsafe extern "C" {
3947 pub fn mj_initSensorHistory(
3948 m: *const mjModel,
3949 d: *mut mjData,
3950 id: ::std::os::raw::c_int,
3951 times: *const mjtNum,
3952 values: *const mjtNum,
3953 phase: mjtNum,
3954 );
3955}
3956unsafe extern "C" {
3957 pub fn mj_setKeyframe(m: *mut mjModel, d: *const mjData, k: ::std::os::raw::c_int);
3958}
3959unsafe extern "C" {
3960 pub fn mj_addContact(
3961 m: *const mjModel,
3962 d: *mut mjData,
3963 con: *const mjContact,
3964 ) -> ::std::os::raw::c_int;
3965}
3966unsafe extern "C" {
3967 pub fn mj_isPyramidal(m: *const mjModel) -> ::std::os::raw::c_int;
3968}
3969unsafe extern "C" {
3970 pub fn mj_isSparse(m: *const mjModel) -> ::std::os::raw::c_int;
3971}
3972unsafe extern "C" {
3973 pub fn mj_isDual(m: *const mjModel) -> ::std::os::raw::c_int;
3974}
3975unsafe extern "C" {
3976 pub fn mj_mulJacVec(m: *const mjModel, d: *const mjData, res: *mut mjtNum, vec: *const mjtNum);
3977}
3978unsafe extern "C" {
3979 pub fn mj_mulJacTVec(m: *const mjModel, d: *const mjData, res: *mut mjtNum, vec: *const mjtNum);
3980}
3981unsafe extern "C" {
3982 pub fn mj_jac(
3983 m: *const mjModel,
3984 d: *const mjData,
3985 jacp: *mut mjtNum,
3986 jacr: *mut mjtNum,
3987 point: *const [mjtNum; 3usize],
3988 body: ::std::os::raw::c_int,
3989 );
3990}
3991unsafe extern "C" {
3992 pub fn mj_jacBody(
3993 m: *const mjModel,
3994 d: *const mjData,
3995 jacp: *mut mjtNum,
3996 jacr: *mut mjtNum,
3997 body: ::std::os::raw::c_int,
3998 );
3999}
4000unsafe extern "C" {
4001 pub fn mj_jacBodyCom(
4002 m: *const mjModel,
4003 d: *const mjData,
4004 jacp: *mut mjtNum,
4005 jacr: *mut mjtNum,
4006 body: ::std::os::raw::c_int,
4007 );
4008}
4009unsafe extern "C" {
4010 pub fn mj_jacSubtreeCom(
4011 m: *const mjModel,
4012 d: *mut mjData,
4013 jacp: *mut mjtNum,
4014 body: ::std::os::raw::c_int,
4015 );
4016}
4017unsafe extern "C" {
4018 pub fn mj_jacGeom(
4019 m: *const mjModel,
4020 d: *const mjData,
4021 jacp: *mut mjtNum,
4022 jacr: *mut mjtNum,
4023 geom: ::std::os::raw::c_int,
4024 );
4025}
4026unsafe extern "C" {
4027 pub fn mj_jacSite(
4028 m: *const mjModel,
4029 d: *const mjData,
4030 jacp: *mut mjtNum,
4031 jacr: *mut mjtNum,
4032 site: ::std::os::raw::c_int,
4033 );
4034}
4035unsafe extern "C" {
4036 pub fn mj_jacPointAxis(
4037 m: *const mjModel,
4038 d: *mut mjData,
4039 jacPoint: *mut mjtNum,
4040 jacAxis: *mut mjtNum,
4041 point: *const [mjtNum; 3usize],
4042 axis: *const [mjtNum; 3usize],
4043 body: ::std::os::raw::c_int,
4044 );
4045}
4046unsafe extern "C" {
4047 pub fn mj_jacDot(
4048 m: *const mjModel,
4049 d: *const mjData,
4050 jacp: *mut mjtNum,
4051 jacr: *mut mjtNum,
4052 point: *const [mjtNum; 3usize],
4053 body: ::std::os::raw::c_int,
4054 );
4055}
4056unsafe extern "C" {
4057 pub fn mj_angmomMat(
4058 m: *const mjModel,
4059 d: *mut mjData,
4060 mat: *mut mjtNum,
4061 body: ::std::os::raw::c_int,
4062 );
4063}
4064unsafe extern "C" {
4065 pub fn mj_name2id(
4066 m: *const mjModel,
4067 type_: ::std::os::raw::c_int,
4068 name: *const ::std::os::raw::c_char,
4069 ) -> ::std::os::raw::c_int;
4070}
4071unsafe extern "C" {
4072 pub fn mj_id2name(
4073 m: *const mjModel,
4074 type_: ::std::os::raw::c_int,
4075 id: ::std::os::raw::c_int,
4076 ) -> *const ::std::os::raw::c_char;
4077}
4078unsafe extern "C" {
4079 pub fn mj_fullM(m: *const mjModel, dst: *mut mjtNum, M: *const mjtNum);
4080}
4081unsafe extern "C" {
4082 pub fn mj_mulM(m: *const mjModel, d: *const mjData, res: *mut mjtNum, vec: *const mjtNum);
4083}
4084unsafe extern "C" {
4085 pub fn mj_mulM2(m: *const mjModel, d: *const mjData, res: *mut mjtNum, vec: *const mjtNum);
4086}
4087unsafe extern "C" {
4088 pub fn mj_addM(
4089 m: *const mjModel,
4090 d: *mut mjData,
4091 dst: *mut mjtNum,
4092 rownnz: *mut ::std::os::raw::c_int,
4093 rowadr: *mut ::std::os::raw::c_int,
4094 colind: *mut ::std::os::raw::c_int,
4095 );
4096}
4097unsafe extern "C" {
4098 pub fn mj_applyFT(
4099 m: *const mjModel,
4100 d: *mut mjData,
4101 force: *const [mjtNum; 3usize],
4102 torque: *const [mjtNum; 3usize],
4103 point: *const [mjtNum; 3usize],
4104 body: ::std::os::raw::c_int,
4105 qfrc_target: *mut mjtNum,
4106 );
4107}
4108unsafe extern "C" {
4109 pub fn mj_objectVelocity(
4110 m: *const mjModel,
4111 d: *const mjData,
4112 objtype: ::std::os::raw::c_int,
4113 objid: ::std::os::raw::c_int,
4114 res: *mut [mjtNum; 6usize],
4115 flg_local: ::std::os::raw::c_int,
4116 );
4117}
4118unsafe extern "C" {
4119 pub fn mj_objectAcceleration(
4120 m: *const mjModel,
4121 d: *const mjData,
4122 objtype: ::std::os::raw::c_int,
4123 objid: ::std::os::raw::c_int,
4124 res: *mut [mjtNum; 6usize],
4125 flg_local: ::std::os::raw::c_int,
4126 );
4127}
4128unsafe extern "C" {
4129 pub fn mj_geomDistance(
4130 m: *const mjModel,
4131 d: *mut mjData,
4132 geom1: ::std::os::raw::c_int,
4133 geom2: ::std::os::raw::c_int,
4134 distmax: mjtNum,
4135 fromto: *mut [mjtNum; 6usize],
4136 ) -> mjtNum;
4137}
4138unsafe extern "C" {
4139 pub fn mj_contactForce(
4140 m: *const mjModel,
4141 d: *const mjData,
4142 id: ::std::os::raw::c_int,
4143 result: *mut [mjtNum; 6usize],
4144 );
4145}
4146unsafe extern "C" {
4147 pub fn mj_differentiatePos(
4148 m: *const mjModel,
4149 qvel: *mut mjtNum,
4150 dt: mjtNum,
4151 qpos1: *const mjtNum,
4152 qpos2: *const mjtNum,
4153 );
4154}
4155unsafe extern "C" {
4156 pub fn mj_integratePos(m: *const mjModel, qpos: *mut mjtNum, qvel: *const mjtNum, dt: mjtNum);
4157}
4158unsafe extern "C" {
4159 pub fn mj_normalizeQuat(m: *const mjModel, qpos: *mut mjtNum);
4160}
4161unsafe extern "C" {
4162 pub fn mj_local2Global(
4163 d: *mut mjData,
4164 xpos: *mut [mjtNum; 3usize],
4165 xmat: *mut [mjtNum; 9usize],
4166 pos: *const [mjtNum; 3usize],
4167 quat: *const [mjtNum; 4usize],
4168 body: ::std::os::raw::c_int,
4169 sameframe: mjtByte,
4170 );
4171}
4172unsafe extern "C" {
4173 pub fn mj_getTotalmass(m: *const mjModel) -> mjtNum;
4174}
4175unsafe extern "C" {
4176 pub fn mj_setTotalmass(m: *mut mjModel, newmass: mjtNum);
4177}
4178unsafe extern "C" {
4179 pub fn mj_getPluginConfig(
4180 m: *const mjModel,
4181 plugin_id: ::std::os::raw::c_int,
4182 attrib: *const ::std::os::raw::c_char,
4183 ) -> *const ::std::os::raw::c_char;
4184}
4185unsafe extern "C" {
4186 pub fn mj_loadPluginLibrary(path: *const ::std::os::raw::c_char);
4187}
4188unsafe extern "C" {
4189 pub fn mj_loadAllPluginLibraries(
4190 directory: *const ::std::os::raw::c_char,
4191 callback: mjfPluginLibraryLoadCallback,
4192 );
4193}
4194unsafe extern "C" {
4195 pub fn mj_version() -> ::std::os::raw::c_int;
4196}
4197unsafe extern "C" {
4198 pub fn mj_versionString() -> *const ::std::os::raw::c_char;
4199}
4200unsafe extern "C" {
4201 pub fn mj_ray(
4202 m: *const mjModel,
4203 d: *const mjData,
4204 pnt: *const [mjtNum; 3usize],
4205 vec: *const [mjtNum; 3usize],
4206 geomgroup: *const mjtByte,
4207 flg_static: mjtBool,
4208 bodyexclude: ::std::os::raw::c_int,
4209 geomid: *mut ::std::os::raw::c_int,
4210 normal: *mut [mjtNum; 3usize],
4211 ) -> mjtNum;
4212}
4213unsafe extern "C" {
4214 pub fn mj_multiRay(
4215 m: *const mjModel,
4216 d: *mut mjData,
4217 pnt: *const [mjtNum; 3usize],
4218 vec: *const mjtNum,
4219 geomgroup: *const mjtByte,
4220 flg_static: mjtBool,
4221 bodyexclude: ::std::os::raw::c_int,
4222 geomid: *mut ::std::os::raw::c_int,
4223 dist: *mut mjtNum,
4224 normal: *mut mjtNum,
4225 nray: ::std::os::raw::c_int,
4226 cutoff: mjtNum,
4227 );
4228}
4229unsafe extern "C" {
4230 pub fn mj_rayHfield(
4231 m: *const mjModel,
4232 d: *const mjData,
4233 geomid: ::std::os::raw::c_int,
4234 pnt: *const [mjtNum; 3usize],
4235 vec: *const [mjtNum; 3usize],
4236 normal: *mut [mjtNum; 3usize],
4237 ) -> mjtNum;
4238}
4239unsafe extern "C" {
4240 pub fn mj_rayMesh(
4241 m: *const mjModel,
4242 d: *const mjData,
4243 geomid: ::std::os::raw::c_int,
4244 pnt: *const [mjtNum; 3usize],
4245 vec: *const [mjtNum; 3usize],
4246 normal: *mut [mjtNum; 3usize],
4247 ) -> mjtNum;
4248}
4249unsafe extern "C" {
4250 pub fn mju_rayGeom(
4251 pos: *const [mjtNum; 3usize],
4252 mat: *const [mjtNum; 9usize],
4253 size: *const [mjtNum; 3usize],
4254 pnt: *const [mjtNum; 3usize],
4255 vec: *const [mjtNum; 3usize],
4256 geomtype: ::std::os::raw::c_int,
4257 normal: *mut [mjtNum; 3usize],
4258 ) -> mjtNum;
4259}
4260unsafe extern "C" {
4261 pub fn mj_rayFlex(
4262 m: *const mjModel,
4263 d: *const mjData,
4264 flex_layer: ::std::os::raw::c_int,
4265 flg_vert: mjtBool,
4266 flg_edge: mjtBool,
4267 flg_face: mjtBool,
4268 flg_skin: mjtBool,
4269 flexid: ::std::os::raw::c_int,
4270 pnt: *const [mjtNum; 3usize],
4271 vec: *const [mjtNum; 3usize],
4272 vertid: *mut ::std::os::raw::c_int,
4273 normal: *mut [mjtNum; 3usize],
4274 ) -> mjtNum;
4275}
4276unsafe extern "C" {
4277 pub fn mju_raySkin(
4278 nface: ::std::os::raw::c_int,
4279 nvert: ::std::os::raw::c_int,
4280 face: *const ::std::os::raw::c_int,
4281 vert: *const f32,
4282 pnt: *const [mjtNum; 3usize],
4283 vec: *const [mjtNum; 3usize],
4284 vertid: *mut ::std::os::raw::c_int,
4285 ) -> mjtNum;
4286}
4287unsafe extern "C" {
4288 pub fn mjv_defaultCamera(cam: *mut mjvCamera);
4289}
4290unsafe extern "C" {
4291 pub fn mjv_defaultFreeCamera(m: *const mjModel, cam: *mut mjvCamera);
4292}
4293unsafe extern "C" {
4294 pub fn mjv_defaultPerturb(pert: *mut mjvPerturb);
4295}
4296unsafe extern "C" {
4297 pub fn mjv_room2model(
4298 modelpos: *mut [mjtNum; 3usize],
4299 modelquat: *mut [mjtNum; 4usize],
4300 roompos: *const [mjtNum; 3usize],
4301 roomquat: *const [mjtNum; 4usize],
4302 scn: *const mjvScene,
4303 );
4304}
4305unsafe extern "C" {
4306 pub fn mjv_model2room(
4307 roompos: *mut [mjtNum; 3usize],
4308 roomquat: *mut [mjtNum; 4usize],
4309 modelpos: *const [mjtNum; 3usize],
4310 modelquat: *const [mjtNum; 4usize],
4311 scn: *const mjvScene,
4312 );
4313}
4314unsafe extern "C" {
4315 pub fn mjv_cameraInModel(
4316 headpos: *mut [mjtNum; 3usize],
4317 forward: *mut [mjtNum; 3usize],
4318 up: *mut [mjtNum; 3usize],
4319 scn: *const mjvScene,
4320 );
4321}
4322unsafe extern "C" {
4323 pub fn mjv_cameraInRoom(
4324 headpos: *mut [mjtNum; 3usize],
4325 forward: *mut [mjtNum; 3usize],
4326 up: *mut [mjtNum; 3usize],
4327 scn: *const mjvScene,
4328 );
4329}
4330unsafe extern "C" {
4331 pub fn mjv_frustumHeight(scn: *const mjvScene) -> mjtNum;
4332}
4333unsafe extern "C" {
4334 pub fn mjv_alignToCamera(
4335 res: *mut [mjtNum; 3usize],
4336 vec: *const [mjtNum; 3usize],
4337 forward: *const [mjtNum; 3usize],
4338 );
4339}
4340unsafe extern "C" {
4341 pub fn mjv_moveCamera(
4342 m: *const mjModel,
4343 action: ::std::os::raw::c_int,
4344 reldx: mjtNum,
4345 reldy: mjtNum,
4346 scn: *const mjvScene,
4347 cam: *mut mjvCamera,
4348 );
4349}
4350unsafe extern "C" {
4351 pub fn mjv_movePerturb(
4352 m: *const mjModel,
4353 d: *const mjData,
4354 action: ::std::os::raw::c_int,
4355 reldx: mjtNum,
4356 reldy: mjtNum,
4357 scn: *const mjvScene,
4358 pert: *mut mjvPerturb,
4359 );
4360}
4361unsafe extern "C" {
4362 pub fn mjv_moveModel(
4363 m: *const mjModel,
4364 action: ::std::os::raw::c_int,
4365 reldx: mjtNum,
4366 reldy: mjtNum,
4367 roomup: *const [mjtNum; 3usize],
4368 scn: *mut mjvScene,
4369 );
4370}
4371unsafe extern "C" {
4372 pub fn mjv_initPerturb(
4373 m: *const mjModel,
4374 d: *mut mjData,
4375 scn: *const mjvScene,
4376 pert: *mut mjvPerturb,
4377 );
4378}
4379unsafe extern "C" {
4380 pub fn mjv_applyPerturbPose(
4381 m: *const mjModel,
4382 d: *mut mjData,
4383 pert: *const mjvPerturb,
4384 flg_paused: ::std::os::raw::c_int,
4385 );
4386}
4387unsafe extern "C" {
4388 pub fn mjv_applyPerturbForce(m: *const mjModel, d: *mut mjData, pert: *const mjvPerturb);
4389}
4390unsafe extern "C" {
4391 pub fn mjv_averageCamera(cam1: *const mjvGLCamera, cam2: *const mjvGLCamera) -> mjvGLCamera;
4392}
4393unsafe extern "C" {
4394 pub fn mjv_select(
4395 m: *const mjModel,
4396 d: *const mjData,
4397 vopt: *const mjvOption,
4398 aspectratio: mjtNum,
4399 relx: mjtNum,
4400 rely: mjtNum,
4401 scn: *const mjvScene,
4402 selpnt: *mut [mjtNum; 3usize],
4403 geomid: *mut ::std::os::raw::c_int,
4404 flexid: *mut ::std::os::raw::c_int,
4405 skinid: *mut ::std::os::raw::c_int,
4406 ) -> ::std::os::raw::c_int;
4407}
4408unsafe extern "C" {
4409 pub fn mjv_defaultOption(opt: *mut mjvOption);
4410}
4411unsafe extern "C" {
4412 pub fn mjv_defaultFigure(fig: *mut mjvFigure);
4413}
4414unsafe extern "C" {
4415 pub fn mjv_initGeom(
4416 geom: *mut mjvGeom,
4417 type_: ::std::os::raw::c_int,
4418 size: *const [mjtNum; 3usize],
4419 pos: *const [mjtNum; 3usize],
4420 mat: *const [mjtNum; 9usize],
4421 rgba: *const [f32; 4usize],
4422 );
4423}
4424unsafe extern "C" {
4425 pub fn mjv_connector(
4426 geom: *mut mjvGeom,
4427 type_: ::std::os::raw::c_int,
4428 width: mjtNum,
4429 from: *const [mjtNum; 3usize],
4430 to: *const [mjtNum; 3usize],
4431 );
4432}
4433unsafe extern "C" {
4434 pub fn mjv_defaultScene(scn: *mut mjvScene);
4435}
4436unsafe extern "C" {
4437 pub fn mjv_makeScene(m: *const mjModel, scn: *mut mjvScene, maxgeom: ::std::os::raw::c_int);
4438}
4439unsafe extern "C" {
4440 pub fn mjv_freeScene(scn: *mut mjvScene);
4441}
4442unsafe extern "C" {
4443 pub fn mjv_updateScene(
4444 m: *const mjModel,
4445 d: *mut mjData,
4446 opt: *const mjvOption,
4447 pert: *const mjvPerturb,
4448 cam: *mut mjvCamera,
4449 catmask: ::std::os::raw::c_int,
4450 scn: *mut mjvScene,
4451 );
4452}
4453unsafe extern "C" {
4454 pub fn mjv_copyModel(dest: *mut mjModel, src: *const mjModel);
4455}
4456unsafe extern "C" {
4457 pub fn mjv_addGeoms(
4458 m: *const mjModel,
4459 d: *mut mjData,
4460 opt: *const mjvOption,
4461 pert: *const mjvPerturb,
4462 catmask: ::std::os::raw::c_int,
4463 scn: *mut mjvScene,
4464 );
4465}
4466unsafe extern "C" {
4467 pub fn mjv_makeLights(m: *const mjModel, d: *const mjData, scn: *mut mjvScene);
4468}
4469unsafe extern "C" {
4470 pub fn mjv_updateCamera(
4471 m: *const mjModel,
4472 d: *const mjData,
4473 cam: *mut mjvCamera,
4474 scn: *mut mjvScene,
4475 );
4476}
4477unsafe extern "C" {
4478 pub fn mjv_updateSkin(m: *const mjModel, d: *const mjData, scn: *mut mjvScene);
4479}
4480unsafe extern "C" {
4481 pub fn mjv_cameraFrame(
4482 headpos: *mut [mjtNum; 3usize],
4483 forward: *mut [mjtNum; 3usize],
4484 up: *mut [mjtNum; 3usize],
4485 right: *mut [mjtNum; 3usize],
4486 d: *const mjData,
4487 cam: *const mjvCamera,
4488 );
4489}
4490unsafe extern "C" {
4491 pub fn mjv_cameraFrustum(
4492 zver: *mut [f32; 2usize],
4493 zhor: *mut [f32; 2usize],
4494 zclip: *mut [f32; 2usize],
4495 m: *const mjModel,
4496 cam: *const mjvCamera,
4497 );
4498}
4499unsafe extern "C" {
4500 pub fn mjr_defaultContext(con: *mut mjrContext);
4501}
4502unsafe extern "C" {
4503 pub fn mjr_makeContext(
4504 m: *const mjModel,
4505 con: *mut mjrContext,
4506 fontscale: ::std::os::raw::c_int,
4507 );
4508}
4509unsafe extern "C" {
4510 pub fn mjr_changeFont(fontscale: ::std::os::raw::c_int, con: *mut mjrContext);
4511}
4512unsafe extern "C" {
4513 pub fn mjr_addAux(
4514 index: ::std::os::raw::c_int,
4515 width: ::std::os::raw::c_int,
4516 height: ::std::os::raw::c_int,
4517 samples: ::std::os::raw::c_int,
4518 con: *mut mjrContext,
4519 );
4520}
4521unsafe extern "C" {
4522 pub fn mjr_freeContext(con: *mut mjrContext);
4523}
4524unsafe extern "C" {
4525 pub fn mjr_resizeOffscreen(
4526 width: ::std::os::raw::c_int,
4527 height: ::std::os::raw::c_int,
4528 con: *mut mjrContext,
4529 );
4530}
4531unsafe extern "C" {
4532 pub fn mjr_uploadTexture(
4533 m: *const mjModel,
4534 con: *const mjrContext,
4535 texid: ::std::os::raw::c_int,
4536 );
4537}
4538unsafe extern "C" {
4539 pub fn mjr_uploadMesh(m: *const mjModel, con: *const mjrContext, meshid: ::std::os::raw::c_int);
4540}
4541unsafe extern "C" {
4542 pub fn mjr_uploadHField(
4543 m: *const mjModel,
4544 con: *const mjrContext,
4545 hfieldid: ::std::os::raw::c_int,
4546 );
4547}
4548unsafe extern "C" {
4549 pub fn mjr_restoreBuffer(con: *const mjrContext);
4550}
4551unsafe extern "C" {
4552 pub fn mjr_setBuffer(framebuffer: ::std::os::raw::c_int, con: *mut mjrContext);
4553}
4554unsafe extern "C" {
4555 pub fn mjr_readPixels(
4556 rgb: *mut ::std::os::raw::c_uchar,
4557 depth: *mut f32,
4558 viewport: mjrRect,
4559 con: *const mjrContext,
4560 );
4561}
4562unsafe extern "C" {
4563 pub fn mjr_drawPixels(
4564 rgb: *const ::std::os::raw::c_uchar,
4565 depth: *const f32,
4566 viewport: mjrRect,
4567 con: *const mjrContext,
4568 );
4569}
4570unsafe extern "C" {
4571 pub fn mjr_blitBuffer(
4572 src: mjrRect,
4573 dst: mjrRect,
4574 flg_color: ::std::os::raw::c_int,
4575 flg_depth: ::std::os::raw::c_int,
4576 con: *const mjrContext,
4577 );
4578}
4579unsafe extern "C" {
4580 pub fn mjr_setAux(index: ::std::os::raw::c_int, con: *const mjrContext);
4581}
4582unsafe extern "C" {
4583 pub fn mjr_blitAux(
4584 index: ::std::os::raw::c_int,
4585 src: mjrRect,
4586 left: ::std::os::raw::c_int,
4587 bottom: ::std::os::raw::c_int,
4588 con: *const mjrContext,
4589 );
4590}
4591unsafe extern "C" {
4592 pub fn mjr_text(
4593 font: ::std::os::raw::c_int,
4594 txt: *const ::std::os::raw::c_char,
4595 con: *const mjrContext,
4596 x: f32,
4597 y: f32,
4598 r: f32,
4599 g: f32,
4600 b: f32,
4601 );
4602}
4603unsafe extern "C" {
4604 pub fn mjr_overlay(
4605 font: ::std::os::raw::c_int,
4606 gridpos: ::std::os::raw::c_int,
4607 viewport: mjrRect,
4608 overlay: *const ::std::os::raw::c_char,
4609 overlay2: *const ::std::os::raw::c_char,
4610 con: *const mjrContext,
4611 );
4612}
4613unsafe extern "C" {
4614 pub fn mjr_maxViewport(con: *const mjrContext) -> mjrRect;
4615}
4616unsafe extern "C" {
4617 pub fn mjr_rectangle(viewport: mjrRect, r: f32, g: f32, b: f32, a: f32);
4618}
4619unsafe extern "C" {
4620 pub fn mjr_label(
4621 viewport: mjrRect,
4622 font: ::std::os::raw::c_int,
4623 txt: *const ::std::os::raw::c_char,
4624 r: f32,
4625 g: f32,
4626 b: f32,
4627 a: f32,
4628 rt: f32,
4629 gt: f32,
4630 bt: f32,
4631 con: *const mjrContext,
4632 );
4633}
4634unsafe extern "C" {
4635 pub fn mjr_figure(viewport: mjrRect, fig: *mut mjvFigure, con: *const mjrContext);
4636}
4637unsafe extern "C" {
4638 pub fn mjr_render(viewport: mjrRect, scn: *mut mjvScene, con: *const mjrContext);
4639}
4640unsafe extern "C" {
4641 pub fn mjr_finish();
4642}
4643unsafe extern "C" {
4644 pub fn mjr_getError() -> ::std::os::raw::c_int;
4645}
4646unsafe extern "C" {
4647 pub fn mjr_findRect(
4648 x: ::std::os::raw::c_int,
4649 y: ::std::os::raw::c_int,
4650 nrect: ::std::os::raw::c_int,
4651 rect: *const mjrRect,
4652 ) -> ::std::os::raw::c_int;
4653}
4654unsafe extern "C" {
4655 pub fn mjui_themeSpacing(ind: ::std::os::raw::c_int) -> mjuiThemeSpacing;
4656}
4657unsafe extern "C" {
4658 pub fn mjui_themeColor(ind: ::std::os::raw::c_int) -> mjuiThemeColor;
4659}
4660unsafe extern "C" {
4661 pub fn mjui_add(ui: *mut mjUI, def: *const mjuiDef);
4662}
4663unsafe extern "C" {
4664 pub fn mjui_addToSection(ui: *mut mjUI, sect: ::std::os::raw::c_int, def: *const mjuiDef);
4665}
4666unsafe extern "C" {
4667 pub fn mjui_resize(ui: *mut mjUI, con: *const mjrContext);
4668}
4669unsafe extern "C" {
4670 pub fn mjui_update(
4671 section: ::std::os::raw::c_int,
4672 item: ::std::os::raw::c_int,
4673 ui: *const mjUI,
4674 state: *const mjuiState,
4675 con: *const mjrContext,
4676 );
4677}
4678unsafe extern "C" {
4679 pub fn mjui_event(
4680 ui: *mut mjUI,
4681 state: *mut mjuiState,
4682 con: *const mjrContext,
4683 ) -> *mut mjuiItem;
4684}
4685unsafe extern "C" {
4686 pub fn mjui_render(ui: *mut mjUI, state: *const mjuiState, con: *const mjrContext);
4687}
4688unsafe extern "C" {
4689 pub fn mju_error(msg: *const ::std::os::raw::c_char, ...);
4690}
4691unsafe extern "C" {
4692 pub fn mju_error_i(msg: *const ::std::os::raw::c_char, i: ::std::os::raw::c_int);
4693}
4694unsafe extern "C" {
4695 pub fn mju_error_s(msg: *const ::std::os::raw::c_char, text: *const ::std::os::raw::c_char);
4696}
4697unsafe extern "C" {
4698 pub fn mju_warning(msg: *const ::std::os::raw::c_char, ...);
4699}
4700unsafe extern "C" {
4701 pub fn mju_warning_i(msg: *const ::std::os::raw::c_char, i: ::std::os::raw::c_int);
4702}
4703unsafe extern "C" {
4704 pub fn mju_warning_s(msg: *const ::std::os::raw::c_char, text: *const ::std::os::raw::c_char);
4705}
4706unsafe extern "C" {
4707 pub fn mju_clearHandlers();
4708}
4709unsafe extern "C" {
4710 pub fn mju_malloc(size: usize) -> *mut ::std::os::raw::c_void;
4711}
4712unsafe extern "C" {
4713 pub fn mju_free(ptr: *mut ::std::os::raw::c_void);
4714}
4715unsafe extern "C" {
4716 pub fn mj_warning(d: *mut mjData, warning: ::std::os::raw::c_int, info: ::std::os::raw::c_int);
4717}
4718unsafe extern "C" {
4719 pub fn mju_writeLog(type_: *const ::std::os::raw::c_char, msg: *const ::std::os::raw::c_char);
4720}
4721unsafe extern "C" {
4722 pub fn mjs_getError(s: *mut mjSpec) -> *const ::std::os::raw::c_char;
4723}
4724unsafe extern "C" {
4725 pub fn mjs_getTimer(s: *mut mjSpec) -> *const f64;
4726}
4727unsafe extern "C" {
4728 pub fn mjs_isWarning(s: *mut mjSpec) -> ::std::os::raw::c_int;
4729}
4730unsafe extern "C" {
4731 pub fn mju_zero3(res: *mut [mjtNum; 3usize]);
4732}
4733unsafe extern "C" {
4734 pub fn mju_copy3(res: *mut [mjtNum; 3usize], data: *const [mjtNum; 3usize]);
4735}
4736unsafe extern "C" {
4737 pub fn mju_scl3(res: *mut [mjtNum; 3usize], vec: *const [mjtNum; 3usize], scl: mjtNum);
4738}
4739unsafe extern "C" {
4740 pub fn mju_add3(
4741 res: *mut [mjtNum; 3usize],
4742 vec1: *const [mjtNum; 3usize],
4743 vec2: *const [mjtNum; 3usize],
4744 );
4745}
4746unsafe extern "C" {
4747 pub fn mju_sub3(
4748 res: *mut [mjtNum; 3usize],
4749 vec1: *const [mjtNum; 3usize],
4750 vec2: *const [mjtNum; 3usize],
4751 );
4752}
4753unsafe extern "C" {
4754 pub fn mju_addTo3(res: *mut [mjtNum; 3usize], vec: *const [mjtNum; 3usize]);
4755}
4756unsafe extern "C" {
4757 pub fn mju_subFrom3(res: *mut [mjtNum; 3usize], vec: *const [mjtNum; 3usize]);
4758}
4759unsafe extern "C" {
4760 pub fn mju_addToScl3(res: *mut [mjtNum; 3usize], vec: *const [mjtNum; 3usize], scl: mjtNum);
4761}
4762unsafe extern "C" {
4763 pub fn mju_addScl3(
4764 res: *mut [mjtNum; 3usize],
4765 vec1: *const [mjtNum; 3usize],
4766 vec2: *const [mjtNum; 3usize],
4767 scl: mjtNum,
4768 );
4769}
4770unsafe extern "C" {
4771 pub fn mju_normalize3(vec: *mut [mjtNum; 3usize]) -> mjtNum;
4772}
4773unsafe extern "C" {
4774 pub fn mju_norm3(vec: *const [mjtNum; 3usize]) -> mjtNum;
4775}
4776unsafe extern "C" {
4777 pub fn mju_dot3(vec1: *const [mjtNum; 3usize], vec2: *const [mjtNum; 3usize]) -> mjtNum;
4778}
4779unsafe extern "C" {
4780 pub fn mju_dist3(pos1: *const [mjtNum; 3usize], pos2: *const [mjtNum; 3usize]) -> mjtNum;
4781}
4782unsafe extern "C" {
4783 pub fn mju_mulMatVec3(
4784 res: *mut [mjtNum; 3usize],
4785 mat: *const [mjtNum; 9usize],
4786 vec: *const [mjtNum; 3usize],
4787 );
4788}
4789unsafe extern "C" {
4790 pub fn mju_mulMatTVec3(
4791 res: *mut [mjtNum; 3usize],
4792 mat: *const [mjtNum; 9usize],
4793 vec: *const [mjtNum; 3usize],
4794 );
4795}
4796unsafe extern "C" {
4797 pub fn mju_cross(
4798 res: *mut [mjtNum; 3usize],
4799 a: *const [mjtNum; 3usize],
4800 b: *const [mjtNum; 3usize],
4801 );
4802}
4803unsafe extern "C" {
4804 pub fn mju_zero4(res: *mut [mjtNum; 4usize]);
4805}
4806unsafe extern "C" {
4807 pub fn mju_unit4(res: *mut [mjtNum; 4usize]);
4808}
4809unsafe extern "C" {
4810 pub fn mju_copy4(res: *mut [mjtNum; 4usize], data: *const [mjtNum; 4usize]);
4811}
4812unsafe extern "C" {
4813 pub fn mju_normalize4(vec: *mut [mjtNum; 4usize]) -> mjtNum;
4814}
4815unsafe extern "C" {
4816 pub fn mju_zero(res: *mut mjtNum, n: ::std::os::raw::c_int);
4817}
4818unsafe extern "C" {
4819 pub fn mju_fill(res: *mut mjtNum, val: mjtNum, n: ::std::os::raw::c_int);
4820}
4821unsafe extern "C" {
4822 pub fn mju_copy(res: *mut mjtNum, vec: *const mjtNum, n: ::std::os::raw::c_int);
4823}
4824unsafe extern "C" {
4825 pub fn mju_sum(vec: *const mjtNum, n: ::std::os::raw::c_int) -> mjtNum;
4826}
4827unsafe extern "C" {
4828 pub fn mju_L1(vec: *const mjtNum, n: ::std::os::raw::c_int) -> mjtNum;
4829}
4830unsafe extern "C" {
4831 pub fn mju_scl(res: *mut mjtNum, vec: *const mjtNum, scl: mjtNum, n: ::std::os::raw::c_int);
4832}
4833unsafe extern "C" {
4834 pub fn mju_add(
4835 res: *mut mjtNum,
4836 vec1: *const mjtNum,
4837 vec2: *const mjtNum,
4838 n: ::std::os::raw::c_int,
4839 );
4840}
4841unsafe extern "C" {
4842 pub fn mju_sub(
4843 res: *mut mjtNum,
4844 vec1: *const mjtNum,
4845 vec2: *const mjtNum,
4846 n: ::std::os::raw::c_int,
4847 );
4848}
4849unsafe extern "C" {
4850 pub fn mju_addTo(res: *mut mjtNum, vec: *const mjtNum, n: ::std::os::raw::c_int);
4851}
4852unsafe extern "C" {
4853 pub fn mju_subFrom(res: *mut mjtNum, vec: *const mjtNum, n: ::std::os::raw::c_int);
4854}
4855unsafe extern "C" {
4856 pub fn mju_addToScl(
4857 res: *mut mjtNum,
4858 vec: *const mjtNum,
4859 scl: mjtNum,
4860 n: ::std::os::raw::c_int,
4861 );
4862}
4863unsafe extern "C" {
4864 pub fn mju_addScl(
4865 res: *mut mjtNum,
4866 vec1: *const mjtNum,
4867 vec2: *const mjtNum,
4868 scl: mjtNum,
4869 n: ::std::os::raw::c_int,
4870 );
4871}
4872unsafe extern "C" {
4873 pub fn mju_normalize(res: *mut mjtNum, n: ::std::os::raw::c_int) -> mjtNum;
4874}
4875unsafe extern "C" {
4876 pub fn mju_norm(res: *const mjtNum, n: ::std::os::raw::c_int) -> mjtNum;
4877}
4878unsafe extern "C" {
4879 pub fn mju_dot(vec1: *const mjtNum, vec2: *const mjtNum, n: ::std::os::raw::c_int) -> mjtNum;
4880}
4881unsafe extern "C" {
4882 pub fn mju_mulMatVec(
4883 res: *mut mjtNum,
4884 mat: *const mjtNum,
4885 vec: *const mjtNum,
4886 nr: ::std::os::raw::c_int,
4887 nc: ::std::os::raw::c_int,
4888 );
4889}
4890unsafe extern "C" {
4891 pub fn mju_mulMatTVec(
4892 res: *mut mjtNum,
4893 mat: *const mjtNum,
4894 vec: *const mjtNum,
4895 nr: ::std::os::raw::c_int,
4896 nc: ::std::os::raw::c_int,
4897 );
4898}
4899unsafe extern "C" {
4900 pub fn mju_mulVecMatVec(
4901 vec1: *const mjtNum,
4902 mat: *const mjtNum,
4903 vec2: *const mjtNum,
4904 n: ::std::os::raw::c_int,
4905 ) -> mjtNum;
4906}
4907unsafe extern "C" {
4908 pub fn mju_transpose(
4909 res: *mut mjtNum,
4910 mat: *const mjtNum,
4911 nr: ::std::os::raw::c_int,
4912 nc: ::std::os::raw::c_int,
4913 );
4914}
4915unsafe extern "C" {
4916 pub fn mju_symmetrize(res: *mut mjtNum, mat: *const mjtNum, n: ::std::os::raw::c_int);
4917}
4918unsafe extern "C" {
4919 pub fn mju_eye(mat: *mut mjtNum, n: ::std::os::raw::c_int);
4920}
4921unsafe extern "C" {
4922 pub fn mju_mulMatMat(
4923 res: *mut mjtNum,
4924 mat1: *const mjtNum,
4925 mat2: *const mjtNum,
4926 r1: ::std::os::raw::c_int,
4927 c1: ::std::os::raw::c_int,
4928 c2: ::std::os::raw::c_int,
4929 );
4930}
4931unsafe extern "C" {
4932 pub fn mju_mulMatMatT(
4933 res: *mut mjtNum,
4934 mat1: *const mjtNum,
4935 mat2: *const mjtNum,
4936 r1: ::std::os::raw::c_int,
4937 c1: ::std::os::raw::c_int,
4938 r2: ::std::os::raw::c_int,
4939 );
4940}
4941unsafe extern "C" {
4942 pub fn mju_mulMatTMat(
4943 res: *mut mjtNum,
4944 mat1: *const mjtNum,
4945 mat2: *const mjtNum,
4946 r1: ::std::os::raw::c_int,
4947 c1: ::std::os::raw::c_int,
4948 c2: ::std::os::raw::c_int,
4949 );
4950}
4951unsafe extern "C" {
4952 pub fn mju_sqrMatTD(
4953 res: *mut mjtNum,
4954 mat: *const mjtNum,
4955 diag: *const mjtNum,
4956 nr: ::std::os::raw::c_int,
4957 nc: ::std::os::raw::c_int,
4958 );
4959}
4960unsafe extern "C" {
4961 pub fn mju_transformSpatial(
4962 res: *mut [mjtNum; 6usize],
4963 vec: *const [mjtNum; 6usize],
4964 flg_force: ::std::os::raw::c_int,
4965 newpos: *const [mjtNum; 3usize],
4966 oldpos: *const [mjtNum; 3usize],
4967 rotnew2old: *const [mjtNum; 9usize],
4968 );
4969}
4970unsafe extern "C" {
4971 pub fn mju_dense2sparse(
4972 res: *mut mjtNum,
4973 mat: *const mjtNum,
4974 nr: ::std::os::raw::c_int,
4975 nc: ::std::os::raw::c_int,
4976 rownnz: *mut ::std::os::raw::c_int,
4977 rowadr: *mut ::std::os::raw::c_int,
4978 colind: *mut ::std::os::raw::c_int,
4979 nnz: ::std::os::raw::c_int,
4980 ) -> ::std::os::raw::c_int;
4981}
4982unsafe extern "C" {
4983 pub fn mju_sparse2dense(
4984 res: *mut mjtNum,
4985 mat: *const mjtNum,
4986 nr: ::std::os::raw::c_int,
4987 nc: ::std::os::raw::c_int,
4988 rownnz: *const ::std::os::raw::c_int,
4989 rowadr: *const ::std::os::raw::c_int,
4990 colind: *const ::std::os::raw::c_int,
4991 );
4992}
4993unsafe extern "C" {
4994 pub fn mju_sym2dense(
4995 res: *mut mjtNum,
4996 mat: *const mjtNum,
4997 n: ::std::os::raw::c_int,
4998 rownnz: *const ::std::os::raw::c_int,
4999 rowadr: *const ::std::os::raw::c_int,
5000 colind: *const ::std::os::raw::c_int,
5001 );
5002}
5003unsafe extern "C" {
5004 pub fn mju_rotVecQuat(
5005 res: *mut [mjtNum; 3usize],
5006 vec: *const [mjtNum; 3usize],
5007 quat: *const [mjtNum; 4usize],
5008 );
5009}
5010unsafe extern "C" {
5011 pub fn mju_negQuat(res: *mut [mjtNum; 4usize], quat: *const [mjtNum; 4usize]);
5012}
5013unsafe extern "C" {
5014 pub fn mju_mulQuat(
5015 res: *mut [mjtNum; 4usize],
5016 quat1: *const [mjtNum; 4usize],
5017 quat2: *const [mjtNum; 4usize],
5018 );
5019}
5020unsafe extern "C" {
5021 pub fn mju_mulQuatAxis(
5022 res: *mut [mjtNum; 4usize],
5023 quat: *const [mjtNum; 4usize],
5024 axis: *const [mjtNum; 3usize],
5025 );
5026}
5027unsafe extern "C" {
5028 pub fn mju_axisAngle2Quat(
5029 res: *mut [mjtNum; 4usize],
5030 axis: *const [mjtNum; 3usize],
5031 angle: mjtNum,
5032 );
5033}
5034unsafe extern "C" {
5035 pub fn mju_quat2Vel(res: *mut [mjtNum; 3usize], quat: *const [mjtNum; 4usize], dt: mjtNum);
5036}
5037unsafe extern "C" {
5038 pub fn mju_subQuat(
5039 res: *mut [mjtNum; 3usize],
5040 qa: *const [mjtNum; 4usize],
5041 qb: *const [mjtNum; 4usize],
5042 );
5043}
5044unsafe extern "C" {
5045 pub fn mju_quat2Mat(res: *mut [mjtNum; 9usize], quat: *const [mjtNum; 4usize]);
5046}
5047unsafe extern "C" {
5048 pub fn mju_mat2Quat(quat: *mut [mjtNum; 4usize], mat: *const [mjtNum; 9usize]);
5049}
5050unsafe extern "C" {
5051 pub fn mju_derivQuat(
5052 res: *mut [mjtNum; 4usize],
5053 quat: *const [mjtNum; 4usize],
5054 vel: *const [mjtNum; 3usize],
5055 );
5056}
5057unsafe extern "C" {
5058 pub fn mju_quatIntegrate(
5059 quat: *mut [mjtNum; 4usize],
5060 vel: *const [mjtNum; 3usize],
5061 scale: mjtNum,
5062 );
5063}
5064unsafe extern "C" {
5065 pub fn mju_quatZ2Vec(quat: *mut [mjtNum; 4usize], vec: *const [mjtNum; 3usize]);
5066}
5067unsafe extern "C" {
5068 pub fn mju_mat2Rot(
5069 quat: *mut [mjtNum; 4usize],
5070 mat: *const [mjtNum; 9usize],
5071 ) -> ::std::os::raw::c_int;
5072}
5073unsafe extern "C" {
5074 pub fn mju_euler2Quat(
5075 quat: *mut [mjtNum; 4usize],
5076 euler: *const [mjtNum; 3usize],
5077 seq: *const ::std::os::raw::c_char,
5078 );
5079}
5080unsafe extern "C" {
5081 pub fn mju_mulPose(
5082 posres: *mut [mjtNum; 3usize],
5083 quatres: *mut [mjtNum; 4usize],
5084 pos1: *const [mjtNum; 3usize],
5085 quat1: *const [mjtNum; 4usize],
5086 pos2: *const [mjtNum; 3usize],
5087 quat2: *const [mjtNum; 4usize],
5088 );
5089}
5090unsafe extern "C" {
5091 pub fn mju_negPose(
5092 posres: *mut [mjtNum; 3usize],
5093 quatres: *mut [mjtNum; 4usize],
5094 pos: *const [mjtNum; 3usize],
5095 quat: *const [mjtNum; 4usize],
5096 );
5097}
5098unsafe extern "C" {
5099 pub fn mju_trnVecPose(
5100 res: *mut [mjtNum; 3usize],
5101 pos: *const [mjtNum; 3usize],
5102 quat: *const [mjtNum; 4usize],
5103 vec: *const [mjtNum; 3usize],
5104 );
5105}
5106unsafe extern "C" {
5107 pub fn mju_cholFactor(
5108 mat: *mut mjtNum,
5109 n: ::std::os::raw::c_int,
5110 mindiag: mjtNum,
5111 ) -> ::std::os::raw::c_int;
5112}
5113unsafe extern "C" {
5114 pub fn mju_cholSolve(
5115 res: *mut mjtNum,
5116 mat: *const mjtNum,
5117 vec: *const mjtNum,
5118 n: ::std::os::raw::c_int,
5119 );
5120}
5121unsafe extern "C" {
5122 pub fn mju_cholUpdate(
5123 mat: *mut mjtNum,
5124 x: *mut mjtNum,
5125 n: ::std::os::raw::c_int,
5126 flg_plus: ::std::os::raw::c_int,
5127 ) -> ::std::os::raw::c_int;
5128}
5129unsafe extern "C" {
5130 pub fn mju_cholFactorBand(
5131 mat: *mut mjtNum,
5132 ntotal: ::std::os::raw::c_int,
5133 nband: ::std::os::raw::c_int,
5134 ndense: ::std::os::raw::c_int,
5135 diagadd: mjtNum,
5136 diagmul: mjtNum,
5137 ) -> mjtNum;
5138}
5139unsafe extern "C" {
5140 pub fn mju_cholSolveBand(
5141 res: *mut mjtNum,
5142 mat: *const mjtNum,
5143 vec: *const mjtNum,
5144 ntotal: ::std::os::raw::c_int,
5145 nband: ::std::os::raw::c_int,
5146 ndense: ::std::os::raw::c_int,
5147 );
5148}
5149unsafe extern "C" {
5150 pub fn mju_band2Dense(
5151 res: *mut mjtNum,
5152 mat: *const mjtNum,
5153 ntotal: ::std::os::raw::c_int,
5154 nband: ::std::os::raw::c_int,
5155 ndense: ::std::os::raw::c_int,
5156 flg_sym: mjtBool,
5157 );
5158}
5159unsafe extern "C" {
5160 pub fn mju_dense2Band(
5161 res: *mut mjtNum,
5162 mat: *const mjtNum,
5163 ntotal: ::std::os::raw::c_int,
5164 nband: ::std::os::raw::c_int,
5165 ndense: ::std::os::raw::c_int,
5166 );
5167}
5168unsafe extern "C" {
5169 pub fn mju_bandMulMatVec(
5170 res: *mut mjtNum,
5171 mat: *const mjtNum,
5172 vec: *const mjtNum,
5173 ntotal: ::std::os::raw::c_int,
5174 nband: ::std::os::raw::c_int,
5175 ndense: ::std::os::raw::c_int,
5176 nvec: ::std::os::raw::c_int,
5177 flg_sym: mjtBool,
5178 );
5179}
5180unsafe extern "C" {
5181 pub fn mju_bandDiag(
5182 i: ::std::os::raw::c_int,
5183 ntotal: ::std::os::raw::c_int,
5184 nband: ::std::os::raw::c_int,
5185 ndense: ::std::os::raw::c_int,
5186 ) -> ::std::os::raw::c_int;
5187}
5188unsafe extern "C" {
5189 pub fn mju_eig3(
5190 eigval: *mut [mjtNum; 3usize],
5191 eigvec: *mut [mjtNum; 9usize],
5192 quat: *mut [mjtNum; 4usize],
5193 mat: *const [mjtNum; 9usize],
5194 ) -> ::std::os::raw::c_int;
5195}
5196unsafe extern "C" {
5197 pub fn mju_boxQP(
5198 res: *mut mjtNum,
5199 R: *mut mjtNum,
5200 index: *mut ::std::os::raw::c_int,
5201 H: *const mjtNum,
5202 g: *const mjtNum,
5203 n: ::std::os::raw::c_int,
5204 lower: *const mjtNum,
5205 upper: *const mjtNum,
5206 ) -> ::std::os::raw::c_int;
5207}
5208unsafe extern "C" {
5209 pub fn mju_boxQPmalloc(
5210 res: *mut *mut mjtNum,
5211 R: *mut *mut mjtNum,
5212 index: *mut *mut ::std::os::raw::c_int,
5213 H: *mut *mut mjtNum,
5214 g: *mut *mut mjtNum,
5215 n: ::std::os::raw::c_int,
5216 lower: *mut *mut mjtNum,
5217 upper: *mut *mut mjtNum,
5218 );
5219}
5220unsafe extern "C" {
5221 pub fn mju_muscleGain(
5222 len: mjtNum,
5223 vel: mjtNum,
5224 lengthrange: *const [mjtNum; 2usize],
5225 acc0: mjtNum,
5226 prm: *const [mjtNum; 9usize],
5227 ) -> mjtNum;
5228}
5229unsafe extern "C" {
5230 pub fn mju_muscleBias(
5231 len: mjtNum,
5232 lengthrange: *const [mjtNum; 2usize],
5233 acc0: mjtNum,
5234 prm: *const [mjtNum; 9usize],
5235 ) -> mjtNum;
5236}
5237unsafe extern "C" {
5238 pub fn mju_muscleDynamics(ctrl: mjtNum, act: mjtNum, prm: *const [mjtNum; 3usize]) -> mjtNum;
5239}
5240unsafe extern "C" {
5241 pub fn mju_encodePyramid(
5242 pyramid: *mut mjtNum,
5243 force: *const mjtNum,
5244 mu: *const mjtNum,
5245 dim: ::std::os::raw::c_int,
5246 );
5247}
5248unsafe extern "C" {
5249 pub fn mju_decodePyramid(
5250 force: *mut mjtNum,
5251 pyramid: *const mjtNum,
5252 mu: *const mjtNum,
5253 dim: ::std::os::raw::c_int,
5254 );
5255}
5256unsafe extern "C" {
5257 pub fn mju_springDamper(
5258 pos0: mjtNum,
5259 vel0: mjtNum,
5260 Kp: mjtNum,
5261 Kv: mjtNum,
5262 dt: mjtNum,
5263 ) -> mjtNum;
5264}
5265unsafe extern "C" {
5266 pub fn mju_min(a: mjtNum, b: mjtNum) -> mjtNum;
5267}
5268unsafe extern "C" {
5269 pub fn mju_max(a: mjtNum, b: mjtNum) -> mjtNum;
5270}
5271unsafe extern "C" {
5272 pub fn mju_clip(x: mjtNum, min: mjtNum, max: mjtNum) -> mjtNum;
5273}
5274unsafe extern "C" {
5275 pub fn mju_sign(x: mjtNum) -> mjtNum;
5276}
5277unsafe extern "C" {
5278 pub fn mju_round(x: mjtNum) -> ::std::os::raw::c_int;
5279}
5280unsafe extern "C" {
5281 pub fn mju_type2Str(type_: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
5282}
5283unsafe extern "C" {
5284 pub fn mju_str2Type(str_: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
5285}
5286unsafe extern "C" {
5287 pub fn mju_writeNumBytes(nbytes: usize) -> *const ::std::os::raw::c_char;
5288}
5289unsafe extern "C" {
5290 pub fn mju_warningText(
5291 warning: ::std::os::raw::c_int,
5292 info: usize,
5293 ) -> *const ::std::os::raw::c_char;
5294}
5295unsafe extern "C" {
5296 pub fn mju_isBad(x: mjtNum) -> ::std::os::raw::c_int;
5297}
5298unsafe extern "C" {
5299 pub fn mju_isZero(vec: *const mjtNum, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5300}
5301unsafe extern "C" {
5302 pub fn mju_standardNormal(num2: *mut mjtNum) -> mjtNum;
5303}
5304unsafe extern "C" {
5305 pub fn mju_f2n(res: *mut mjtNum, vec: *const f32, n: ::std::os::raw::c_int);
5306}
5307unsafe extern "C" {
5308 pub fn mju_n2f(res: *mut f32, vec: *const mjtNum, n: ::std::os::raw::c_int);
5309}
5310unsafe extern "C" {
5311 pub fn mju_d2n(res: *mut mjtNum, vec: *const f64, n: ::std::os::raw::c_int);
5312}
5313unsafe extern "C" {
5314 pub fn mju_n2d(res: *mut f64, vec: *const mjtNum, n: ::std::os::raw::c_int);
5315}
5316unsafe extern "C" {
5317 pub fn mju_insertionSort(list: *mut mjtNum, n: ::std::os::raw::c_int);
5318}
5319unsafe extern "C" {
5320 pub fn mju_insertionSortInt(list: *mut ::std::os::raw::c_int, n: ::std::os::raw::c_int);
5321}
5322unsafe extern "C" {
5323 pub fn mju_Halton(index: ::std::os::raw::c_int, base: ::std::os::raw::c_int) -> mjtNum;
5324}
5325unsafe extern "C" {
5326 pub fn mju_strncpy(
5327 dst: *mut ::std::os::raw::c_char,
5328 src: *const ::std::os::raw::c_char,
5329 n: ::std::os::raw::c_int,
5330 ) -> *mut ::std::os::raw::c_char;
5331}
5332unsafe extern "C" {
5333 pub fn mju_sigmoid(x: mjtNum) -> mjtNum;
5334}
5335unsafe extern "C" {
5336 pub fn mjc_getSDF(m: *const mjModel, id: ::std::os::raw::c_int) -> *const mjpPlugin;
5337}
5338unsafe extern "C" {
5339 pub fn mjc_distance(
5340 m: *const mjModel,
5341 d: *const mjData,
5342 s: *const mjSDF,
5343 x: *const [mjtNum; 3usize],
5344 ) -> mjtNum;
5345}
5346unsafe extern "C" {
5347 pub fn mjc_gradient(
5348 m: *const mjModel,
5349 d: *const mjData,
5350 s: *const mjSDF,
5351 gradient: *mut [mjtNum; 3usize],
5352 x: *const [mjtNum; 3usize],
5353 );
5354}
5355unsafe extern "C" {
5356 pub fn mjd_transitionFD(
5357 m: *const mjModel,
5358 d: *mut mjData,
5359 eps: mjtNum,
5360 flg_centered: mjtBool,
5361 A: *mut mjtNum,
5362 B: *mut mjtNum,
5363 C: *mut mjtNum,
5364 D: *mut mjtNum,
5365 );
5366}
5367unsafe extern "C" {
5368 pub fn mjd_inverseFD(
5369 m: *const mjModel,
5370 d: *mut mjData,
5371 eps: mjtNum,
5372 flg_actuation: mjtBool,
5373 DfDq: *mut mjtNum,
5374 DfDv: *mut mjtNum,
5375 DfDa: *mut mjtNum,
5376 DsDq: *mut mjtNum,
5377 DsDv: *mut mjtNum,
5378 DsDa: *mut mjtNum,
5379 DmDq: *mut mjtNum,
5380 );
5381}
5382unsafe extern "C" {
5383 pub fn mjd_subQuat(
5384 qa: *const [mjtNum; 4usize],
5385 qb: *const [mjtNum; 4usize],
5386 Da: *mut [mjtNum; 9usize],
5387 Db: *mut [mjtNum; 9usize],
5388 );
5389}
5390unsafe extern "C" {
5391 pub fn mjd_quatIntegrate(
5392 vel: *const [mjtNum; 3usize],
5393 scale: mjtNum,
5394 Dquat: *mut [mjtNum; 9usize],
5395 Dvel: *mut [mjtNum; 9usize],
5396 Dscale: *mut [mjtNum; 3usize],
5397 );
5398}
5399unsafe extern "C" {
5400 pub fn mjp_defaultPlugin(plugin: *mut mjpPlugin);
5401}
5402unsafe extern "C" {
5403 pub fn mjp_registerPlugin(plugin: *const mjpPlugin) -> ::std::os::raw::c_int;
5404}
5405unsafe extern "C" {
5406 pub fn mjp_pluginCount() -> ::std::os::raw::c_int;
5407}
5408unsafe extern "C" {
5409 pub fn mjp_getPlugin(
5410 name: *const ::std::os::raw::c_char,
5411 slot: *mut ::std::os::raw::c_int,
5412 ) -> *const mjpPlugin;
5413}
5414unsafe extern "C" {
5415 pub fn mjp_getPluginAtSlot(slot: ::std::os::raw::c_int) -> *const mjpPlugin;
5416}
5417unsafe extern "C" {
5418 pub fn mjp_defaultResourceProvider(provider: *mut mjpResourceProvider);
5419}
5420unsafe extern "C" {
5421 pub fn mjp_registerResourceProvider(
5422 provider: *const mjpResourceProvider,
5423 ) -> ::std::os::raw::c_int;
5424}
5425unsafe extern "C" {
5426 pub fn mjp_resourceProviderCount() -> ::std::os::raw::c_int;
5427}
5428unsafe extern "C" {
5429 pub fn mjp_getResourceProvider(
5430 resource_name: *const ::std::os::raw::c_char,
5431 ) -> *const mjpResourceProvider;
5432}
5433unsafe extern "C" {
5434 pub fn mjp_getResourceProviderAtSlot(slot: ::std::os::raw::c_int)
5435 -> *const mjpResourceProvider;
5436}
5437unsafe extern "C" {
5438 pub fn mjp_registerDecoder(decoder: *const mjpDecoder);
5439}
5440unsafe extern "C" {
5441 pub fn mjp_defaultDecoder(decoder: *mut mjpDecoder);
5442}
5443unsafe extern "C" {
5444 pub fn mjp_findDecoder(
5445 resource: *const mjResource,
5446 content_type: *const ::std::os::raw::c_char,
5447 ) -> *const mjpDecoder;
5448}
5449unsafe extern "C" {
5450 pub fn mjp_registerEncoder(encoder: *const mjpEncoder);
5451}
5452unsafe extern "C" {
5453 pub fn mjp_defaultEncoder(encoder: *mut mjpEncoder);
5454}
5455unsafe extern "C" {
5456 pub fn mjp_findEncoder(
5457 filename: *const ::std::os::raw::c_char,
5458 content_type: *const ::std::os::raw::c_char,
5459 ) -> *const mjpEncoder;
5460}
5461unsafe extern "C" {
5462 pub fn mju_openResource(
5463 dir: *const ::std::os::raw::c_char,
5464 name: *const ::std::os::raw::c_char,
5465 vfs: *const mjVFS,
5466 error: *mut ::std::os::raw::c_char,
5467 nerror: usize,
5468 ) -> *mut mjResource;
5469}
5470unsafe extern "C" {
5471 pub fn mju_closeResource(resource: *mut mjResource);
5472}
5473unsafe extern "C" {
5474 pub fn mju_readResource(
5475 resource: *mut mjResource,
5476 buffer: *mut *const ::std::os::raw::c_void,
5477 ) -> ::std::os::raw::c_int;
5478}
5479unsafe extern "C" {
5480 pub fn mju_getResourceDir(
5481 resource: *mut mjResource,
5482 dir: *mut *const ::std::os::raw::c_char,
5483 ndir: *mut ::std::os::raw::c_int,
5484 );
5485}
5486unsafe extern "C" {
5487 pub fn mju_isModifiedResource(
5488 resource: *const mjResource,
5489 timestamp: *const ::std::os::raw::c_char,
5490 ) -> ::std::os::raw::c_int;
5491}
5492unsafe extern "C" {
5493 pub fn mju_decodeResource(
5494 resource: *mut mjResource,
5495 content_type: *const ::std::os::raw::c_char,
5496 vfs: *const mjVFS,
5497 ) -> *mut mjSpec;
5498}
5499unsafe extern "C" {
5500 pub fn mju_threadPoolCreate(number_of_threads: usize) -> *mut mjThreadPool;
5501}
5502unsafe extern "C" {
5503 pub fn mju_bindThreadPool(d: *mut mjData, thread_pool: *mut ::std::os::raw::c_void);
5504}
5505unsafe extern "C" {
5506 pub fn mju_threadPoolEnqueue(thread_pool: *mut mjThreadPool, task: *mut mjTask);
5507}
5508unsafe extern "C" {
5509 pub fn mju_threadPoolDestroy(thread_pool: *mut mjThreadPool);
5510}
5511unsafe extern "C" {
5512 pub fn mju_defaultTask(task: *mut mjTask);
5513}
5514unsafe extern "C" {
5515 pub fn mju_taskJoin(task: *mut mjTask);
5516}
5517unsafe extern "C" {
5518 pub fn mjs_attach(
5519 parent: *mut mjsElement,
5520 child: *const mjsElement,
5521 prefix: *const ::std::os::raw::c_char,
5522 suffix: *const ::std::os::raw::c_char,
5523 ) -> *mut mjsElement;
5524}
5525unsafe extern "C" {
5526 pub fn mjs_addBody(body: *mut mjsBody, def: *const mjsDefault) -> *mut mjsBody;
5527}
5528unsafe extern "C" {
5529 pub fn mjs_addSite(body: *mut mjsBody, def: *const mjsDefault) -> *mut mjsSite;
5530}
5531unsafe extern "C" {
5532 pub fn mjs_addJoint(body: *mut mjsBody, def: *const mjsDefault) -> *mut mjsJoint;
5533}
5534unsafe extern "C" {
5535 pub fn mjs_addFreeJoint(body: *mut mjsBody) -> *mut mjsJoint;
5536}
5537unsafe extern "C" {
5538 pub fn mjs_addGeom(body: *mut mjsBody, def: *const mjsDefault) -> *mut mjsGeom;
5539}
5540unsafe extern "C" {
5541 pub fn mjs_addCamera(body: *mut mjsBody, def: *const mjsDefault) -> *mut mjsCamera;
5542}
5543unsafe extern "C" {
5544 pub fn mjs_addLight(body: *mut mjsBody, def: *const mjsDefault) -> *mut mjsLight;
5545}
5546unsafe extern "C" {
5547 pub fn mjs_addFrame(body: *mut mjsBody, parentframe: *mut mjsFrame) -> *mut mjsFrame;
5548}
5549unsafe extern "C" {
5550 pub fn mjs_delete(spec: *mut mjSpec, element: *mut mjsElement) -> ::std::os::raw::c_int;
5551}
5552unsafe extern "C" {
5553 pub fn mjs_addActuator(s: *mut mjSpec, def: *const mjsDefault) -> *mut mjsActuator;
5554}
5555unsafe extern "C" {
5556 pub fn mjs_addSensor(s: *mut mjSpec) -> *mut mjsSensor;
5557}
5558unsafe extern "C" {
5559 pub fn mjs_addFlex(s: *mut mjSpec) -> *mut mjsFlex;
5560}
5561unsafe extern "C" {
5562 pub fn mjs_addPair(s: *mut mjSpec, def: *const mjsDefault) -> *mut mjsPair;
5563}
5564unsafe extern "C" {
5565 pub fn mjs_addExclude(s: *mut mjSpec) -> *mut mjsExclude;
5566}
5567unsafe extern "C" {
5568 pub fn mjs_addEquality(s: *mut mjSpec, def: *const mjsDefault) -> *mut mjsEquality;
5569}
5570unsafe extern "C" {
5571 pub fn mjs_addTendon(s: *mut mjSpec, def: *const mjsDefault) -> *mut mjsTendon;
5572}
5573unsafe extern "C" {
5574 pub fn mjs_wrapSite(
5575 tendon: *mut mjsTendon,
5576 name: *const ::std::os::raw::c_char,
5577 ) -> *mut mjsWrap;
5578}
5579unsafe extern "C" {
5580 pub fn mjs_wrapGeom(
5581 tendon: *mut mjsTendon,
5582 name: *const ::std::os::raw::c_char,
5583 sidesite: *const ::std::os::raw::c_char,
5584 ) -> *mut mjsWrap;
5585}
5586unsafe extern "C" {
5587 pub fn mjs_wrapJoint(
5588 tendon: *mut mjsTendon,
5589 name: *const ::std::os::raw::c_char,
5590 coef: f64,
5591 ) -> *mut mjsWrap;
5592}
5593unsafe extern "C" {
5594 pub fn mjs_wrapPulley(tendon: *mut mjsTendon, divisor: f64) -> *mut mjsWrap;
5595}
5596unsafe extern "C" {
5597 pub fn mjs_addNumeric(s: *mut mjSpec) -> *mut mjsNumeric;
5598}
5599unsafe extern "C" {
5600 pub fn mjs_addText(s: *mut mjSpec) -> *mut mjsText;
5601}
5602unsafe extern "C" {
5603 pub fn mjs_addTuple(s: *mut mjSpec) -> *mut mjsTuple;
5604}
5605unsafe extern "C" {
5606 pub fn mjs_addKey(s: *mut mjSpec) -> *mut mjsKey;
5607}
5608unsafe extern "C" {
5609 pub fn mjs_addPlugin(s: *mut mjSpec) -> *mut mjsPlugin;
5610}
5611unsafe extern "C" {
5612 pub fn mjs_addDefault(
5613 s: *mut mjSpec,
5614 classname: *const ::std::os::raw::c_char,
5615 parent: *const mjsDefault,
5616 ) -> *mut mjsDefault;
5617}
5618unsafe extern "C" {
5619 pub fn mjs_setToMotor(actuator: *mut mjsActuator) -> *const ::std::os::raw::c_char;
5620}
5621unsafe extern "C" {
5622 pub fn mjs_setToPosition(
5623 actuator: *mut mjsActuator,
5624 kp: f64,
5625 kv: *mut f64,
5626 dampratio: *mut f64,
5627 timeconst: *mut f64,
5628 inheritrange: f64,
5629 ) -> *const ::std::os::raw::c_char;
5630}
5631unsafe extern "C" {
5632 pub fn mjs_setToIntVelocity(
5633 actuator: *mut mjsActuator,
5634 kp: f64,
5635 kv: *mut f64,
5636 dampratio: *mut f64,
5637 timeconst: *mut f64,
5638 inheritrange: f64,
5639 ) -> *const ::std::os::raw::c_char;
5640}
5641unsafe extern "C" {
5642 pub fn mjs_setToVelocity(actuator: *mut mjsActuator, kv: f64) -> *const ::std::os::raw::c_char;
5643}
5644unsafe extern "C" {
5645 pub fn mjs_setToDamper(actuator: *mut mjsActuator, kv: f64) -> *const ::std::os::raw::c_char;
5646}
5647unsafe extern "C" {
5648 pub fn mjs_setToCylinder(
5649 actuator: *mut mjsActuator,
5650 timeconst: f64,
5651 bias: f64,
5652 area: f64,
5653 diameter: f64,
5654 ) -> *const ::std::os::raw::c_char;
5655}
5656unsafe extern "C" {
5657 pub fn mjs_setToMuscle(
5658 actuator: *mut mjsActuator,
5659 timeconst: *mut [f64; 2usize],
5660 tausmooth: f64,
5661 range: *mut [f64; 2usize],
5662 force: f64,
5663 scale: f64,
5664 lmin: f64,
5665 lmax: f64,
5666 vmax: f64,
5667 fpmax: f64,
5668 fvmax: f64,
5669 ) -> *const ::std::os::raw::c_char;
5670}
5671unsafe extern "C" {
5672 pub fn mjs_setToAdhesion(
5673 actuator: *mut mjsActuator,
5674 gain: f64,
5675 ) -> *const ::std::os::raw::c_char;
5676}
5677unsafe extern "C" {
5678 pub fn mjs_setToDCMotor(
5679 actuator: *mut mjsActuator,
5680 motorconst: *mut [f64; 2usize],
5681 resistance: f64,
5682 nominal: *mut [f64; 3usize],
5683 saturation: *mut [f64; 3usize],
5684 inductance: *mut [f64; 2usize],
5685 cogging: *mut [f64; 3usize],
5686 controller: *mut [f64; 6usize],
5687 thermal: *mut [f64; 6usize],
5688 lugre: *mut [f64; 5usize],
5689 input_mode: ::std::os::raw::c_int,
5690 ) -> *const ::std::os::raw::c_char;
5691}
5692unsafe extern "C" {
5693 pub fn mjs_addMesh(s: *mut mjSpec, def: *const mjsDefault) -> *mut mjsMesh;
5694}
5695unsafe extern "C" {
5696 pub fn mjs_addHField(s: *mut mjSpec) -> *mut mjsHField;
5697}
5698unsafe extern "C" {
5699 pub fn mjs_addSkin(s: *mut mjSpec) -> *mut mjsSkin;
5700}
5701unsafe extern "C" {
5702 pub fn mjs_addTexture(s: *mut mjSpec) -> *mut mjsTexture;
5703}
5704unsafe extern "C" {
5705 pub fn mjs_addMaterial(s: *mut mjSpec, def: *const mjsDefault) -> *mut mjsMaterial;
5706}
5707unsafe extern "C" {
5708 pub fn mjs_makeMesh(
5709 mesh: *mut mjsMesh,
5710 builtin: mjtMeshBuiltin,
5711 params: *mut f64,
5712 nparams: ::std::os::raw::c_int,
5713 ) -> ::std::os::raw::c_int;
5714}
5715unsafe extern "C" {
5716 pub fn mjs_getSpec(element: *const mjsElement) -> *mut mjSpec;
5717}
5718unsafe extern "C" {
5719 pub fn mjs_getOriginSpec(element: *const mjsElement) -> *mut mjSpec;
5720}
5721unsafe extern "C" {
5722 pub fn mjs_getCompiler(element: *const mjsElement) -> *mut mjsCompiler;
5723}
5724unsafe extern "C" {
5725 pub fn mjs_findSpec(spec: *const mjSpec, name: *const ::std::os::raw::c_char) -> *mut mjSpec;
5726}
5727unsafe extern "C" {
5728 pub fn mjs_findBody(s: *const mjSpec, name: *const ::std::os::raw::c_char) -> *mut mjsBody;
5729}
5730unsafe extern "C" {
5731 pub fn mjs_findElement(
5732 s: *const mjSpec,
5733 type_: mjtObj,
5734 name: *const ::std::os::raw::c_char,
5735 ) -> *mut mjsElement;
5736}
5737unsafe extern "C" {
5738 pub fn mjs_findChild(body: *const mjsBody, name: *const ::std::os::raw::c_char)
5739 -> *mut mjsBody;
5740}
5741unsafe extern "C" {
5742 pub fn mjs_getParent(element: *const mjsElement) -> *mut mjsBody;
5743}
5744unsafe extern "C" {
5745 pub fn mjs_getFrame(element: *const mjsElement) -> *mut mjsFrame;
5746}
5747unsafe extern "C" {
5748 pub fn mjs_findFrame(s: *const mjSpec, name: *const ::std::os::raw::c_char) -> *mut mjsFrame;
5749}
5750unsafe extern "C" {
5751 pub fn mjs_getDefault(element: *const mjsElement) -> *mut mjsDefault;
5752}
5753unsafe extern "C" {
5754 pub fn mjs_findDefault(
5755 s: *const mjSpec,
5756 classname: *const ::std::os::raw::c_char,
5757 ) -> *mut mjsDefault;
5758}
5759unsafe extern "C" {
5760 pub fn mjs_getSpecDefault(s: *const mjSpec) -> *mut mjsDefault;
5761}
5762unsafe extern "C" {
5763 pub fn mjs_getId(element: *const mjsElement) -> ::std::os::raw::c_int;
5764}
5765unsafe extern "C" {
5766 pub fn mjs_firstChild(
5767 body: *const mjsBody,
5768 type_: mjtObj,
5769 recurse: ::std::os::raw::c_int,
5770 ) -> *mut mjsElement;
5771}
5772unsafe extern "C" {
5773 pub fn mjs_nextChild(
5774 body: *const mjsBody,
5775 child: *const mjsElement,
5776 recurse: ::std::os::raw::c_int,
5777 ) -> *mut mjsElement;
5778}
5779unsafe extern "C" {
5780 pub fn mjs_firstElement(s: *const mjSpec, type_: mjtObj) -> *mut mjsElement;
5781}
5782unsafe extern "C" {
5783 pub fn mjs_nextElement(s: *const mjSpec, element: *const mjsElement) -> *mut mjsElement;
5784}
5785unsafe extern "C" {
5786 pub fn mjs_getWrapTarget(wrap: *const mjsWrap) -> *mut mjsElement;
5787}
5788unsafe extern "C" {
5789 pub fn mjs_getWrapSideSite(wrap: *const mjsWrap) -> *mut mjsSite;
5790}
5791unsafe extern "C" {
5792 pub fn mjs_getWrapDivisor(wrap: *const mjsWrap) -> f64;
5793}
5794unsafe extern "C" {
5795 pub fn mjs_getWrapCoef(wrap: *const mjsWrap) -> f64;
5796}
5797unsafe extern "C" {
5798 pub fn mjs_setName(
5799 element: *mut mjsElement,
5800 name: *const ::std::os::raw::c_char,
5801 ) -> ::std::os::raw::c_int;
5802}
5803unsafe extern "C" {
5804 pub fn mjs_setBuffer(
5805 dest: *mut mjByteVec,
5806 array: *const ::std::os::raw::c_void,
5807 size: ::std::os::raw::c_int,
5808 );
5809}
5810unsafe extern "C" {
5811 pub fn mjs_setString(dest: *mut mjString, text: *const ::std::os::raw::c_char);
5812}
5813unsafe extern "C" {
5814 pub fn mjs_setStringVec(dest: *mut mjStringVec, text: *const ::std::os::raw::c_char);
5815}
5816unsafe extern "C" {
5817 pub fn mjs_setInStringVec(
5818 dest: *mut mjStringVec,
5819 i: ::std::os::raw::c_int,
5820 text: *const ::std::os::raw::c_char,
5821 ) -> mjtBool;
5822}
5823unsafe extern "C" {
5824 pub fn mjs_appendString(dest: *mut mjStringVec, text: *const ::std::os::raw::c_char);
5825}
5826unsafe extern "C" {
5827 pub fn mjs_setInt(
5828 dest: *mut mjIntVec,
5829 array: *const ::std::os::raw::c_int,
5830 size: ::std::os::raw::c_int,
5831 );
5832}
5833unsafe extern "C" {
5834 pub fn mjs_appendIntVec(
5835 dest: *mut mjIntVecVec,
5836 array: *const ::std::os::raw::c_int,
5837 size: ::std::os::raw::c_int,
5838 );
5839}
5840unsafe extern "C" {
5841 pub fn mjs_setFloat(dest: *mut mjFloatVec, array: *const f32, size: ::std::os::raw::c_int);
5842}
5843unsafe extern "C" {
5844 pub fn mjs_appendFloatVec(
5845 dest: *mut mjFloatVecVec,
5846 array: *const f32,
5847 size: ::std::os::raw::c_int,
5848 );
5849}
5850unsafe extern "C" {
5851 pub fn mjs_setDouble(dest: *mut mjDoubleVec, array: *const f64, size: ::std::os::raw::c_int);
5852}
5853unsafe extern "C" {
5854 pub fn mjs_setPluginAttributes(plugin: *mut mjsPlugin, attributes: *mut ::std::os::raw::c_void);
5855}
5856unsafe extern "C" {
5857 pub fn mjs_getName(element: *mut mjsElement) -> *mut mjString;
5858}
5859unsafe extern "C" {
5860 pub fn mjs_getString(source: *const mjString) -> *const ::std::os::raw::c_char;
5861}
5862unsafe extern "C" {
5863 pub fn mjs_getDouble(
5864 source: *const mjDoubleVec,
5865 size: *mut ::std::os::raw::c_int,
5866 ) -> *const f64;
5867}
5868unsafe extern "C" {
5869 pub fn mjs_getWrapNum(tendonspec: *const mjsTendon) -> ::std::os::raw::c_int;
5870}
5871unsafe extern "C" {
5872 pub fn mjs_getWrap(tendonspec: *const mjsTendon, i: ::std::os::raw::c_int) -> *mut mjsWrap;
5873}
5874unsafe extern "C" {
5875 pub fn mjs_getPluginAttributes(plugin: *const mjsPlugin) -> *const ::std::os::raw::c_void;
5876}
5877unsafe extern "C" {
5878 pub fn mjs_setDefault(element: *mut mjsElement, def: *const mjsDefault);
5879}
5880unsafe extern "C" {
5881 pub fn mjs_setFrame(dest: *mut mjsElement, frame: *mut mjsFrame) -> ::std::os::raw::c_int;
5882}
5883unsafe extern "C" {
5884 pub fn mjs_resolveOrientation(
5885 quat: *mut [f64; 4usize],
5886 degree: mjtByte,
5887 sequence: *const ::std::os::raw::c_char,
5888 orientation: *const mjsOrientation,
5889 ) -> *const ::std::os::raw::c_char;
5890}
5891unsafe extern "C" {
5892 pub fn mjs_bodyToFrame(body: *mut *mut mjsBody) -> *mut mjsFrame;
5893}
5894unsafe extern "C" {
5895 pub fn mjs_setUserValue(
5896 element: *mut mjsElement,
5897 key: *const ::std::os::raw::c_char,
5898 data: *const ::std::os::raw::c_void,
5899 );
5900}
5901unsafe extern "C" {
5902 pub fn mjs_setUserValueWithCleanup(
5903 element: *mut mjsElement,
5904 key: *const ::std::os::raw::c_char,
5905 data: *const ::std::os::raw::c_void,
5906 cleanup: ::std::option::Option<unsafe extern "C" fn(arg1: *const ::std::os::raw::c_void)>,
5907 );
5908}
5909unsafe extern "C" {
5910 pub fn mjs_getUserValue(
5911 element: *mut mjsElement,
5912 key: *const ::std::os::raw::c_char,
5913 ) -> *const ::std::os::raw::c_void;
5914}
5915unsafe extern "C" {
5916 pub fn mjs_deleteUserValue(element: *mut mjsElement, key: *const ::std::os::raw::c_char);
5917}
5918unsafe extern "C" {
5919 pub fn mjs_sensorDim(sensor: *const mjsSensor) -> ::std::os::raw::c_int;
5920}
5921unsafe extern "C" {
5922 pub fn mjs_defaultSpec(spec: *mut mjSpec);
5923}
5924unsafe extern "C" {
5925 pub fn mjs_defaultOrientation(orient: *mut mjsOrientation);
5926}
5927unsafe extern "C" {
5928 pub fn mjs_defaultBody(body: *mut mjsBody);
5929}
5930unsafe extern "C" {
5931 pub fn mjs_defaultFrame(frame: *mut mjsFrame);
5932}
5933unsafe extern "C" {
5934 pub fn mjs_defaultJoint(joint: *mut mjsJoint);
5935}
5936unsafe extern "C" {
5937 pub fn mjs_defaultGeom(geom: *mut mjsGeom);
5938}
5939unsafe extern "C" {
5940 pub fn mjs_defaultSite(site: *mut mjsSite);
5941}
5942unsafe extern "C" {
5943 pub fn mjs_defaultCamera(camera: *mut mjsCamera);
5944}
5945unsafe extern "C" {
5946 pub fn mjs_defaultLight(light: *mut mjsLight);
5947}
5948unsafe extern "C" {
5949 pub fn mjs_defaultFlex(flex: *mut mjsFlex);
5950}
5951unsafe extern "C" {
5952 pub fn mjs_defaultMesh(mesh: *mut mjsMesh);
5953}
5954unsafe extern "C" {
5955 pub fn mjs_defaultHField(hfield: *mut mjsHField);
5956}
5957unsafe extern "C" {
5958 pub fn mjs_defaultSkin(skin: *mut mjsSkin);
5959}
5960unsafe extern "C" {
5961 pub fn mjs_defaultTexture(texture: *mut mjsTexture);
5962}
5963unsafe extern "C" {
5964 pub fn mjs_defaultMaterial(material: *mut mjsMaterial);
5965}
5966unsafe extern "C" {
5967 pub fn mjs_defaultPair(pair: *mut mjsPair);
5968}
5969unsafe extern "C" {
5970 pub fn mjs_defaultEquality(equality: *mut mjsEquality);
5971}
5972unsafe extern "C" {
5973 pub fn mjs_defaultTendon(tendon: *mut mjsTendon);
5974}
5975unsafe extern "C" {
5976 pub fn mjs_defaultActuator(actuator: *mut mjsActuator);
5977}
5978unsafe extern "C" {
5979 pub fn mjs_defaultSensor(sensor: *mut mjsSensor);
5980}
5981unsafe extern "C" {
5982 pub fn mjs_defaultNumeric(numeric: *mut mjsNumeric);
5983}
5984unsafe extern "C" {
5985 pub fn mjs_defaultText(text: *mut mjsText);
5986}
5987unsafe extern "C" {
5988 pub fn mjs_defaultTuple(tuple: *mut mjsTuple);
5989}
5990unsafe extern "C" {
5991 pub fn mjs_defaultKey(key: *mut mjsKey);
5992}
5993unsafe extern "C" {
5994 pub fn mjs_defaultPlugin(plugin: *mut mjsPlugin);
5995}
5996unsafe extern "C" {
5997 pub fn mjs_asBody(element: *mut mjsElement) -> *mut mjsBody;
5998}
5999unsafe extern "C" {
6000 pub fn mjs_asGeom(element: *mut mjsElement) -> *mut mjsGeom;
6001}
6002unsafe extern "C" {
6003 pub fn mjs_asJoint(element: *mut mjsElement) -> *mut mjsJoint;
6004}
6005unsafe extern "C" {
6006 pub fn mjs_asSite(element: *mut mjsElement) -> *mut mjsSite;
6007}
6008unsafe extern "C" {
6009 pub fn mjs_asCamera(element: *mut mjsElement) -> *mut mjsCamera;
6010}
6011unsafe extern "C" {
6012 pub fn mjs_asLight(element: *mut mjsElement) -> *mut mjsLight;
6013}
6014unsafe extern "C" {
6015 pub fn mjs_asFrame(element: *mut mjsElement) -> *mut mjsFrame;
6016}
6017unsafe extern "C" {
6018 pub fn mjs_asActuator(element: *mut mjsElement) -> *mut mjsActuator;
6019}
6020unsafe extern "C" {
6021 pub fn mjs_asSensor(element: *mut mjsElement) -> *mut mjsSensor;
6022}
6023unsafe extern "C" {
6024 pub fn mjs_asFlex(element: *mut mjsElement) -> *mut mjsFlex;
6025}
6026unsafe extern "C" {
6027 pub fn mjs_asPair(element: *mut mjsElement) -> *mut mjsPair;
6028}
6029unsafe extern "C" {
6030 pub fn mjs_asEquality(element: *mut mjsElement) -> *mut mjsEquality;
6031}
6032unsafe extern "C" {
6033 pub fn mjs_asExclude(element: *mut mjsElement) -> *mut mjsExclude;
6034}
6035unsafe extern "C" {
6036 pub fn mjs_asTendon(element: *mut mjsElement) -> *mut mjsTendon;
6037}
6038unsafe extern "C" {
6039 pub fn mjs_asNumeric(element: *mut mjsElement) -> *mut mjsNumeric;
6040}
6041unsafe extern "C" {
6042 pub fn mjs_asText(element: *mut mjsElement) -> *mut mjsText;
6043}
6044unsafe extern "C" {
6045 pub fn mjs_asTuple(element: *mut mjsElement) -> *mut mjsTuple;
6046}
6047unsafe extern "C" {
6048 pub fn mjs_asKey(element: *mut mjsElement) -> *mut mjsKey;
6049}
6050unsafe extern "C" {
6051 pub fn mjs_asMesh(element: *mut mjsElement) -> *mut mjsMesh;
6052}
6053unsafe extern "C" {
6054 pub fn mjs_asHField(element: *mut mjsElement) -> *mut mjsHField;
6055}
6056unsafe extern "C" {
6057 pub fn mjs_asSkin(element: *mut mjsElement) -> *mut mjsSkin;
6058}
6059unsafe extern "C" {
6060 pub fn mjs_asTexture(element: *mut mjsElement) -> *mut mjsTexture;
6061}
6062unsafe extern "C" {
6063 pub fn mjs_asMaterial(element: *mut mjsElement) -> *mut mjsMaterial;
6064}
6065unsafe extern "C" {
6066 pub fn mjs_asPlugin(element: *mut mjsElement) -> *mut mjsPlugin;
6067}