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