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