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