mujoco_sys/opt/rustwide/workdir/generated/
no_render.rs

1/* automatically generated by rust-bindgen 0.54.1 */
2
3pub const mjVERSION_HEADER: u32 = 200;
4pub const mjMINVAL: f64 = 0.000000000000001;
5pub const mjPI: f64 = 3.141592653589793;
6pub const mjMAXVAL: f64 = 10000000000.0;
7pub const mjMINMU: f64 = 0.00001;
8pub const mjMINIMP: f64 = 0.0001;
9pub const mjMAXIMP: f64 = 0.9999;
10pub const mjMAXCONPAIR: u32 = 50;
11pub const mjMAXVFS: u32 = 200;
12pub const mjMAXVFSNAME: u32 = 100;
13pub const mjNEQDATA: u32 = 7;
14pub const mjNDYN: u32 = 10;
15pub const mjNGAIN: u32 = 10;
16pub const mjNBIAS: u32 = 10;
17pub const mjNREF: u32 = 2;
18pub const mjNIMP: u32 = 5;
19pub const mjNSOLVER: u32 = 1000;
20pub const mjNGROUP: u32 = 6;
21pub const mjMAXOVERLAY: u32 = 500;
22pub const mjMAXLINE: u32 = 100;
23pub const mjMAXLINEPNT: u32 = 1000;
24pub const mjMAXPLANEGRID: u32 = 200;
25pub const mjNAUX: u32 = 10;
26pub const mjMAXTEXTURE: u32 = 1000;
27pub const mjMAXUISECT: u32 = 10;
28pub const mjMAXUIITEM: u32 = 80;
29pub const mjMAXUITEXT: u32 = 500;
30pub const mjMAXUINAME: u32 = 40;
31pub const mjMAXUIMULTI: u32 = 20;
32pub const mjMAXUIEDIT: u32 = 5;
33pub const mjMAXUIRECT: u32 = 15;
34pub const mjKEY_ESCAPE: u32 = 256;
35pub const mjKEY_ENTER: u32 = 257;
36pub const mjKEY_TAB: u32 = 258;
37pub const mjKEY_BACKSPACE: u32 = 259;
38pub const mjKEY_INSERT: u32 = 260;
39pub const mjKEY_DELETE: u32 = 261;
40pub const mjKEY_RIGHT: u32 = 262;
41pub const mjKEY_LEFT: u32 = 263;
42pub const mjKEY_DOWN: u32 = 264;
43pub const mjKEY_UP: u32 = 265;
44pub const mjKEY_PAGE_UP: u32 = 266;
45pub const mjKEY_PAGE_DOWN: u32 = 267;
46pub const mjKEY_HOME: u32 = 268;
47pub const mjKEY_END: u32 = 269;
48pub const mjKEY_F1: u32 = 290;
49pub const mjKEY_F2: u32 = 291;
50pub const mjKEY_F3: u32 = 292;
51pub const mjKEY_F4: u32 = 293;
52pub const mjKEY_F5: u32 = 294;
53pub const mjKEY_F6: u32 = 295;
54pub const mjKEY_F7: u32 = 296;
55pub const mjKEY_F8: u32 = 297;
56pub const mjKEY_F9: u32 = 298;
57pub const mjKEY_F10: u32 = 299;
58pub const mjKEY_F11: u32 = 300;
59pub const mjKEY_F12: u32 = 301;
60pub type mjtNum = f64;
61pub type mjtByte = ::std::os::raw::c_uchar;
62impl _mjtDisableBit {
63    pub const CONSTRAINT: _mjtDisableBit = _mjtDisableBit(1);
64}
65impl _mjtDisableBit {
66    pub const EQUALITY: _mjtDisableBit = _mjtDisableBit(2);
67}
68impl _mjtDisableBit {
69    pub const FRICTIONLOSS: _mjtDisableBit = _mjtDisableBit(4);
70}
71impl _mjtDisableBit {
72    pub const LIMIT: _mjtDisableBit = _mjtDisableBit(8);
73}
74impl _mjtDisableBit {
75    pub const CONTACT: _mjtDisableBit = _mjtDisableBit(16);
76}
77impl _mjtDisableBit {
78    pub const PASSIVE: _mjtDisableBit = _mjtDisableBit(32);
79}
80impl _mjtDisableBit {
81    pub const GRAVITY: _mjtDisableBit = _mjtDisableBit(64);
82}
83impl _mjtDisableBit {
84    pub const CLAMPCTRL: _mjtDisableBit = _mjtDisableBit(128);
85}
86impl _mjtDisableBit {
87    pub const WARMSTART: _mjtDisableBit = _mjtDisableBit(256);
88}
89impl _mjtDisableBit {
90    pub const FILTERPARENT: _mjtDisableBit = _mjtDisableBit(512);
91}
92impl _mjtDisableBit {
93    pub const ACTUATION: _mjtDisableBit = _mjtDisableBit(1024);
94}
95impl _mjtDisableBit {
96    pub const REFSAFE: _mjtDisableBit = _mjtDisableBit(2048);
97}
98impl _mjtDisableBit {
99    pub const mjNDISABLE: _mjtDisableBit = _mjtDisableBit(12);
100}
101impl ::std::ops::BitOr<_mjtDisableBit> for _mjtDisableBit {
102    type Output = Self;
103
104    #[inline]
105    fn bitor(self, other: Self) -> Self {
106        _mjtDisableBit(self.0 | other.0)
107    }
108}
109impl ::std::ops::BitOrAssign for _mjtDisableBit {
110    #[inline]
111    fn bitor_assign(&mut self, rhs: _mjtDisableBit) {
112        self.0 |= rhs.0;
113    }
114}
115impl ::std::ops::BitAnd<_mjtDisableBit> for _mjtDisableBit {
116    type Output = Self;
117
118    #[inline]
119    fn bitand(self, other: Self) -> Self {
120        _mjtDisableBit(self.0 & other.0)
121    }
122}
123impl ::std::ops::BitAndAssign for _mjtDisableBit {
124    #[inline]
125    fn bitand_assign(&mut self, rhs: _mjtDisableBit) {
126        self.0 &= rhs.0;
127    }
128}
129#[repr(transparent)]
130#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
131pub struct _mjtDisableBit(pub u32);
132pub use self::_mjtDisableBit as mjtDisableBit;
133impl _mjtEnableBit {
134    pub const OVERRIDE: _mjtEnableBit = _mjtEnableBit(1);
135}
136impl _mjtEnableBit {
137    pub const ENERGY: _mjtEnableBit = _mjtEnableBit(2);
138}
139impl _mjtEnableBit {
140    pub const FWDINV: _mjtEnableBit = _mjtEnableBit(4);
141}
142impl _mjtEnableBit {
143    pub const SENSORNOISE: _mjtEnableBit = _mjtEnableBit(8);
144}
145impl _mjtEnableBit {
146    pub const mjNENABLE: _mjtEnableBit = _mjtEnableBit(4);
147}
148impl ::std::ops::BitOr<_mjtEnableBit> for _mjtEnableBit {
149    type Output = Self;
150
151    #[inline]
152    fn bitor(self, other: Self) -> Self {
153        _mjtEnableBit(self.0 | other.0)
154    }
155}
156impl ::std::ops::BitOrAssign for _mjtEnableBit {
157    #[inline]
158    fn bitor_assign(&mut self, rhs: _mjtEnableBit) {
159        self.0 |= rhs.0;
160    }
161}
162impl ::std::ops::BitAnd<_mjtEnableBit> for _mjtEnableBit {
163    type Output = Self;
164
165    #[inline]
166    fn bitand(self, other: Self) -> Self {
167        _mjtEnableBit(self.0 & other.0)
168    }
169}
170impl ::std::ops::BitAndAssign for _mjtEnableBit {
171    #[inline]
172    fn bitand_assign(&mut self, rhs: _mjtEnableBit) {
173        self.0 &= rhs.0;
174    }
175}
176#[repr(transparent)]
177#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
178pub struct _mjtEnableBit(pub u32);
179pub use self::_mjtEnableBit as mjtEnableBit;
180#[repr(u32)]
181#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
182pub enum _mjtJoint {
183    FREE = 0,
184    BALL = 1,
185    SLIDE = 2,
186    HINGE = 3,
187}
188pub use self::_mjtJoint as mjtJoint;
189#[repr(u32)]
190#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
191pub enum _mjtGeom {
192    PLANE = 0,
193    HFIELD = 1,
194    SPHERE = 2,
195    CAPSULE = 3,
196    ELLIPSOID = 4,
197    CYLINDER = 5,
198    BOX = 6,
199    MESH = 7,
200    mjNGEOMTYPES = 8,
201    ARROW = 100,
202    ARROW1 = 101,
203    ARROW2 = 102,
204    LINE = 103,
205    SKIN = 104,
206    LABEL = 105,
207    NONE = 1001,
208}
209pub use self::_mjtGeom as mjtGeom;
210#[repr(u32)]
211#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
212pub enum _mjtCamLight {
213    FIXED = 0,
214    TRACK = 1,
215    TRACKCOM = 2,
216    TARGETBODY = 3,
217    TARGETBODYCOM = 4,
218}
219pub use self::_mjtCamLight as mjtCamLight;
220#[repr(u32)]
221#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
222pub enum _mjtTexture {
223    TWO_D = 0,
224    CUBE = 1,
225    SKYBOX = 2,
226}
227pub use self::_mjtTexture as mjtTexture;
228#[repr(u32)]
229#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
230pub enum _mjtIntegrator {
231    EULER = 0,
232    RK4 = 1,
233}
234pub use self::_mjtIntegrator as mjtIntegrator;
235#[repr(u32)]
236#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
237pub enum _mjtCollision {
238    ALL = 0,
239    PAIR = 1,
240    DYNAMIC = 2,
241}
242pub use self::_mjtCollision as mjtCollision;
243#[repr(u32)]
244#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
245pub enum _mjtCone {
246    PYRAMIDAL = 0,
247    ELLIPTIC = 1,
248}
249pub use self::_mjtCone as mjtCone;
250#[repr(u32)]
251#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
252pub enum _mjtJacobian {
253    DENSE = 0,
254    SPARSE = 1,
255    AUTO = 2,
256}
257pub use self::_mjtJacobian as mjtJacobian;
258#[repr(u32)]
259#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
260pub enum _mjtSolver {
261    PGS = 0,
262    CG = 1,
263    NEWTON = 2,
264}
265pub use self::_mjtSolver as mjtSolver;
266#[repr(u32)]
267#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
268pub enum _mjtEq {
269    CONNECT = 0,
270    WELD = 1,
271    JOINT = 2,
272    TENDON = 3,
273    DISTANCE = 4,
274}
275pub use self::_mjtEq as mjtEq;
276#[repr(u32)]
277#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
278pub enum _mjtWrap {
279    NONE = 0,
280    JOINT = 1,
281    PULLEY = 2,
282    SITE = 3,
283    SPHERE = 4,
284    CYLINDER = 5,
285}
286pub use self::_mjtWrap as mjtWrap;
287#[repr(u32)]
288#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
289pub enum _mjtTrn {
290    JOINT = 0,
291    JOINTINPARENT = 1,
292    SLIDERCRANK = 2,
293    TENDON = 3,
294    SITE = 4,
295    UNDEFINED = 1000,
296}
297pub use self::_mjtTrn as mjtTrn;
298#[repr(u32)]
299#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
300pub enum _mjtDyn {
301    NONE = 0,
302    INTEGRATOR = 1,
303    FILTER = 2,
304    MUSCLE = 3,
305    USER = 4,
306}
307pub use self::_mjtDyn as mjtDyn;
308#[repr(u32)]
309#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
310pub enum _mjtGain {
311    FIXED = 0,
312    MUSCLE = 1,
313    USER = 2,
314}
315pub use self::_mjtGain as mjtGain;
316#[repr(u32)]
317#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
318pub enum _mjtBias {
319    NONE = 0,
320    AFFINE = 1,
321    MUSCLE = 2,
322    USER = 3,
323}
324pub use self::_mjtBias as mjtBias;
325#[repr(u32)]
326#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
327pub enum _mjtObj {
328    UNKNOWN = 0,
329    BODY = 1,
330    XBODY = 2,
331    JOINT = 3,
332    DOF = 4,
333    GEOM = 5,
334    SITE = 6,
335    CAMERA = 7,
336    LIGHT = 8,
337    MESH = 9,
338    SKIN = 10,
339    HFIELD = 11,
340    TEXTURE = 12,
341    MATERIAL = 13,
342    PAIR = 14,
343    EXCLUDE = 15,
344    EQUALITY = 16,
345    TENDON = 17,
346    ACTUATOR = 18,
347    SENSOR = 19,
348    NUMERIC = 20,
349    TEXT = 21,
350    TUPLE = 22,
351    KEY = 23,
352}
353pub use self::_mjtObj as mjtObj;
354#[repr(u32)]
355#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
356pub enum _mjtConstraint {
357    EQUALITY = 0,
358    FRICTION_DOF = 1,
359    FRICTION_TENDON = 2,
360    LIMIT_JOINT = 3,
361    LIMIT_TENDON = 4,
362    CONTACT_FRICTIONLESS = 5,
363    CONTACT_PYRAMIDAL = 6,
364    CONTACT_ELLIPTIC = 7,
365}
366pub use self::_mjtConstraint as mjtConstraint;
367#[repr(u32)]
368#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
369pub enum _mjtConstraintState {
370    SATISFIED = 0,
371    QUADRATIC = 1,
372    LINEARNEG = 2,
373    LINEARPOS = 3,
374    CONE = 4,
375}
376pub use self::_mjtConstraintState as mjtConstraintState;
377#[repr(u32)]
378#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
379pub enum _mjtSensor {
380    TOUCH = 0,
381    ACCELEROMETER = 1,
382    VELOCIMETER = 2,
383    GYRO = 3,
384    FORCE = 4,
385    TORQUE = 5,
386    MAGNETOMETER = 6,
387    RANGEFINDER = 7,
388    JOINTPOS = 8,
389    JOINTVEL = 9,
390    TENDONPOS = 10,
391    TENDONVEL = 11,
392    ACTUATORPOS = 12,
393    ACTUATORVEL = 13,
394    ACTUATORFRC = 14,
395    BALLQUAT = 15,
396    BALLANGVEL = 16,
397    JOINTLIMITPOS = 17,
398    JOINTLIMITVEL = 18,
399    JOINTLIMITFRC = 19,
400    TENDONLIMITPOS = 20,
401    TENDONLIMITVEL = 21,
402    TENDONLIMITFRC = 22,
403    FRAMEPOS = 23,
404    FRAMEQUAT = 24,
405    FRAMEXAXIS = 25,
406    FRAMEYAXIS = 26,
407    FRAMEZAXIS = 27,
408    FRAMELINVEL = 28,
409    FRAMEANGVEL = 29,
410    FRAMELINACC = 30,
411    FRAMEANGACC = 31,
412    SUBTREECOM = 32,
413    SUBTREELINVEL = 33,
414    SUBTREEANGMOM = 34,
415    USER = 35,
416}
417pub use self::_mjtSensor as mjtSensor;
418#[repr(u32)]
419#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
420pub enum _mjtStage {
421    NONE = 0,
422    POS = 1,
423    VEL = 2,
424    ACC = 3,
425}
426pub use self::_mjtStage as mjtStage;
427#[repr(u32)]
428#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
429pub enum _mjtDataType {
430    REAL = 0,
431    POSITIVE = 1,
432    AXIS = 2,
433    QUATERNION = 3,
434}
435pub use self::_mjtDataType as mjtDataType;
436#[repr(u32)]
437#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
438pub enum _mjtLRMode {
439    NONE = 0,
440    MUSCLE = 1,
441    MUSCLEUSER = 2,
442    ALL = 3,
443}
444pub use self::_mjtLRMode as mjtLRMode;
445#[repr(C)]
446#[derive(Debug, Default, Copy, Clone)]
447pub struct _mjLROpt {
448    pub mode: ::std::os::raw::c_int,
449    pub useexisting: ::std::os::raw::c_int,
450    pub uselimit: ::std::os::raw::c_int,
451    pub accel: mjtNum,
452    pub maxforce: mjtNum,
453    pub timeconst: mjtNum,
454    pub timestep: mjtNum,
455    pub inttotal: mjtNum,
456    pub inteval: mjtNum,
457    pub tolrange: mjtNum,
458}
459#[test]
460fn bindgen_test_layout__mjLROpt() {
461    assert_eq!(
462        ::std::mem::size_of::<_mjLROpt>(),
463        72usize,
464        concat!("Size of: ", stringify!(_mjLROpt))
465    );
466    assert_eq!(
467        ::std::mem::align_of::<_mjLROpt>(),
468        8usize,
469        concat!("Alignment of ", stringify!(_mjLROpt))
470    );
471    assert_eq!(
472        unsafe { &(*(::std::ptr::null::<_mjLROpt>())).mode as *const _ as usize },
473        0usize,
474        concat!(
475            "Offset of field: ",
476            stringify!(_mjLROpt),
477            "::",
478            stringify!(mode)
479        )
480    );
481    assert_eq!(
482        unsafe {
483            &(*(::std::ptr::null::<_mjLROpt>())).useexisting as *const _ as usize
484        },
485        4usize,
486        concat!(
487            "Offset of field: ",
488            stringify!(_mjLROpt),
489            "::",
490            stringify!(useexisting)
491        )
492    );
493    assert_eq!(
494        unsafe { &(*(::std::ptr::null::<_mjLROpt>())).uselimit as *const _ as usize },
495        8usize,
496        concat!(
497            "Offset of field: ",
498            stringify!(_mjLROpt),
499            "::",
500            stringify!(uselimit)
501        )
502    );
503    assert_eq!(
504        unsafe { &(*(::std::ptr::null::<_mjLROpt>())).accel as *const _ as usize },
505        16usize,
506        concat!(
507            "Offset of field: ",
508            stringify!(_mjLROpt),
509            "::",
510            stringify!(accel)
511        )
512    );
513    assert_eq!(
514        unsafe { &(*(::std::ptr::null::<_mjLROpt>())).maxforce as *const _ as usize },
515        24usize,
516        concat!(
517            "Offset of field: ",
518            stringify!(_mjLROpt),
519            "::",
520            stringify!(maxforce)
521        )
522    );
523    assert_eq!(
524        unsafe { &(*(::std::ptr::null::<_mjLROpt>())).timeconst as *const _ as usize },
525        32usize,
526        concat!(
527            "Offset of field: ",
528            stringify!(_mjLROpt),
529            "::",
530            stringify!(timeconst)
531        )
532    );
533    assert_eq!(
534        unsafe { &(*(::std::ptr::null::<_mjLROpt>())).timestep as *const _ as usize },
535        40usize,
536        concat!(
537            "Offset of field: ",
538            stringify!(_mjLROpt),
539            "::",
540            stringify!(timestep)
541        )
542    );
543    assert_eq!(
544        unsafe { &(*(::std::ptr::null::<_mjLROpt>())).inttotal as *const _ as usize },
545        48usize,
546        concat!(
547            "Offset of field: ",
548            stringify!(_mjLROpt),
549            "::",
550            stringify!(inttotal)
551        )
552    );
553    assert_eq!(
554        unsafe { &(*(::std::ptr::null::<_mjLROpt>())).inteval as *const _ as usize },
555        56usize,
556        concat!(
557            "Offset of field: ",
558            stringify!(_mjLROpt),
559            "::",
560            stringify!(inteval)
561        )
562    );
563    assert_eq!(
564        unsafe { &(*(::std::ptr::null::<_mjLROpt>())).tolrange as *const _ as usize },
565        64usize,
566        concat!(
567            "Offset of field: ",
568            stringify!(_mjLROpt),
569            "::",
570            stringify!(tolrange)
571        )
572    );
573}
574pub type mjLROpt = _mjLROpt;
575#[repr(C)]
576#[derive(Copy, Clone)]
577pub struct _mjVFS {
578    pub nfile: ::std::os::raw::c_int,
579    pub filename: [[::std::os::raw::c_char; 100usize]; 200usize],
580    pub filesize: [::std::os::raw::c_int; 200usize],
581    pub filedata: [*mut ::std::os::raw::c_void; 200usize],
582}
583#[test]
584fn bindgen_test_layout__mjVFS() {
585    assert_eq!(
586        ::std::mem::size_of::<_mjVFS>(),
587        22408usize,
588        concat!("Size of: ", stringify!(_mjVFS))
589    );
590    assert_eq!(
591        ::std::mem::align_of::<_mjVFS>(),
592        8usize,
593        concat!("Alignment of ", stringify!(_mjVFS))
594    );
595    assert_eq!(
596        unsafe { &(*(::std::ptr::null::<_mjVFS>())).nfile as *const _ as usize },
597        0usize,
598        concat!(
599            "Offset of field: ",
600            stringify!(_mjVFS),
601            "::",
602            stringify!(nfile)
603        )
604    );
605    assert_eq!(
606        unsafe { &(*(::std::ptr::null::<_mjVFS>())).filename as *const _ as usize },
607        4usize,
608        concat!(
609            "Offset of field: ",
610            stringify!(_mjVFS),
611            "::",
612            stringify!(filename)
613        )
614    );
615    assert_eq!(
616        unsafe { &(*(::std::ptr::null::<_mjVFS>())).filesize as *const _ as usize },
617        20004usize,
618        concat!(
619            "Offset of field: ",
620            stringify!(_mjVFS),
621            "::",
622            stringify!(filesize)
623        )
624    );
625    assert_eq!(
626        unsafe { &(*(::std::ptr::null::<_mjVFS>())).filedata as *const _ as usize },
627        20808usize,
628        concat!(
629            "Offset of field: ",
630            stringify!(_mjVFS),
631            "::",
632            stringify!(filedata)
633        )
634    );
635}
636impl Default for _mjVFS {
637    fn default() -> Self {
638        unsafe { ::std::mem::zeroed() }
639    }
640}
641pub type mjVFS = _mjVFS;
642#[repr(C)]
643#[derive(Debug, Default, Copy, Clone)]
644pub struct _mjOption {
645    pub timestep: mjtNum,
646    pub apirate: mjtNum,
647    pub impratio: mjtNum,
648    pub tolerance: mjtNum,
649    pub noslip_tolerance: mjtNum,
650    pub mpr_tolerance: mjtNum,
651    pub gravity: [mjtNum; 3usize],
652    pub wind: [mjtNum; 3usize],
653    pub magnetic: [mjtNum; 3usize],
654    pub density: mjtNum,
655    pub viscosity: mjtNum,
656    pub o_margin: mjtNum,
657    pub o_solref: [mjtNum; 2usize],
658    pub o_solimp: [mjtNum; 5usize],
659    pub integrator: ::std::os::raw::c_int,
660    pub collision: ::std::os::raw::c_int,
661    pub cone: ::std::os::raw::c_int,
662    pub jacobian: ::std::os::raw::c_int,
663    pub solver: ::std::os::raw::c_int,
664    pub iterations: ::std::os::raw::c_int,
665    pub noslip_iterations: ::std::os::raw::c_int,
666    pub mpr_iterations: ::std::os::raw::c_int,
667    pub disableflags: ::std::os::raw::c_int,
668    pub enableflags: ::std::os::raw::c_int,
669}
670#[test]
671fn bindgen_test_layout__mjOption() {
672    assert_eq!(
673        ::std::mem::size_of::<_mjOption>(),
674        240usize,
675        concat!("Size of: ", stringify!(_mjOption))
676    );
677    assert_eq!(
678        ::std::mem::align_of::<_mjOption>(),
679        8usize,
680        concat!("Alignment of ", stringify!(_mjOption))
681    );
682    assert_eq!(
683        unsafe { &(*(::std::ptr::null::<_mjOption>())).timestep as *const _ as usize },
684        0usize,
685        concat!(
686            "Offset of field: ",
687            stringify!(_mjOption),
688            "::",
689            stringify!(timestep)
690        )
691    );
692    assert_eq!(
693        unsafe { &(*(::std::ptr::null::<_mjOption>())).apirate as *const _ as usize },
694        8usize,
695        concat!(
696            "Offset of field: ",
697            stringify!(_mjOption),
698            "::",
699            stringify!(apirate)
700        )
701    );
702    assert_eq!(
703        unsafe { &(*(::std::ptr::null::<_mjOption>())).impratio as *const _ as usize },
704        16usize,
705        concat!(
706            "Offset of field: ",
707            stringify!(_mjOption),
708            "::",
709            stringify!(impratio)
710        )
711    );
712    assert_eq!(
713        unsafe { &(*(::std::ptr::null::<_mjOption>())).tolerance as *const _ as usize },
714        24usize,
715        concat!(
716            "Offset of field: ",
717            stringify!(_mjOption),
718            "::",
719            stringify!(tolerance)
720        )
721    );
722    assert_eq!(
723        unsafe {
724            &(*(::std::ptr::null::<_mjOption>())).noslip_tolerance as *const _ as usize
725        },
726        32usize,
727        concat!(
728            "Offset of field: ",
729            stringify!(_mjOption),
730            "::",
731            stringify!(noslip_tolerance)
732        )
733    );
734    assert_eq!(
735        unsafe {
736            &(*(::std::ptr::null::<_mjOption>())).mpr_tolerance as *const _ as usize
737        },
738        40usize,
739        concat!(
740            "Offset of field: ",
741            stringify!(_mjOption),
742            "::",
743            stringify!(mpr_tolerance)
744        )
745    );
746    assert_eq!(
747        unsafe { &(*(::std::ptr::null::<_mjOption>())).gravity as *const _ as usize },
748        48usize,
749        concat!(
750            "Offset of field: ",
751            stringify!(_mjOption),
752            "::",
753            stringify!(gravity)
754        )
755    );
756    assert_eq!(
757        unsafe { &(*(::std::ptr::null::<_mjOption>())).wind as *const _ as usize },
758        72usize,
759        concat!(
760            "Offset of field: ",
761            stringify!(_mjOption),
762            "::",
763            stringify!(wind)
764        )
765    );
766    assert_eq!(
767        unsafe { &(*(::std::ptr::null::<_mjOption>())).magnetic as *const _ as usize },
768        96usize,
769        concat!(
770            "Offset of field: ",
771            stringify!(_mjOption),
772            "::",
773            stringify!(magnetic)
774        )
775    );
776    assert_eq!(
777        unsafe { &(*(::std::ptr::null::<_mjOption>())).density as *const _ as usize },
778        120usize,
779        concat!(
780            "Offset of field: ",
781            stringify!(_mjOption),
782            "::",
783            stringify!(density)
784        )
785    );
786    assert_eq!(
787        unsafe { &(*(::std::ptr::null::<_mjOption>())).viscosity as *const _ as usize },
788        128usize,
789        concat!(
790            "Offset of field: ",
791            stringify!(_mjOption),
792            "::",
793            stringify!(viscosity)
794        )
795    );
796    assert_eq!(
797        unsafe { &(*(::std::ptr::null::<_mjOption>())).o_margin as *const _ as usize },
798        136usize,
799        concat!(
800            "Offset of field: ",
801            stringify!(_mjOption),
802            "::",
803            stringify!(o_margin)
804        )
805    );
806    assert_eq!(
807        unsafe { &(*(::std::ptr::null::<_mjOption>())).o_solref as *const _ as usize },
808        144usize,
809        concat!(
810            "Offset of field: ",
811            stringify!(_mjOption),
812            "::",
813            stringify!(o_solref)
814        )
815    );
816    assert_eq!(
817        unsafe { &(*(::std::ptr::null::<_mjOption>())).o_solimp as *const _ as usize },
818        160usize,
819        concat!(
820            "Offset of field: ",
821            stringify!(_mjOption),
822            "::",
823            stringify!(o_solimp)
824        )
825    );
826    assert_eq!(
827        unsafe {
828            &(*(::std::ptr::null::<_mjOption>())).integrator as *const _ as usize
829        },
830        200usize,
831        concat!(
832            "Offset of field: ",
833            stringify!(_mjOption),
834            "::",
835            stringify!(integrator)
836        )
837    );
838    assert_eq!(
839        unsafe { &(*(::std::ptr::null::<_mjOption>())).collision as *const _ as usize },
840        204usize,
841        concat!(
842            "Offset of field: ",
843            stringify!(_mjOption),
844            "::",
845            stringify!(collision)
846        )
847    );
848    assert_eq!(
849        unsafe { &(*(::std::ptr::null::<_mjOption>())).cone as *const _ as usize },
850        208usize,
851        concat!(
852            "Offset of field: ",
853            stringify!(_mjOption),
854            "::",
855            stringify!(cone)
856        )
857    );
858    assert_eq!(
859        unsafe { &(*(::std::ptr::null::<_mjOption>())).jacobian as *const _ as usize },
860        212usize,
861        concat!(
862            "Offset of field: ",
863            stringify!(_mjOption),
864            "::",
865            stringify!(jacobian)
866        )
867    );
868    assert_eq!(
869        unsafe { &(*(::std::ptr::null::<_mjOption>())).solver as *const _ as usize },
870        216usize,
871        concat!(
872            "Offset of field: ",
873            stringify!(_mjOption),
874            "::",
875            stringify!(solver)
876        )
877    );
878    assert_eq!(
879        unsafe {
880            &(*(::std::ptr::null::<_mjOption>())).iterations as *const _ as usize
881        },
882        220usize,
883        concat!(
884            "Offset of field: ",
885            stringify!(_mjOption),
886            "::",
887            stringify!(iterations)
888        )
889    );
890    assert_eq!(
891        unsafe {
892            &(*(::std::ptr::null::<_mjOption>())).noslip_iterations as *const _ as usize
893        },
894        224usize,
895        concat!(
896            "Offset of field: ",
897            stringify!(_mjOption),
898            "::",
899            stringify!(noslip_iterations)
900        )
901    );
902    assert_eq!(
903        unsafe {
904            &(*(::std::ptr::null::<_mjOption>())).mpr_iterations as *const _ as usize
905        },
906        228usize,
907        concat!(
908            "Offset of field: ",
909            stringify!(_mjOption),
910            "::",
911            stringify!(mpr_iterations)
912        )
913    );
914    assert_eq!(
915        unsafe {
916            &(*(::std::ptr::null::<_mjOption>())).disableflags as *const _ as usize
917        },
918        232usize,
919        concat!(
920            "Offset of field: ",
921            stringify!(_mjOption),
922            "::",
923            stringify!(disableflags)
924        )
925    );
926    assert_eq!(
927        unsafe {
928            &(*(::std::ptr::null::<_mjOption>())).enableflags as *const _ as usize
929        },
930        236usize,
931        concat!(
932            "Offset of field: ",
933            stringify!(_mjOption),
934            "::",
935            stringify!(enableflags)
936        )
937    );
938}
939pub type mjOption = _mjOption;
940#[repr(C)]
941#[derive(Debug, Default, Copy, Clone)]
942pub struct _mjVisual {
943    pub global: _mjVisual__bindgen_ty_1,
944    pub quality: _mjVisual__bindgen_ty_2,
945    pub headlight: _mjVisual__bindgen_ty_3,
946    pub map: _mjVisual__bindgen_ty_4,
947    pub scale: _mjVisual__bindgen_ty_5,
948    pub rgba: _mjVisual__bindgen_ty_6,
949}
950#[repr(C)]
951#[derive(Debug, Default, Copy, Clone)]
952pub struct _mjVisual__bindgen_ty_1 {
953    pub fovy: f32,
954    pub ipd: f32,
955    pub linewidth: f32,
956    pub glow: f32,
957    pub offwidth: ::std::os::raw::c_int,
958    pub offheight: ::std::os::raw::c_int,
959}
960#[test]
961fn bindgen_test_layout__mjVisual__bindgen_ty_1() {
962    assert_eq!(
963        ::std::mem::size_of::<_mjVisual__bindgen_ty_1>(),
964        24usize,
965        concat!("Size of: ", stringify!(_mjVisual__bindgen_ty_1))
966    );
967    assert_eq!(
968        ::std::mem::align_of::<_mjVisual__bindgen_ty_1>(),
969        4usize,
970        concat!("Alignment of ", stringify!(_mjVisual__bindgen_ty_1))
971    );
972    assert_eq!(
973        unsafe {
974            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_1>())).fovy as *const _
975                as usize
976        },
977        0usize,
978        concat!(
979            "Offset of field: ",
980            stringify!(_mjVisual__bindgen_ty_1),
981            "::",
982            stringify!(fovy)
983        )
984    );
985    assert_eq!(
986        unsafe {
987            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_1>())).ipd as *const _ as usize
988        },
989        4usize,
990        concat!(
991            "Offset of field: ",
992            stringify!(_mjVisual__bindgen_ty_1),
993            "::",
994            stringify!(ipd)
995        )
996    );
997    assert_eq!(
998        unsafe {
999            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_1>())).linewidth as *const _
1000                as usize
1001        },
1002        8usize,
1003        concat!(
1004            "Offset of field: ",
1005            stringify!(_mjVisual__bindgen_ty_1),
1006            "::",
1007            stringify!(linewidth)
1008        )
1009    );
1010    assert_eq!(
1011        unsafe {
1012            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_1>())).glow as *const _
1013                as usize
1014        },
1015        12usize,
1016        concat!(
1017            "Offset of field: ",
1018            stringify!(_mjVisual__bindgen_ty_1),
1019            "::",
1020            stringify!(glow)
1021        )
1022    );
1023    assert_eq!(
1024        unsafe {
1025            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_1>())).offwidth as *const _
1026                as usize
1027        },
1028        16usize,
1029        concat!(
1030            "Offset of field: ",
1031            stringify!(_mjVisual__bindgen_ty_1),
1032            "::",
1033            stringify!(offwidth)
1034        )
1035    );
1036    assert_eq!(
1037        unsafe {
1038            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_1>())).offheight as *const _
1039                as usize
1040        },
1041        20usize,
1042        concat!(
1043            "Offset of field: ",
1044            stringify!(_mjVisual__bindgen_ty_1),
1045            "::",
1046            stringify!(offheight)
1047        )
1048    );
1049}
1050#[repr(C)]
1051#[derive(Debug, Default, Copy, Clone)]
1052pub struct _mjVisual__bindgen_ty_2 {
1053    pub shadowsize: ::std::os::raw::c_int,
1054    pub offsamples: ::std::os::raw::c_int,
1055    pub numslices: ::std::os::raw::c_int,
1056    pub numstacks: ::std::os::raw::c_int,
1057    pub numquads: ::std::os::raw::c_int,
1058}
1059#[test]
1060fn bindgen_test_layout__mjVisual__bindgen_ty_2() {
1061    assert_eq!(
1062        ::std::mem::size_of::<_mjVisual__bindgen_ty_2>(),
1063        20usize,
1064        concat!("Size of: ", stringify!(_mjVisual__bindgen_ty_2))
1065    );
1066    assert_eq!(
1067        ::std::mem::align_of::<_mjVisual__bindgen_ty_2>(),
1068        4usize,
1069        concat!("Alignment of ", stringify!(_mjVisual__bindgen_ty_2))
1070    );
1071    assert_eq!(
1072        unsafe {
1073            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_2>())).shadowsize as *const _
1074                as usize
1075        },
1076        0usize,
1077        concat!(
1078            "Offset of field: ",
1079            stringify!(_mjVisual__bindgen_ty_2),
1080            "::",
1081            stringify!(shadowsize)
1082        )
1083    );
1084    assert_eq!(
1085        unsafe {
1086            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_2>())).offsamples as *const _
1087                as usize
1088        },
1089        4usize,
1090        concat!(
1091            "Offset of field: ",
1092            stringify!(_mjVisual__bindgen_ty_2),
1093            "::",
1094            stringify!(offsamples)
1095        )
1096    );
1097    assert_eq!(
1098        unsafe {
1099            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_2>())).numslices as *const _
1100                as usize
1101        },
1102        8usize,
1103        concat!(
1104            "Offset of field: ",
1105            stringify!(_mjVisual__bindgen_ty_2),
1106            "::",
1107            stringify!(numslices)
1108        )
1109    );
1110    assert_eq!(
1111        unsafe {
1112            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_2>())).numstacks as *const _
1113                as usize
1114        },
1115        12usize,
1116        concat!(
1117            "Offset of field: ",
1118            stringify!(_mjVisual__bindgen_ty_2),
1119            "::",
1120            stringify!(numstacks)
1121        )
1122    );
1123    assert_eq!(
1124        unsafe {
1125            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_2>())).numquads as *const _
1126                as usize
1127        },
1128        16usize,
1129        concat!(
1130            "Offset of field: ",
1131            stringify!(_mjVisual__bindgen_ty_2),
1132            "::",
1133            stringify!(numquads)
1134        )
1135    );
1136}
1137#[repr(C)]
1138#[derive(Debug, Default, Copy, Clone)]
1139pub struct _mjVisual__bindgen_ty_3 {
1140    pub ambient: [f32; 3usize],
1141    pub diffuse: [f32; 3usize],
1142    pub specular: [f32; 3usize],
1143    pub active: ::std::os::raw::c_int,
1144}
1145#[test]
1146fn bindgen_test_layout__mjVisual__bindgen_ty_3() {
1147    assert_eq!(
1148        ::std::mem::size_of::<_mjVisual__bindgen_ty_3>(),
1149        40usize,
1150        concat!("Size of: ", stringify!(_mjVisual__bindgen_ty_3))
1151    );
1152    assert_eq!(
1153        ::std::mem::align_of::<_mjVisual__bindgen_ty_3>(),
1154        4usize,
1155        concat!("Alignment of ", stringify!(_mjVisual__bindgen_ty_3))
1156    );
1157    assert_eq!(
1158        unsafe {
1159            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_3>())).ambient as *const _
1160                as usize
1161        },
1162        0usize,
1163        concat!(
1164            "Offset of field: ",
1165            stringify!(_mjVisual__bindgen_ty_3),
1166            "::",
1167            stringify!(ambient)
1168        )
1169    );
1170    assert_eq!(
1171        unsafe {
1172            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_3>())).diffuse as *const _
1173                as usize
1174        },
1175        12usize,
1176        concat!(
1177            "Offset of field: ",
1178            stringify!(_mjVisual__bindgen_ty_3),
1179            "::",
1180            stringify!(diffuse)
1181        )
1182    );
1183    assert_eq!(
1184        unsafe {
1185            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_3>())).specular as *const _
1186                as usize
1187        },
1188        24usize,
1189        concat!(
1190            "Offset of field: ",
1191            stringify!(_mjVisual__bindgen_ty_3),
1192            "::",
1193            stringify!(specular)
1194        )
1195    );
1196    assert_eq!(
1197        unsafe {
1198            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_3>())).active as *const _
1199                as usize
1200        },
1201        36usize,
1202        concat!(
1203            "Offset of field: ",
1204            stringify!(_mjVisual__bindgen_ty_3),
1205            "::",
1206            stringify!(active)
1207        )
1208    );
1209}
1210#[repr(C)]
1211#[derive(Debug, Default, Copy, Clone)]
1212pub struct _mjVisual__bindgen_ty_4 {
1213    pub stiffness: f32,
1214    pub stiffnessrot: f32,
1215    pub force: f32,
1216    pub torque: f32,
1217    pub alpha: f32,
1218    pub fogstart: f32,
1219    pub fogend: f32,
1220    pub znear: f32,
1221    pub zfar: f32,
1222    pub haze: f32,
1223    pub shadowclip: f32,
1224    pub shadowscale: f32,
1225    pub actuatortendon: f32,
1226}
1227#[test]
1228fn bindgen_test_layout__mjVisual__bindgen_ty_4() {
1229    assert_eq!(
1230        ::std::mem::size_of::<_mjVisual__bindgen_ty_4>(),
1231        52usize,
1232        concat!("Size of: ", stringify!(_mjVisual__bindgen_ty_4))
1233    );
1234    assert_eq!(
1235        ::std::mem::align_of::<_mjVisual__bindgen_ty_4>(),
1236        4usize,
1237        concat!("Alignment of ", stringify!(_mjVisual__bindgen_ty_4))
1238    );
1239    assert_eq!(
1240        unsafe {
1241            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_4>())).stiffness as *const _
1242                as usize
1243        },
1244        0usize,
1245        concat!(
1246            "Offset of field: ",
1247            stringify!(_mjVisual__bindgen_ty_4),
1248            "::",
1249            stringify!(stiffness)
1250        )
1251    );
1252    assert_eq!(
1253        unsafe {
1254            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_4>())).stiffnessrot as *const _
1255                as usize
1256        },
1257        4usize,
1258        concat!(
1259            "Offset of field: ",
1260            stringify!(_mjVisual__bindgen_ty_4),
1261            "::",
1262            stringify!(stiffnessrot)
1263        )
1264    );
1265    assert_eq!(
1266        unsafe {
1267            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_4>())).force as *const _
1268                as usize
1269        },
1270        8usize,
1271        concat!(
1272            "Offset of field: ",
1273            stringify!(_mjVisual__bindgen_ty_4),
1274            "::",
1275            stringify!(force)
1276        )
1277    );
1278    assert_eq!(
1279        unsafe {
1280            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_4>())).torque as *const _
1281                as usize
1282        },
1283        12usize,
1284        concat!(
1285            "Offset of field: ",
1286            stringify!(_mjVisual__bindgen_ty_4),
1287            "::",
1288            stringify!(torque)
1289        )
1290    );
1291    assert_eq!(
1292        unsafe {
1293            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_4>())).alpha as *const _
1294                as usize
1295        },
1296        16usize,
1297        concat!(
1298            "Offset of field: ",
1299            stringify!(_mjVisual__bindgen_ty_4),
1300            "::",
1301            stringify!(alpha)
1302        )
1303    );
1304    assert_eq!(
1305        unsafe {
1306            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_4>())).fogstart as *const _
1307                as usize
1308        },
1309        20usize,
1310        concat!(
1311            "Offset of field: ",
1312            stringify!(_mjVisual__bindgen_ty_4),
1313            "::",
1314            stringify!(fogstart)
1315        )
1316    );
1317    assert_eq!(
1318        unsafe {
1319            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_4>())).fogend as *const _
1320                as usize
1321        },
1322        24usize,
1323        concat!(
1324            "Offset of field: ",
1325            stringify!(_mjVisual__bindgen_ty_4),
1326            "::",
1327            stringify!(fogend)
1328        )
1329    );
1330    assert_eq!(
1331        unsafe {
1332            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_4>())).znear as *const _
1333                as usize
1334        },
1335        28usize,
1336        concat!(
1337            "Offset of field: ",
1338            stringify!(_mjVisual__bindgen_ty_4),
1339            "::",
1340            stringify!(znear)
1341        )
1342    );
1343    assert_eq!(
1344        unsafe {
1345            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_4>())).zfar as *const _
1346                as usize
1347        },
1348        32usize,
1349        concat!(
1350            "Offset of field: ",
1351            stringify!(_mjVisual__bindgen_ty_4),
1352            "::",
1353            stringify!(zfar)
1354        )
1355    );
1356    assert_eq!(
1357        unsafe {
1358            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_4>())).haze as *const _
1359                as usize
1360        },
1361        36usize,
1362        concat!(
1363            "Offset of field: ",
1364            stringify!(_mjVisual__bindgen_ty_4),
1365            "::",
1366            stringify!(haze)
1367        )
1368    );
1369    assert_eq!(
1370        unsafe {
1371            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_4>())).shadowclip as *const _
1372                as usize
1373        },
1374        40usize,
1375        concat!(
1376            "Offset of field: ",
1377            stringify!(_mjVisual__bindgen_ty_4),
1378            "::",
1379            stringify!(shadowclip)
1380        )
1381    );
1382    assert_eq!(
1383        unsafe {
1384            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_4>())).shadowscale as *const _
1385                as usize
1386        },
1387        44usize,
1388        concat!(
1389            "Offset of field: ",
1390            stringify!(_mjVisual__bindgen_ty_4),
1391            "::",
1392            stringify!(shadowscale)
1393        )
1394    );
1395    assert_eq!(
1396        unsafe {
1397            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_4>())).actuatortendon
1398                as *const _ as usize
1399        },
1400        48usize,
1401        concat!(
1402            "Offset of field: ",
1403            stringify!(_mjVisual__bindgen_ty_4),
1404            "::",
1405            stringify!(actuatortendon)
1406        )
1407    );
1408}
1409#[repr(C)]
1410#[derive(Debug, Default, Copy, Clone)]
1411pub struct _mjVisual__bindgen_ty_5 {
1412    pub forcewidth: f32,
1413    pub contactwidth: f32,
1414    pub contactheight: f32,
1415    pub connect: f32,
1416    pub com: f32,
1417    pub camera: f32,
1418    pub light: f32,
1419    pub selectpoint: f32,
1420    pub jointlength: f32,
1421    pub jointwidth: f32,
1422    pub actuatorlength: f32,
1423    pub actuatorwidth: f32,
1424    pub framelength: f32,
1425    pub framewidth: f32,
1426    pub constraint: f32,
1427    pub slidercrank: f32,
1428}
1429#[test]
1430fn bindgen_test_layout__mjVisual__bindgen_ty_5() {
1431    assert_eq!(
1432        ::std::mem::size_of::<_mjVisual__bindgen_ty_5>(),
1433        64usize,
1434        concat!("Size of: ", stringify!(_mjVisual__bindgen_ty_5))
1435    );
1436    assert_eq!(
1437        ::std::mem::align_of::<_mjVisual__bindgen_ty_5>(),
1438        4usize,
1439        concat!("Alignment of ", stringify!(_mjVisual__bindgen_ty_5))
1440    );
1441    assert_eq!(
1442        unsafe {
1443            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_5>())).forcewidth as *const _
1444                as usize
1445        },
1446        0usize,
1447        concat!(
1448            "Offset of field: ",
1449            stringify!(_mjVisual__bindgen_ty_5),
1450            "::",
1451            stringify!(forcewidth)
1452        )
1453    );
1454    assert_eq!(
1455        unsafe {
1456            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_5>())).contactwidth as *const _
1457                as usize
1458        },
1459        4usize,
1460        concat!(
1461            "Offset of field: ",
1462            stringify!(_mjVisual__bindgen_ty_5),
1463            "::",
1464            stringify!(contactwidth)
1465        )
1466    );
1467    assert_eq!(
1468        unsafe {
1469            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_5>())).contactheight
1470                as *const _ as usize
1471        },
1472        8usize,
1473        concat!(
1474            "Offset of field: ",
1475            stringify!(_mjVisual__bindgen_ty_5),
1476            "::",
1477            stringify!(contactheight)
1478        )
1479    );
1480    assert_eq!(
1481        unsafe {
1482            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_5>())).connect as *const _
1483                as usize
1484        },
1485        12usize,
1486        concat!(
1487            "Offset of field: ",
1488            stringify!(_mjVisual__bindgen_ty_5),
1489            "::",
1490            stringify!(connect)
1491        )
1492    );
1493    assert_eq!(
1494        unsafe {
1495            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_5>())).com as *const _ as usize
1496        },
1497        16usize,
1498        concat!(
1499            "Offset of field: ",
1500            stringify!(_mjVisual__bindgen_ty_5),
1501            "::",
1502            stringify!(com)
1503        )
1504    );
1505    assert_eq!(
1506        unsafe {
1507            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_5>())).camera as *const _
1508                as usize
1509        },
1510        20usize,
1511        concat!(
1512            "Offset of field: ",
1513            stringify!(_mjVisual__bindgen_ty_5),
1514            "::",
1515            stringify!(camera)
1516        )
1517    );
1518    assert_eq!(
1519        unsafe {
1520            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_5>())).light as *const _
1521                as usize
1522        },
1523        24usize,
1524        concat!(
1525            "Offset of field: ",
1526            stringify!(_mjVisual__bindgen_ty_5),
1527            "::",
1528            stringify!(light)
1529        )
1530    );
1531    assert_eq!(
1532        unsafe {
1533            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_5>())).selectpoint as *const _
1534                as usize
1535        },
1536        28usize,
1537        concat!(
1538            "Offset of field: ",
1539            stringify!(_mjVisual__bindgen_ty_5),
1540            "::",
1541            stringify!(selectpoint)
1542        )
1543    );
1544    assert_eq!(
1545        unsafe {
1546            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_5>())).jointlength as *const _
1547                as usize
1548        },
1549        32usize,
1550        concat!(
1551            "Offset of field: ",
1552            stringify!(_mjVisual__bindgen_ty_5),
1553            "::",
1554            stringify!(jointlength)
1555        )
1556    );
1557    assert_eq!(
1558        unsafe {
1559            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_5>())).jointwidth as *const _
1560                as usize
1561        },
1562        36usize,
1563        concat!(
1564            "Offset of field: ",
1565            stringify!(_mjVisual__bindgen_ty_5),
1566            "::",
1567            stringify!(jointwidth)
1568        )
1569    );
1570    assert_eq!(
1571        unsafe {
1572            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_5>())).actuatorlength
1573                as *const _ as usize
1574        },
1575        40usize,
1576        concat!(
1577            "Offset of field: ",
1578            stringify!(_mjVisual__bindgen_ty_5),
1579            "::",
1580            stringify!(actuatorlength)
1581        )
1582    );
1583    assert_eq!(
1584        unsafe {
1585            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_5>())).actuatorwidth
1586                as *const _ as usize
1587        },
1588        44usize,
1589        concat!(
1590            "Offset of field: ",
1591            stringify!(_mjVisual__bindgen_ty_5),
1592            "::",
1593            stringify!(actuatorwidth)
1594        )
1595    );
1596    assert_eq!(
1597        unsafe {
1598            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_5>())).framelength as *const _
1599                as usize
1600        },
1601        48usize,
1602        concat!(
1603            "Offset of field: ",
1604            stringify!(_mjVisual__bindgen_ty_5),
1605            "::",
1606            stringify!(framelength)
1607        )
1608    );
1609    assert_eq!(
1610        unsafe {
1611            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_5>())).framewidth as *const _
1612                as usize
1613        },
1614        52usize,
1615        concat!(
1616            "Offset of field: ",
1617            stringify!(_mjVisual__bindgen_ty_5),
1618            "::",
1619            stringify!(framewidth)
1620        )
1621    );
1622    assert_eq!(
1623        unsafe {
1624            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_5>())).constraint as *const _
1625                as usize
1626        },
1627        56usize,
1628        concat!(
1629            "Offset of field: ",
1630            stringify!(_mjVisual__bindgen_ty_5),
1631            "::",
1632            stringify!(constraint)
1633        )
1634    );
1635    assert_eq!(
1636        unsafe {
1637            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_5>())).slidercrank as *const _
1638                as usize
1639        },
1640        60usize,
1641        concat!(
1642            "Offset of field: ",
1643            stringify!(_mjVisual__bindgen_ty_5),
1644            "::",
1645            stringify!(slidercrank)
1646        )
1647    );
1648}
1649#[repr(C)]
1650#[derive(Debug, Default, Copy, Clone)]
1651pub struct _mjVisual__bindgen_ty_6 {
1652    pub fog: [f32; 4usize],
1653    pub haze: [f32; 4usize],
1654    pub force: [f32; 4usize],
1655    pub inertia: [f32; 4usize],
1656    pub joint: [f32; 4usize],
1657    pub actuator: [f32; 4usize],
1658    pub actuatornegative: [f32; 4usize],
1659    pub actuatorpositive: [f32; 4usize],
1660    pub com: [f32; 4usize],
1661    pub camera: [f32; 4usize],
1662    pub light: [f32; 4usize],
1663    pub selectpoint: [f32; 4usize],
1664    pub connect: [f32; 4usize],
1665    pub contactpoint: [f32; 4usize],
1666    pub contactforce: [f32; 4usize],
1667    pub contactfriction: [f32; 4usize],
1668    pub contacttorque: [f32; 4usize],
1669    pub contactgap: [f32; 4usize],
1670    pub rangefinder: [f32; 4usize],
1671    pub constraint: [f32; 4usize],
1672    pub slidercrank: [f32; 4usize],
1673    pub crankbroken: [f32; 4usize],
1674}
1675#[test]
1676fn bindgen_test_layout__mjVisual__bindgen_ty_6() {
1677    assert_eq!(
1678        ::std::mem::size_of::<_mjVisual__bindgen_ty_6>(),
1679        352usize,
1680        concat!("Size of: ", stringify!(_mjVisual__bindgen_ty_6))
1681    );
1682    assert_eq!(
1683        ::std::mem::align_of::<_mjVisual__bindgen_ty_6>(),
1684        4usize,
1685        concat!("Alignment of ", stringify!(_mjVisual__bindgen_ty_6))
1686    );
1687    assert_eq!(
1688        unsafe {
1689            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).fog as *const _ as usize
1690        },
1691        0usize,
1692        concat!(
1693            "Offset of field: ",
1694            stringify!(_mjVisual__bindgen_ty_6),
1695            "::",
1696            stringify!(fog)
1697        )
1698    );
1699    assert_eq!(
1700        unsafe {
1701            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).haze as *const _
1702                as usize
1703        },
1704        16usize,
1705        concat!(
1706            "Offset of field: ",
1707            stringify!(_mjVisual__bindgen_ty_6),
1708            "::",
1709            stringify!(haze)
1710        )
1711    );
1712    assert_eq!(
1713        unsafe {
1714            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).force as *const _
1715                as usize
1716        },
1717        32usize,
1718        concat!(
1719            "Offset of field: ",
1720            stringify!(_mjVisual__bindgen_ty_6),
1721            "::",
1722            stringify!(force)
1723        )
1724    );
1725    assert_eq!(
1726        unsafe {
1727            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).inertia as *const _
1728                as usize
1729        },
1730        48usize,
1731        concat!(
1732            "Offset of field: ",
1733            stringify!(_mjVisual__bindgen_ty_6),
1734            "::",
1735            stringify!(inertia)
1736        )
1737    );
1738    assert_eq!(
1739        unsafe {
1740            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).joint as *const _
1741                as usize
1742        },
1743        64usize,
1744        concat!(
1745            "Offset of field: ",
1746            stringify!(_mjVisual__bindgen_ty_6),
1747            "::",
1748            stringify!(joint)
1749        )
1750    );
1751    assert_eq!(
1752        unsafe {
1753            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).actuator as *const _
1754                as usize
1755        },
1756        80usize,
1757        concat!(
1758            "Offset of field: ",
1759            stringify!(_mjVisual__bindgen_ty_6),
1760            "::",
1761            stringify!(actuator)
1762        )
1763    );
1764    assert_eq!(
1765        unsafe {
1766            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).actuatornegative
1767                as *const _ as usize
1768        },
1769        96usize,
1770        concat!(
1771            "Offset of field: ",
1772            stringify!(_mjVisual__bindgen_ty_6),
1773            "::",
1774            stringify!(actuatornegative)
1775        )
1776    );
1777    assert_eq!(
1778        unsafe {
1779            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).actuatorpositive
1780                as *const _ as usize
1781        },
1782        112usize,
1783        concat!(
1784            "Offset of field: ",
1785            stringify!(_mjVisual__bindgen_ty_6),
1786            "::",
1787            stringify!(actuatorpositive)
1788        )
1789    );
1790    assert_eq!(
1791        unsafe {
1792            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).com as *const _ as usize
1793        },
1794        128usize,
1795        concat!(
1796            "Offset of field: ",
1797            stringify!(_mjVisual__bindgen_ty_6),
1798            "::",
1799            stringify!(com)
1800        )
1801    );
1802    assert_eq!(
1803        unsafe {
1804            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).camera as *const _
1805                as usize
1806        },
1807        144usize,
1808        concat!(
1809            "Offset of field: ",
1810            stringify!(_mjVisual__bindgen_ty_6),
1811            "::",
1812            stringify!(camera)
1813        )
1814    );
1815    assert_eq!(
1816        unsafe {
1817            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).light as *const _
1818                as usize
1819        },
1820        160usize,
1821        concat!(
1822            "Offset of field: ",
1823            stringify!(_mjVisual__bindgen_ty_6),
1824            "::",
1825            stringify!(light)
1826        )
1827    );
1828    assert_eq!(
1829        unsafe {
1830            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).selectpoint as *const _
1831                as usize
1832        },
1833        176usize,
1834        concat!(
1835            "Offset of field: ",
1836            stringify!(_mjVisual__bindgen_ty_6),
1837            "::",
1838            stringify!(selectpoint)
1839        )
1840    );
1841    assert_eq!(
1842        unsafe {
1843            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).connect as *const _
1844                as usize
1845        },
1846        192usize,
1847        concat!(
1848            "Offset of field: ",
1849            stringify!(_mjVisual__bindgen_ty_6),
1850            "::",
1851            stringify!(connect)
1852        )
1853    );
1854    assert_eq!(
1855        unsafe {
1856            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).contactpoint as *const _
1857                as usize
1858        },
1859        208usize,
1860        concat!(
1861            "Offset of field: ",
1862            stringify!(_mjVisual__bindgen_ty_6),
1863            "::",
1864            stringify!(contactpoint)
1865        )
1866    );
1867    assert_eq!(
1868        unsafe {
1869            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).contactforce as *const _
1870                as usize
1871        },
1872        224usize,
1873        concat!(
1874            "Offset of field: ",
1875            stringify!(_mjVisual__bindgen_ty_6),
1876            "::",
1877            stringify!(contactforce)
1878        )
1879    );
1880    assert_eq!(
1881        unsafe {
1882            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).contactfriction
1883                as *const _ as usize
1884        },
1885        240usize,
1886        concat!(
1887            "Offset of field: ",
1888            stringify!(_mjVisual__bindgen_ty_6),
1889            "::",
1890            stringify!(contactfriction)
1891        )
1892    );
1893    assert_eq!(
1894        unsafe {
1895            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).contacttorque
1896                as *const _ as usize
1897        },
1898        256usize,
1899        concat!(
1900            "Offset of field: ",
1901            stringify!(_mjVisual__bindgen_ty_6),
1902            "::",
1903            stringify!(contacttorque)
1904        )
1905    );
1906    assert_eq!(
1907        unsafe {
1908            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).contactgap as *const _
1909                as usize
1910        },
1911        272usize,
1912        concat!(
1913            "Offset of field: ",
1914            stringify!(_mjVisual__bindgen_ty_6),
1915            "::",
1916            stringify!(contactgap)
1917        )
1918    );
1919    assert_eq!(
1920        unsafe {
1921            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).rangefinder as *const _
1922                as usize
1923        },
1924        288usize,
1925        concat!(
1926            "Offset of field: ",
1927            stringify!(_mjVisual__bindgen_ty_6),
1928            "::",
1929            stringify!(rangefinder)
1930        )
1931    );
1932    assert_eq!(
1933        unsafe {
1934            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).constraint as *const _
1935                as usize
1936        },
1937        304usize,
1938        concat!(
1939            "Offset of field: ",
1940            stringify!(_mjVisual__bindgen_ty_6),
1941            "::",
1942            stringify!(constraint)
1943        )
1944    );
1945    assert_eq!(
1946        unsafe {
1947            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).slidercrank as *const _
1948                as usize
1949        },
1950        320usize,
1951        concat!(
1952            "Offset of field: ",
1953            stringify!(_mjVisual__bindgen_ty_6),
1954            "::",
1955            stringify!(slidercrank)
1956        )
1957    );
1958    assert_eq!(
1959        unsafe {
1960            &(*(::std::ptr::null::<_mjVisual__bindgen_ty_6>())).crankbroken as *const _
1961                as usize
1962        },
1963        336usize,
1964        concat!(
1965            "Offset of field: ",
1966            stringify!(_mjVisual__bindgen_ty_6),
1967            "::",
1968            stringify!(crankbroken)
1969        )
1970    );
1971}
1972#[test]
1973fn bindgen_test_layout__mjVisual() {
1974    assert_eq!(
1975        ::std::mem::size_of::<_mjVisual>(),
1976        552usize,
1977        concat!("Size of: ", stringify!(_mjVisual))
1978    );
1979    assert_eq!(
1980        ::std::mem::align_of::<_mjVisual>(),
1981        4usize,
1982        concat!("Alignment of ", stringify!(_mjVisual))
1983    );
1984    assert_eq!(
1985        unsafe { &(*(::std::ptr::null::<_mjVisual>())).global as *const _ as usize },
1986        0usize,
1987        concat!(
1988            "Offset of field: ",
1989            stringify!(_mjVisual),
1990            "::",
1991            stringify!(global)
1992        )
1993    );
1994    assert_eq!(
1995        unsafe { &(*(::std::ptr::null::<_mjVisual>())).quality as *const _ as usize },
1996        24usize,
1997        concat!(
1998            "Offset of field: ",
1999            stringify!(_mjVisual),
2000            "::",
2001            stringify!(quality)
2002        )
2003    );
2004    assert_eq!(
2005        unsafe { &(*(::std::ptr::null::<_mjVisual>())).headlight as *const _ as usize },
2006        44usize,
2007        concat!(
2008            "Offset of field: ",
2009            stringify!(_mjVisual),
2010            "::",
2011            stringify!(headlight)
2012        )
2013    );
2014    assert_eq!(
2015        unsafe { &(*(::std::ptr::null::<_mjVisual>())).map as *const _ as usize },
2016        84usize,
2017        concat!(
2018            "Offset of field: ",
2019            stringify!(_mjVisual),
2020            "::",
2021            stringify!(map)
2022        )
2023    );
2024    assert_eq!(
2025        unsafe { &(*(::std::ptr::null::<_mjVisual>())).scale as *const _ as usize },
2026        136usize,
2027        concat!(
2028            "Offset of field: ",
2029            stringify!(_mjVisual),
2030            "::",
2031            stringify!(scale)
2032        )
2033    );
2034    assert_eq!(
2035        unsafe { &(*(::std::ptr::null::<_mjVisual>())).rgba as *const _ as usize },
2036        200usize,
2037        concat!(
2038            "Offset of field: ",
2039            stringify!(_mjVisual),
2040            "::",
2041            stringify!(rgba)
2042        )
2043    );
2044}
2045pub type mjVisual = _mjVisual;
2046#[repr(C)]
2047#[derive(Debug, Default, Copy, Clone)]
2048pub struct _mjStatistic {
2049    pub meaninertia: mjtNum,
2050    pub meanmass: mjtNum,
2051    pub meansize: mjtNum,
2052    pub extent: mjtNum,
2053    pub center: [mjtNum; 3usize],
2054}
2055#[test]
2056fn bindgen_test_layout__mjStatistic() {
2057    assert_eq!(
2058        ::std::mem::size_of::<_mjStatistic>(),
2059        56usize,
2060        concat!("Size of: ", stringify!(_mjStatistic))
2061    );
2062    assert_eq!(
2063        ::std::mem::align_of::<_mjStatistic>(),
2064        8usize,
2065        concat!("Alignment of ", stringify!(_mjStatistic))
2066    );
2067    assert_eq!(
2068        unsafe {
2069            &(*(::std::ptr::null::<_mjStatistic>())).meaninertia as *const _ as usize
2070        },
2071        0usize,
2072        concat!(
2073            "Offset of field: ",
2074            stringify!(_mjStatistic),
2075            "::",
2076            stringify!(meaninertia)
2077        )
2078    );
2079    assert_eq!(
2080        unsafe {
2081            &(*(::std::ptr::null::<_mjStatistic>())).meanmass as *const _ as usize
2082        },
2083        8usize,
2084        concat!(
2085            "Offset of field: ",
2086            stringify!(_mjStatistic),
2087            "::",
2088            stringify!(meanmass)
2089        )
2090    );
2091    assert_eq!(
2092        unsafe {
2093            &(*(::std::ptr::null::<_mjStatistic>())).meansize as *const _ as usize
2094        },
2095        16usize,
2096        concat!(
2097            "Offset of field: ",
2098            stringify!(_mjStatistic),
2099            "::",
2100            stringify!(meansize)
2101        )
2102    );
2103    assert_eq!(
2104        unsafe { &(*(::std::ptr::null::<_mjStatistic>())).extent as *const _ as usize },
2105        24usize,
2106        concat!(
2107            "Offset of field: ",
2108            stringify!(_mjStatistic),
2109            "::",
2110            stringify!(extent)
2111        )
2112    );
2113    assert_eq!(
2114        unsafe { &(*(::std::ptr::null::<_mjStatistic>())).center as *const _ as usize },
2115        32usize,
2116        concat!(
2117            "Offset of field: ",
2118            stringify!(_mjStatistic),
2119            "::",
2120            stringify!(center)
2121        )
2122    );
2123}
2124pub type mjStatistic = _mjStatistic;
2125#[repr(C)]
2126#[derive(Debug, Copy, Clone)]
2127pub struct _mjModel {
2128    pub nq: ::std::os::raw::c_int,
2129    pub nv: ::std::os::raw::c_int,
2130    pub nu: ::std::os::raw::c_int,
2131    pub na: ::std::os::raw::c_int,
2132    pub nbody: ::std::os::raw::c_int,
2133    pub njnt: ::std::os::raw::c_int,
2134    pub ngeom: ::std::os::raw::c_int,
2135    pub nsite: ::std::os::raw::c_int,
2136    pub ncam: ::std::os::raw::c_int,
2137    pub nlight: ::std::os::raw::c_int,
2138    pub nmesh: ::std::os::raw::c_int,
2139    pub nmeshvert: ::std::os::raw::c_int,
2140    pub nmeshtexvert: ::std::os::raw::c_int,
2141    pub nmeshface: ::std::os::raw::c_int,
2142    pub nmeshgraph: ::std::os::raw::c_int,
2143    pub nskin: ::std::os::raw::c_int,
2144    pub nskinvert: ::std::os::raw::c_int,
2145    pub nskintexvert: ::std::os::raw::c_int,
2146    pub nskinface: ::std::os::raw::c_int,
2147    pub nskinbone: ::std::os::raw::c_int,
2148    pub nskinbonevert: ::std::os::raw::c_int,
2149    pub nhfield: ::std::os::raw::c_int,
2150    pub nhfielddata: ::std::os::raw::c_int,
2151    pub ntex: ::std::os::raw::c_int,
2152    pub ntexdata: ::std::os::raw::c_int,
2153    pub nmat: ::std::os::raw::c_int,
2154    pub npair: ::std::os::raw::c_int,
2155    pub nexclude: ::std::os::raw::c_int,
2156    pub neq: ::std::os::raw::c_int,
2157    pub ntendon: ::std::os::raw::c_int,
2158    pub nwrap: ::std::os::raw::c_int,
2159    pub nsensor: ::std::os::raw::c_int,
2160    pub nnumeric: ::std::os::raw::c_int,
2161    pub nnumericdata: ::std::os::raw::c_int,
2162    pub ntext: ::std::os::raw::c_int,
2163    pub ntextdata: ::std::os::raw::c_int,
2164    pub ntuple: ::std::os::raw::c_int,
2165    pub ntupledata: ::std::os::raw::c_int,
2166    pub nkey: ::std::os::raw::c_int,
2167    pub nuser_body: ::std::os::raw::c_int,
2168    pub nuser_jnt: ::std::os::raw::c_int,
2169    pub nuser_geom: ::std::os::raw::c_int,
2170    pub nuser_site: ::std::os::raw::c_int,
2171    pub nuser_cam: ::std::os::raw::c_int,
2172    pub nuser_tendon: ::std::os::raw::c_int,
2173    pub nuser_actuator: ::std::os::raw::c_int,
2174    pub nuser_sensor: ::std::os::raw::c_int,
2175    pub nnames: ::std::os::raw::c_int,
2176    pub nM: ::std::os::raw::c_int,
2177    pub nemax: ::std::os::raw::c_int,
2178    pub njmax: ::std::os::raw::c_int,
2179    pub nconmax: ::std::os::raw::c_int,
2180    pub nstack: ::std::os::raw::c_int,
2181    pub nuserdata: ::std::os::raw::c_int,
2182    pub nmocap: ::std::os::raw::c_int,
2183    pub nsensordata: ::std::os::raw::c_int,
2184    pub nbuffer: ::std::os::raw::c_int,
2185    pub opt: mjOption,
2186    pub vis: mjVisual,
2187    pub stat: mjStatistic,
2188    pub buffer: *mut ::std::os::raw::c_void,
2189    pub qpos0: *mut mjtNum,
2190    pub qpos_spring: *mut mjtNum,
2191    pub body_parentid: *mut ::std::os::raw::c_int,
2192    pub body_rootid: *mut ::std::os::raw::c_int,
2193    pub body_weldid: *mut ::std::os::raw::c_int,
2194    pub body_mocapid: *mut ::std::os::raw::c_int,
2195    pub body_jntnum: *mut ::std::os::raw::c_int,
2196    pub body_jntadr: *mut ::std::os::raw::c_int,
2197    pub body_dofnum: *mut ::std::os::raw::c_int,
2198    pub body_dofadr: *mut ::std::os::raw::c_int,
2199    pub body_geomnum: *mut ::std::os::raw::c_int,
2200    pub body_geomadr: *mut ::std::os::raw::c_int,
2201    pub body_simple: *mut mjtByte,
2202    pub body_sameframe: *mut mjtByte,
2203    pub body_pos: *mut mjtNum,
2204    pub body_quat: *mut mjtNum,
2205    pub body_ipos: *mut mjtNum,
2206    pub body_iquat: *mut mjtNum,
2207    pub body_mass: *mut mjtNum,
2208    pub body_subtreemass: *mut mjtNum,
2209    pub body_inertia: *mut mjtNum,
2210    pub body_invweight0: *mut mjtNum,
2211    pub body_user: *mut mjtNum,
2212    pub jnt_type: *mut ::std::os::raw::c_int,
2213    pub jnt_qposadr: *mut ::std::os::raw::c_int,
2214    pub jnt_dofadr: *mut ::std::os::raw::c_int,
2215    pub jnt_bodyid: *mut ::std::os::raw::c_int,
2216    pub jnt_group: *mut ::std::os::raw::c_int,
2217    pub jnt_limited: *mut mjtByte,
2218    pub jnt_solref: *mut mjtNum,
2219    pub jnt_solimp: *mut mjtNum,
2220    pub jnt_pos: *mut mjtNum,
2221    pub jnt_axis: *mut mjtNum,
2222    pub jnt_stiffness: *mut mjtNum,
2223    pub jnt_range: *mut mjtNum,
2224    pub jnt_margin: *mut mjtNum,
2225    pub jnt_user: *mut mjtNum,
2226    pub dof_bodyid: *mut ::std::os::raw::c_int,
2227    pub dof_jntid: *mut ::std::os::raw::c_int,
2228    pub dof_parentid: *mut ::std::os::raw::c_int,
2229    pub dof_Madr: *mut ::std::os::raw::c_int,
2230    pub dof_simplenum: *mut ::std::os::raw::c_int,
2231    pub dof_solref: *mut mjtNum,
2232    pub dof_solimp: *mut mjtNum,
2233    pub dof_frictionloss: *mut mjtNum,
2234    pub dof_armature: *mut mjtNum,
2235    pub dof_damping: *mut mjtNum,
2236    pub dof_invweight0: *mut mjtNum,
2237    pub dof_M0: *mut mjtNum,
2238    pub geom_type: *mut ::std::os::raw::c_int,
2239    pub geom_contype: *mut ::std::os::raw::c_int,
2240    pub geom_conaffinity: *mut ::std::os::raw::c_int,
2241    pub geom_condim: *mut ::std::os::raw::c_int,
2242    pub geom_bodyid: *mut ::std::os::raw::c_int,
2243    pub geom_dataid: *mut ::std::os::raw::c_int,
2244    pub geom_matid: *mut ::std::os::raw::c_int,
2245    pub geom_group: *mut ::std::os::raw::c_int,
2246    pub geom_priority: *mut ::std::os::raw::c_int,
2247    pub geom_sameframe: *mut mjtByte,
2248    pub geom_solmix: *mut mjtNum,
2249    pub geom_solref: *mut mjtNum,
2250    pub geom_solimp: *mut mjtNum,
2251    pub geom_size: *mut mjtNum,
2252    pub geom_rbound: *mut mjtNum,
2253    pub geom_pos: *mut mjtNum,
2254    pub geom_quat: *mut mjtNum,
2255    pub geom_friction: *mut mjtNum,
2256    pub geom_margin: *mut mjtNum,
2257    pub geom_gap: *mut mjtNum,
2258    pub geom_user: *mut mjtNum,
2259    pub geom_rgba: *mut f32,
2260    pub site_type: *mut ::std::os::raw::c_int,
2261    pub site_bodyid: *mut ::std::os::raw::c_int,
2262    pub site_matid: *mut ::std::os::raw::c_int,
2263    pub site_group: *mut ::std::os::raw::c_int,
2264    pub site_sameframe: *mut mjtByte,
2265    pub site_size: *mut mjtNum,
2266    pub site_pos: *mut mjtNum,
2267    pub site_quat: *mut mjtNum,
2268    pub site_user: *mut mjtNum,
2269    pub site_rgba: *mut f32,
2270    pub cam_mode: *mut ::std::os::raw::c_int,
2271    pub cam_bodyid: *mut ::std::os::raw::c_int,
2272    pub cam_targetbodyid: *mut ::std::os::raw::c_int,
2273    pub cam_pos: *mut mjtNum,
2274    pub cam_quat: *mut mjtNum,
2275    pub cam_poscom0: *mut mjtNum,
2276    pub cam_pos0: *mut mjtNum,
2277    pub cam_mat0: *mut mjtNum,
2278    pub cam_fovy: *mut mjtNum,
2279    pub cam_ipd: *mut mjtNum,
2280    pub cam_user: *mut mjtNum,
2281    pub light_mode: *mut ::std::os::raw::c_int,
2282    pub light_bodyid: *mut ::std::os::raw::c_int,
2283    pub light_targetbodyid: *mut ::std::os::raw::c_int,
2284    pub light_directional: *mut mjtByte,
2285    pub light_castshadow: *mut mjtByte,
2286    pub light_active: *mut mjtByte,
2287    pub light_pos: *mut mjtNum,
2288    pub light_dir: *mut mjtNum,
2289    pub light_poscom0: *mut mjtNum,
2290    pub light_pos0: *mut mjtNum,
2291    pub light_dir0: *mut mjtNum,
2292    pub light_attenuation: *mut f32,
2293    pub light_cutoff: *mut f32,
2294    pub light_exponent: *mut f32,
2295    pub light_ambient: *mut f32,
2296    pub light_diffuse: *mut f32,
2297    pub light_specular: *mut f32,
2298    pub mesh_vertadr: *mut ::std::os::raw::c_int,
2299    pub mesh_vertnum: *mut ::std::os::raw::c_int,
2300    pub mesh_texcoordadr: *mut ::std::os::raw::c_int,
2301    pub mesh_faceadr: *mut ::std::os::raw::c_int,
2302    pub mesh_facenum: *mut ::std::os::raw::c_int,
2303    pub mesh_graphadr: *mut ::std::os::raw::c_int,
2304    pub mesh_vert: *mut f32,
2305    pub mesh_normal: *mut f32,
2306    pub mesh_texcoord: *mut f32,
2307    pub mesh_face: *mut ::std::os::raw::c_int,
2308    pub mesh_graph: *mut ::std::os::raw::c_int,
2309    pub skin_matid: *mut ::std::os::raw::c_int,
2310    pub skin_rgba: *mut f32,
2311    pub skin_inflate: *mut f32,
2312    pub skin_vertadr: *mut ::std::os::raw::c_int,
2313    pub skin_vertnum: *mut ::std::os::raw::c_int,
2314    pub skin_texcoordadr: *mut ::std::os::raw::c_int,
2315    pub skin_faceadr: *mut ::std::os::raw::c_int,
2316    pub skin_facenum: *mut ::std::os::raw::c_int,
2317    pub skin_boneadr: *mut ::std::os::raw::c_int,
2318    pub skin_bonenum: *mut ::std::os::raw::c_int,
2319    pub skin_vert: *mut f32,
2320    pub skin_texcoord: *mut f32,
2321    pub skin_face: *mut ::std::os::raw::c_int,
2322    pub skin_bonevertadr: *mut ::std::os::raw::c_int,
2323    pub skin_bonevertnum: *mut ::std::os::raw::c_int,
2324    pub skin_bonebindpos: *mut f32,
2325    pub skin_bonebindquat: *mut f32,
2326    pub skin_bonebodyid: *mut ::std::os::raw::c_int,
2327    pub skin_bonevertid: *mut ::std::os::raw::c_int,
2328    pub skin_bonevertweight: *mut f32,
2329    pub hfield_size: *mut mjtNum,
2330    pub hfield_nrow: *mut ::std::os::raw::c_int,
2331    pub hfield_ncol: *mut ::std::os::raw::c_int,
2332    pub hfield_adr: *mut ::std::os::raw::c_int,
2333    pub hfield_data: *mut f32,
2334    pub tex_type: *mut ::std::os::raw::c_int,
2335    pub tex_height: *mut ::std::os::raw::c_int,
2336    pub tex_width: *mut ::std::os::raw::c_int,
2337    pub tex_adr: *mut ::std::os::raw::c_int,
2338    pub tex_rgb: *mut mjtByte,
2339    pub mat_texid: *mut ::std::os::raw::c_int,
2340    pub mat_texuniform: *mut mjtByte,
2341    pub mat_texrepeat: *mut f32,
2342    pub mat_emission: *mut f32,
2343    pub mat_specular: *mut f32,
2344    pub mat_shininess: *mut f32,
2345    pub mat_reflectance: *mut f32,
2346    pub mat_rgba: *mut f32,
2347    pub pair_dim: *mut ::std::os::raw::c_int,
2348    pub pair_geom1: *mut ::std::os::raw::c_int,
2349    pub pair_geom2: *mut ::std::os::raw::c_int,
2350    pub pair_signature: *mut ::std::os::raw::c_int,
2351    pub pair_solref: *mut mjtNum,
2352    pub pair_solimp: *mut mjtNum,
2353    pub pair_margin: *mut mjtNum,
2354    pub pair_gap: *mut mjtNum,
2355    pub pair_friction: *mut mjtNum,
2356    pub exclude_signature: *mut ::std::os::raw::c_int,
2357    pub eq_type: *mut ::std::os::raw::c_int,
2358    pub eq_obj1id: *mut ::std::os::raw::c_int,
2359    pub eq_obj2id: *mut ::std::os::raw::c_int,
2360    pub eq_active: *mut mjtByte,
2361    pub eq_solref: *mut mjtNum,
2362    pub eq_solimp: *mut mjtNum,
2363    pub eq_data: *mut mjtNum,
2364    pub tendon_adr: *mut ::std::os::raw::c_int,
2365    pub tendon_num: *mut ::std::os::raw::c_int,
2366    pub tendon_matid: *mut ::std::os::raw::c_int,
2367    pub tendon_group: *mut ::std::os::raw::c_int,
2368    pub tendon_limited: *mut mjtByte,
2369    pub tendon_width: *mut mjtNum,
2370    pub tendon_solref_lim: *mut mjtNum,
2371    pub tendon_solimp_lim: *mut mjtNum,
2372    pub tendon_solref_fri: *mut mjtNum,
2373    pub tendon_solimp_fri: *mut mjtNum,
2374    pub tendon_range: *mut mjtNum,
2375    pub tendon_margin: *mut mjtNum,
2376    pub tendon_stiffness: *mut mjtNum,
2377    pub tendon_damping: *mut mjtNum,
2378    pub tendon_frictionloss: *mut mjtNum,
2379    pub tendon_lengthspring: *mut mjtNum,
2380    pub tendon_length0: *mut mjtNum,
2381    pub tendon_invweight0: *mut mjtNum,
2382    pub tendon_user: *mut mjtNum,
2383    pub tendon_rgba: *mut f32,
2384    pub wrap_type: *mut ::std::os::raw::c_int,
2385    pub wrap_objid: *mut ::std::os::raw::c_int,
2386    pub wrap_prm: *mut mjtNum,
2387    pub actuator_trntype: *mut ::std::os::raw::c_int,
2388    pub actuator_dyntype: *mut ::std::os::raw::c_int,
2389    pub actuator_gaintype: *mut ::std::os::raw::c_int,
2390    pub actuator_biastype: *mut ::std::os::raw::c_int,
2391    pub actuator_trnid: *mut ::std::os::raw::c_int,
2392    pub actuator_group: *mut ::std::os::raw::c_int,
2393    pub actuator_ctrllimited: *mut mjtByte,
2394    pub actuator_forcelimited: *mut mjtByte,
2395    pub actuator_dynprm: *mut mjtNum,
2396    pub actuator_gainprm: *mut mjtNum,
2397    pub actuator_biasprm: *mut mjtNum,
2398    pub actuator_ctrlrange: *mut mjtNum,
2399    pub actuator_forcerange: *mut mjtNum,
2400    pub actuator_gear: *mut mjtNum,
2401    pub actuator_cranklength: *mut mjtNum,
2402    pub actuator_acc0: *mut mjtNum,
2403    pub actuator_length0: *mut mjtNum,
2404    pub actuator_lengthrange: *mut mjtNum,
2405    pub actuator_user: *mut mjtNum,
2406    pub sensor_type: *mut ::std::os::raw::c_int,
2407    pub sensor_datatype: *mut ::std::os::raw::c_int,
2408    pub sensor_needstage: *mut ::std::os::raw::c_int,
2409    pub sensor_objtype: *mut ::std::os::raw::c_int,
2410    pub sensor_objid: *mut ::std::os::raw::c_int,
2411    pub sensor_dim: *mut ::std::os::raw::c_int,
2412    pub sensor_adr: *mut ::std::os::raw::c_int,
2413    pub sensor_cutoff: *mut mjtNum,
2414    pub sensor_noise: *mut mjtNum,
2415    pub sensor_user: *mut mjtNum,
2416    pub numeric_adr: *mut ::std::os::raw::c_int,
2417    pub numeric_size: *mut ::std::os::raw::c_int,
2418    pub numeric_data: *mut mjtNum,
2419    pub text_adr: *mut ::std::os::raw::c_int,
2420    pub text_size: *mut ::std::os::raw::c_int,
2421    pub text_data: *mut ::std::os::raw::c_char,
2422    pub tuple_adr: *mut ::std::os::raw::c_int,
2423    pub tuple_size: *mut ::std::os::raw::c_int,
2424    pub tuple_objtype: *mut ::std::os::raw::c_int,
2425    pub tuple_objid: *mut ::std::os::raw::c_int,
2426    pub tuple_objprm: *mut mjtNum,
2427    pub key_time: *mut mjtNum,
2428    pub key_qpos: *mut mjtNum,
2429    pub key_qvel: *mut mjtNum,
2430    pub key_act: *mut mjtNum,
2431    pub name_bodyadr: *mut ::std::os::raw::c_int,
2432    pub name_jntadr: *mut ::std::os::raw::c_int,
2433    pub name_geomadr: *mut ::std::os::raw::c_int,
2434    pub name_siteadr: *mut ::std::os::raw::c_int,
2435    pub name_camadr: *mut ::std::os::raw::c_int,
2436    pub name_lightadr: *mut ::std::os::raw::c_int,
2437    pub name_meshadr: *mut ::std::os::raw::c_int,
2438    pub name_skinadr: *mut ::std::os::raw::c_int,
2439    pub name_hfieldadr: *mut ::std::os::raw::c_int,
2440    pub name_texadr: *mut ::std::os::raw::c_int,
2441    pub name_matadr: *mut ::std::os::raw::c_int,
2442    pub name_pairadr: *mut ::std::os::raw::c_int,
2443    pub name_excludeadr: *mut ::std::os::raw::c_int,
2444    pub name_eqadr: *mut ::std::os::raw::c_int,
2445    pub name_tendonadr: *mut ::std::os::raw::c_int,
2446    pub name_actuatoradr: *mut ::std::os::raw::c_int,
2447    pub name_sensoradr: *mut ::std::os::raw::c_int,
2448    pub name_numericadr: *mut ::std::os::raw::c_int,
2449    pub name_textadr: *mut ::std::os::raw::c_int,
2450    pub name_tupleadr: *mut ::std::os::raw::c_int,
2451    pub name_keyadr: *mut ::std::os::raw::c_int,
2452    pub names: *mut ::std::os::raw::c_char,
2453}
2454#[test]
2455fn bindgen_test_layout__mjModel() {
2456    assert_eq!(
2457        ::std::mem::size_of::<_mjModel>(),
2458        3200usize,
2459        concat!("Size of: ", stringify!(_mjModel))
2460    );
2461    assert_eq!(
2462        ::std::mem::align_of::<_mjModel>(),
2463        8usize,
2464        concat!("Alignment of ", stringify!(_mjModel))
2465    );
2466    assert_eq!(
2467        unsafe { &(*(::std::ptr::null::<_mjModel>())).nq as *const _ as usize },
2468        0usize,
2469        concat!(
2470            "Offset of field: ",
2471            stringify!(_mjModel),
2472            "::",
2473            stringify!(nq)
2474        )
2475    );
2476    assert_eq!(
2477        unsafe { &(*(::std::ptr::null::<_mjModel>())).nv as *const _ as usize },
2478        4usize,
2479        concat!(
2480            "Offset of field: ",
2481            stringify!(_mjModel),
2482            "::",
2483            stringify!(nv)
2484        )
2485    );
2486    assert_eq!(
2487        unsafe { &(*(::std::ptr::null::<_mjModel>())).nu as *const _ as usize },
2488        8usize,
2489        concat!(
2490            "Offset of field: ",
2491            stringify!(_mjModel),
2492            "::",
2493            stringify!(nu)
2494        )
2495    );
2496    assert_eq!(
2497        unsafe { &(*(::std::ptr::null::<_mjModel>())).na as *const _ as usize },
2498        12usize,
2499        concat!(
2500            "Offset of field: ",
2501            stringify!(_mjModel),
2502            "::",
2503            stringify!(na)
2504        )
2505    );
2506    assert_eq!(
2507        unsafe { &(*(::std::ptr::null::<_mjModel>())).nbody as *const _ as usize },
2508        16usize,
2509        concat!(
2510            "Offset of field: ",
2511            stringify!(_mjModel),
2512            "::",
2513            stringify!(nbody)
2514        )
2515    );
2516    assert_eq!(
2517        unsafe { &(*(::std::ptr::null::<_mjModel>())).njnt as *const _ as usize },
2518        20usize,
2519        concat!(
2520            "Offset of field: ",
2521            stringify!(_mjModel),
2522            "::",
2523            stringify!(njnt)
2524        )
2525    );
2526    assert_eq!(
2527        unsafe { &(*(::std::ptr::null::<_mjModel>())).ngeom as *const _ as usize },
2528        24usize,
2529        concat!(
2530            "Offset of field: ",
2531            stringify!(_mjModel),
2532            "::",
2533            stringify!(ngeom)
2534        )
2535    );
2536    assert_eq!(
2537        unsafe { &(*(::std::ptr::null::<_mjModel>())).nsite as *const _ as usize },
2538        28usize,
2539        concat!(
2540            "Offset of field: ",
2541            stringify!(_mjModel),
2542            "::",
2543            stringify!(nsite)
2544        )
2545    );
2546    assert_eq!(
2547        unsafe { &(*(::std::ptr::null::<_mjModel>())).ncam as *const _ as usize },
2548        32usize,
2549        concat!(
2550            "Offset of field: ",
2551            stringify!(_mjModel),
2552            "::",
2553            stringify!(ncam)
2554        )
2555    );
2556    assert_eq!(
2557        unsafe { &(*(::std::ptr::null::<_mjModel>())).nlight as *const _ as usize },
2558        36usize,
2559        concat!(
2560            "Offset of field: ",
2561            stringify!(_mjModel),
2562            "::",
2563            stringify!(nlight)
2564        )
2565    );
2566    assert_eq!(
2567        unsafe { &(*(::std::ptr::null::<_mjModel>())).nmesh as *const _ as usize },
2568        40usize,
2569        concat!(
2570            "Offset of field: ",
2571            stringify!(_mjModel),
2572            "::",
2573            stringify!(nmesh)
2574        )
2575    );
2576    assert_eq!(
2577        unsafe { &(*(::std::ptr::null::<_mjModel>())).nmeshvert as *const _ as usize },
2578        44usize,
2579        concat!(
2580            "Offset of field: ",
2581            stringify!(_mjModel),
2582            "::",
2583            stringify!(nmeshvert)
2584        )
2585    );
2586    assert_eq!(
2587        unsafe {
2588            &(*(::std::ptr::null::<_mjModel>())).nmeshtexvert as *const _ as usize
2589        },
2590        48usize,
2591        concat!(
2592            "Offset of field: ",
2593            stringify!(_mjModel),
2594            "::",
2595            stringify!(nmeshtexvert)
2596        )
2597    );
2598    assert_eq!(
2599        unsafe { &(*(::std::ptr::null::<_mjModel>())).nmeshface as *const _ as usize },
2600        52usize,
2601        concat!(
2602            "Offset of field: ",
2603            stringify!(_mjModel),
2604            "::",
2605            stringify!(nmeshface)
2606        )
2607    );
2608    assert_eq!(
2609        unsafe { &(*(::std::ptr::null::<_mjModel>())).nmeshgraph as *const _ as usize },
2610        56usize,
2611        concat!(
2612            "Offset of field: ",
2613            stringify!(_mjModel),
2614            "::",
2615            stringify!(nmeshgraph)
2616        )
2617    );
2618    assert_eq!(
2619        unsafe { &(*(::std::ptr::null::<_mjModel>())).nskin as *const _ as usize },
2620        60usize,
2621        concat!(
2622            "Offset of field: ",
2623            stringify!(_mjModel),
2624            "::",
2625            stringify!(nskin)
2626        )
2627    );
2628    assert_eq!(
2629        unsafe { &(*(::std::ptr::null::<_mjModel>())).nskinvert as *const _ as usize },
2630        64usize,
2631        concat!(
2632            "Offset of field: ",
2633            stringify!(_mjModel),
2634            "::",
2635            stringify!(nskinvert)
2636        )
2637    );
2638    assert_eq!(
2639        unsafe {
2640            &(*(::std::ptr::null::<_mjModel>())).nskintexvert as *const _ as usize
2641        },
2642        68usize,
2643        concat!(
2644            "Offset of field: ",
2645            stringify!(_mjModel),
2646            "::",
2647            stringify!(nskintexvert)
2648        )
2649    );
2650    assert_eq!(
2651        unsafe { &(*(::std::ptr::null::<_mjModel>())).nskinface as *const _ as usize },
2652        72usize,
2653        concat!(
2654            "Offset of field: ",
2655            stringify!(_mjModel),
2656            "::",
2657            stringify!(nskinface)
2658        )
2659    );
2660    assert_eq!(
2661        unsafe { &(*(::std::ptr::null::<_mjModel>())).nskinbone as *const _ as usize },
2662        76usize,
2663        concat!(
2664            "Offset of field: ",
2665            stringify!(_mjModel),
2666            "::",
2667            stringify!(nskinbone)
2668        )
2669    );
2670    assert_eq!(
2671        unsafe {
2672            &(*(::std::ptr::null::<_mjModel>())).nskinbonevert as *const _ as usize
2673        },
2674        80usize,
2675        concat!(
2676            "Offset of field: ",
2677            stringify!(_mjModel),
2678            "::",
2679            stringify!(nskinbonevert)
2680        )
2681    );
2682    assert_eq!(
2683        unsafe { &(*(::std::ptr::null::<_mjModel>())).nhfield as *const _ as usize },
2684        84usize,
2685        concat!(
2686            "Offset of field: ",
2687            stringify!(_mjModel),
2688            "::",
2689            stringify!(nhfield)
2690        )
2691    );
2692    assert_eq!(
2693        unsafe {
2694            &(*(::std::ptr::null::<_mjModel>())).nhfielddata as *const _ as usize
2695        },
2696        88usize,
2697        concat!(
2698            "Offset of field: ",
2699            stringify!(_mjModel),
2700            "::",
2701            stringify!(nhfielddata)
2702        )
2703    );
2704    assert_eq!(
2705        unsafe { &(*(::std::ptr::null::<_mjModel>())).ntex as *const _ as usize },
2706        92usize,
2707        concat!(
2708            "Offset of field: ",
2709            stringify!(_mjModel),
2710            "::",
2711            stringify!(ntex)
2712        )
2713    );
2714    assert_eq!(
2715        unsafe { &(*(::std::ptr::null::<_mjModel>())).ntexdata as *const _ as usize },
2716        96usize,
2717        concat!(
2718            "Offset of field: ",
2719            stringify!(_mjModel),
2720            "::",
2721            stringify!(ntexdata)
2722        )
2723    );
2724    assert_eq!(
2725        unsafe { &(*(::std::ptr::null::<_mjModel>())).nmat as *const _ as usize },
2726        100usize,
2727        concat!(
2728            "Offset of field: ",
2729            stringify!(_mjModel),
2730            "::",
2731            stringify!(nmat)
2732        )
2733    );
2734    assert_eq!(
2735        unsafe { &(*(::std::ptr::null::<_mjModel>())).npair as *const _ as usize },
2736        104usize,
2737        concat!(
2738            "Offset of field: ",
2739            stringify!(_mjModel),
2740            "::",
2741            stringify!(npair)
2742        )
2743    );
2744    assert_eq!(
2745        unsafe { &(*(::std::ptr::null::<_mjModel>())).nexclude as *const _ as usize },
2746        108usize,
2747        concat!(
2748            "Offset of field: ",
2749            stringify!(_mjModel),
2750            "::",
2751            stringify!(nexclude)
2752        )
2753    );
2754    assert_eq!(
2755        unsafe { &(*(::std::ptr::null::<_mjModel>())).neq as *const _ as usize },
2756        112usize,
2757        concat!(
2758            "Offset of field: ",
2759            stringify!(_mjModel),
2760            "::",
2761            stringify!(neq)
2762        )
2763    );
2764    assert_eq!(
2765        unsafe { &(*(::std::ptr::null::<_mjModel>())).ntendon as *const _ as usize },
2766        116usize,
2767        concat!(
2768            "Offset of field: ",
2769            stringify!(_mjModel),
2770            "::",
2771            stringify!(ntendon)
2772        )
2773    );
2774    assert_eq!(
2775        unsafe { &(*(::std::ptr::null::<_mjModel>())).nwrap as *const _ as usize },
2776        120usize,
2777        concat!(
2778            "Offset of field: ",
2779            stringify!(_mjModel),
2780            "::",
2781            stringify!(nwrap)
2782        )
2783    );
2784    assert_eq!(
2785        unsafe { &(*(::std::ptr::null::<_mjModel>())).nsensor as *const _ as usize },
2786        124usize,
2787        concat!(
2788            "Offset of field: ",
2789            stringify!(_mjModel),
2790            "::",
2791            stringify!(nsensor)
2792        )
2793    );
2794    assert_eq!(
2795        unsafe { &(*(::std::ptr::null::<_mjModel>())).nnumeric as *const _ as usize },
2796        128usize,
2797        concat!(
2798            "Offset of field: ",
2799            stringify!(_mjModel),
2800            "::",
2801            stringify!(nnumeric)
2802        )
2803    );
2804    assert_eq!(
2805        unsafe {
2806            &(*(::std::ptr::null::<_mjModel>())).nnumericdata as *const _ as usize
2807        },
2808        132usize,
2809        concat!(
2810            "Offset of field: ",
2811            stringify!(_mjModel),
2812            "::",
2813            stringify!(nnumericdata)
2814        )
2815    );
2816    assert_eq!(
2817        unsafe { &(*(::std::ptr::null::<_mjModel>())).ntext as *const _ as usize },
2818        136usize,
2819        concat!(
2820            "Offset of field: ",
2821            stringify!(_mjModel),
2822            "::",
2823            stringify!(ntext)
2824        )
2825    );
2826    assert_eq!(
2827        unsafe { &(*(::std::ptr::null::<_mjModel>())).ntextdata as *const _ as usize },
2828        140usize,
2829        concat!(
2830            "Offset of field: ",
2831            stringify!(_mjModel),
2832            "::",
2833            stringify!(ntextdata)
2834        )
2835    );
2836    assert_eq!(
2837        unsafe { &(*(::std::ptr::null::<_mjModel>())).ntuple as *const _ as usize },
2838        144usize,
2839        concat!(
2840            "Offset of field: ",
2841            stringify!(_mjModel),
2842            "::",
2843            stringify!(ntuple)
2844        )
2845    );
2846    assert_eq!(
2847        unsafe { &(*(::std::ptr::null::<_mjModel>())).ntupledata as *const _ as usize },
2848        148usize,
2849        concat!(
2850            "Offset of field: ",
2851            stringify!(_mjModel),
2852            "::",
2853            stringify!(ntupledata)
2854        )
2855    );
2856    assert_eq!(
2857        unsafe { &(*(::std::ptr::null::<_mjModel>())).nkey as *const _ as usize },
2858        152usize,
2859        concat!(
2860            "Offset of field: ",
2861            stringify!(_mjModel),
2862            "::",
2863            stringify!(nkey)
2864        )
2865    );
2866    assert_eq!(
2867        unsafe { &(*(::std::ptr::null::<_mjModel>())).nuser_body as *const _ as usize },
2868        156usize,
2869        concat!(
2870            "Offset of field: ",
2871            stringify!(_mjModel),
2872            "::",
2873            stringify!(nuser_body)
2874        )
2875    );
2876    assert_eq!(
2877        unsafe { &(*(::std::ptr::null::<_mjModel>())).nuser_jnt as *const _ as usize },
2878        160usize,
2879        concat!(
2880            "Offset of field: ",
2881            stringify!(_mjModel),
2882            "::",
2883            stringify!(nuser_jnt)
2884        )
2885    );
2886    assert_eq!(
2887        unsafe { &(*(::std::ptr::null::<_mjModel>())).nuser_geom as *const _ as usize },
2888        164usize,
2889        concat!(
2890            "Offset of field: ",
2891            stringify!(_mjModel),
2892            "::",
2893            stringify!(nuser_geom)
2894        )
2895    );
2896    assert_eq!(
2897        unsafe { &(*(::std::ptr::null::<_mjModel>())).nuser_site as *const _ as usize },
2898        168usize,
2899        concat!(
2900            "Offset of field: ",
2901            stringify!(_mjModel),
2902            "::",
2903            stringify!(nuser_site)
2904        )
2905    );
2906    assert_eq!(
2907        unsafe { &(*(::std::ptr::null::<_mjModel>())).nuser_cam as *const _ as usize },
2908        172usize,
2909        concat!(
2910            "Offset of field: ",
2911            stringify!(_mjModel),
2912            "::",
2913            stringify!(nuser_cam)
2914        )
2915    );
2916    assert_eq!(
2917        unsafe {
2918            &(*(::std::ptr::null::<_mjModel>())).nuser_tendon as *const _ as usize
2919        },
2920        176usize,
2921        concat!(
2922            "Offset of field: ",
2923            stringify!(_mjModel),
2924            "::",
2925            stringify!(nuser_tendon)
2926        )
2927    );
2928    assert_eq!(
2929        unsafe {
2930            &(*(::std::ptr::null::<_mjModel>())).nuser_actuator as *const _ as usize
2931        },
2932        180usize,
2933        concat!(
2934            "Offset of field: ",
2935            stringify!(_mjModel),
2936            "::",
2937            stringify!(nuser_actuator)
2938        )
2939    );
2940    assert_eq!(
2941        unsafe {
2942            &(*(::std::ptr::null::<_mjModel>())).nuser_sensor as *const _ as usize
2943        },
2944        184usize,
2945        concat!(
2946            "Offset of field: ",
2947            stringify!(_mjModel),
2948            "::",
2949            stringify!(nuser_sensor)
2950        )
2951    );
2952    assert_eq!(
2953        unsafe { &(*(::std::ptr::null::<_mjModel>())).nnames as *const _ as usize },
2954        188usize,
2955        concat!(
2956            "Offset of field: ",
2957            stringify!(_mjModel),
2958            "::",
2959            stringify!(nnames)
2960        )
2961    );
2962    assert_eq!(
2963        unsafe { &(*(::std::ptr::null::<_mjModel>())).nM as *const _ as usize },
2964        192usize,
2965        concat!(
2966            "Offset of field: ",
2967            stringify!(_mjModel),
2968            "::",
2969            stringify!(nM)
2970        )
2971    );
2972    assert_eq!(
2973        unsafe { &(*(::std::ptr::null::<_mjModel>())).nemax as *const _ as usize },
2974        196usize,
2975        concat!(
2976            "Offset of field: ",
2977            stringify!(_mjModel),
2978            "::",
2979            stringify!(nemax)
2980        )
2981    );
2982    assert_eq!(
2983        unsafe { &(*(::std::ptr::null::<_mjModel>())).njmax as *const _ as usize },
2984        200usize,
2985        concat!(
2986            "Offset of field: ",
2987            stringify!(_mjModel),
2988            "::",
2989            stringify!(njmax)
2990        )
2991    );
2992    assert_eq!(
2993        unsafe { &(*(::std::ptr::null::<_mjModel>())).nconmax as *const _ as usize },
2994        204usize,
2995        concat!(
2996            "Offset of field: ",
2997            stringify!(_mjModel),
2998            "::",
2999            stringify!(nconmax)
3000        )
3001    );
3002    assert_eq!(
3003        unsafe { &(*(::std::ptr::null::<_mjModel>())).nstack as *const _ as usize },
3004        208usize,
3005        concat!(
3006            "Offset of field: ",
3007            stringify!(_mjModel),
3008            "::",
3009            stringify!(nstack)
3010        )
3011    );
3012    assert_eq!(
3013        unsafe { &(*(::std::ptr::null::<_mjModel>())).nuserdata as *const _ as usize },
3014        212usize,
3015        concat!(
3016            "Offset of field: ",
3017            stringify!(_mjModel),
3018            "::",
3019            stringify!(nuserdata)
3020        )
3021    );
3022    assert_eq!(
3023        unsafe { &(*(::std::ptr::null::<_mjModel>())).nmocap as *const _ as usize },
3024        216usize,
3025        concat!(
3026            "Offset of field: ",
3027            stringify!(_mjModel),
3028            "::",
3029            stringify!(nmocap)
3030        )
3031    );
3032    assert_eq!(
3033        unsafe {
3034            &(*(::std::ptr::null::<_mjModel>())).nsensordata as *const _ as usize
3035        },
3036        220usize,
3037        concat!(
3038            "Offset of field: ",
3039            stringify!(_mjModel),
3040            "::",
3041            stringify!(nsensordata)
3042        )
3043    );
3044    assert_eq!(
3045        unsafe { &(*(::std::ptr::null::<_mjModel>())).nbuffer as *const _ as usize },
3046        224usize,
3047        concat!(
3048            "Offset of field: ",
3049            stringify!(_mjModel),
3050            "::",
3051            stringify!(nbuffer)
3052        )
3053    );
3054    assert_eq!(
3055        unsafe { &(*(::std::ptr::null::<_mjModel>())).opt as *const _ as usize },
3056        232usize,
3057        concat!(
3058            "Offset of field: ",
3059            stringify!(_mjModel),
3060            "::",
3061            stringify!(opt)
3062        )
3063    );
3064    assert_eq!(
3065        unsafe { &(*(::std::ptr::null::<_mjModel>())).vis as *const _ as usize },
3066        472usize,
3067        concat!(
3068            "Offset of field: ",
3069            stringify!(_mjModel),
3070            "::",
3071            stringify!(vis)
3072        )
3073    );
3074    assert_eq!(
3075        unsafe { &(*(::std::ptr::null::<_mjModel>())).stat as *const _ as usize },
3076        1024usize,
3077        concat!(
3078            "Offset of field: ",
3079            stringify!(_mjModel),
3080            "::",
3081            stringify!(stat)
3082        )
3083    );
3084    assert_eq!(
3085        unsafe { &(*(::std::ptr::null::<_mjModel>())).buffer as *const _ as usize },
3086        1080usize,
3087        concat!(
3088            "Offset of field: ",
3089            stringify!(_mjModel),
3090            "::",
3091            stringify!(buffer)
3092        )
3093    );
3094    assert_eq!(
3095        unsafe { &(*(::std::ptr::null::<_mjModel>())).qpos0 as *const _ as usize },
3096        1088usize,
3097        concat!(
3098            "Offset of field: ",
3099            stringify!(_mjModel),
3100            "::",
3101            stringify!(qpos0)
3102        )
3103    );
3104    assert_eq!(
3105        unsafe {
3106            &(*(::std::ptr::null::<_mjModel>())).qpos_spring as *const _ as usize
3107        },
3108        1096usize,
3109        concat!(
3110            "Offset of field: ",
3111            stringify!(_mjModel),
3112            "::",
3113            stringify!(qpos_spring)
3114        )
3115    );
3116    assert_eq!(
3117        unsafe {
3118            &(*(::std::ptr::null::<_mjModel>())).body_parentid as *const _ as usize
3119        },
3120        1104usize,
3121        concat!(
3122            "Offset of field: ",
3123            stringify!(_mjModel),
3124            "::",
3125            stringify!(body_parentid)
3126        )
3127    );
3128    assert_eq!(
3129        unsafe {
3130            &(*(::std::ptr::null::<_mjModel>())).body_rootid as *const _ as usize
3131        },
3132        1112usize,
3133        concat!(
3134            "Offset of field: ",
3135            stringify!(_mjModel),
3136            "::",
3137            stringify!(body_rootid)
3138        )
3139    );
3140    assert_eq!(
3141        unsafe {
3142            &(*(::std::ptr::null::<_mjModel>())).body_weldid as *const _ as usize
3143        },
3144        1120usize,
3145        concat!(
3146            "Offset of field: ",
3147            stringify!(_mjModel),
3148            "::",
3149            stringify!(body_weldid)
3150        )
3151    );
3152    assert_eq!(
3153        unsafe {
3154            &(*(::std::ptr::null::<_mjModel>())).body_mocapid as *const _ as usize
3155        },
3156        1128usize,
3157        concat!(
3158            "Offset of field: ",
3159            stringify!(_mjModel),
3160            "::",
3161            stringify!(body_mocapid)
3162        )
3163    );
3164    assert_eq!(
3165        unsafe {
3166            &(*(::std::ptr::null::<_mjModel>())).body_jntnum as *const _ as usize
3167        },
3168        1136usize,
3169        concat!(
3170            "Offset of field: ",
3171            stringify!(_mjModel),
3172            "::",
3173            stringify!(body_jntnum)
3174        )
3175    );
3176    assert_eq!(
3177        unsafe {
3178            &(*(::std::ptr::null::<_mjModel>())).body_jntadr as *const _ as usize
3179        },
3180        1144usize,
3181        concat!(
3182            "Offset of field: ",
3183            stringify!(_mjModel),
3184            "::",
3185            stringify!(body_jntadr)
3186        )
3187    );
3188    assert_eq!(
3189        unsafe {
3190            &(*(::std::ptr::null::<_mjModel>())).body_dofnum as *const _ as usize
3191        },
3192        1152usize,
3193        concat!(
3194            "Offset of field: ",
3195            stringify!(_mjModel),
3196            "::",
3197            stringify!(body_dofnum)
3198        )
3199    );
3200    assert_eq!(
3201        unsafe {
3202            &(*(::std::ptr::null::<_mjModel>())).body_dofadr as *const _ as usize
3203        },
3204        1160usize,
3205        concat!(
3206            "Offset of field: ",
3207            stringify!(_mjModel),
3208            "::",
3209            stringify!(body_dofadr)
3210        )
3211    );
3212    assert_eq!(
3213        unsafe {
3214            &(*(::std::ptr::null::<_mjModel>())).body_geomnum as *const _ as usize
3215        },
3216        1168usize,
3217        concat!(
3218            "Offset of field: ",
3219            stringify!(_mjModel),
3220            "::",
3221            stringify!(body_geomnum)
3222        )
3223    );
3224    assert_eq!(
3225        unsafe {
3226            &(*(::std::ptr::null::<_mjModel>())).body_geomadr as *const _ as usize
3227        },
3228        1176usize,
3229        concat!(
3230            "Offset of field: ",
3231            stringify!(_mjModel),
3232            "::",
3233            stringify!(body_geomadr)
3234        )
3235    );
3236    assert_eq!(
3237        unsafe {
3238            &(*(::std::ptr::null::<_mjModel>())).body_simple as *const _ as usize
3239        },
3240        1184usize,
3241        concat!(
3242            "Offset of field: ",
3243            stringify!(_mjModel),
3244            "::",
3245            stringify!(body_simple)
3246        )
3247    );
3248    assert_eq!(
3249        unsafe {
3250            &(*(::std::ptr::null::<_mjModel>())).body_sameframe as *const _ as usize
3251        },
3252        1192usize,
3253        concat!(
3254            "Offset of field: ",
3255            stringify!(_mjModel),
3256            "::",
3257            stringify!(body_sameframe)
3258        )
3259    );
3260    assert_eq!(
3261        unsafe { &(*(::std::ptr::null::<_mjModel>())).body_pos as *const _ as usize },
3262        1200usize,
3263        concat!(
3264            "Offset of field: ",
3265            stringify!(_mjModel),
3266            "::",
3267            stringify!(body_pos)
3268        )
3269    );
3270    assert_eq!(
3271        unsafe { &(*(::std::ptr::null::<_mjModel>())).body_quat as *const _ as usize },
3272        1208usize,
3273        concat!(
3274            "Offset of field: ",
3275            stringify!(_mjModel),
3276            "::",
3277            stringify!(body_quat)
3278        )
3279    );
3280    assert_eq!(
3281        unsafe { &(*(::std::ptr::null::<_mjModel>())).body_ipos as *const _ as usize },
3282        1216usize,
3283        concat!(
3284            "Offset of field: ",
3285            stringify!(_mjModel),
3286            "::",
3287            stringify!(body_ipos)
3288        )
3289    );
3290    assert_eq!(
3291        unsafe { &(*(::std::ptr::null::<_mjModel>())).body_iquat as *const _ as usize },
3292        1224usize,
3293        concat!(
3294            "Offset of field: ",
3295            stringify!(_mjModel),
3296            "::",
3297            stringify!(body_iquat)
3298        )
3299    );
3300    assert_eq!(
3301        unsafe { &(*(::std::ptr::null::<_mjModel>())).body_mass as *const _ as usize },
3302        1232usize,
3303        concat!(
3304            "Offset of field: ",
3305            stringify!(_mjModel),
3306            "::",
3307            stringify!(body_mass)
3308        )
3309    );
3310    assert_eq!(
3311        unsafe {
3312            &(*(::std::ptr::null::<_mjModel>())).body_subtreemass as *const _ as usize
3313        },
3314        1240usize,
3315        concat!(
3316            "Offset of field: ",
3317            stringify!(_mjModel),
3318            "::",
3319            stringify!(body_subtreemass)
3320        )
3321    );
3322    assert_eq!(
3323        unsafe {
3324            &(*(::std::ptr::null::<_mjModel>())).body_inertia as *const _ as usize
3325        },
3326        1248usize,
3327        concat!(
3328            "Offset of field: ",
3329            stringify!(_mjModel),
3330            "::",
3331            stringify!(body_inertia)
3332        )
3333    );
3334    assert_eq!(
3335        unsafe {
3336            &(*(::std::ptr::null::<_mjModel>())).body_invweight0 as *const _ as usize
3337        },
3338        1256usize,
3339        concat!(
3340            "Offset of field: ",
3341            stringify!(_mjModel),
3342            "::",
3343            stringify!(body_invweight0)
3344        )
3345    );
3346    assert_eq!(
3347        unsafe { &(*(::std::ptr::null::<_mjModel>())).body_user as *const _ as usize },
3348        1264usize,
3349        concat!(
3350            "Offset of field: ",
3351            stringify!(_mjModel),
3352            "::",
3353            stringify!(body_user)
3354        )
3355    );
3356    assert_eq!(
3357        unsafe { &(*(::std::ptr::null::<_mjModel>())).jnt_type as *const _ as usize },
3358        1272usize,
3359        concat!(
3360            "Offset of field: ",
3361            stringify!(_mjModel),
3362            "::",
3363            stringify!(jnt_type)
3364        )
3365    );
3366    assert_eq!(
3367        unsafe {
3368            &(*(::std::ptr::null::<_mjModel>())).jnt_qposadr as *const _ as usize
3369        },
3370        1280usize,
3371        concat!(
3372            "Offset of field: ",
3373            stringify!(_mjModel),
3374            "::",
3375            stringify!(jnt_qposadr)
3376        )
3377    );
3378    assert_eq!(
3379        unsafe { &(*(::std::ptr::null::<_mjModel>())).jnt_dofadr as *const _ as usize },
3380        1288usize,
3381        concat!(
3382            "Offset of field: ",
3383            stringify!(_mjModel),
3384            "::",
3385            stringify!(jnt_dofadr)
3386        )
3387    );
3388    assert_eq!(
3389        unsafe { &(*(::std::ptr::null::<_mjModel>())).jnt_bodyid as *const _ as usize },
3390        1296usize,
3391        concat!(
3392            "Offset of field: ",
3393            stringify!(_mjModel),
3394            "::",
3395            stringify!(jnt_bodyid)
3396        )
3397    );
3398    assert_eq!(
3399        unsafe { &(*(::std::ptr::null::<_mjModel>())).jnt_group as *const _ as usize },
3400        1304usize,
3401        concat!(
3402            "Offset of field: ",
3403            stringify!(_mjModel),
3404            "::",
3405            stringify!(jnt_group)
3406        )
3407    );
3408    assert_eq!(
3409        unsafe {
3410            &(*(::std::ptr::null::<_mjModel>())).jnt_limited as *const _ as usize
3411        },
3412        1312usize,
3413        concat!(
3414            "Offset of field: ",
3415            stringify!(_mjModel),
3416            "::",
3417            stringify!(jnt_limited)
3418        )
3419    );
3420    assert_eq!(
3421        unsafe { &(*(::std::ptr::null::<_mjModel>())).jnt_solref as *const _ as usize },
3422        1320usize,
3423        concat!(
3424            "Offset of field: ",
3425            stringify!(_mjModel),
3426            "::",
3427            stringify!(jnt_solref)
3428        )
3429    );
3430    assert_eq!(
3431        unsafe { &(*(::std::ptr::null::<_mjModel>())).jnt_solimp as *const _ as usize },
3432        1328usize,
3433        concat!(
3434            "Offset of field: ",
3435            stringify!(_mjModel),
3436            "::",
3437            stringify!(jnt_solimp)
3438        )
3439    );
3440    assert_eq!(
3441        unsafe { &(*(::std::ptr::null::<_mjModel>())).jnt_pos as *const _ as usize },
3442        1336usize,
3443        concat!(
3444            "Offset of field: ",
3445            stringify!(_mjModel),
3446            "::",
3447            stringify!(jnt_pos)
3448        )
3449    );
3450    assert_eq!(
3451        unsafe { &(*(::std::ptr::null::<_mjModel>())).jnt_axis as *const _ as usize },
3452        1344usize,
3453        concat!(
3454            "Offset of field: ",
3455            stringify!(_mjModel),
3456            "::",
3457            stringify!(jnt_axis)
3458        )
3459    );
3460    assert_eq!(
3461        unsafe {
3462            &(*(::std::ptr::null::<_mjModel>())).jnt_stiffness as *const _ as usize
3463        },
3464        1352usize,
3465        concat!(
3466            "Offset of field: ",
3467            stringify!(_mjModel),
3468            "::",
3469            stringify!(jnt_stiffness)
3470        )
3471    );
3472    assert_eq!(
3473        unsafe { &(*(::std::ptr::null::<_mjModel>())).jnt_range as *const _ as usize },
3474        1360usize,
3475        concat!(
3476            "Offset of field: ",
3477            stringify!(_mjModel),
3478            "::",
3479            stringify!(jnt_range)
3480        )
3481    );
3482    assert_eq!(
3483        unsafe { &(*(::std::ptr::null::<_mjModel>())).jnt_margin as *const _ as usize },
3484        1368usize,
3485        concat!(
3486            "Offset of field: ",
3487            stringify!(_mjModel),
3488            "::",
3489            stringify!(jnt_margin)
3490        )
3491    );
3492    assert_eq!(
3493        unsafe { &(*(::std::ptr::null::<_mjModel>())).jnt_user as *const _ as usize },
3494        1376usize,
3495        concat!(
3496            "Offset of field: ",
3497            stringify!(_mjModel),
3498            "::",
3499            stringify!(jnt_user)
3500        )
3501    );
3502    assert_eq!(
3503        unsafe { &(*(::std::ptr::null::<_mjModel>())).dof_bodyid as *const _ as usize },
3504        1384usize,
3505        concat!(
3506            "Offset of field: ",
3507            stringify!(_mjModel),
3508            "::",
3509            stringify!(dof_bodyid)
3510        )
3511    );
3512    assert_eq!(
3513        unsafe { &(*(::std::ptr::null::<_mjModel>())).dof_jntid as *const _ as usize },
3514        1392usize,
3515        concat!(
3516            "Offset of field: ",
3517            stringify!(_mjModel),
3518            "::",
3519            stringify!(dof_jntid)
3520        )
3521    );
3522    assert_eq!(
3523        unsafe {
3524            &(*(::std::ptr::null::<_mjModel>())).dof_parentid as *const _ as usize
3525        },
3526        1400usize,
3527        concat!(
3528            "Offset of field: ",
3529            stringify!(_mjModel),
3530            "::",
3531            stringify!(dof_parentid)
3532        )
3533    );
3534    assert_eq!(
3535        unsafe { &(*(::std::ptr::null::<_mjModel>())).dof_Madr as *const _ as usize },
3536        1408usize,
3537        concat!(
3538            "Offset of field: ",
3539            stringify!(_mjModel),
3540            "::",
3541            stringify!(dof_Madr)
3542        )
3543    );
3544    assert_eq!(
3545        unsafe {
3546            &(*(::std::ptr::null::<_mjModel>())).dof_simplenum as *const _ as usize
3547        },
3548        1416usize,
3549        concat!(
3550            "Offset of field: ",
3551            stringify!(_mjModel),
3552            "::",
3553            stringify!(dof_simplenum)
3554        )
3555    );
3556    assert_eq!(
3557        unsafe { &(*(::std::ptr::null::<_mjModel>())).dof_solref as *const _ as usize },
3558        1424usize,
3559        concat!(
3560            "Offset of field: ",
3561            stringify!(_mjModel),
3562            "::",
3563            stringify!(dof_solref)
3564        )
3565    );
3566    assert_eq!(
3567        unsafe { &(*(::std::ptr::null::<_mjModel>())).dof_solimp as *const _ as usize },
3568        1432usize,
3569        concat!(
3570            "Offset of field: ",
3571            stringify!(_mjModel),
3572            "::",
3573            stringify!(dof_solimp)
3574        )
3575    );
3576    assert_eq!(
3577        unsafe {
3578            &(*(::std::ptr::null::<_mjModel>())).dof_frictionloss as *const _ as usize
3579        },
3580        1440usize,
3581        concat!(
3582            "Offset of field: ",
3583            stringify!(_mjModel),
3584            "::",
3585            stringify!(dof_frictionloss)
3586        )
3587    );
3588    assert_eq!(
3589        unsafe {
3590            &(*(::std::ptr::null::<_mjModel>())).dof_armature as *const _ as usize
3591        },
3592        1448usize,
3593        concat!(
3594            "Offset of field: ",
3595            stringify!(_mjModel),
3596            "::",
3597            stringify!(dof_armature)
3598        )
3599    );
3600    assert_eq!(
3601        unsafe {
3602            &(*(::std::ptr::null::<_mjModel>())).dof_damping as *const _ as usize
3603        },
3604        1456usize,
3605        concat!(
3606            "Offset of field: ",
3607            stringify!(_mjModel),
3608            "::",
3609            stringify!(dof_damping)
3610        )
3611    );
3612    assert_eq!(
3613        unsafe {
3614            &(*(::std::ptr::null::<_mjModel>())).dof_invweight0 as *const _ as usize
3615        },
3616        1464usize,
3617        concat!(
3618            "Offset of field: ",
3619            stringify!(_mjModel),
3620            "::",
3621            stringify!(dof_invweight0)
3622        )
3623    );
3624    assert_eq!(
3625        unsafe { &(*(::std::ptr::null::<_mjModel>())).dof_M0 as *const _ as usize },
3626        1472usize,
3627        concat!(
3628            "Offset of field: ",
3629            stringify!(_mjModel),
3630            "::",
3631            stringify!(dof_M0)
3632        )
3633    );
3634    assert_eq!(
3635        unsafe { &(*(::std::ptr::null::<_mjModel>())).geom_type as *const _ as usize },
3636        1480usize,
3637        concat!(
3638            "Offset of field: ",
3639            stringify!(_mjModel),
3640            "::",
3641            stringify!(geom_type)
3642        )
3643    );
3644    assert_eq!(
3645        unsafe {
3646            &(*(::std::ptr::null::<_mjModel>())).geom_contype as *const _ as usize
3647        },
3648        1488usize,
3649        concat!(
3650            "Offset of field: ",
3651            stringify!(_mjModel),
3652            "::",
3653            stringify!(geom_contype)
3654        )
3655    );
3656    assert_eq!(
3657        unsafe {
3658            &(*(::std::ptr::null::<_mjModel>())).geom_conaffinity as *const _ as usize
3659        },
3660        1496usize,
3661        concat!(
3662            "Offset of field: ",
3663            stringify!(_mjModel),
3664            "::",
3665            stringify!(geom_conaffinity)
3666        )
3667    );
3668    assert_eq!(
3669        unsafe {
3670            &(*(::std::ptr::null::<_mjModel>())).geom_condim as *const _ as usize
3671        },
3672        1504usize,
3673        concat!(
3674            "Offset of field: ",
3675            stringify!(_mjModel),
3676            "::",
3677            stringify!(geom_condim)
3678        )
3679    );
3680    assert_eq!(
3681        unsafe {
3682            &(*(::std::ptr::null::<_mjModel>())).geom_bodyid as *const _ as usize
3683        },
3684        1512usize,
3685        concat!(
3686            "Offset of field: ",
3687            stringify!(_mjModel),
3688            "::",
3689            stringify!(geom_bodyid)
3690        )
3691    );
3692    assert_eq!(
3693        unsafe {
3694            &(*(::std::ptr::null::<_mjModel>())).geom_dataid as *const _ as usize
3695        },
3696        1520usize,
3697        concat!(
3698            "Offset of field: ",
3699            stringify!(_mjModel),
3700            "::",
3701            stringify!(geom_dataid)
3702        )
3703    );
3704    assert_eq!(
3705        unsafe { &(*(::std::ptr::null::<_mjModel>())).geom_matid as *const _ as usize },
3706        1528usize,
3707        concat!(
3708            "Offset of field: ",
3709            stringify!(_mjModel),
3710            "::",
3711            stringify!(geom_matid)
3712        )
3713    );
3714    assert_eq!(
3715        unsafe { &(*(::std::ptr::null::<_mjModel>())).geom_group as *const _ as usize },
3716        1536usize,
3717        concat!(
3718            "Offset of field: ",
3719            stringify!(_mjModel),
3720            "::",
3721            stringify!(geom_group)
3722        )
3723    );
3724    assert_eq!(
3725        unsafe {
3726            &(*(::std::ptr::null::<_mjModel>())).geom_priority as *const _ as usize
3727        },
3728        1544usize,
3729        concat!(
3730            "Offset of field: ",
3731            stringify!(_mjModel),
3732            "::",
3733            stringify!(geom_priority)
3734        )
3735    );
3736    assert_eq!(
3737        unsafe {
3738            &(*(::std::ptr::null::<_mjModel>())).geom_sameframe as *const _ as usize
3739        },
3740        1552usize,
3741        concat!(
3742            "Offset of field: ",
3743            stringify!(_mjModel),
3744            "::",
3745            stringify!(geom_sameframe)
3746        )
3747    );
3748    assert_eq!(
3749        unsafe {
3750            &(*(::std::ptr::null::<_mjModel>())).geom_solmix as *const _ as usize
3751        },
3752        1560usize,
3753        concat!(
3754            "Offset of field: ",
3755            stringify!(_mjModel),
3756            "::",
3757            stringify!(geom_solmix)
3758        )
3759    );
3760    assert_eq!(
3761        unsafe {
3762            &(*(::std::ptr::null::<_mjModel>())).geom_solref as *const _ as usize
3763        },
3764        1568usize,
3765        concat!(
3766            "Offset of field: ",
3767            stringify!(_mjModel),
3768            "::",
3769            stringify!(geom_solref)
3770        )
3771    );
3772    assert_eq!(
3773        unsafe {
3774            &(*(::std::ptr::null::<_mjModel>())).geom_solimp as *const _ as usize
3775        },
3776        1576usize,
3777        concat!(
3778            "Offset of field: ",
3779            stringify!(_mjModel),
3780            "::",
3781            stringify!(geom_solimp)
3782        )
3783    );
3784    assert_eq!(
3785        unsafe { &(*(::std::ptr::null::<_mjModel>())).geom_size as *const _ as usize },
3786        1584usize,
3787        concat!(
3788            "Offset of field: ",
3789            stringify!(_mjModel),
3790            "::",
3791            stringify!(geom_size)
3792        )
3793    );
3794    assert_eq!(
3795        unsafe {
3796            &(*(::std::ptr::null::<_mjModel>())).geom_rbound as *const _ as usize
3797        },
3798        1592usize,
3799        concat!(
3800            "Offset of field: ",
3801            stringify!(_mjModel),
3802            "::",
3803            stringify!(geom_rbound)
3804        )
3805    );
3806    assert_eq!(
3807        unsafe { &(*(::std::ptr::null::<_mjModel>())).geom_pos as *const _ as usize },
3808        1600usize,
3809        concat!(
3810            "Offset of field: ",
3811            stringify!(_mjModel),
3812            "::",
3813            stringify!(geom_pos)
3814        )
3815    );
3816    assert_eq!(
3817        unsafe { &(*(::std::ptr::null::<_mjModel>())).geom_quat as *const _ as usize },
3818        1608usize,
3819        concat!(
3820            "Offset of field: ",
3821            stringify!(_mjModel),
3822            "::",
3823            stringify!(geom_quat)
3824        )
3825    );
3826    assert_eq!(
3827        unsafe {
3828            &(*(::std::ptr::null::<_mjModel>())).geom_friction as *const _ as usize
3829        },
3830        1616usize,
3831        concat!(
3832            "Offset of field: ",
3833            stringify!(_mjModel),
3834            "::",
3835            stringify!(geom_friction)
3836        )
3837    );
3838    assert_eq!(
3839        unsafe {
3840            &(*(::std::ptr::null::<_mjModel>())).geom_margin as *const _ as usize
3841        },
3842        1624usize,
3843        concat!(
3844            "Offset of field: ",
3845            stringify!(_mjModel),
3846            "::",
3847            stringify!(geom_margin)
3848        )
3849    );
3850    assert_eq!(
3851        unsafe { &(*(::std::ptr::null::<_mjModel>())).geom_gap as *const _ as usize },
3852        1632usize,
3853        concat!(
3854            "Offset of field: ",
3855            stringify!(_mjModel),
3856            "::",
3857            stringify!(geom_gap)
3858        )
3859    );
3860    assert_eq!(
3861        unsafe { &(*(::std::ptr::null::<_mjModel>())).geom_user as *const _ as usize },
3862        1640usize,
3863        concat!(
3864            "Offset of field: ",
3865            stringify!(_mjModel),
3866            "::",
3867            stringify!(geom_user)
3868        )
3869    );
3870    assert_eq!(
3871        unsafe { &(*(::std::ptr::null::<_mjModel>())).geom_rgba as *const _ as usize },
3872        1648usize,
3873        concat!(
3874            "Offset of field: ",
3875            stringify!(_mjModel),
3876            "::",
3877            stringify!(geom_rgba)
3878        )
3879    );
3880    assert_eq!(
3881        unsafe { &(*(::std::ptr::null::<_mjModel>())).site_type as *const _ as usize },
3882        1656usize,
3883        concat!(
3884            "Offset of field: ",
3885            stringify!(_mjModel),
3886            "::",
3887            stringify!(site_type)
3888        )
3889    );
3890    assert_eq!(
3891        unsafe {
3892            &(*(::std::ptr::null::<_mjModel>())).site_bodyid as *const _ as usize
3893        },
3894        1664usize,
3895        concat!(
3896            "Offset of field: ",
3897            stringify!(_mjModel),
3898            "::",
3899            stringify!(site_bodyid)
3900        )
3901    );
3902    assert_eq!(
3903        unsafe { &(*(::std::ptr::null::<_mjModel>())).site_matid as *const _ as usize },
3904        1672usize,
3905        concat!(
3906            "Offset of field: ",
3907            stringify!(_mjModel),
3908            "::",
3909            stringify!(site_matid)
3910        )
3911    );
3912    assert_eq!(
3913        unsafe { &(*(::std::ptr::null::<_mjModel>())).site_group as *const _ as usize },
3914        1680usize,
3915        concat!(
3916            "Offset of field: ",
3917            stringify!(_mjModel),
3918            "::",
3919            stringify!(site_group)
3920        )
3921    );
3922    assert_eq!(
3923        unsafe {
3924            &(*(::std::ptr::null::<_mjModel>())).site_sameframe as *const _ as usize
3925        },
3926        1688usize,
3927        concat!(
3928            "Offset of field: ",
3929            stringify!(_mjModel),
3930            "::",
3931            stringify!(site_sameframe)
3932        )
3933    );
3934    assert_eq!(
3935        unsafe { &(*(::std::ptr::null::<_mjModel>())).site_size as *const _ as usize },
3936        1696usize,
3937        concat!(
3938            "Offset of field: ",
3939            stringify!(_mjModel),
3940            "::",
3941            stringify!(site_size)
3942        )
3943    );
3944    assert_eq!(
3945        unsafe { &(*(::std::ptr::null::<_mjModel>())).site_pos as *const _ as usize },
3946        1704usize,
3947        concat!(
3948            "Offset of field: ",
3949            stringify!(_mjModel),
3950            "::",
3951            stringify!(site_pos)
3952        )
3953    );
3954    assert_eq!(
3955        unsafe { &(*(::std::ptr::null::<_mjModel>())).site_quat as *const _ as usize },
3956        1712usize,
3957        concat!(
3958            "Offset of field: ",
3959            stringify!(_mjModel),
3960            "::",
3961            stringify!(site_quat)
3962        )
3963    );
3964    assert_eq!(
3965        unsafe { &(*(::std::ptr::null::<_mjModel>())).site_user as *const _ as usize },
3966        1720usize,
3967        concat!(
3968            "Offset of field: ",
3969            stringify!(_mjModel),
3970            "::",
3971            stringify!(site_user)
3972        )
3973    );
3974    assert_eq!(
3975        unsafe { &(*(::std::ptr::null::<_mjModel>())).site_rgba as *const _ as usize },
3976        1728usize,
3977        concat!(
3978            "Offset of field: ",
3979            stringify!(_mjModel),
3980            "::",
3981            stringify!(site_rgba)
3982        )
3983    );
3984    assert_eq!(
3985        unsafe { &(*(::std::ptr::null::<_mjModel>())).cam_mode as *const _ as usize },
3986        1736usize,
3987        concat!(
3988            "Offset of field: ",
3989            stringify!(_mjModel),
3990            "::",
3991            stringify!(cam_mode)
3992        )
3993    );
3994    assert_eq!(
3995        unsafe { &(*(::std::ptr::null::<_mjModel>())).cam_bodyid as *const _ as usize },
3996        1744usize,
3997        concat!(
3998            "Offset of field: ",
3999            stringify!(_mjModel),
4000            "::",
4001            stringify!(cam_bodyid)
4002        )
4003    );
4004    assert_eq!(
4005        unsafe {
4006            &(*(::std::ptr::null::<_mjModel>())).cam_targetbodyid as *const _ as usize
4007        },
4008        1752usize,
4009        concat!(
4010            "Offset of field: ",
4011            stringify!(_mjModel),
4012            "::",
4013            stringify!(cam_targetbodyid)
4014        )
4015    );
4016    assert_eq!(
4017        unsafe { &(*(::std::ptr::null::<_mjModel>())).cam_pos as *const _ as usize },
4018        1760usize,
4019        concat!(
4020            "Offset of field: ",
4021            stringify!(_mjModel),
4022            "::",
4023            stringify!(cam_pos)
4024        )
4025    );
4026    assert_eq!(
4027        unsafe { &(*(::std::ptr::null::<_mjModel>())).cam_quat as *const _ as usize },
4028        1768usize,
4029        concat!(
4030            "Offset of field: ",
4031            stringify!(_mjModel),
4032            "::",
4033            stringify!(cam_quat)
4034        )
4035    );
4036    assert_eq!(
4037        unsafe {
4038            &(*(::std::ptr::null::<_mjModel>())).cam_poscom0 as *const _ as usize
4039        },
4040        1776usize,
4041        concat!(
4042            "Offset of field: ",
4043            stringify!(_mjModel),
4044            "::",
4045            stringify!(cam_poscom0)
4046        )
4047    );
4048    assert_eq!(
4049        unsafe { &(*(::std::ptr::null::<_mjModel>())).cam_pos0 as *const _ as usize },
4050        1784usize,
4051        concat!(
4052            "Offset of field: ",
4053            stringify!(_mjModel),
4054            "::",
4055            stringify!(cam_pos0)
4056        )
4057    );
4058    assert_eq!(
4059        unsafe { &(*(::std::ptr::null::<_mjModel>())).cam_mat0 as *const _ as usize },
4060        1792usize,
4061        concat!(
4062            "Offset of field: ",
4063            stringify!(_mjModel),
4064            "::",
4065            stringify!(cam_mat0)
4066        )
4067    );
4068    assert_eq!(
4069        unsafe { &(*(::std::ptr::null::<_mjModel>())).cam_fovy as *const _ as usize },
4070        1800usize,
4071        concat!(
4072            "Offset of field: ",
4073            stringify!(_mjModel),
4074            "::",
4075            stringify!(cam_fovy)
4076        )
4077    );
4078    assert_eq!(
4079        unsafe { &(*(::std::ptr::null::<_mjModel>())).cam_ipd as *const _ as usize },
4080        1808usize,
4081        concat!(
4082            "Offset of field: ",
4083            stringify!(_mjModel),
4084            "::",
4085            stringify!(cam_ipd)
4086        )
4087    );
4088    assert_eq!(
4089        unsafe { &(*(::std::ptr::null::<_mjModel>())).cam_user as *const _ as usize },
4090        1816usize,
4091        concat!(
4092            "Offset of field: ",
4093            stringify!(_mjModel),
4094            "::",
4095            stringify!(cam_user)
4096        )
4097    );
4098    assert_eq!(
4099        unsafe { &(*(::std::ptr::null::<_mjModel>())).light_mode as *const _ as usize },
4100        1824usize,
4101        concat!(
4102            "Offset of field: ",
4103            stringify!(_mjModel),
4104            "::",
4105            stringify!(light_mode)
4106        )
4107    );
4108    assert_eq!(
4109        unsafe {
4110            &(*(::std::ptr::null::<_mjModel>())).light_bodyid as *const _ as usize
4111        },
4112        1832usize,
4113        concat!(
4114            "Offset of field: ",
4115            stringify!(_mjModel),
4116            "::",
4117            stringify!(light_bodyid)
4118        )
4119    );
4120    assert_eq!(
4121        unsafe {
4122            &(*(::std::ptr::null::<_mjModel>())).light_targetbodyid as *const _ as usize
4123        },
4124        1840usize,
4125        concat!(
4126            "Offset of field: ",
4127            stringify!(_mjModel),
4128            "::",
4129            stringify!(light_targetbodyid)
4130        )
4131    );
4132    assert_eq!(
4133        unsafe {
4134            &(*(::std::ptr::null::<_mjModel>())).light_directional as *const _ as usize
4135        },
4136        1848usize,
4137        concat!(
4138            "Offset of field: ",
4139            stringify!(_mjModel),
4140            "::",
4141            stringify!(light_directional)
4142        )
4143    );
4144    assert_eq!(
4145        unsafe {
4146            &(*(::std::ptr::null::<_mjModel>())).light_castshadow as *const _ as usize
4147        },
4148        1856usize,
4149        concat!(
4150            "Offset of field: ",
4151            stringify!(_mjModel),
4152            "::",
4153            stringify!(light_castshadow)
4154        )
4155    );
4156    assert_eq!(
4157        unsafe {
4158            &(*(::std::ptr::null::<_mjModel>())).light_active as *const _ as usize
4159        },
4160        1864usize,
4161        concat!(
4162            "Offset of field: ",
4163            stringify!(_mjModel),
4164            "::",
4165            stringify!(light_active)
4166        )
4167    );
4168    assert_eq!(
4169        unsafe { &(*(::std::ptr::null::<_mjModel>())).light_pos as *const _ as usize },
4170        1872usize,
4171        concat!(
4172            "Offset of field: ",
4173            stringify!(_mjModel),
4174            "::",
4175            stringify!(light_pos)
4176        )
4177    );
4178    assert_eq!(
4179        unsafe { &(*(::std::ptr::null::<_mjModel>())).light_dir as *const _ as usize },
4180        1880usize,
4181        concat!(
4182            "Offset of field: ",
4183            stringify!(_mjModel),
4184            "::",
4185            stringify!(light_dir)
4186        )
4187    );
4188    assert_eq!(
4189        unsafe {
4190            &(*(::std::ptr::null::<_mjModel>())).light_poscom0 as *const _ as usize
4191        },
4192        1888usize,
4193        concat!(
4194            "Offset of field: ",
4195            stringify!(_mjModel),
4196            "::",
4197            stringify!(light_poscom0)
4198        )
4199    );
4200    assert_eq!(
4201        unsafe { &(*(::std::ptr::null::<_mjModel>())).light_pos0 as *const _ as usize },
4202        1896usize,
4203        concat!(
4204            "Offset of field: ",
4205            stringify!(_mjModel),
4206            "::",
4207            stringify!(light_pos0)
4208        )
4209    );
4210    assert_eq!(
4211        unsafe { &(*(::std::ptr::null::<_mjModel>())).light_dir0 as *const _ as usize },
4212        1904usize,
4213        concat!(
4214            "Offset of field: ",
4215            stringify!(_mjModel),
4216            "::",
4217            stringify!(light_dir0)
4218        )
4219    );
4220    assert_eq!(
4221        unsafe {
4222            &(*(::std::ptr::null::<_mjModel>())).light_attenuation as *const _ as usize
4223        },
4224        1912usize,
4225        concat!(
4226            "Offset of field: ",
4227            stringify!(_mjModel),
4228            "::",
4229            stringify!(light_attenuation)
4230        )
4231    );
4232    assert_eq!(
4233        unsafe {
4234            &(*(::std::ptr::null::<_mjModel>())).light_cutoff as *const _ as usize
4235        },
4236        1920usize,
4237        concat!(
4238            "Offset of field: ",
4239            stringify!(_mjModel),
4240            "::",
4241            stringify!(light_cutoff)
4242        )
4243    );
4244    assert_eq!(
4245        unsafe {
4246            &(*(::std::ptr::null::<_mjModel>())).light_exponent as *const _ as usize
4247        },
4248        1928usize,
4249        concat!(
4250            "Offset of field: ",
4251            stringify!(_mjModel),
4252            "::",
4253            stringify!(light_exponent)
4254        )
4255    );
4256    assert_eq!(
4257        unsafe {
4258            &(*(::std::ptr::null::<_mjModel>())).light_ambient as *const _ as usize
4259        },
4260        1936usize,
4261        concat!(
4262            "Offset of field: ",
4263            stringify!(_mjModel),
4264            "::",
4265            stringify!(light_ambient)
4266        )
4267    );
4268    assert_eq!(
4269        unsafe {
4270            &(*(::std::ptr::null::<_mjModel>())).light_diffuse as *const _ as usize
4271        },
4272        1944usize,
4273        concat!(
4274            "Offset of field: ",
4275            stringify!(_mjModel),
4276            "::",
4277            stringify!(light_diffuse)
4278        )
4279    );
4280    assert_eq!(
4281        unsafe {
4282            &(*(::std::ptr::null::<_mjModel>())).light_specular as *const _ as usize
4283        },
4284        1952usize,
4285        concat!(
4286            "Offset of field: ",
4287            stringify!(_mjModel),
4288            "::",
4289            stringify!(light_specular)
4290        )
4291    );
4292    assert_eq!(
4293        unsafe {
4294            &(*(::std::ptr::null::<_mjModel>())).mesh_vertadr as *const _ as usize
4295        },
4296        1960usize,
4297        concat!(
4298            "Offset of field: ",
4299            stringify!(_mjModel),
4300            "::",
4301            stringify!(mesh_vertadr)
4302        )
4303    );
4304    assert_eq!(
4305        unsafe {
4306            &(*(::std::ptr::null::<_mjModel>())).mesh_vertnum as *const _ as usize
4307        },
4308        1968usize,
4309        concat!(
4310            "Offset of field: ",
4311            stringify!(_mjModel),
4312            "::",
4313            stringify!(mesh_vertnum)
4314        )
4315    );
4316    assert_eq!(
4317        unsafe {
4318            &(*(::std::ptr::null::<_mjModel>())).mesh_texcoordadr as *const _ as usize
4319        },
4320        1976usize,
4321        concat!(
4322            "Offset of field: ",
4323            stringify!(_mjModel),
4324            "::",
4325            stringify!(mesh_texcoordadr)
4326        )
4327    );
4328    assert_eq!(
4329        unsafe {
4330            &(*(::std::ptr::null::<_mjModel>())).mesh_faceadr as *const _ as usize
4331        },
4332        1984usize,
4333        concat!(
4334            "Offset of field: ",
4335            stringify!(_mjModel),
4336            "::",
4337            stringify!(mesh_faceadr)
4338        )
4339    );
4340    assert_eq!(
4341        unsafe {
4342            &(*(::std::ptr::null::<_mjModel>())).mesh_facenum as *const _ as usize
4343        },
4344        1992usize,
4345        concat!(
4346            "Offset of field: ",
4347            stringify!(_mjModel),
4348            "::",
4349            stringify!(mesh_facenum)
4350        )
4351    );
4352    assert_eq!(
4353        unsafe {
4354            &(*(::std::ptr::null::<_mjModel>())).mesh_graphadr as *const _ as usize
4355        },
4356        2000usize,
4357        concat!(
4358            "Offset of field: ",
4359            stringify!(_mjModel),
4360            "::",
4361            stringify!(mesh_graphadr)
4362        )
4363    );
4364    assert_eq!(
4365        unsafe { &(*(::std::ptr::null::<_mjModel>())).mesh_vert as *const _ as usize },
4366        2008usize,
4367        concat!(
4368            "Offset of field: ",
4369            stringify!(_mjModel),
4370            "::",
4371            stringify!(mesh_vert)
4372        )
4373    );
4374    assert_eq!(
4375        unsafe {
4376            &(*(::std::ptr::null::<_mjModel>())).mesh_normal as *const _ as usize
4377        },
4378        2016usize,
4379        concat!(
4380            "Offset of field: ",
4381            stringify!(_mjModel),
4382            "::",
4383            stringify!(mesh_normal)
4384        )
4385    );
4386    assert_eq!(
4387        unsafe {
4388            &(*(::std::ptr::null::<_mjModel>())).mesh_texcoord as *const _ as usize
4389        },
4390        2024usize,
4391        concat!(
4392            "Offset of field: ",
4393            stringify!(_mjModel),
4394            "::",
4395            stringify!(mesh_texcoord)
4396        )
4397    );
4398    assert_eq!(
4399        unsafe { &(*(::std::ptr::null::<_mjModel>())).mesh_face as *const _ as usize },
4400        2032usize,
4401        concat!(
4402            "Offset of field: ",
4403            stringify!(_mjModel),
4404            "::",
4405            stringify!(mesh_face)
4406        )
4407    );
4408    assert_eq!(
4409        unsafe { &(*(::std::ptr::null::<_mjModel>())).mesh_graph as *const _ as usize },
4410        2040usize,
4411        concat!(
4412            "Offset of field: ",
4413            stringify!(_mjModel),
4414            "::",
4415            stringify!(mesh_graph)
4416        )
4417    );
4418    assert_eq!(
4419        unsafe { &(*(::std::ptr::null::<_mjModel>())).skin_matid as *const _ as usize },
4420        2048usize,
4421        concat!(
4422            "Offset of field: ",
4423            stringify!(_mjModel),
4424            "::",
4425            stringify!(skin_matid)
4426        )
4427    );
4428    assert_eq!(
4429        unsafe { &(*(::std::ptr::null::<_mjModel>())).skin_rgba as *const _ as usize },
4430        2056usize,
4431        concat!(
4432            "Offset of field: ",
4433            stringify!(_mjModel),
4434            "::",
4435            stringify!(skin_rgba)
4436        )
4437    );
4438    assert_eq!(
4439        unsafe {
4440            &(*(::std::ptr::null::<_mjModel>())).skin_inflate as *const _ as usize
4441        },
4442        2064usize,
4443        concat!(
4444            "Offset of field: ",
4445            stringify!(_mjModel),
4446            "::",
4447            stringify!(skin_inflate)
4448        )
4449    );
4450    assert_eq!(
4451        unsafe {
4452            &(*(::std::ptr::null::<_mjModel>())).skin_vertadr as *const _ as usize
4453        },
4454        2072usize,
4455        concat!(
4456            "Offset of field: ",
4457            stringify!(_mjModel),
4458            "::",
4459            stringify!(skin_vertadr)
4460        )
4461    );
4462    assert_eq!(
4463        unsafe {
4464            &(*(::std::ptr::null::<_mjModel>())).skin_vertnum as *const _ as usize
4465        },
4466        2080usize,
4467        concat!(
4468            "Offset of field: ",
4469            stringify!(_mjModel),
4470            "::",
4471            stringify!(skin_vertnum)
4472        )
4473    );
4474    assert_eq!(
4475        unsafe {
4476            &(*(::std::ptr::null::<_mjModel>())).skin_texcoordadr as *const _ as usize
4477        },
4478        2088usize,
4479        concat!(
4480            "Offset of field: ",
4481            stringify!(_mjModel),
4482            "::",
4483            stringify!(skin_texcoordadr)
4484        )
4485    );
4486    assert_eq!(
4487        unsafe {
4488            &(*(::std::ptr::null::<_mjModel>())).skin_faceadr as *const _ as usize
4489        },
4490        2096usize,
4491        concat!(
4492            "Offset of field: ",
4493            stringify!(_mjModel),
4494            "::",
4495            stringify!(skin_faceadr)
4496        )
4497    );
4498    assert_eq!(
4499        unsafe {
4500            &(*(::std::ptr::null::<_mjModel>())).skin_facenum as *const _ as usize
4501        },
4502        2104usize,
4503        concat!(
4504            "Offset of field: ",
4505            stringify!(_mjModel),
4506            "::",
4507            stringify!(skin_facenum)
4508        )
4509    );
4510    assert_eq!(
4511        unsafe {
4512            &(*(::std::ptr::null::<_mjModel>())).skin_boneadr as *const _ as usize
4513        },
4514        2112usize,
4515        concat!(
4516            "Offset of field: ",
4517            stringify!(_mjModel),
4518            "::",
4519            stringify!(skin_boneadr)
4520        )
4521    );
4522    assert_eq!(
4523        unsafe {
4524            &(*(::std::ptr::null::<_mjModel>())).skin_bonenum as *const _ as usize
4525        },
4526        2120usize,
4527        concat!(
4528            "Offset of field: ",
4529            stringify!(_mjModel),
4530            "::",
4531            stringify!(skin_bonenum)
4532        )
4533    );
4534    assert_eq!(
4535        unsafe { &(*(::std::ptr::null::<_mjModel>())).skin_vert as *const _ as usize },
4536        2128usize,
4537        concat!(
4538            "Offset of field: ",
4539            stringify!(_mjModel),
4540            "::",
4541            stringify!(skin_vert)
4542        )
4543    );
4544    assert_eq!(
4545        unsafe {
4546            &(*(::std::ptr::null::<_mjModel>())).skin_texcoord as *const _ as usize
4547        },
4548        2136usize,
4549        concat!(
4550            "Offset of field: ",
4551            stringify!(_mjModel),
4552            "::",
4553            stringify!(skin_texcoord)
4554        )
4555    );
4556    assert_eq!(
4557        unsafe { &(*(::std::ptr::null::<_mjModel>())).skin_face as *const _ as usize },
4558        2144usize,
4559        concat!(
4560            "Offset of field: ",
4561            stringify!(_mjModel),
4562            "::",
4563            stringify!(skin_face)
4564        )
4565    );
4566    assert_eq!(
4567        unsafe {
4568            &(*(::std::ptr::null::<_mjModel>())).skin_bonevertadr as *const _ as usize
4569        },
4570        2152usize,
4571        concat!(
4572            "Offset of field: ",
4573            stringify!(_mjModel),
4574            "::",
4575            stringify!(skin_bonevertadr)
4576        )
4577    );
4578    assert_eq!(
4579        unsafe {
4580            &(*(::std::ptr::null::<_mjModel>())).skin_bonevertnum as *const _ as usize
4581        },
4582        2160usize,
4583        concat!(
4584            "Offset of field: ",
4585            stringify!(_mjModel),
4586            "::",
4587            stringify!(skin_bonevertnum)
4588        )
4589    );
4590    assert_eq!(
4591        unsafe {
4592            &(*(::std::ptr::null::<_mjModel>())).skin_bonebindpos as *const _ as usize
4593        },
4594        2168usize,
4595        concat!(
4596            "Offset of field: ",
4597            stringify!(_mjModel),
4598            "::",
4599            stringify!(skin_bonebindpos)
4600        )
4601    );
4602    assert_eq!(
4603        unsafe {
4604            &(*(::std::ptr::null::<_mjModel>())).skin_bonebindquat as *const _ as usize
4605        },
4606        2176usize,
4607        concat!(
4608            "Offset of field: ",
4609            stringify!(_mjModel),
4610            "::",
4611            stringify!(skin_bonebindquat)
4612        )
4613    );
4614    assert_eq!(
4615        unsafe {
4616            &(*(::std::ptr::null::<_mjModel>())).skin_bonebodyid as *const _ as usize
4617        },
4618        2184usize,
4619        concat!(
4620            "Offset of field: ",
4621            stringify!(_mjModel),
4622            "::",
4623            stringify!(skin_bonebodyid)
4624        )
4625    );
4626    assert_eq!(
4627        unsafe {
4628            &(*(::std::ptr::null::<_mjModel>())).skin_bonevertid as *const _ as usize
4629        },
4630        2192usize,
4631        concat!(
4632            "Offset of field: ",
4633            stringify!(_mjModel),
4634            "::",
4635            stringify!(skin_bonevertid)
4636        )
4637    );
4638    assert_eq!(
4639        unsafe {
4640            &(*(::std::ptr::null::<_mjModel>())).skin_bonevertweight as *const _
4641                as usize
4642        },
4643        2200usize,
4644        concat!(
4645            "Offset of field: ",
4646            stringify!(_mjModel),
4647            "::",
4648            stringify!(skin_bonevertweight)
4649        )
4650    );
4651    assert_eq!(
4652        unsafe {
4653            &(*(::std::ptr::null::<_mjModel>())).hfield_size as *const _ as usize
4654        },
4655        2208usize,
4656        concat!(
4657            "Offset of field: ",
4658            stringify!(_mjModel),
4659            "::",
4660            stringify!(hfield_size)
4661        )
4662    );
4663    assert_eq!(
4664        unsafe {
4665            &(*(::std::ptr::null::<_mjModel>())).hfield_nrow as *const _ as usize
4666        },
4667        2216usize,
4668        concat!(
4669            "Offset of field: ",
4670            stringify!(_mjModel),
4671            "::",
4672            stringify!(hfield_nrow)
4673        )
4674    );
4675    assert_eq!(
4676        unsafe {
4677            &(*(::std::ptr::null::<_mjModel>())).hfield_ncol as *const _ as usize
4678        },
4679        2224usize,
4680        concat!(
4681            "Offset of field: ",
4682            stringify!(_mjModel),
4683            "::",
4684            stringify!(hfield_ncol)
4685        )
4686    );
4687    assert_eq!(
4688        unsafe { &(*(::std::ptr::null::<_mjModel>())).hfield_adr as *const _ as usize },
4689        2232usize,
4690        concat!(
4691            "Offset of field: ",
4692            stringify!(_mjModel),
4693            "::",
4694            stringify!(hfield_adr)
4695        )
4696    );
4697    assert_eq!(
4698        unsafe {
4699            &(*(::std::ptr::null::<_mjModel>())).hfield_data as *const _ as usize
4700        },
4701        2240usize,
4702        concat!(
4703            "Offset of field: ",
4704            stringify!(_mjModel),
4705            "::",
4706            stringify!(hfield_data)
4707        )
4708    );
4709    assert_eq!(
4710        unsafe { &(*(::std::ptr::null::<_mjModel>())).tex_type as *const _ as usize },
4711        2248usize,
4712        concat!(
4713            "Offset of field: ",
4714            stringify!(_mjModel),
4715            "::",
4716            stringify!(tex_type)
4717        )
4718    );
4719    assert_eq!(
4720        unsafe { &(*(::std::ptr::null::<_mjModel>())).tex_height as *const _ as usize },
4721        2256usize,
4722        concat!(
4723            "Offset of field: ",
4724            stringify!(_mjModel),
4725            "::",
4726            stringify!(tex_height)
4727        )
4728    );
4729    assert_eq!(
4730        unsafe { &(*(::std::ptr::null::<_mjModel>())).tex_width as *const _ as usize },
4731        2264usize,
4732        concat!(
4733            "Offset of field: ",
4734            stringify!(_mjModel),
4735            "::",
4736            stringify!(tex_width)
4737        )
4738    );
4739    assert_eq!(
4740        unsafe { &(*(::std::ptr::null::<_mjModel>())).tex_adr as *const _ as usize },
4741        2272usize,
4742        concat!(
4743            "Offset of field: ",
4744            stringify!(_mjModel),
4745            "::",
4746            stringify!(tex_adr)
4747        )
4748    );
4749    assert_eq!(
4750        unsafe { &(*(::std::ptr::null::<_mjModel>())).tex_rgb as *const _ as usize },
4751        2280usize,
4752        concat!(
4753            "Offset of field: ",
4754            stringify!(_mjModel),
4755            "::",
4756            stringify!(tex_rgb)
4757        )
4758    );
4759    assert_eq!(
4760        unsafe { &(*(::std::ptr::null::<_mjModel>())).mat_texid as *const _ as usize },
4761        2288usize,
4762        concat!(
4763            "Offset of field: ",
4764            stringify!(_mjModel),
4765            "::",
4766            stringify!(mat_texid)
4767        )
4768    );
4769    assert_eq!(
4770        unsafe {
4771            &(*(::std::ptr::null::<_mjModel>())).mat_texuniform as *const _ as usize
4772        },
4773        2296usize,
4774        concat!(
4775            "Offset of field: ",
4776            stringify!(_mjModel),
4777            "::",
4778            stringify!(mat_texuniform)
4779        )
4780    );
4781    assert_eq!(
4782        unsafe {
4783            &(*(::std::ptr::null::<_mjModel>())).mat_texrepeat as *const _ as usize
4784        },
4785        2304usize,
4786        concat!(
4787            "Offset of field: ",
4788            stringify!(_mjModel),
4789            "::",
4790            stringify!(mat_texrepeat)
4791        )
4792    );
4793    assert_eq!(
4794        unsafe {
4795            &(*(::std::ptr::null::<_mjModel>())).mat_emission as *const _ as usize
4796        },
4797        2312usize,
4798        concat!(
4799            "Offset of field: ",
4800            stringify!(_mjModel),
4801            "::",
4802            stringify!(mat_emission)
4803        )
4804    );
4805    assert_eq!(
4806        unsafe {
4807            &(*(::std::ptr::null::<_mjModel>())).mat_specular as *const _ as usize
4808        },
4809        2320usize,
4810        concat!(
4811            "Offset of field: ",
4812            stringify!(_mjModel),
4813            "::",
4814            stringify!(mat_specular)
4815        )
4816    );
4817    assert_eq!(
4818        unsafe {
4819            &(*(::std::ptr::null::<_mjModel>())).mat_shininess as *const _ as usize
4820        },
4821        2328usize,
4822        concat!(
4823            "Offset of field: ",
4824            stringify!(_mjModel),
4825            "::",
4826            stringify!(mat_shininess)
4827        )
4828    );
4829    assert_eq!(
4830        unsafe {
4831            &(*(::std::ptr::null::<_mjModel>())).mat_reflectance as *const _ as usize
4832        },
4833        2336usize,
4834        concat!(
4835            "Offset of field: ",
4836            stringify!(_mjModel),
4837            "::",
4838            stringify!(mat_reflectance)
4839        )
4840    );
4841    assert_eq!(
4842        unsafe { &(*(::std::ptr::null::<_mjModel>())).mat_rgba as *const _ as usize },
4843        2344usize,
4844        concat!(
4845            "Offset of field: ",
4846            stringify!(_mjModel),
4847            "::",
4848            stringify!(mat_rgba)
4849        )
4850    );
4851    assert_eq!(
4852        unsafe { &(*(::std::ptr::null::<_mjModel>())).pair_dim as *const _ as usize },
4853        2352usize,
4854        concat!(
4855            "Offset of field: ",
4856            stringify!(_mjModel),
4857            "::",
4858            stringify!(pair_dim)
4859        )
4860    );
4861    assert_eq!(
4862        unsafe { &(*(::std::ptr::null::<_mjModel>())).pair_geom1 as *const _ as usize },
4863        2360usize,
4864        concat!(
4865            "Offset of field: ",
4866            stringify!(_mjModel),
4867            "::",
4868            stringify!(pair_geom1)
4869        )
4870    );
4871    assert_eq!(
4872        unsafe { &(*(::std::ptr::null::<_mjModel>())).pair_geom2 as *const _ as usize },
4873        2368usize,
4874        concat!(
4875            "Offset of field: ",
4876            stringify!(_mjModel),
4877            "::",
4878            stringify!(pair_geom2)
4879        )
4880    );
4881    assert_eq!(
4882        unsafe {
4883            &(*(::std::ptr::null::<_mjModel>())).pair_signature as *const _ as usize
4884        },
4885        2376usize,
4886        concat!(
4887            "Offset of field: ",
4888            stringify!(_mjModel),
4889            "::",
4890            stringify!(pair_signature)
4891        )
4892    );
4893    assert_eq!(
4894        unsafe {
4895            &(*(::std::ptr::null::<_mjModel>())).pair_solref as *const _ as usize
4896        },
4897        2384usize,
4898        concat!(
4899            "Offset of field: ",
4900            stringify!(_mjModel),
4901            "::",
4902            stringify!(pair_solref)
4903        )
4904    );
4905    assert_eq!(
4906        unsafe {
4907            &(*(::std::ptr::null::<_mjModel>())).pair_solimp as *const _ as usize
4908        },
4909        2392usize,
4910        concat!(
4911            "Offset of field: ",
4912            stringify!(_mjModel),
4913            "::",
4914            stringify!(pair_solimp)
4915        )
4916    );
4917    assert_eq!(
4918        unsafe {
4919            &(*(::std::ptr::null::<_mjModel>())).pair_margin as *const _ as usize
4920        },
4921        2400usize,
4922        concat!(
4923            "Offset of field: ",
4924            stringify!(_mjModel),
4925            "::",
4926            stringify!(pair_margin)
4927        )
4928    );
4929    assert_eq!(
4930        unsafe { &(*(::std::ptr::null::<_mjModel>())).pair_gap as *const _ as usize },
4931        2408usize,
4932        concat!(
4933            "Offset of field: ",
4934            stringify!(_mjModel),
4935            "::",
4936            stringify!(pair_gap)
4937        )
4938    );
4939    assert_eq!(
4940        unsafe {
4941            &(*(::std::ptr::null::<_mjModel>())).pair_friction as *const _ as usize
4942        },
4943        2416usize,
4944        concat!(
4945            "Offset of field: ",
4946            stringify!(_mjModel),
4947            "::",
4948            stringify!(pair_friction)
4949        )
4950    );
4951    assert_eq!(
4952        unsafe {
4953            &(*(::std::ptr::null::<_mjModel>())).exclude_signature as *const _ as usize
4954        },
4955        2424usize,
4956        concat!(
4957            "Offset of field: ",
4958            stringify!(_mjModel),
4959            "::",
4960            stringify!(exclude_signature)
4961        )
4962    );
4963    assert_eq!(
4964        unsafe { &(*(::std::ptr::null::<_mjModel>())).eq_type as *const _ as usize },
4965        2432usize,
4966        concat!(
4967            "Offset of field: ",
4968            stringify!(_mjModel),
4969            "::",
4970            stringify!(eq_type)
4971        )
4972    );
4973    assert_eq!(
4974        unsafe { &(*(::std::ptr::null::<_mjModel>())).eq_obj1id as *const _ as usize },
4975        2440usize,
4976        concat!(
4977            "Offset of field: ",
4978            stringify!(_mjModel),
4979            "::",
4980            stringify!(eq_obj1id)
4981        )
4982    );
4983    assert_eq!(
4984        unsafe { &(*(::std::ptr::null::<_mjModel>())).eq_obj2id as *const _ as usize },
4985        2448usize,
4986        concat!(
4987            "Offset of field: ",
4988            stringify!(_mjModel),
4989            "::",
4990            stringify!(eq_obj2id)
4991        )
4992    );
4993    assert_eq!(
4994        unsafe { &(*(::std::ptr::null::<_mjModel>())).eq_active as *const _ as usize },
4995        2456usize,
4996        concat!(
4997            "Offset of field: ",
4998            stringify!(_mjModel),
4999            "::",
5000            stringify!(eq_active)
5001        )
5002    );
5003    assert_eq!(
5004        unsafe { &(*(::std::ptr::null::<_mjModel>())).eq_solref as *const _ as usize },
5005        2464usize,
5006        concat!(
5007            "Offset of field: ",
5008            stringify!(_mjModel),
5009            "::",
5010            stringify!(eq_solref)
5011        )
5012    );
5013    assert_eq!(
5014        unsafe { &(*(::std::ptr::null::<_mjModel>())).eq_solimp as *const _ as usize },
5015        2472usize,
5016        concat!(
5017            "Offset of field: ",
5018            stringify!(_mjModel),
5019            "::",
5020            stringify!(eq_solimp)
5021        )
5022    );
5023    assert_eq!(
5024        unsafe { &(*(::std::ptr::null::<_mjModel>())).eq_data as *const _ as usize },
5025        2480usize,
5026        concat!(
5027            "Offset of field: ",
5028            stringify!(_mjModel),
5029            "::",
5030            stringify!(eq_data)
5031        )
5032    );
5033    assert_eq!(
5034        unsafe { &(*(::std::ptr::null::<_mjModel>())).tendon_adr as *const _ as usize },
5035        2488usize,
5036        concat!(
5037            "Offset of field: ",
5038            stringify!(_mjModel),
5039            "::",
5040            stringify!(tendon_adr)
5041        )
5042    );
5043    assert_eq!(
5044        unsafe { &(*(::std::ptr::null::<_mjModel>())).tendon_num as *const _ as usize },
5045        2496usize,
5046        concat!(
5047            "Offset of field: ",
5048            stringify!(_mjModel),
5049            "::",
5050            stringify!(tendon_num)
5051        )
5052    );
5053    assert_eq!(
5054        unsafe {
5055            &(*(::std::ptr::null::<_mjModel>())).tendon_matid as *const _ as usize
5056        },
5057        2504usize,
5058        concat!(
5059            "Offset of field: ",
5060            stringify!(_mjModel),
5061            "::",
5062            stringify!(tendon_matid)
5063        )
5064    );
5065    assert_eq!(
5066        unsafe {
5067            &(*(::std::ptr::null::<_mjModel>())).tendon_group as *const _ as usize
5068        },
5069        2512usize,
5070        concat!(
5071            "Offset of field: ",
5072            stringify!(_mjModel),
5073            "::",
5074            stringify!(tendon_group)
5075        )
5076    );
5077    assert_eq!(
5078        unsafe {
5079            &(*(::std::ptr::null::<_mjModel>())).tendon_limited as *const _ as usize
5080        },
5081        2520usize,
5082        concat!(
5083            "Offset of field: ",
5084            stringify!(_mjModel),
5085            "::",
5086            stringify!(tendon_limited)
5087        )
5088    );
5089    assert_eq!(
5090        unsafe {
5091            &(*(::std::ptr::null::<_mjModel>())).tendon_width as *const _ as usize
5092        },
5093        2528usize,
5094        concat!(
5095            "Offset of field: ",
5096            stringify!(_mjModel),
5097            "::",
5098            stringify!(tendon_width)
5099        )
5100    );
5101    assert_eq!(
5102        unsafe {
5103            &(*(::std::ptr::null::<_mjModel>())).tendon_solref_lim as *const _ as usize
5104        },
5105        2536usize,
5106        concat!(
5107            "Offset of field: ",
5108            stringify!(_mjModel),
5109            "::",
5110            stringify!(tendon_solref_lim)
5111        )
5112    );
5113    assert_eq!(
5114        unsafe {
5115            &(*(::std::ptr::null::<_mjModel>())).tendon_solimp_lim as *const _ as usize
5116        },
5117        2544usize,
5118        concat!(
5119            "Offset of field: ",
5120            stringify!(_mjModel),
5121            "::",
5122            stringify!(tendon_solimp_lim)
5123        )
5124    );
5125    assert_eq!(
5126        unsafe {
5127            &(*(::std::ptr::null::<_mjModel>())).tendon_solref_fri as *const _ as usize
5128        },
5129        2552usize,
5130        concat!(
5131            "Offset of field: ",
5132            stringify!(_mjModel),
5133            "::",
5134            stringify!(tendon_solref_fri)
5135        )
5136    );
5137    assert_eq!(
5138        unsafe {
5139            &(*(::std::ptr::null::<_mjModel>())).tendon_solimp_fri as *const _ as usize
5140        },
5141        2560usize,
5142        concat!(
5143            "Offset of field: ",
5144            stringify!(_mjModel),
5145            "::",
5146            stringify!(tendon_solimp_fri)
5147        )
5148    );
5149    assert_eq!(
5150        unsafe {
5151            &(*(::std::ptr::null::<_mjModel>())).tendon_range as *const _ as usize
5152        },
5153        2568usize,
5154        concat!(
5155            "Offset of field: ",
5156            stringify!(_mjModel),
5157            "::",
5158            stringify!(tendon_range)
5159        )
5160    );
5161    assert_eq!(
5162        unsafe {
5163            &(*(::std::ptr::null::<_mjModel>())).tendon_margin as *const _ as usize
5164        },
5165        2576usize,
5166        concat!(
5167            "Offset of field: ",
5168            stringify!(_mjModel),
5169            "::",
5170            stringify!(tendon_margin)
5171        )
5172    );
5173    assert_eq!(
5174        unsafe {
5175            &(*(::std::ptr::null::<_mjModel>())).tendon_stiffness as *const _ as usize
5176        },
5177        2584usize,
5178        concat!(
5179            "Offset of field: ",
5180            stringify!(_mjModel),
5181            "::",
5182            stringify!(tendon_stiffness)
5183        )
5184    );
5185    assert_eq!(
5186        unsafe {
5187            &(*(::std::ptr::null::<_mjModel>())).tendon_damping as *const _ as usize
5188        },
5189        2592usize,
5190        concat!(
5191            "Offset of field: ",
5192            stringify!(_mjModel),
5193            "::",
5194            stringify!(tendon_damping)
5195        )
5196    );
5197    assert_eq!(
5198        unsafe {
5199            &(*(::std::ptr::null::<_mjModel>())).tendon_frictionloss as *const _
5200                as usize
5201        },
5202        2600usize,
5203        concat!(
5204            "Offset of field: ",
5205            stringify!(_mjModel),
5206            "::",
5207            stringify!(tendon_frictionloss)
5208        )
5209    );
5210    assert_eq!(
5211        unsafe {
5212            &(*(::std::ptr::null::<_mjModel>())).tendon_lengthspring as *const _
5213                as usize
5214        },
5215        2608usize,
5216        concat!(
5217            "Offset of field: ",
5218            stringify!(_mjModel),
5219            "::",
5220            stringify!(tendon_lengthspring)
5221        )
5222    );
5223    assert_eq!(
5224        unsafe {
5225            &(*(::std::ptr::null::<_mjModel>())).tendon_length0 as *const _ as usize
5226        },
5227        2616usize,
5228        concat!(
5229            "Offset of field: ",
5230            stringify!(_mjModel),
5231            "::",
5232            stringify!(tendon_length0)
5233        )
5234    );
5235    assert_eq!(
5236        unsafe {
5237            &(*(::std::ptr::null::<_mjModel>())).tendon_invweight0 as *const _ as usize
5238        },
5239        2624usize,
5240        concat!(
5241            "Offset of field: ",
5242            stringify!(_mjModel),
5243            "::",
5244            stringify!(tendon_invweight0)
5245        )
5246    );
5247    assert_eq!(
5248        unsafe {
5249            &(*(::std::ptr::null::<_mjModel>())).tendon_user as *const _ as usize
5250        },
5251        2632usize,
5252        concat!(
5253            "Offset of field: ",
5254            stringify!(_mjModel),
5255            "::",
5256            stringify!(tendon_user)
5257        )
5258    );
5259    assert_eq!(
5260        unsafe {
5261            &(*(::std::ptr::null::<_mjModel>())).tendon_rgba as *const _ as usize
5262        },
5263        2640usize,
5264        concat!(
5265            "Offset of field: ",
5266            stringify!(_mjModel),
5267            "::",
5268            stringify!(tendon_rgba)
5269        )
5270    );
5271    assert_eq!(
5272        unsafe { &(*(::std::ptr::null::<_mjModel>())).wrap_type as *const _ as usize },
5273        2648usize,
5274        concat!(
5275            "Offset of field: ",
5276            stringify!(_mjModel),
5277            "::",
5278            stringify!(wrap_type)
5279        )
5280    );
5281    assert_eq!(
5282        unsafe { &(*(::std::ptr::null::<_mjModel>())).wrap_objid as *const _ as usize },
5283        2656usize,
5284        concat!(
5285            "Offset of field: ",
5286            stringify!(_mjModel),
5287            "::",
5288            stringify!(wrap_objid)
5289        )
5290    );
5291    assert_eq!(
5292        unsafe { &(*(::std::ptr::null::<_mjModel>())).wrap_prm as *const _ as usize },
5293        2664usize,
5294        concat!(
5295            "Offset of field: ",
5296            stringify!(_mjModel),
5297            "::",
5298            stringify!(wrap_prm)
5299        )
5300    );
5301    assert_eq!(
5302        unsafe {
5303            &(*(::std::ptr::null::<_mjModel>())).actuator_trntype as *const _ as usize
5304        },
5305        2672usize,
5306        concat!(
5307            "Offset of field: ",
5308            stringify!(_mjModel),
5309            "::",
5310            stringify!(actuator_trntype)
5311        )
5312    );
5313    assert_eq!(
5314        unsafe {
5315            &(*(::std::ptr::null::<_mjModel>())).actuator_dyntype as *const _ as usize
5316        },
5317        2680usize,
5318        concat!(
5319            "Offset of field: ",
5320            stringify!(_mjModel),
5321            "::",
5322            stringify!(actuator_dyntype)
5323        )
5324    );
5325    assert_eq!(
5326        unsafe {
5327            &(*(::std::ptr::null::<_mjModel>())).actuator_gaintype as *const _ as usize
5328        },
5329        2688usize,
5330        concat!(
5331            "Offset of field: ",
5332            stringify!(_mjModel),
5333            "::",
5334            stringify!(actuator_gaintype)
5335        )
5336    );
5337    assert_eq!(
5338        unsafe {
5339            &(*(::std::ptr::null::<_mjModel>())).actuator_biastype as *const _ as usize
5340        },
5341        2696usize,
5342        concat!(
5343            "Offset of field: ",
5344            stringify!(_mjModel),
5345            "::",
5346            stringify!(actuator_biastype)
5347        )
5348    );
5349    assert_eq!(
5350        unsafe {
5351            &(*(::std::ptr::null::<_mjModel>())).actuator_trnid as *const _ as usize
5352        },
5353        2704usize,
5354        concat!(
5355            "Offset of field: ",
5356            stringify!(_mjModel),
5357            "::",
5358            stringify!(actuator_trnid)
5359        )
5360    );
5361    assert_eq!(
5362        unsafe {
5363            &(*(::std::ptr::null::<_mjModel>())).actuator_group as *const _ as usize
5364        },
5365        2712usize,
5366        concat!(
5367            "Offset of field: ",
5368            stringify!(_mjModel),
5369            "::",
5370            stringify!(actuator_group)
5371        )
5372    );
5373    assert_eq!(
5374        unsafe {
5375            &(*(::std::ptr::null::<_mjModel>())).actuator_ctrllimited as *const _
5376                as usize
5377        },
5378        2720usize,
5379        concat!(
5380            "Offset of field: ",
5381            stringify!(_mjModel),
5382            "::",
5383            stringify!(actuator_ctrllimited)
5384        )
5385    );
5386    assert_eq!(
5387        unsafe {
5388            &(*(::std::ptr::null::<_mjModel>())).actuator_forcelimited as *const _
5389                as usize
5390        },
5391        2728usize,
5392        concat!(
5393            "Offset of field: ",
5394            stringify!(_mjModel),
5395            "::",
5396            stringify!(actuator_forcelimited)
5397        )
5398    );
5399    assert_eq!(
5400        unsafe {
5401            &(*(::std::ptr::null::<_mjModel>())).actuator_dynprm as *const _ as usize
5402        },
5403        2736usize,
5404        concat!(
5405            "Offset of field: ",
5406            stringify!(_mjModel),
5407            "::",
5408            stringify!(actuator_dynprm)
5409        )
5410    );
5411    assert_eq!(
5412        unsafe {
5413            &(*(::std::ptr::null::<_mjModel>())).actuator_gainprm as *const _ as usize
5414        },
5415        2744usize,
5416        concat!(
5417            "Offset of field: ",
5418            stringify!(_mjModel),
5419            "::",
5420            stringify!(actuator_gainprm)
5421        )
5422    );
5423    assert_eq!(
5424        unsafe {
5425            &(*(::std::ptr::null::<_mjModel>())).actuator_biasprm as *const _ as usize
5426        },
5427        2752usize,
5428        concat!(
5429            "Offset of field: ",
5430            stringify!(_mjModel),
5431            "::",
5432            stringify!(actuator_biasprm)
5433        )
5434    );
5435    assert_eq!(
5436        unsafe {
5437            &(*(::std::ptr::null::<_mjModel>())).actuator_ctrlrange as *const _ as usize
5438        },
5439        2760usize,
5440        concat!(
5441            "Offset of field: ",
5442            stringify!(_mjModel),
5443            "::",
5444            stringify!(actuator_ctrlrange)
5445        )
5446    );
5447    assert_eq!(
5448        unsafe {
5449            &(*(::std::ptr::null::<_mjModel>())).actuator_forcerange as *const _
5450                as usize
5451        },
5452        2768usize,
5453        concat!(
5454            "Offset of field: ",
5455            stringify!(_mjModel),
5456            "::",
5457            stringify!(actuator_forcerange)
5458        )
5459    );
5460    assert_eq!(
5461        unsafe {
5462            &(*(::std::ptr::null::<_mjModel>())).actuator_gear as *const _ as usize
5463        },
5464        2776usize,
5465        concat!(
5466            "Offset of field: ",
5467            stringify!(_mjModel),
5468            "::",
5469            stringify!(actuator_gear)
5470        )
5471    );
5472    assert_eq!(
5473        unsafe {
5474            &(*(::std::ptr::null::<_mjModel>())).actuator_cranklength as *const _
5475                as usize
5476        },
5477        2784usize,
5478        concat!(
5479            "Offset of field: ",
5480            stringify!(_mjModel),
5481            "::",
5482            stringify!(actuator_cranklength)
5483        )
5484    );
5485    assert_eq!(
5486        unsafe {
5487            &(*(::std::ptr::null::<_mjModel>())).actuator_acc0 as *const _ as usize
5488        },
5489        2792usize,
5490        concat!(
5491            "Offset of field: ",
5492            stringify!(_mjModel),
5493            "::",
5494            stringify!(actuator_acc0)
5495        )
5496    );
5497    assert_eq!(
5498        unsafe {
5499            &(*(::std::ptr::null::<_mjModel>())).actuator_length0 as *const _ as usize
5500        },
5501        2800usize,
5502        concat!(
5503            "Offset of field: ",
5504            stringify!(_mjModel),
5505            "::",
5506            stringify!(actuator_length0)
5507        )
5508    );
5509    assert_eq!(
5510        unsafe {
5511            &(*(::std::ptr::null::<_mjModel>())).actuator_lengthrange as *const _
5512                as usize
5513        },
5514        2808usize,
5515        concat!(
5516            "Offset of field: ",
5517            stringify!(_mjModel),
5518            "::",
5519            stringify!(actuator_lengthrange)
5520        )
5521    );
5522    assert_eq!(
5523        unsafe {
5524            &(*(::std::ptr::null::<_mjModel>())).actuator_user as *const _ as usize
5525        },
5526        2816usize,
5527        concat!(
5528            "Offset of field: ",
5529            stringify!(_mjModel),
5530            "::",
5531            stringify!(actuator_user)
5532        )
5533    );
5534    assert_eq!(
5535        unsafe {
5536            &(*(::std::ptr::null::<_mjModel>())).sensor_type as *const _ as usize
5537        },
5538        2824usize,
5539        concat!(
5540            "Offset of field: ",
5541            stringify!(_mjModel),
5542            "::",
5543            stringify!(sensor_type)
5544        )
5545    );
5546    assert_eq!(
5547        unsafe {
5548            &(*(::std::ptr::null::<_mjModel>())).sensor_datatype as *const _ as usize
5549        },
5550        2832usize,
5551        concat!(
5552            "Offset of field: ",
5553            stringify!(_mjModel),
5554            "::",
5555            stringify!(sensor_datatype)
5556        )
5557    );
5558    assert_eq!(
5559        unsafe {
5560            &(*(::std::ptr::null::<_mjModel>())).sensor_needstage as *const _ as usize
5561        },
5562        2840usize,
5563        concat!(
5564            "Offset of field: ",
5565            stringify!(_mjModel),
5566            "::",
5567            stringify!(sensor_needstage)
5568        )
5569    );
5570    assert_eq!(
5571        unsafe {
5572            &(*(::std::ptr::null::<_mjModel>())).sensor_objtype as *const _ as usize
5573        },
5574        2848usize,
5575        concat!(
5576            "Offset of field: ",
5577            stringify!(_mjModel),
5578            "::",
5579            stringify!(sensor_objtype)
5580        )
5581    );
5582    assert_eq!(
5583        unsafe {
5584            &(*(::std::ptr::null::<_mjModel>())).sensor_objid as *const _ as usize
5585        },
5586        2856usize,
5587        concat!(
5588            "Offset of field: ",
5589            stringify!(_mjModel),
5590            "::",
5591            stringify!(sensor_objid)
5592        )
5593    );
5594    assert_eq!(
5595        unsafe { &(*(::std::ptr::null::<_mjModel>())).sensor_dim as *const _ as usize },
5596        2864usize,
5597        concat!(
5598            "Offset of field: ",
5599            stringify!(_mjModel),
5600            "::",
5601            stringify!(sensor_dim)
5602        )
5603    );
5604    assert_eq!(
5605        unsafe { &(*(::std::ptr::null::<_mjModel>())).sensor_adr as *const _ as usize },
5606        2872usize,
5607        concat!(
5608            "Offset of field: ",
5609            stringify!(_mjModel),
5610            "::",
5611            stringify!(sensor_adr)
5612        )
5613    );
5614    assert_eq!(
5615        unsafe {
5616            &(*(::std::ptr::null::<_mjModel>())).sensor_cutoff as *const _ as usize
5617        },
5618        2880usize,
5619        concat!(
5620            "Offset of field: ",
5621            stringify!(_mjModel),
5622            "::",
5623            stringify!(sensor_cutoff)
5624        )
5625    );
5626    assert_eq!(
5627        unsafe {
5628            &(*(::std::ptr::null::<_mjModel>())).sensor_noise as *const _ as usize
5629        },
5630        2888usize,
5631        concat!(
5632            "Offset of field: ",
5633            stringify!(_mjModel),
5634            "::",
5635            stringify!(sensor_noise)
5636        )
5637    );
5638    assert_eq!(
5639        unsafe {
5640            &(*(::std::ptr::null::<_mjModel>())).sensor_user as *const _ as usize
5641        },
5642        2896usize,
5643        concat!(
5644            "Offset of field: ",
5645            stringify!(_mjModel),
5646            "::",
5647            stringify!(sensor_user)
5648        )
5649    );
5650    assert_eq!(
5651        unsafe {
5652            &(*(::std::ptr::null::<_mjModel>())).numeric_adr as *const _ as usize
5653        },
5654        2904usize,
5655        concat!(
5656            "Offset of field: ",
5657            stringify!(_mjModel),
5658            "::",
5659            stringify!(numeric_adr)
5660        )
5661    );
5662    assert_eq!(
5663        unsafe {
5664            &(*(::std::ptr::null::<_mjModel>())).numeric_size as *const _ as usize
5665        },
5666        2912usize,
5667        concat!(
5668            "Offset of field: ",
5669            stringify!(_mjModel),
5670            "::",
5671            stringify!(numeric_size)
5672        )
5673    );
5674    assert_eq!(
5675        unsafe {
5676            &(*(::std::ptr::null::<_mjModel>())).numeric_data as *const _ as usize
5677        },
5678        2920usize,
5679        concat!(
5680            "Offset of field: ",
5681            stringify!(_mjModel),
5682            "::",
5683            stringify!(numeric_data)
5684        )
5685    );
5686    assert_eq!(
5687        unsafe { &(*(::std::ptr::null::<_mjModel>())).text_adr as *const _ as usize },
5688        2928usize,
5689        concat!(
5690            "Offset of field: ",
5691            stringify!(_mjModel),
5692            "::",
5693            stringify!(text_adr)
5694        )
5695    );
5696    assert_eq!(
5697        unsafe { &(*(::std::ptr::null::<_mjModel>())).text_size as *const _ as usize },
5698        2936usize,
5699        concat!(
5700            "Offset of field: ",
5701            stringify!(_mjModel),
5702            "::",
5703            stringify!(text_size)
5704        )
5705    );
5706    assert_eq!(
5707        unsafe { &(*(::std::ptr::null::<_mjModel>())).text_data as *const _ as usize },
5708        2944usize,
5709        concat!(
5710            "Offset of field: ",
5711            stringify!(_mjModel),
5712            "::",
5713            stringify!(text_data)
5714        )
5715    );
5716    assert_eq!(
5717        unsafe { &(*(::std::ptr::null::<_mjModel>())).tuple_adr as *const _ as usize },
5718        2952usize,
5719        concat!(
5720            "Offset of field: ",
5721            stringify!(_mjModel),
5722            "::",
5723            stringify!(tuple_adr)
5724        )
5725    );
5726    assert_eq!(
5727        unsafe { &(*(::std::ptr::null::<_mjModel>())).tuple_size as *const _ as usize },
5728        2960usize,
5729        concat!(
5730            "Offset of field: ",
5731            stringify!(_mjModel),
5732            "::",
5733            stringify!(tuple_size)
5734        )
5735    );
5736    assert_eq!(
5737        unsafe {
5738            &(*(::std::ptr::null::<_mjModel>())).tuple_objtype as *const _ as usize
5739        },
5740        2968usize,
5741        concat!(
5742            "Offset of field: ",
5743            stringify!(_mjModel),
5744            "::",
5745            stringify!(tuple_objtype)
5746        )
5747    );
5748    assert_eq!(
5749        unsafe {
5750            &(*(::std::ptr::null::<_mjModel>())).tuple_objid as *const _ as usize
5751        },
5752        2976usize,
5753        concat!(
5754            "Offset of field: ",
5755            stringify!(_mjModel),
5756            "::",
5757            stringify!(tuple_objid)
5758        )
5759    );
5760    assert_eq!(
5761        unsafe {
5762            &(*(::std::ptr::null::<_mjModel>())).tuple_objprm as *const _ as usize
5763        },
5764        2984usize,
5765        concat!(
5766            "Offset of field: ",
5767            stringify!(_mjModel),
5768            "::",
5769            stringify!(tuple_objprm)
5770        )
5771    );
5772    assert_eq!(
5773        unsafe { &(*(::std::ptr::null::<_mjModel>())).key_time as *const _ as usize },
5774        2992usize,
5775        concat!(
5776            "Offset of field: ",
5777            stringify!(_mjModel),
5778            "::",
5779            stringify!(key_time)
5780        )
5781    );
5782    assert_eq!(
5783        unsafe { &(*(::std::ptr::null::<_mjModel>())).key_qpos as *const _ as usize },
5784        3000usize,
5785        concat!(
5786            "Offset of field: ",
5787            stringify!(_mjModel),
5788            "::",
5789            stringify!(key_qpos)
5790        )
5791    );
5792    assert_eq!(
5793        unsafe { &(*(::std::ptr::null::<_mjModel>())).key_qvel as *const _ as usize },
5794        3008usize,
5795        concat!(
5796            "Offset of field: ",
5797            stringify!(_mjModel),
5798            "::",
5799            stringify!(key_qvel)
5800        )
5801    );
5802    assert_eq!(
5803        unsafe { &(*(::std::ptr::null::<_mjModel>())).key_act as *const _ as usize },
5804        3016usize,
5805        concat!(
5806            "Offset of field: ",
5807            stringify!(_mjModel),
5808            "::",
5809            stringify!(key_act)
5810        )
5811    );
5812    assert_eq!(
5813        unsafe {
5814            &(*(::std::ptr::null::<_mjModel>())).name_bodyadr as *const _ as usize
5815        },
5816        3024usize,
5817        concat!(
5818            "Offset of field: ",
5819            stringify!(_mjModel),
5820            "::",
5821            stringify!(name_bodyadr)
5822        )
5823    );
5824    assert_eq!(
5825        unsafe {
5826            &(*(::std::ptr::null::<_mjModel>())).name_jntadr as *const _ as usize
5827        },
5828        3032usize,
5829        concat!(
5830            "Offset of field: ",
5831            stringify!(_mjModel),
5832            "::",
5833            stringify!(name_jntadr)
5834        )
5835    );
5836    assert_eq!(
5837        unsafe {
5838            &(*(::std::ptr::null::<_mjModel>())).name_geomadr as *const _ as usize
5839        },
5840        3040usize,
5841        concat!(
5842            "Offset of field: ",
5843            stringify!(_mjModel),
5844            "::",
5845            stringify!(name_geomadr)
5846        )
5847    );
5848    assert_eq!(
5849        unsafe {
5850            &(*(::std::ptr::null::<_mjModel>())).name_siteadr as *const _ as usize
5851        },
5852        3048usize,
5853        concat!(
5854            "Offset of field: ",
5855            stringify!(_mjModel),
5856            "::",
5857            stringify!(name_siteadr)
5858        )
5859    );
5860    assert_eq!(
5861        unsafe {
5862            &(*(::std::ptr::null::<_mjModel>())).name_camadr as *const _ as usize
5863        },
5864        3056usize,
5865        concat!(
5866            "Offset of field: ",
5867            stringify!(_mjModel),
5868            "::",
5869            stringify!(name_camadr)
5870        )
5871    );
5872    assert_eq!(
5873        unsafe {
5874            &(*(::std::ptr::null::<_mjModel>())).name_lightadr as *const _ as usize
5875        },
5876        3064usize,
5877        concat!(
5878            "Offset of field: ",
5879            stringify!(_mjModel),
5880            "::",
5881            stringify!(name_lightadr)
5882        )
5883    );
5884    assert_eq!(
5885        unsafe {
5886            &(*(::std::ptr::null::<_mjModel>())).name_meshadr as *const _ as usize
5887        },
5888        3072usize,
5889        concat!(
5890            "Offset of field: ",
5891            stringify!(_mjModel),
5892            "::",
5893            stringify!(name_meshadr)
5894        )
5895    );
5896    assert_eq!(
5897        unsafe {
5898            &(*(::std::ptr::null::<_mjModel>())).name_skinadr as *const _ as usize
5899        },
5900        3080usize,
5901        concat!(
5902            "Offset of field: ",
5903            stringify!(_mjModel),
5904            "::",
5905            stringify!(name_skinadr)
5906        )
5907    );
5908    assert_eq!(
5909        unsafe {
5910            &(*(::std::ptr::null::<_mjModel>())).name_hfieldadr as *const _ as usize
5911        },
5912        3088usize,
5913        concat!(
5914            "Offset of field: ",
5915            stringify!(_mjModel),
5916            "::",
5917            stringify!(name_hfieldadr)
5918        )
5919    );
5920    assert_eq!(
5921        unsafe {
5922            &(*(::std::ptr::null::<_mjModel>())).name_texadr as *const _ as usize
5923        },
5924        3096usize,
5925        concat!(
5926            "Offset of field: ",
5927            stringify!(_mjModel),
5928            "::",
5929            stringify!(name_texadr)
5930        )
5931    );
5932    assert_eq!(
5933        unsafe {
5934            &(*(::std::ptr::null::<_mjModel>())).name_matadr as *const _ as usize
5935        },
5936        3104usize,
5937        concat!(
5938            "Offset of field: ",
5939            stringify!(_mjModel),
5940            "::",
5941            stringify!(name_matadr)
5942        )
5943    );
5944    assert_eq!(
5945        unsafe {
5946            &(*(::std::ptr::null::<_mjModel>())).name_pairadr as *const _ as usize
5947        },
5948        3112usize,
5949        concat!(
5950            "Offset of field: ",
5951            stringify!(_mjModel),
5952            "::",
5953            stringify!(name_pairadr)
5954        )
5955    );
5956    assert_eq!(
5957        unsafe {
5958            &(*(::std::ptr::null::<_mjModel>())).name_excludeadr as *const _ as usize
5959        },
5960        3120usize,
5961        concat!(
5962            "Offset of field: ",
5963            stringify!(_mjModel),
5964            "::",
5965            stringify!(name_excludeadr)
5966        )
5967    );
5968    assert_eq!(
5969        unsafe { &(*(::std::ptr::null::<_mjModel>())).name_eqadr as *const _ as usize },
5970        3128usize,
5971        concat!(
5972            "Offset of field: ",
5973            stringify!(_mjModel),
5974            "::",
5975            stringify!(name_eqadr)
5976        )
5977    );
5978    assert_eq!(
5979        unsafe {
5980            &(*(::std::ptr::null::<_mjModel>())).name_tendonadr as *const _ as usize
5981        },
5982        3136usize,
5983        concat!(
5984            "Offset of field: ",
5985            stringify!(_mjModel),
5986            "::",
5987            stringify!(name_tendonadr)
5988        )
5989    );
5990    assert_eq!(
5991        unsafe {
5992            &(*(::std::ptr::null::<_mjModel>())).name_actuatoradr as *const _ as usize
5993        },
5994        3144usize,
5995        concat!(
5996            "Offset of field: ",
5997            stringify!(_mjModel),
5998            "::",
5999            stringify!(name_actuatoradr)
6000        )
6001    );
6002    assert_eq!(
6003        unsafe {
6004            &(*(::std::ptr::null::<_mjModel>())).name_sensoradr as *const _ as usize
6005        },
6006        3152usize,
6007        concat!(
6008            "Offset of field: ",
6009            stringify!(_mjModel),
6010            "::",
6011            stringify!(name_sensoradr)
6012        )
6013    );
6014    assert_eq!(
6015        unsafe {
6016            &(*(::std::ptr::null::<_mjModel>())).name_numericadr as *const _ as usize
6017        },
6018        3160usize,
6019        concat!(
6020            "Offset of field: ",
6021            stringify!(_mjModel),
6022            "::",
6023            stringify!(name_numericadr)
6024        )
6025    );
6026    assert_eq!(
6027        unsafe {
6028            &(*(::std::ptr::null::<_mjModel>())).name_textadr as *const _ as usize
6029        },
6030        3168usize,
6031        concat!(
6032            "Offset of field: ",
6033            stringify!(_mjModel),
6034            "::",
6035            stringify!(name_textadr)
6036        )
6037    );
6038    assert_eq!(
6039        unsafe {
6040            &(*(::std::ptr::null::<_mjModel>())).name_tupleadr as *const _ as usize
6041        },
6042        3176usize,
6043        concat!(
6044            "Offset of field: ",
6045            stringify!(_mjModel),
6046            "::",
6047            stringify!(name_tupleadr)
6048        )
6049    );
6050    assert_eq!(
6051        unsafe {
6052            &(*(::std::ptr::null::<_mjModel>())).name_keyadr as *const _ as usize
6053        },
6054        3184usize,
6055        concat!(
6056            "Offset of field: ",
6057            stringify!(_mjModel),
6058            "::",
6059            stringify!(name_keyadr)
6060        )
6061    );
6062    assert_eq!(
6063        unsafe { &(*(::std::ptr::null::<_mjModel>())).names as *const _ as usize },
6064        3192usize,
6065        concat!(
6066            "Offset of field: ",
6067            stringify!(_mjModel),
6068            "::",
6069            stringify!(names)
6070        )
6071    );
6072}
6073impl Default for _mjModel {
6074    fn default() -> Self {
6075        unsafe { ::std::mem::zeroed() }
6076    }
6077}
6078pub type mjModel = _mjModel;
6079#[repr(u32)]
6080#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
6081pub enum _mjtWarning {
6082    INERTIA = 0,
6083    CONTACTFULL = 1,
6084    CNSTRFULL = 2,
6085    VGEOMFULL = 3,
6086    BADQPOS = 4,
6087    BADQVEL = 5,
6088    BADQACC = 6,
6089    BADCTRL = 7,
6090    mjNWARNING = 8,
6091}
6092pub use self::_mjtWarning as mjtWarning;
6093#[repr(u32)]
6094#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
6095pub enum _mjtTimer {
6096    STEP = 0,
6097    FORWARD = 1,
6098    INVERSE = 2,
6099    POSITION = 3,
6100    VELOCITY = 4,
6101    ACTUATION = 5,
6102    ACCELERATION = 6,
6103    CONSTRAINT = 7,
6104    POS_KINEMATICS = 8,
6105    POS_INERTIA = 9,
6106    POS_COLLISION = 10,
6107    POS_MAKE = 11,
6108    POS_PROJECT = 12,
6109    mjNTIMER = 13,
6110}
6111pub use self::_mjtTimer as mjtTimer;
6112#[repr(C)]
6113#[derive(Copy, Clone)]
6114pub struct _mjContact {
6115    pub dist: mjtNum,
6116    pub pos: [mjtNum; 3usize],
6117    pub frame: [mjtNum; 9usize],
6118    pub includemargin: mjtNum,
6119    pub friction: [mjtNum; 5usize],
6120    pub solref: [mjtNum; 2usize],
6121    pub solimp: [mjtNum; 5usize],
6122    pub mu: mjtNum,
6123    pub H: [mjtNum; 36usize],
6124    pub dim: ::std::os::raw::c_int,
6125    pub geom1: ::std::os::raw::c_int,
6126    pub geom2: ::std::os::raw::c_int,
6127    pub exclude: ::std::os::raw::c_int,
6128    pub efc_address: ::std::os::raw::c_int,
6129}
6130#[test]
6131fn bindgen_test_layout__mjContact() {
6132    assert_eq!(
6133        ::std::mem::size_of::<_mjContact>(),
6134        528usize,
6135        concat!("Size of: ", stringify!(_mjContact))
6136    );
6137    assert_eq!(
6138        ::std::mem::align_of::<_mjContact>(),
6139        8usize,
6140        concat!("Alignment of ", stringify!(_mjContact))
6141    );
6142    assert_eq!(
6143        unsafe { &(*(::std::ptr::null::<_mjContact>())).dist as *const _ as usize },
6144        0usize,
6145        concat!(
6146            "Offset of field: ",
6147            stringify!(_mjContact),
6148            "::",
6149            stringify!(dist)
6150        )
6151    );
6152    assert_eq!(
6153        unsafe { &(*(::std::ptr::null::<_mjContact>())).pos as *const _ as usize },
6154        8usize,
6155        concat!(
6156            "Offset of field: ",
6157            stringify!(_mjContact),
6158            "::",
6159            stringify!(pos)
6160        )
6161    );
6162    assert_eq!(
6163        unsafe { &(*(::std::ptr::null::<_mjContact>())).frame as *const _ as usize },
6164        32usize,
6165        concat!(
6166            "Offset of field: ",
6167            stringify!(_mjContact),
6168            "::",
6169            stringify!(frame)
6170        )
6171    );
6172    assert_eq!(
6173        unsafe {
6174            &(*(::std::ptr::null::<_mjContact>())).includemargin as *const _ as usize
6175        },
6176        104usize,
6177        concat!(
6178            "Offset of field: ",
6179            stringify!(_mjContact),
6180            "::",
6181            stringify!(includemargin)
6182        )
6183    );
6184    assert_eq!(
6185        unsafe { &(*(::std::ptr::null::<_mjContact>())).friction as *const _ as usize },
6186        112usize,
6187        concat!(
6188            "Offset of field: ",
6189            stringify!(_mjContact),
6190            "::",
6191            stringify!(friction)
6192        )
6193    );
6194    assert_eq!(
6195        unsafe { &(*(::std::ptr::null::<_mjContact>())).solref as *const _ as usize },
6196        152usize,
6197        concat!(
6198            "Offset of field: ",
6199            stringify!(_mjContact),
6200            "::",
6201            stringify!(solref)
6202        )
6203    );
6204    assert_eq!(
6205        unsafe { &(*(::std::ptr::null::<_mjContact>())).solimp as *const _ as usize },
6206        168usize,
6207        concat!(
6208            "Offset of field: ",
6209            stringify!(_mjContact),
6210            "::",
6211            stringify!(solimp)
6212        )
6213    );
6214    assert_eq!(
6215        unsafe { &(*(::std::ptr::null::<_mjContact>())).mu as *const _ as usize },
6216        208usize,
6217        concat!(
6218            "Offset of field: ",
6219            stringify!(_mjContact),
6220            "::",
6221            stringify!(mu)
6222        )
6223    );
6224    assert_eq!(
6225        unsafe { &(*(::std::ptr::null::<_mjContact>())).H as *const _ as usize },
6226        216usize,
6227        concat!(
6228            "Offset of field: ",
6229            stringify!(_mjContact),
6230            "::",
6231            stringify!(H)
6232        )
6233    );
6234    assert_eq!(
6235        unsafe { &(*(::std::ptr::null::<_mjContact>())).dim as *const _ as usize },
6236        504usize,
6237        concat!(
6238            "Offset of field: ",
6239            stringify!(_mjContact),
6240            "::",
6241            stringify!(dim)
6242        )
6243    );
6244    assert_eq!(
6245        unsafe { &(*(::std::ptr::null::<_mjContact>())).geom1 as *const _ as usize },
6246        508usize,
6247        concat!(
6248            "Offset of field: ",
6249            stringify!(_mjContact),
6250            "::",
6251            stringify!(geom1)
6252        )
6253    );
6254    assert_eq!(
6255        unsafe { &(*(::std::ptr::null::<_mjContact>())).geom2 as *const _ as usize },
6256        512usize,
6257        concat!(
6258            "Offset of field: ",
6259            stringify!(_mjContact),
6260            "::",
6261            stringify!(geom2)
6262        )
6263    );
6264    assert_eq!(
6265        unsafe { &(*(::std::ptr::null::<_mjContact>())).exclude as *const _ as usize },
6266        516usize,
6267        concat!(
6268            "Offset of field: ",
6269            stringify!(_mjContact),
6270            "::",
6271            stringify!(exclude)
6272        )
6273    );
6274    assert_eq!(
6275        unsafe {
6276            &(*(::std::ptr::null::<_mjContact>())).efc_address as *const _ as usize
6277        },
6278        520usize,
6279        concat!(
6280            "Offset of field: ",
6281            stringify!(_mjContact),
6282            "::",
6283            stringify!(efc_address)
6284        )
6285    );
6286}
6287impl Default for _mjContact {
6288    fn default() -> Self {
6289        unsafe { ::std::mem::zeroed() }
6290    }
6291}
6292pub type mjContact = _mjContact;
6293#[repr(C)]
6294#[derive(Debug, Default, Copy, Clone)]
6295pub struct _mjWarningStat {
6296    pub lastinfo: ::std::os::raw::c_int,
6297    pub number: ::std::os::raw::c_int,
6298}
6299#[test]
6300fn bindgen_test_layout__mjWarningStat() {
6301    assert_eq!(
6302        ::std::mem::size_of::<_mjWarningStat>(),
6303        8usize,
6304        concat!("Size of: ", stringify!(_mjWarningStat))
6305    );
6306    assert_eq!(
6307        ::std::mem::align_of::<_mjWarningStat>(),
6308        4usize,
6309        concat!("Alignment of ", stringify!(_mjWarningStat))
6310    );
6311    assert_eq!(
6312        unsafe {
6313            &(*(::std::ptr::null::<_mjWarningStat>())).lastinfo as *const _ as usize
6314        },
6315        0usize,
6316        concat!(
6317            "Offset of field: ",
6318            stringify!(_mjWarningStat),
6319            "::",
6320            stringify!(lastinfo)
6321        )
6322    );
6323    assert_eq!(
6324        unsafe {
6325            &(*(::std::ptr::null::<_mjWarningStat>())).number as *const _ as usize
6326        },
6327        4usize,
6328        concat!(
6329            "Offset of field: ",
6330            stringify!(_mjWarningStat),
6331            "::",
6332            stringify!(number)
6333        )
6334    );
6335}
6336pub type mjWarningStat = _mjWarningStat;
6337#[repr(C)]
6338#[derive(Debug, Default, Copy, Clone)]
6339pub struct _mjTimerStat {
6340    pub duration: mjtNum,
6341    pub number: ::std::os::raw::c_int,
6342}
6343#[test]
6344fn bindgen_test_layout__mjTimerStat() {
6345    assert_eq!(
6346        ::std::mem::size_of::<_mjTimerStat>(),
6347        16usize,
6348        concat!("Size of: ", stringify!(_mjTimerStat))
6349    );
6350    assert_eq!(
6351        ::std::mem::align_of::<_mjTimerStat>(),
6352        8usize,
6353        concat!("Alignment of ", stringify!(_mjTimerStat))
6354    );
6355    assert_eq!(
6356        unsafe {
6357            &(*(::std::ptr::null::<_mjTimerStat>())).duration as *const _ as usize
6358        },
6359        0usize,
6360        concat!(
6361            "Offset of field: ",
6362            stringify!(_mjTimerStat),
6363            "::",
6364            stringify!(duration)
6365        )
6366    );
6367    assert_eq!(
6368        unsafe { &(*(::std::ptr::null::<_mjTimerStat>())).number as *const _ as usize },
6369        8usize,
6370        concat!(
6371            "Offset of field: ",
6372            stringify!(_mjTimerStat),
6373            "::",
6374            stringify!(number)
6375        )
6376    );
6377}
6378pub type mjTimerStat = _mjTimerStat;
6379#[repr(C)]
6380#[derive(Debug, Default, Copy, Clone)]
6381pub struct _mjSolverStat {
6382    pub improvement: mjtNum,
6383    pub gradient: mjtNum,
6384    pub lineslope: mjtNum,
6385    pub nactive: ::std::os::raw::c_int,
6386    pub nchange: ::std::os::raw::c_int,
6387    pub neval: ::std::os::raw::c_int,
6388    pub nupdate: ::std::os::raw::c_int,
6389}
6390#[test]
6391fn bindgen_test_layout__mjSolverStat() {
6392    assert_eq!(
6393        ::std::mem::size_of::<_mjSolverStat>(),
6394        40usize,
6395        concat!("Size of: ", stringify!(_mjSolverStat))
6396    );
6397    assert_eq!(
6398        ::std::mem::align_of::<_mjSolverStat>(),
6399        8usize,
6400        concat!("Alignment of ", stringify!(_mjSolverStat))
6401    );
6402    assert_eq!(
6403        unsafe {
6404            &(*(::std::ptr::null::<_mjSolverStat>())).improvement as *const _ as usize
6405        },
6406        0usize,
6407        concat!(
6408            "Offset of field: ",
6409            stringify!(_mjSolverStat),
6410            "::",
6411            stringify!(improvement)
6412        )
6413    );
6414    assert_eq!(
6415        unsafe {
6416            &(*(::std::ptr::null::<_mjSolverStat>())).gradient as *const _ as usize
6417        },
6418        8usize,
6419        concat!(
6420            "Offset of field: ",
6421            stringify!(_mjSolverStat),
6422            "::",
6423            stringify!(gradient)
6424        )
6425    );
6426    assert_eq!(
6427        unsafe {
6428            &(*(::std::ptr::null::<_mjSolverStat>())).lineslope as *const _ as usize
6429        },
6430        16usize,
6431        concat!(
6432            "Offset of field: ",
6433            stringify!(_mjSolverStat),
6434            "::",
6435            stringify!(lineslope)
6436        )
6437    );
6438    assert_eq!(
6439        unsafe {
6440            &(*(::std::ptr::null::<_mjSolverStat>())).nactive as *const _ as usize
6441        },
6442        24usize,
6443        concat!(
6444            "Offset of field: ",
6445            stringify!(_mjSolverStat),
6446            "::",
6447            stringify!(nactive)
6448        )
6449    );
6450    assert_eq!(
6451        unsafe {
6452            &(*(::std::ptr::null::<_mjSolverStat>())).nchange as *const _ as usize
6453        },
6454        28usize,
6455        concat!(
6456            "Offset of field: ",
6457            stringify!(_mjSolverStat),
6458            "::",
6459            stringify!(nchange)
6460        )
6461    );
6462    assert_eq!(
6463        unsafe { &(*(::std::ptr::null::<_mjSolverStat>())).neval as *const _ as usize },
6464        32usize,
6465        concat!(
6466            "Offset of field: ",
6467            stringify!(_mjSolverStat),
6468            "::",
6469            stringify!(neval)
6470        )
6471    );
6472    assert_eq!(
6473        unsafe {
6474            &(*(::std::ptr::null::<_mjSolverStat>())).nupdate as *const _ as usize
6475        },
6476        36usize,
6477        concat!(
6478            "Offset of field: ",
6479            stringify!(_mjSolverStat),
6480            "::",
6481            stringify!(nupdate)
6482        )
6483    );
6484}
6485pub type mjSolverStat = _mjSolverStat;
6486#[repr(C)]
6487#[derive(Copy, Clone)]
6488pub struct _mjData {
6489    pub nstack: ::std::os::raw::c_int,
6490    pub nbuffer: ::std::os::raw::c_int,
6491    pub pstack: ::std::os::raw::c_int,
6492    pub maxuse_stack: ::std::os::raw::c_int,
6493    pub maxuse_con: ::std::os::raw::c_int,
6494    pub maxuse_efc: ::std::os::raw::c_int,
6495    pub warning: [mjWarningStat; 8usize],
6496    pub timer: [mjTimerStat; 13usize],
6497    pub solver: [mjSolverStat; 1000usize],
6498    pub solver_iter: ::std::os::raw::c_int,
6499    pub solver_nnz: ::std::os::raw::c_int,
6500    pub solver_fwdinv: [mjtNum; 2usize],
6501    pub ne: ::std::os::raw::c_int,
6502    pub nf: ::std::os::raw::c_int,
6503    pub nefc: ::std::os::raw::c_int,
6504    pub ncon: ::std::os::raw::c_int,
6505    pub time: mjtNum,
6506    pub energy: [mjtNum; 2usize],
6507    pub buffer: *mut ::std::os::raw::c_void,
6508    pub stack: *mut mjtNum,
6509    pub qpos: *mut mjtNum,
6510    pub qvel: *mut mjtNum,
6511    pub act: *mut mjtNum,
6512    pub qacc_warmstart: *mut mjtNum,
6513    pub ctrl: *mut mjtNum,
6514    pub qfrc_applied: *mut mjtNum,
6515    pub xfrc_applied: *mut mjtNum,
6516    pub qacc: *mut mjtNum,
6517    pub act_dot: *mut mjtNum,
6518    pub mocap_pos: *mut mjtNum,
6519    pub mocap_quat: *mut mjtNum,
6520    pub userdata: *mut mjtNum,
6521    pub sensordata: *mut mjtNum,
6522    pub xpos: *mut mjtNum,
6523    pub xquat: *mut mjtNum,
6524    pub xmat: *mut mjtNum,
6525    pub xipos: *mut mjtNum,
6526    pub ximat: *mut mjtNum,
6527    pub xanchor: *mut mjtNum,
6528    pub xaxis: *mut mjtNum,
6529    pub geom_xpos: *mut mjtNum,
6530    pub geom_xmat: *mut mjtNum,
6531    pub site_xpos: *mut mjtNum,
6532    pub site_xmat: *mut mjtNum,
6533    pub cam_xpos: *mut mjtNum,
6534    pub cam_xmat: *mut mjtNum,
6535    pub light_xpos: *mut mjtNum,
6536    pub light_xdir: *mut mjtNum,
6537    pub subtree_com: *mut mjtNum,
6538    pub cdof: *mut mjtNum,
6539    pub cinert: *mut mjtNum,
6540    pub ten_wrapadr: *mut ::std::os::raw::c_int,
6541    pub ten_wrapnum: *mut ::std::os::raw::c_int,
6542    pub ten_J_rownnz: *mut ::std::os::raw::c_int,
6543    pub ten_J_rowadr: *mut ::std::os::raw::c_int,
6544    pub ten_J_colind: *mut ::std::os::raw::c_int,
6545    pub ten_length: *mut mjtNum,
6546    pub ten_J: *mut mjtNum,
6547    pub wrap_obj: *mut ::std::os::raw::c_int,
6548    pub wrap_xpos: *mut mjtNum,
6549    pub actuator_length: *mut mjtNum,
6550    pub actuator_moment: *mut mjtNum,
6551    pub crb: *mut mjtNum,
6552    pub qM: *mut mjtNum,
6553    pub qLD: *mut mjtNum,
6554    pub qLDiagInv: *mut mjtNum,
6555    pub qLDiagSqrtInv: *mut mjtNum,
6556    pub contact: *mut mjContact,
6557    pub efc_type: *mut ::std::os::raw::c_int,
6558    pub efc_id: *mut ::std::os::raw::c_int,
6559    pub efc_J_rownnz: *mut ::std::os::raw::c_int,
6560    pub efc_J_rowadr: *mut ::std::os::raw::c_int,
6561    pub efc_J_rowsuper: *mut ::std::os::raw::c_int,
6562    pub efc_J_colind: *mut ::std::os::raw::c_int,
6563    pub efc_JT_rownnz: *mut ::std::os::raw::c_int,
6564    pub efc_JT_rowadr: *mut ::std::os::raw::c_int,
6565    pub efc_JT_rowsuper: *mut ::std::os::raw::c_int,
6566    pub efc_JT_colind: *mut ::std::os::raw::c_int,
6567    pub efc_J: *mut mjtNum,
6568    pub efc_JT: *mut mjtNum,
6569    pub efc_pos: *mut mjtNum,
6570    pub efc_margin: *mut mjtNum,
6571    pub efc_frictionloss: *mut mjtNum,
6572    pub efc_diagApprox: *mut mjtNum,
6573    pub efc_KBIP: *mut mjtNum,
6574    pub efc_D: *mut mjtNum,
6575    pub efc_R: *mut mjtNum,
6576    pub efc_AR_rownnz: *mut ::std::os::raw::c_int,
6577    pub efc_AR_rowadr: *mut ::std::os::raw::c_int,
6578    pub efc_AR_colind: *mut ::std::os::raw::c_int,
6579    pub efc_AR: *mut mjtNum,
6580    pub ten_velocity: *mut mjtNum,
6581    pub actuator_velocity: *mut mjtNum,
6582    pub cvel: *mut mjtNum,
6583    pub cdof_dot: *mut mjtNum,
6584    pub qfrc_bias: *mut mjtNum,
6585    pub qfrc_passive: *mut mjtNum,
6586    pub efc_vel: *mut mjtNum,
6587    pub efc_aref: *mut mjtNum,
6588    pub subtree_linvel: *mut mjtNum,
6589    pub subtree_angmom: *mut mjtNum,
6590    pub actuator_force: *mut mjtNum,
6591    pub qfrc_actuator: *mut mjtNum,
6592    pub qfrc_unc: *mut mjtNum,
6593    pub qacc_unc: *mut mjtNum,
6594    pub efc_b: *mut mjtNum,
6595    pub efc_force: *mut mjtNum,
6596    pub efc_state: *mut ::std::os::raw::c_int,
6597    pub qfrc_constraint: *mut mjtNum,
6598    pub qfrc_inverse: *mut mjtNum,
6599    pub cacc: *mut mjtNum,
6600    pub cfrc_int: *mut mjtNum,
6601    pub cfrc_ext: *mut mjtNum,
6602}
6603#[test]
6604fn bindgen_test_layout__mjData() {
6605    assert_eq!(
6606        ::std::mem::size_of::<_mjData>(),
6607        41120usize,
6608        concat!("Size of: ", stringify!(_mjData))
6609    );
6610    assert_eq!(
6611        ::std::mem::align_of::<_mjData>(),
6612        8usize,
6613        concat!("Alignment of ", stringify!(_mjData))
6614    );
6615    assert_eq!(
6616        unsafe { &(*(::std::ptr::null::<_mjData>())).nstack as *const _ as usize },
6617        0usize,
6618        concat!(
6619            "Offset of field: ",
6620            stringify!(_mjData),
6621            "::",
6622            stringify!(nstack)
6623        )
6624    );
6625    assert_eq!(
6626        unsafe { &(*(::std::ptr::null::<_mjData>())).nbuffer as *const _ as usize },
6627        4usize,
6628        concat!(
6629            "Offset of field: ",
6630            stringify!(_mjData),
6631            "::",
6632            stringify!(nbuffer)
6633        )
6634    );
6635    assert_eq!(
6636        unsafe { &(*(::std::ptr::null::<_mjData>())).pstack as *const _ as usize },
6637        8usize,
6638        concat!(
6639            "Offset of field: ",
6640            stringify!(_mjData),
6641            "::",
6642            stringify!(pstack)
6643        )
6644    );
6645    assert_eq!(
6646        unsafe {
6647            &(*(::std::ptr::null::<_mjData>())).maxuse_stack as *const _ as usize
6648        },
6649        12usize,
6650        concat!(
6651            "Offset of field: ",
6652            stringify!(_mjData),
6653            "::",
6654            stringify!(maxuse_stack)
6655        )
6656    );
6657    assert_eq!(
6658        unsafe { &(*(::std::ptr::null::<_mjData>())).maxuse_con as *const _ as usize },
6659        16usize,
6660        concat!(
6661            "Offset of field: ",
6662            stringify!(_mjData),
6663            "::",
6664            stringify!(maxuse_con)
6665        )
6666    );
6667    assert_eq!(
6668        unsafe { &(*(::std::ptr::null::<_mjData>())).maxuse_efc as *const _ as usize },
6669        20usize,
6670        concat!(
6671            "Offset of field: ",
6672            stringify!(_mjData),
6673            "::",
6674            stringify!(maxuse_efc)
6675        )
6676    );
6677    assert_eq!(
6678        unsafe { &(*(::std::ptr::null::<_mjData>())).warning as *const _ as usize },
6679        24usize,
6680        concat!(
6681            "Offset of field: ",
6682            stringify!(_mjData),
6683            "::",
6684            stringify!(warning)
6685        )
6686    );
6687    assert_eq!(
6688        unsafe { &(*(::std::ptr::null::<_mjData>())).timer as *const _ as usize },
6689        88usize,
6690        concat!(
6691            "Offset of field: ",
6692            stringify!(_mjData),
6693            "::",
6694            stringify!(timer)
6695        )
6696    );
6697    assert_eq!(
6698        unsafe { &(*(::std::ptr::null::<_mjData>())).solver as *const _ as usize },
6699        296usize,
6700        concat!(
6701            "Offset of field: ",
6702            stringify!(_mjData),
6703            "::",
6704            stringify!(solver)
6705        )
6706    );
6707    assert_eq!(
6708        unsafe { &(*(::std::ptr::null::<_mjData>())).solver_iter as *const _ as usize },
6709        40296usize,
6710        concat!(
6711            "Offset of field: ",
6712            stringify!(_mjData),
6713            "::",
6714            stringify!(solver_iter)
6715        )
6716    );
6717    assert_eq!(
6718        unsafe { &(*(::std::ptr::null::<_mjData>())).solver_nnz as *const _ as usize },
6719        40300usize,
6720        concat!(
6721            "Offset of field: ",
6722            stringify!(_mjData),
6723            "::",
6724            stringify!(solver_nnz)
6725        )
6726    );
6727    assert_eq!(
6728        unsafe {
6729            &(*(::std::ptr::null::<_mjData>())).solver_fwdinv as *const _ as usize
6730        },
6731        40304usize,
6732        concat!(
6733            "Offset of field: ",
6734            stringify!(_mjData),
6735            "::",
6736            stringify!(solver_fwdinv)
6737        )
6738    );
6739    assert_eq!(
6740        unsafe { &(*(::std::ptr::null::<_mjData>())).ne as *const _ as usize },
6741        40320usize,
6742        concat!(
6743            "Offset of field: ",
6744            stringify!(_mjData),
6745            "::",
6746            stringify!(ne)
6747        )
6748    );
6749    assert_eq!(
6750        unsafe { &(*(::std::ptr::null::<_mjData>())).nf as *const _ as usize },
6751        40324usize,
6752        concat!(
6753            "Offset of field: ",
6754            stringify!(_mjData),
6755            "::",
6756            stringify!(nf)
6757        )
6758    );
6759    assert_eq!(
6760        unsafe { &(*(::std::ptr::null::<_mjData>())).nefc as *const _ as usize },
6761        40328usize,
6762        concat!(
6763            "Offset of field: ",
6764            stringify!(_mjData),
6765            "::",
6766            stringify!(nefc)
6767        )
6768    );
6769    assert_eq!(
6770        unsafe { &(*(::std::ptr::null::<_mjData>())).ncon as *const _ as usize },
6771        40332usize,
6772        concat!(
6773            "Offset of field: ",
6774            stringify!(_mjData),
6775            "::",
6776            stringify!(ncon)
6777        )
6778    );
6779    assert_eq!(
6780        unsafe { &(*(::std::ptr::null::<_mjData>())).time as *const _ as usize },
6781        40336usize,
6782        concat!(
6783            "Offset of field: ",
6784            stringify!(_mjData),
6785            "::",
6786            stringify!(time)
6787        )
6788    );
6789    assert_eq!(
6790        unsafe { &(*(::std::ptr::null::<_mjData>())).energy as *const _ as usize },
6791        40344usize,
6792        concat!(
6793            "Offset of field: ",
6794            stringify!(_mjData),
6795            "::",
6796            stringify!(energy)
6797        )
6798    );
6799    assert_eq!(
6800        unsafe { &(*(::std::ptr::null::<_mjData>())).buffer as *const _ as usize },
6801        40360usize,
6802        concat!(
6803            "Offset of field: ",
6804            stringify!(_mjData),
6805            "::",
6806            stringify!(buffer)
6807        )
6808    );
6809    assert_eq!(
6810        unsafe { &(*(::std::ptr::null::<_mjData>())).stack as *const _ as usize },
6811        40368usize,
6812        concat!(
6813            "Offset of field: ",
6814            stringify!(_mjData),
6815            "::",
6816            stringify!(stack)
6817        )
6818    );
6819    assert_eq!(
6820        unsafe { &(*(::std::ptr::null::<_mjData>())).qpos as *const _ as usize },
6821        40376usize,
6822        concat!(
6823            "Offset of field: ",
6824            stringify!(_mjData),
6825            "::",
6826            stringify!(qpos)
6827        )
6828    );
6829    assert_eq!(
6830        unsafe { &(*(::std::ptr::null::<_mjData>())).qvel as *const _ as usize },
6831        40384usize,
6832        concat!(
6833            "Offset of field: ",
6834            stringify!(_mjData),
6835            "::",
6836            stringify!(qvel)
6837        )
6838    );
6839    assert_eq!(
6840        unsafe { &(*(::std::ptr::null::<_mjData>())).act as *const _ as usize },
6841        40392usize,
6842        concat!(
6843            "Offset of field: ",
6844            stringify!(_mjData),
6845            "::",
6846            stringify!(act)
6847        )
6848    );
6849    assert_eq!(
6850        unsafe {
6851            &(*(::std::ptr::null::<_mjData>())).qacc_warmstart as *const _ as usize
6852        },
6853        40400usize,
6854        concat!(
6855            "Offset of field: ",
6856            stringify!(_mjData),
6857            "::",
6858            stringify!(qacc_warmstart)
6859        )
6860    );
6861    assert_eq!(
6862        unsafe { &(*(::std::ptr::null::<_mjData>())).ctrl as *const _ as usize },
6863        40408usize,
6864        concat!(
6865            "Offset of field: ",
6866            stringify!(_mjData),
6867            "::",
6868            stringify!(ctrl)
6869        )
6870    );
6871    assert_eq!(
6872        unsafe {
6873            &(*(::std::ptr::null::<_mjData>())).qfrc_applied as *const _ as usize
6874        },
6875        40416usize,
6876        concat!(
6877            "Offset of field: ",
6878            stringify!(_mjData),
6879            "::",
6880            stringify!(qfrc_applied)
6881        )
6882    );
6883    assert_eq!(
6884        unsafe {
6885            &(*(::std::ptr::null::<_mjData>())).xfrc_applied as *const _ as usize
6886        },
6887        40424usize,
6888        concat!(
6889            "Offset of field: ",
6890            stringify!(_mjData),
6891            "::",
6892            stringify!(xfrc_applied)
6893        )
6894    );
6895    assert_eq!(
6896        unsafe { &(*(::std::ptr::null::<_mjData>())).qacc as *const _ as usize },
6897        40432usize,
6898        concat!(
6899            "Offset of field: ",
6900            stringify!(_mjData),
6901            "::",
6902            stringify!(qacc)
6903        )
6904    );
6905    assert_eq!(
6906        unsafe { &(*(::std::ptr::null::<_mjData>())).act_dot as *const _ as usize },
6907        40440usize,
6908        concat!(
6909            "Offset of field: ",
6910            stringify!(_mjData),
6911            "::",
6912            stringify!(act_dot)
6913        )
6914    );
6915    assert_eq!(
6916        unsafe { &(*(::std::ptr::null::<_mjData>())).mocap_pos as *const _ as usize },
6917        40448usize,
6918        concat!(
6919            "Offset of field: ",
6920            stringify!(_mjData),
6921            "::",
6922            stringify!(mocap_pos)
6923        )
6924    );
6925    assert_eq!(
6926        unsafe { &(*(::std::ptr::null::<_mjData>())).mocap_quat as *const _ as usize },
6927        40456usize,
6928        concat!(
6929            "Offset of field: ",
6930            stringify!(_mjData),
6931            "::",
6932            stringify!(mocap_quat)
6933        )
6934    );
6935    assert_eq!(
6936        unsafe { &(*(::std::ptr::null::<_mjData>())).userdata as *const _ as usize },
6937        40464usize,
6938        concat!(
6939            "Offset of field: ",
6940            stringify!(_mjData),
6941            "::",
6942            stringify!(userdata)
6943        )
6944    );
6945    assert_eq!(
6946        unsafe { &(*(::std::ptr::null::<_mjData>())).sensordata as *const _ as usize },
6947        40472usize,
6948        concat!(
6949            "Offset of field: ",
6950            stringify!(_mjData),
6951            "::",
6952            stringify!(sensordata)
6953        )
6954    );
6955    assert_eq!(
6956        unsafe { &(*(::std::ptr::null::<_mjData>())).xpos as *const _ as usize },
6957        40480usize,
6958        concat!(
6959            "Offset of field: ",
6960            stringify!(_mjData),
6961            "::",
6962            stringify!(xpos)
6963        )
6964    );
6965    assert_eq!(
6966        unsafe { &(*(::std::ptr::null::<_mjData>())).xquat as *const _ as usize },
6967        40488usize,
6968        concat!(
6969            "Offset of field: ",
6970            stringify!(_mjData),
6971            "::",
6972            stringify!(xquat)
6973        )
6974    );
6975    assert_eq!(
6976        unsafe { &(*(::std::ptr::null::<_mjData>())).xmat as *const _ as usize },
6977        40496usize,
6978        concat!(
6979            "Offset of field: ",
6980            stringify!(_mjData),
6981            "::",
6982            stringify!(xmat)
6983        )
6984    );
6985    assert_eq!(
6986        unsafe { &(*(::std::ptr::null::<_mjData>())).xipos as *const _ as usize },
6987        40504usize,
6988        concat!(
6989            "Offset of field: ",
6990            stringify!(_mjData),
6991            "::",
6992            stringify!(xipos)
6993        )
6994    );
6995    assert_eq!(
6996        unsafe { &(*(::std::ptr::null::<_mjData>())).ximat as *const _ as usize },
6997        40512usize,
6998        concat!(
6999            "Offset of field: ",
7000            stringify!(_mjData),
7001            "::",
7002            stringify!(ximat)
7003        )
7004    );
7005    assert_eq!(
7006        unsafe { &(*(::std::ptr::null::<_mjData>())).xanchor as *const _ as usize },
7007        40520usize,
7008        concat!(
7009            "Offset of field: ",
7010            stringify!(_mjData),
7011            "::",
7012            stringify!(xanchor)
7013        )
7014    );
7015    assert_eq!(
7016        unsafe { &(*(::std::ptr::null::<_mjData>())).xaxis as *const _ as usize },
7017        40528usize,
7018        concat!(
7019            "Offset of field: ",
7020            stringify!(_mjData),
7021            "::",
7022            stringify!(xaxis)
7023        )
7024    );
7025    assert_eq!(
7026        unsafe { &(*(::std::ptr::null::<_mjData>())).geom_xpos as *const _ as usize },
7027        40536usize,
7028        concat!(
7029            "Offset of field: ",
7030            stringify!(_mjData),
7031            "::",
7032            stringify!(geom_xpos)
7033        )
7034    );
7035    assert_eq!(
7036        unsafe { &(*(::std::ptr::null::<_mjData>())).geom_xmat as *const _ as usize },
7037        40544usize,
7038        concat!(
7039            "Offset of field: ",
7040            stringify!(_mjData),
7041            "::",
7042            stringify!(geom_xmat)
7043        )
7044    );
7045    assert_eq!(
7046        unsafe { &(*(::std::ptr::null::<_mjData>())).site_xpos as *const _ as usize },
7047        40552usize,
7048        concat!(
7049            "Offset of field: ",
7050            stringify!(_mjData),
7051            "::",
7052            stringify!(site_xpos)
7053        )
7054    );
7055    assert_eq!(
7056        unsafe { &(*(::std::ptr::null::<_mjData>())).site_xmat as *const _ as usize },
7057        40560usize,
7058        concat!(
7059            "Offset of field: ",
7060            stringify!(_mjData),
7061            "::",
7062            stringify!(site_xmat)
7063        )
7064    );
7065    assert_eq!(
7066        unsafe { &(*(::std::ptr::null::<_mjData>())).cam_xpos as *const _ as usize },
7067        40568usize,
7068        concat!(
7069            "Offset of field: ",
7070            stringify!(_mjData),
7071            "::",
7072            stringify!(cam_xpos)
7073        )
7074    );
7075    assert_eq!(
7076        unsafe { &(*(::std::ptr::null::<_mjData>())).cam_xmat as *const _ as usize },
7077        40576usize,
7078        concat!(
7079            "Offset of field: ",
7080            stringify!(_mjData),
7081            "::",
7082            stringify!(cam_xmat)
7083        )
7084    );
7085    assert_eq!(
7086        unsafe { &(*(::std::ptr::null::<_mjData>())).light_xpos as *const _ as usize },
7087        40584usize,
7088        concat!(
7089            "Offset of field: ",
7090            stringify!(_mjData),
7091            "::",
7092            stringify!(light_xpos)
7093        )
7094    );
7095    assert_eq!(
7096        unsafe { &(*(::std::ptr::null::<_mjData>())).light_xdir as *const _ as usize },
7097        40592usize,
7098        concat!(
7099            "Offset of field: ",
7100            stringify!(_mjData),
7101            "::",
7102            stringify!(light_xdir)
7103        )
7104    );
7105    assert_eq!(
7106        unsafe { &(*(::std::ptr::null::<_mjData>())).subtree_com as *const _ as usize },
7107        40600usize,
7108        concat!(
7109            "Offset of field: ",
7110            stringify!(_mjData),
7111            "::",
7112            stringify!(subtree_com)
7113        )
7114    );
7115    assert_eq!(
7116        unsafe { &(*(::std::ptr::null::<_mjData>())).cdof as *const _ as usize },
7117        40608usize,
7118        concat!(
7119            "Offset of field: ",
7120            stringify!(_mjData),
7121            "::",
7122            stringify!(cdof)
7123        )
7124    );
7125    assert_eq!(
7126        unsafe { &(*(::std::ptr::null::<_mjData>())).cinert as *const _ as usize },
7127        40616usize,
7128        concat!(
7129            "Offset of field: ",
7130            stringify!(_mjData),
7131            "::",
7132            stringify!(cinert)
7133        )
7134    );
7135    assert_eq!(
7136        unsafe { &(*(::std::ptr::null::<_mjData>())).ten_wrapadr as *const _ as usize },
7137        40624usize,
7138        concat!(
7139            "Offset of field: ",
7140            stringify!(_mjData),
7141            "::",
7142            stringify!(ten_wrapadr)
7143        )
7144    );
7145    assert_eq!(
7146        unsafe { &(*(::std::ptr::null::<_mjData>())).ten_wrapnum as *const _ as usize },
7147        40632usize,
7148        concat!(
7149            "Offset of field: ",
7150            stringify!(_mjData),
7151            "::",
7152            stringify!(ten_wrapnum)
7153        )
7154    );
7155    assert_eq!(
7156        unsafe {
7157            &(*(::std::ptr::null::<_mjData>())).ten_J_rownnz as *const _ as usize
7158        },
7159        40640usize,
7160        concat!(
7161            "Offset of field: ",
7162            stringify!(_mjData),
7163            "::",
7164            stringify!(ten_J_rownnz)
7165        )
7166    );
7167    assert_eq!(
7168        unsafe {
7169            &(*(::std::ptr::null::<_mjData>())).ten_J_rowadr as *const _ as usize
7170        },
7171        40648usize,
7172        concat!(
7173            "Offset of field: ",
7174            stringify!(_mjData),
7175            "::",
7176            stringify!(ten_J_rowadr)
7177        )
7178    );
7179    assert_eq!(
7180        unsafe {
7181            &(*(::std::ptr::null::<_mjData>())).ten_J_colind as *const _ as usize
7182        },
7183        40656usize,
7184        concat!(
7185            "Offset of field: ",
7186            stringify!(_mjData),
7187            "::",
7188            stringify!(ten_J_colind)
7189        )
7190    );
7191    assert_eq!(
7192        unsafe { &(*(::std::ptr::null::<_mjData>())).ten_length as *const _ as usize },
7193        40664usize,
7194        concat!(
7195            "Offset of field: ",
7196            stringify!(_mjData),
7197            "::",
7198            stringify!(ten_length)
7199        )
7200    );
7201    assert_eq!(
7202        unsafe { &(*(::std::ptr::null::<_mjData>())).ten_J as *const _ as usize },
7203        40672usize,
7204        concat!(
7205            "Offset of field: ",
7206            stringify!(_mjData),
7207            "::",
7208            stringify!(ten_J)
7209        )
7210    );
7211    assert_eq!(
7212        unsafe { &(*(::std::ptr::null::<_mjData>())).wrap_obj as *const _ as usize },
7213        40680usize,
7214        concat!(
7215            "Offset of field: ",
7216            stringify!(_mjData),
7217            "::",
7218            stringify!(wrap_obj)
7219        )
7220    );
7221    assert_eq!(
7222        unsafe { &(*(::std::ptr::null::<_mjData>())).wrap_xpos as *const _ as usize },
7223        40688usize,
7224        concat!(
7225            "Offset of field: ",
7226            stringify!(_mjData),
7227            "::",
7228            stringify!(wrap_xpos)
7229        )
7230    );
7231    assert_eq!(
7232        unsafe {
7233            &(*(::std::ptr::null::<_mjData>())).actuator_length as *const _ as usize
7234        },
7235        40696usize,
7236        concat!(
7237            "Offset of field: ",
7238            stringify!(_mjData),
7239            "::",
7240            stringify!(actuator_length)
7241        )
7242    );
7243    assert_eq!(
7244        unsafe {
7245            &(*(::std::ptr::null::<_mjData>())).actuator_moment as *const _ as usize
7246        },
7247        40704usize,
7248        concat!(
7249            "Offset of field: ",
7250            stringify!(_mjData),
7251            "::",
7252            stringify!(actuator_moment)
7253        )
7254    );
7255    assert_eq!(
7256        unsafe { &(*(::std::ptr::null::<_mjData>())).crb as *const _ as usize },
7257        40712usize,
7258        concat!(
7259            "Offset of field: ",
7260            stringify!(_mjData),
7261            "::",
7262            stringify!(crb)
7263        )
7264    );
7265    assert_eq!(
7266        unsafe { &(*(::std::ptr::null::<_mjData>())).qM as *const _ as usize },
7267        40720usize,
7268        concat!(
7269            "Offset of field: ",
7270            stringify!(_mjData),
7271            "::",
7272            stringify!(qM)
7273        )
7274    );
7275    assert_eq!(
7276        unsafe { &(*(::std::ptr::null::<_mjData>())).qLD as *const _ as usize },
7277        40728usize,
7278        concat!(
7279            "Offset of field: ",
7280            stringify!(_mjData),
7281            "::",
7282            stringify!(qLD)
7283        )
7284    );
7285    assert_eq!(
7286        unsafe { &(*(::std::ptr::null::<_mjData>())).qLDiagInv as *const _ as usize },
7287        40736usize,
7288        concat!(
7289            "Offset of field: ",
7290            stringify!(_mjData),
7291            "::",
7292            stringify!(qLDiagInv)
7293        )
7294    );
7295    assert_eq!(
7296        unsafe {
7297            &(*(::std::ptr::null::<_mjData>())).qLDiagSqrtInv as *const _ as usize
7298        },
7299        40744usize,
7300        concat!(
7301            "Offset of field: ",
7302            stringify!(_mjData),
7303            "::",
7304            stringify!(qLDiagSqrtInv)
7305        )
7306    );
7307    assert_eq!(
7308        unsafe { &(*(::std::ptr::null::<_mjData>())).contact as *const _ as usize },
7309        40752usize,
7310        concat!(
7311            "Offset of field: ",
7312            stringify!(_mjData),
7313            "::",
7314            stringify!(contact)
7315        )
7316    );
7317    assert_eq!(
7318        unsafe { &(*(::std::ptr::null::<_mjData>())).efc_type as *const _ as usize },
7319        40760usize,
7320        concat!(
7321            "Offset of field: ",
7322            stringify!(_mjData),
7323            "::",
7324            stringify!(efc_type)
7325        )
7326    );
7327    assert_eq!(
7328        unsafe { &(*(::std::ptr::null::<_mjData>())).efc_id as *const _ as usize },
7329        40768usize,
7330        concat!(
7331            "Offset of field: ",
7332            stringify!(_mjData),
7333            "::",
7334            stringify!(efc_id)
7335        )
7336    );
7337    assert_eq!(
7338        unsafe {
7339            &(*(::std::ptr::null::<_mjData>())).efc_J_rownnz as *const _ as usize
7340        },
7341        40776usize,
7342        concat!(
7343            "Offset of field: ",
7344            stringify!(_mjData),
7345            "::",
7346            stringify!(efc_J_rownnz)
7347        )
7348    );
7349    assert_eq!(
7350        unsafe {
7351            &(*(::std::ptr::null::<_mjData>())).efc_J_rowadr as *const _ as usize
7352        },
7353        40784usize,
7354        concat!(
7355            "Offset of field: ",
7356            stringify!(_mjData),
7357            "::",
7358            stringify!(efc_J_rowadr)
7359        )
7360    );
7361    assert_eq!(
7362        unsafe {
7363            &(*(::std::ptr::null::<_mjData>())).efc_J_rowsuper as *const _ as usize
7364        },
7365        40792usize,
7366        concat!(
7367            "Offset of field: ",
7368            stringify!(_mjData),
7369            "::",
7370            stringify!(efc_J_rowsuper)
7371        )
7372    );
7373    assert_eq!(
7374        unsafe {
7375            &(*(::std::ptr::null::<_mjData>())).efc_J_colind as *const _ as usize
7376        },
7377        40800usize,
7378        concat!(
7379            "Offset of field: ",
7380            stringify!(_mjData),
7381            "::",
7382            stringify!(efc_J_colind)
7383        )
7384    );
7385    assert_eq!(
7386        unsafe {
7387            &(*(::std::ptr::null::<_mjData>())).efc_JT_rownnz as *const _ as usize
7388        },
7389        40808usize,
7390        concat!(
7391            "Offset of field: ",
7392            stringify!(_mjData),
7393            "::",
7394            stringify!(efc_JT_rownnz)
7395        )
7396    );
7397    assert_eq!(
7398        unsafe {
7399            &(*(::std::ptr::null::<_mjData>())).efc_JT_rowadr as *const _ as usize
7400        },
7401        40816usize,
7402        concat!(
7403            "Offset of field: ",
7404            stringify!(_mjData),
7405            "::",
7406            stringify!(efc_JT_rowadr)
7407        )
7408    );
7409    assert_eq!(
7410        unsafe {
7411            &(*(::std::ptr::null::<_mjData>())).efc_JT_rowsuper as *const _ as usize
7412        },
7413        40824usize,
7414        concat!(
7415            "Offset of field: ",
7416            stringify!(_mjData),
7417            "::",
7418            stringify!(efc_JT_rowsuper)
7419        )
7420    );
7421    assert_eq!(
7422        unsafe {
7423            &(*(::std::ptr::null::<_mjData>())).efc_JT_colind as *const _ as usize
7424        },
7425        40832usize,
7426        concat!(
7427            "Offset of field: ",
7428            stringify!(_mjData),
7429            "::",
7430            stringify!(efc_JT_colind)
7431        )
7432    );
7433    assert_eq!(
7434        unsafe { &(*(::std::ptr::null::<_mjData>())).efc_J as *const _ as usize },
7435        40840usize,
7436        concat!(
7437            "Offset of field: ",
7438            stringify!(_mjData),
7439            "::",
7440            stringify!(efc_J)
7441        )
7442    );
7443    assert_eq!(
7444        unsafe { &(*(::std::ptr::null::<_mjData>())).efc_JT as *const _ as usize },
7445        40848usize,
7446        concat!(
7447            "Offset of field: ",
7448            stringify!(_mjData),
7449            "::",
7450            stringify!(efc_JT)
7451        )
7452    );
7453    assert_eq!(
7454        unsafe { &(*(::std::ptr::null::<_mjData>())).efc_pos as *const _ as usize },
7455        40856usize,
7456        concat!(
7457            "Offset of field: ",
7458            stringify!(_mjData),
7459            "::",
7460            stringify!(efc_pos)
7461        )
7462    );
7463    assert_eq!(
7464        unsafe { &(*(::std::ptr::null::<_mjData>())).efc_margin as *const _ as usize },
7465        40864usize,
7466        concat!(
7467            "Offset of field: ",
7468            stringify!(_mjData),
7469            "::",
7470            stringify!(efc_margin)
7471        )
7472    );
7473    assert_eq!(
7474        unsafe {
7475            &(*(::std::ptr::null::<_mjData>())).efc_frictionloss as *const _ as usize
7476        },
7477        40872usize,
7478        concat!(
7479            "Offset of field: ",
7480            stringify!(_mjData),
7481            "::",
7482            stringify!(efc_frictionloss)
7483        )
7484    );
7485    assert_eq!(
7486        unsafe {
7487            &(*(::std::ptr::null::<_mjData>())).efc_diagApprox as *const _ as usize
7488        },
7489        40880usize,
7490        concat!(
7491            "Offset of field: ",
7492            stringify!(_mjData),
7493            "::",
7494            stringify!(efc_diagApprox)
7495        )
7496    );
7497    assert_eq!(
7498        unsafe { &(*(::std::ptr::null::<_mjData>())).efc_KBIP as *const _ as usize },
7499        40888usize,
7500        concat!(
7501            "Offset of field: ",
7502            stringify!(_mjData),
7503            "::",
7504            stringify!(efc_KBIP)
7505        )
7506    );
7507    assert_eq!(
7508        unsafe { &(*(::std::ptr::null::<_mjData>())).efc_D as *const _ as usize },
7509        40896usize,
7510        concat!(
7511            "Offset of field: ",
7512            stringify!(_mjData),
7513            "::",
7514            stringify!(efc_D)
7515        )
7516    );
7517    assert_eq!(
7518        unsafe { &(*(::std::ptr::null::<_mjData>())).efc_R as *const _ as usize },
7519        40904usize,
7520        concat!(
7521            "Offset of field: ",
7522            stringify!(_mjData),
7523            "::",
7524            stringify!(efc_R)
7525        )
7526    );
7527    assert_eq!(
7528        unsafe {
7529            &(*(::std::ptr::null::<_mjData>())).efc_AR_rownnz as *const _ as usize
7530        },
7531        40912usize,
7532        concat!(
7533            "Offset of field: ",
7534            stringify!(_mjData),
7535            "::",
7536            stringify!(efc_AR_rownnz)
7537        )
7538    );
7539    assert_eq!(
7540        unsafe {
7541            &(*(::std::ptr::null::<_mjData>())).efc_AR_rowadr as *const _ as usize
7542        },
7543        40920usize,
7544        concat!(
7545            "Offset of field: ",
7546            stringify!(_mjData),
7547            "::",
7548            stringify!(efc_AR_rowadr)
7549        )
7550    );
7551    assert_eq!(
7552        unsafe {
7553            &(*(::std::ptr::null::<_mjData>())).efc_AR_colind as *const _ as usize
7554        },
7555        40928usize,
7556        concat!(
7557            "Offset of field: ",
7558            stringify!(_mjData),
7559            "::",
7560            stringify!(efc_AR_colind)
7561        )
7562    );
7563    assert_eq!(
7564        unsafe { &(*(::std::ptr::null::<_mjData>())).efc_AR as *const _ as usize },
7565        40936usize,
7566        concat!(
7567            "Offset of field: ",
7568            stringify!(_mjData),
7569            "::",
7570            stringify!(efc_AR)
7571        )
7572    );
7573    assert_eq!(
7574        unsafe {
7575            &(*(::std::ptr::null::<_mjData>())).ten_velocity as *const _ as usize
7576        },
7577        40944usize,
7578        concat!(
7579            "Offset of field: ",
7580            stringify!(_mjData),
7581            "::",
7582            stringify!(ten_velocity)
7583        )
7584    );
7585    assert_eq!(
7586        unsafe {
7587            &(*(::std::ptr::null::<_mjData>())).actuator_velocity as *const _ as usize
7588        },
7589        40952usize,
7590        concat!(
7591            "Offset of field: ",
7592            stringify!(_mjData),
7593            "::",
7594            stringify!(actuator_velocity)
7595        )
7596    );
7597    assert_eq!(
7598        unsafe { &(*(::std::ptr::null::<_mjData>())).cvel as *const _ as usize },
7599        40960usize,
7600        concat!(
7601            "Offset of field: ",
7602            stringify!(_mjData),
7603            "::",
7604            stringify!(cvel)
7605        )
7606    );
7607    assert_eq!(
7608        unsafe { &(*(::std::ptr::null::<_mjData>())).cdof_dot as *const _ as usize },
7609        40968usize,
7610        concat!(
7611            "Offset of field: ",
7612            stringify!(_mjData),
7613            "::",
7614            stringify!(cdof_dot)
7615        )
7616    );
7617    assert_eq!(
7618        unsafe { &(*(::std::ptr::null::<_mjData>())).qfrc_bias as *const _ as usize },
7619        40976usize,
7620        concat!(
7621            "Offset of field: ",
7622            stringify!(_mjData),
7623            "::",
7624            stringify!(qfrc_bias)
7625        )
7626    );
7627    assert_eq!(
7628        unsafe {
7629            &(*(::std::ptr::null::<_mjData>())).qfrc_passive as *const _ as usize
7630        },
7631        40984usize,
7632        concat!(
7633            "Offset of field: ",
7634            stringify!(_mjData),
7635            "::",
7636            stringify!(qfrc_passive)
7637        )
7638    );
7639    assert_eq!(
7640        unsafe { &(*(::std::ptr::null::<_mjData>())).efc_vel as *const _ as usize },
7641        40992usize,
7642        concat!(
7643            "Offset of field: ",
7644            stringify!(_mjData),
7645            "::",
7646            stringify!(efc_vel)
7647        )
7648    );
7649    assert_eq!(
7650        unsafe { &(*(::std::ptr::null::<_mjData>())).efc_aref as *const _ as usize },
7651        41000usize,
7652        concat!(
7653            "Offset of field: ",
7654            stringify!(_mjData),
7655            "::",
7656            stringify!(efc_aref)
7657        )
7658    );
7659    assert_eq!(
7660        unsafe {
7661            &(*(::std::ptr::null::<_mjData>())).subtree_linvel as *const _ as usize
7662        },
7663        41008usize,
7664        concat!(
7665            "Offset of field: ",
7666            stringify!(_mjData),
7667            "::",
7668            stringify!(subtree_linvel)
7669        )
7670    );
7671    assert_eq!(
7672        unsafe {
7673            &(*(::std::ptr::null::<_mjData>())).subtree_angmom as *const _ as usize
7674        },
7675        41016usize,
7676        concat!(
7677            "Offset of field: ",
7678            stringify!(_mjData),
7679            "::",
7680            stringify!(subtree_angmom)
7681        )
7682    );
7683    assert_eq!(
7684        unsafe {
7685            &(*(::std::ptr::null::<_mjData>())).actuator_force as *const _ as usize
7686        },
7687        41024usize,
7688        concat!(
7689            "Offset of field: ",
7690            stringify!(_mjData),
7691            "::",
7692            stringify!(actuator_force)
7693        )
7694    );
7695    assert_eq!(
7696        unsafe {
7697            &(*(::std::ptr::null::<_mjData>())).qfrc_actuator as *const _ as usize
7698        },
7699        41032usize,
7700        concat!(
7701            "Offset of field: ",
7702            stringify!(_mjData),
7703            "::",
7704            stringify!(qfrc_actuator)
7705        )
7706    );
7707    assert_eq!(
7708        unsafe { &(*(::std::ptr::null::<_mjData>())).qfrc_unc as *const _ as usize },
7709        41040usize,
7710        concat!(
7711            "Offset of field: ",
7712            stringify!(_mjData),
7713            "::",
7714            stringify!(qfrc_unc)
7715        )
7716    );
7717    assert_eq!(
7718        unsafe { &(*(::std::ptr::null::<_mjData>())).qacc_unc as *const _ as usize },
7719        41048usize,
7720        concat!(
7721            "Offset of field: ",
7722            stringify!(_mjData),
7723            "::",
7724            stringify!(qacc_unc)
7725        )
7726    );
7727    assert_eq!(
7728        unsafe { &(*(::std::ptr::null::<_mjData>())).efc_b as *const _ as usize },
7729        41056usize,
7730        concat!(
7731            "Offset of field: ",
7732            stringify!(_mjData),
7733            "::",
7734            stringify!(efc_b)
7735        )
7736    );
7737    assert_eq!(
7738        unsafe { &(*(::std::ptr::null::<_mjData>())).efc_force as *const _ as usize },
7739        41064usize,
7740        concat!(
7741            "Offset of field: ",
7742            stringify!(_mjData),
7743            "::",
7744            stringify!(efc_force)
7745        )
7746    );
7747    assert_eq!(
7748        unsafe { &(*(::std::ptr::null::<_mjData>())).efc_state as *const _ as usize },
7749        41072usize,
7750        concat!(
7751            "Offset of field: ",
7752            stringify!(_mjData),
7753            "::",
7754            stringify!(efc_state)
7755        )
7756    );
7757    assert_eq!(
7758        unsafe {
7759            &(*(::std::ptr::null::<_mjData>())).qfrc_constraint as *const _ as usize
7760        },
7761        41080usize,
7762        concat!(
7763            "Offset of field: ",
7764            stringify!(_mjData),
7765            "::",
7766            stringify!(qfrc_constraint)
7767        )
7768    );
7769    assert_eq!(
7770        unsafe {
7771            &(*(::std::ptr::null::<_mjData>())).qfrc_inverse as *const _ as usize
7772        },
7773        41088usize,
7774        concat!(
7775            "Offset of field: ",
7776            stringify!(_mjData),
7777            "::",
7778            stringify!(qfrc_inverse)
7779        )
7780    );
7781    assert_eq!(
7782        unsafe { &(*(::std::ptr::null::<_mjData>())).cacc as *const _ as usize },
7783        41096usize,
7784        concat!(
7785            "Offset of field: ",
7786            stringify!(_mjData),
7787            "::",
7788            stringify!(cacc)
7789        )
7790    );
7791    assert_eq!(
7792        unsafe { &(*(::std::ptr::null::<_mjData>())).cfrc_int as *const _ as usize },
7793        41104usize,
7794        concat!(
7795            "Offset of field: ",
7796            stringify!(_mjData),
7797            "::",
7798            stringify!(cfrc_int)
7799        )
7800    );
7801    assert_eq!(
7802        unsafe { &(*(::std::ptr::null::<_mjData>())).cfrc_ext as *const _ as usize },
7803        41112usize,
7804        concat!(
7805            "Offset of field: ",
7806            stringify!(_mjData),
7807            "::",
7808            stringify!(cfrc_ext)
7809        )
7810    );
7811}
7812impl Default for _mjData {
7813    fn default() -> Self {
7814        unsafe { ::std::mem::zeroed() }
7815    }
7816}
7817pub type mjData = _mjData;
7818pub type mjfGeneric =
7819    ::std::option::Option<unsafe extern "C" fn(m: *const mjModel, d: *mut mjData)>;
7820pub type mjfConFilt = ::std::option::Option<
7821    unsafe extern "C" fn(
7822        m: *const mjModel,
7823        d: *mut mjData,
7824        geom1: ::std::os::raw::c_int,
7825        geom2: ::std::os::raw::c_int,
7826    ) -> ::std::os::raw::c_int,
7827>;
7828pub type mjfSensor = ::std::option::Option<
7829    unsafe extern "C" fn(
7830        m: *const mjModel,
7831        d: *mut mjData,
7832        stage: ::std::os::raw::c_int,
7833    ),
7834>;
7835pub type mjfTime = ::std::option::Option<unsafe extern "C" fn() -> mjtNum>;
7836pub type mjfAct = ::std::option::Option<
7837    unsafe extern "C" fn(
7838        m: *const mjModel,
7839        d: *const mjData,
7840        id: ::std::os::raw::c_int,
7841    ) -> mjtNum,
7842>;
7843pub type mjfCollision = ::std::option::Option<
7844    unsafe extern "C" fn(
7845        m: *const mjModel,
7846        d: *const mjData,
7847        con: *mut mjContact,
7848        g1: ::std::os::raw::c_int,
7849        g2: ::std::os::raw::c_int,
7850        margin: mjtNum,
7851    ) -> ::std::os::raw::c_int,
7852>;
7853impl _mjtCatBit {
7854    pub const STATIC: _mjtCatBit = _mjtCatBit(1);
7855}
7856impl _mjtCatBit {
7857    pub const DYNAMIC: _mjtCatBit = _mjtCatBit(2);
7858}
7859impl _mjtCatBit {
7860    pub const DECOR: _mjtCatBit = _mjtCatBit(4);
7861}
7862impl _mjtCatBit {
7863    pub const ALL: _mjtCatBit = _mjtCatBit(7);
7864}
7865impl ::std::ops::BitOr<_mjtCatBit> for _mjtCatBit {
7866    type Output = Self;
7867
7868    #[inline]
7869    fn bitor(self, other: Self) -> Self {
7870        _mjtCatBit(self.0 | other.0)
7871    }
7872}
7873impl ::std::ops::BitOrAssign for _mjtCatBit {
7874    #[inline]
7875    fn bitor_assign(&mut self, rhs: _mjtCatBit) {
7876        self.0 |= rhs.0;
7877    }
7878}
7879impl ::std::ops::BitAnd<_mjtCatBit> for _mjtCatBit {
7880    type Output = Self;
7881
7882    #[inline]
7883    fn bitand(self, other: Self) -> Self {
7884        _mjtCatBit(self.0 & other.0)
7885    }
7886}
7887impl ::std::ops::BitAndAssign for _mjtCatBit {
7888    #[inline]
7889    fn bitand_assign(&mut self, rhs: _mjtCatBit) {
7890        self.0 &= rhs.0;
7891    }
7892}
7893#[repr(transparent)]
7894#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
7895pub struct _mjtCatBit(pub u32);
7896pub use self::_mjtCatBit as mjtCatBit;
7897#[repr(u32)]
7898#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
7899pub enum _mjtMouse {
7900    NONE = 0,
7901    ROTATE_V = 1,
7902    ROTATE_H = 2,
7903    MOVE_V = 3,
7904    MOVE_H = 4,
7905    ZOOM = 5,
7906    SELECT = 6,
7907}
7908pub use self::_mjtMouse as mjtMouse;
7909impl _mjtPertBit {
7910    pub const TRANSLATE: _mjtPertBit = _mjtPertBit(1);
7911}
7912impl _mjtPertBit {
7913    pub const ROTATE: _mjtPertBit = _mjtPertBit(2);
7914}
7915impl ::std::ops::BitOr<_mjtPertBit> for _mjtPertBit {
7916    type Output = Self;
7917
7918    #[inline]
7919    fn bitor(self, other: Self) -> Self {
7920        _mjtPertBit(self.0 | other.0)
7921    }
7922}
7923impl ::std::ops::BitOrAssign for _mjtPertBit {
7924    #[inline]
7925    fn bitor_assign(&mut self, rhs: _mjtPertBit) {
7926        self.0 |= rhs.0;
7927    }
7928}
7929impl ::std::ops::BitAnd<_mjtPertBit> for _mjtPertBit {
7930    type Output = Self;
7931
7932    #[inline]
7933    fn bitand(self, other: Self) -> Self {
7934        _mjtPertBit(self.0 & other.0)
7935    }
7936}
7937impl ::std::ops::BitAndAssign for _mjtPertBit {
7938    #[inline]
7939    fn bitand_assign(&mut self, rhs: _mjtPertBit) {
7940        self.0 &= rhs.0;
7941    }
7942}
7943#[repr(transparent)]
7944#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
7945pub struct _mjtPertBit(pub u32);
7946pub use self::_mjtPertBit as mjtPertBit;
7947#[repr(u32)]
7948#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
7949pub enum _mjtCamera {
7950    FREE = 0,
7951    TRACKING = 1,
7952    FIXED = 2,
7953    USER = 3,
7954}
7955pub use self::_mjtCamera as mjtCamera;
7956#[repr(u32)]
7957#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
7958pub enum _mjtLabel {
7959    NONE = 0,
7960    BODY = 1,
7961    JOINT = 2,
7962    GEOM = 3,
7963    SITE = 4,
7964    CAMERA = 5,
7965    LIGHT = 6,
7966    TENDON = 7,
7967    ACTUATOR = 8,
7968    CONSTRAINT = 9,
7969    SKIN = 10,
7970    SELECTION = 11,
7971    SELPNT = 12,
7972    CONTACTFORCE = 13,
7973    mjNLABEL = 14,
7974}
7975pub use self::_mjtLabel as mjtLabel;
7976#[repr(u32)]
7977#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
7978pub enum _mjtFrame {
7979    NONE = 0,
7980    BODY = 1,
7981    GEOM = 2,
7982    SITE = 3,
7983    CAMERA = 4,
7984    LIGHT = 5,
7985    WORLD = 6,
7986    mjNFRAME = 7,
7987}
7988pub use self::_mjtFrame as mjtFrame;
7989#[repr(u32)]
7990#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
7991pub enum _mjtVisFlag {
7992    CONVEXHULL = 0,
7993    TEXTURE = 1,
7994    JOINT = 2,
7995    ACTUATOR = 3,
7996    CAMERA = 4,
7997    LIGHT = 5,
7998    TENDON = 6,
7999    RANGEFINDER = 7,
8000    CONSTRAINT = 8,
8001    INERTIA = 9,
8002    SCLINERTIA = 10,
8003    PERTFORCE = 11,
8004    PERTOBJ = 12,
8005    CONTACTPOINT = 13,
8006    CONTACTFORCE = 14,
8007    CONTACTSPLIT = 15,
8008    TRANSPARENT = 16,
8009    AUTOCONNECT = 17,
8010    COM = 18,
8011    SELECT = 19,
8012    STATIC = 20,
8013    SKIN = 21,
8014    mjNVISFLAG = 22,
8015}
8016pub use self::_mjtVisFlag as mjtVisFlag;
8017#[repr(u32)]
8018#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
8019pub enum _mjtRndFlag {
8020    SHADOW = 0,
8021    WIREFRAME = 1,
8022    REFLECTION = 2,
8023    ADDITIVE = 3,
8024    SKYBOX = 4,
8025    FOG = 5,
8026    HAZE = 6,
8027    SEGMENT = 7,
8028    IDCOLOR = 8,
8029    mjNRNDFLAG = 9,
8030}
8031pub use self::_mjtRndFlag as mjtRndFlag;
8032#[repr(u32)]
8033#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
8034pub enum _mjtStereo {
8035    NONE = 0,
8036    QUADBUFFERED = 1,
8037    SIDEBYSIDE = 2,
8038}
8039pub use self::_mjtStereo as mjtStereo;
8040#[repr(C)]
8041#[derive(Debug, Default, Copy, Clone)]
8042pub struct _mjvPerturb {
8043    pub select: ::std::os::raw::c_int,
8044    pub skinselect: ::std::os::raw::c_int,
8045    pub active: ::std::os::raw::c_int,
8046    pub refpos: [mjtNum; 3usize],
8047    pub refquat: [mjtNum; 4usize],
8048    pub localpos: [mjtNum; 3usize],
8049    pub scale: mjtNum,
8050}
8051#[test]
8052fn bindgen_test_layout__mjvPerturb() {
8053    assert_eq!(
8054        ::std::mem::size_of::<_mjvPerturb>(),
8055        104usize,
8056        concat!("Size of: ", stringify!(_mjvPerturb))
8057    );
8058    assert_eq!(
8059        ::std::mem::align_of::<_mjvPerturb>(),
8060        8usize,
8061        concat!("Alignment of ", stringify!(_mjvPerturb))
8062    );
8063    assert_eq!(
8064        unsafe { &(*(::std::ptr::null::<_mjvPerturb>())).select as *const _ as usize },
8065        0usize,
8066        concat!(
8067            "Offset of field: ",
8068            stringify!(_mjvPerturb),
8069            "::",
8070            stringify!(select)
8071        )
8072    );
8073    assert_eq!(
8074        unsafe {
8075            &(*(::std::ptr::null::<_mjvPerturb>())).skinselect as *const _ as usize
8076        },
8077        4usize,
8078        concat!(
8079            "Offset of field: ",
8080            stringify!(_mjvPerturb),
8081            "::",
8082            stringify!(skinselect)
8083        )
8084    );
8085    assert_eq!(
8086        unsafe { &(*(::std::ptr::null::<_mjvPerturb>())).active as *const _ as usize },
8087        8usize,
8088        concat!(
8089            "Offset of field: ",
8090            stringify!(_mjvPerturb),
8091            "::",
8092            stringify!(active)
8093        )
8094    );
8095    assert_eq!(
8096        unsafe { &(*(::std::ptr::null::<_mjvPerturb>())).refpos as *const _ as usize },
8097        16usize,
8098        concat!(
8099            "Offset of field: ",
8100            stringify!(_mjvPerturb),
8101            "::",
8102            stringify!(refpos)
8103        )
8104    );
8105    assert_eq!(
8106        unsafe { &(*(::std::ptr::null::<_mjvPerturb>())).refquat as *const _ as usize },
8107        40usize,
8108        concat!(
8109            "Offset of field: ",
8110            stringify!(_mjvPerturb),
8111            "::",
8112            stringify!(refquat)
8113        )
8114    );
8115    assert_eq!(
8116        unsafe {
8117            &(*(::std::ptr::null::<_mjvPerturb>())).localpos as *const _ as usize
8118        },
8119        72usize,
8120        concat!(
8121            "Offset of field: ",
8122            stringify!(_mjvPerturb),
8123            "::",
8124            stringify!(localpos)
8125        )
8126    );
8127    assert_eq!(
8128        unsafe { &(*(::std::ptr::null::<_mjvPerturb>())).scale as *const _ as usize },
8129        96usize,
8130        concat!(
8131            "Offset of field: ",
8132            stringify!(_mjvPerturb),
8133            "::",
8134            stringify!(scale)
8135        )
8136    );
8137}
8138pub type mjvPerturb = _mjvPerturb;
8139#[repr(C)]
8140#[derive(Debug, Default, Copy, Clone)]
8141pub struct _mjvCamera {
8142    pub type_: ::std::os::raw::c_int,
8143    pub fixedcamid: ::std::os::raw::c_int,
8144    pub trackbodyid: ::std::os::raw::c_int,
8145    pub lookat: [mjtNum; 3usize],
8146    pub distance: mjtNum,
8147    pub azimuth: mjtNum,
8148    pub elevation: mjtNum,
8149}
8150#[test]
8151fn bindgen_test_layout__mjvCamera() {
8152    assert_eq!(
8153        ::std::mem::size_of::<_mjvCamera>(),
8154        64usize,
8155        concat!("Size of: ", stringify!(_mjvCamera))
8156    );
8157    assert_eq!(
8158        ::std::mem::align_of::<_mjvCamera>(),
8159        8usize,
8160        concat!("Alignment of ", stringify!(_mjvCamera))
8161    );
8162    assert_eq!(
8163        unsafe { &(*(::std::ptr::null::<_mjvCamera>())).type_ as *const _ as usize },
8164        0usize,
8165        concat!(
8166            "Offset of field: ",
8167            stringify!(_mjvCamera),
8168            "::",
8169            stringify!(type_)
8170        )
8171    );
8172    assert_eq!(
8173        unsafe {
8174            &(*(::std::ptr::null::<_mjvCamera>())).fixedcamid as *const _ as usize
8175        },
8176        4usize,
8177        concat!(
8178            "Offset of field: ",
8179            stringify!(_mjvCamera),
8180            "::",
8181            stringify!(fixedcamid)
8182        )
8183    );
8184    assert_eq!(
8185        unsafe {
8186            &(*(::std::ptr::null::<_mjvCamera>())).trackbodyid as *const _ as usize
8187        },
8188        8usize,
8189        concat!(
8190            "Offset of field: ",
8191            stringify!(_mjvCamera),
8192            "::",
8193            stringify!(trackbodyid)
8194        )
8195    );
8196    assert_eq!(
8197        unsafe { &(*(::std::ptr::null::<_mjvCamera>())).lookat as *const _ as usize },
8198        16usize,
8199        concat!(
8200            "Offset of field: ",
8201            stringify!(_mjvCamera),
8202            "::",
8203            stringify!(lookat)
8204        )
8205    );
8206    assert_eq!(
8207        unsafe { &(*(::std::ptr::null::<_mjvCamera>())).distance as *const _ as usize },
8208        40usize,
8209        concat!(
8210            "Offset of field: ",
8211            stringify!(_mjvCamera),
8212            "::",
8213            stringify!(distance)
8214        )
8215    );
8216    assert_eq!(
8217        unsafe { &(*(::std::ptr::null::<_mjvCamera>())).azimuth as *const _ as usize },
8218        48usize,
8219        concat!(
8220            "Offset of field: ",
8221            stringify!(_mjvCamera),
8222            "::",
8223            stringify!(azimuth)
8224        )
8225    );
8226    assert_eq!(
8227        unsafe {
8228            &(*(::std::ptr::null::<_mjvCamera>())).elevation as *const _ as usize
8229        },
8230        56usize,
8231        concat!(
8232            "Offset of field: ",
8233            stringify!(_mjvCamera),
8234            "::",
8235            stringify!(elevation)
8236        )
8237    );
8238}
8239pub type mjvCamera = _mjvCamera;
8240#[repr(C)]
8241#[derive(Debug, Default, Copy, Clone)]
8242pub struct _mjvGLCamera {
8243    pub pos: [f32; 3usize],
8244    pub forward: [f32; 3usize],
8245    pub up: [f32; 3usize],
8246    pub frustum_center: f32,
8247    pub frustum_bottom: f32,
8248    pub frustum_top: f32,
8249    pub frustum_near: f32,
8250    pub frustum_far: f32,
8251}
8252#[test]
8253fn bindgen_test_layout__mjvGLCamera() {
8254    assert_eq!(
8255        ::std::mem::size_of::<_mjvGLCamera>(),
8256        56usize,
8257        concat!("Size of: ", stringify!(_mjvGLCamera))
8258    );
8259    assert_eq!(
8260        ::std::mem::align_of::<_mjvGLCamera>(),
8261        4usize,
8262        concat!("Alignment of ", stringify!(_mjvGLCamera))
8263    );
8264    assert_eq!(
8265        unsafe { &(*(::std::ptr::null::<_mjvGLCamera>())).pos as *const _ as usize },
8266        0usize,
8267        concat!(
8268            "Offset of field: ",
8269            stringify!(_mjvGLCamera),
8270            "::",
8271            stringify!(pos)
8272        )
8273    );
8274    assert_eq!(
8275        unsafe {
8276            &(*(::std::ptr::null::<_mjvGLCamera>())).forward as *const _ as usize
8277        },
8278        12usize,
8279        concat!(
8280            "Offset of field: ",
8281            stringify!(_mjvGLCamera),
8282            "::",
8283            stringify!(forward)
8284        )
8285    );
8286    assert_eq!(
8287        unsafe { &(*(::std::ptr::null::<_mjvGLCamera>())).up as *const _ as usize },
8288        24usize,
8289        concat!(
8290            "Offset of field: ",
8291            stringify!(_mjvGLCamera),
8292            "::",
8293            stringify!(up)
8294        )
8295    );
8296    assert_eq!(
8297        unsafe {
8298            &(*(::std::ptr::null::<_mjvGLCamera>())).frustum_center as *const _ as usize
8299        },
8300        36usize,
8301        concat!(
8302            "Offset of field: ",
8303            stringify!(_mjvGLCamera),
8304            "::",
8305            stringify!(frustum_center)
8306        )
8307    );
8308    assert_eq!(
8309        unsafe {
8310            &(*(::std::ptr::null::<_mjvGLCamera>())).frustum_bottom as *const _ as usize
8311        },
8312        40usize,
8313        concat!(
8314            "Offset of field: ",
8315            stringify!(_mjvGLCamera),
8316            "::",
8317            stringify!(frustum_bottom)
8318        )
8319    );
8320    assert_eq!(
8321        unsafe {
8322            &(*(::std::ptr::null::<_mjvGLCamera>())).frustum_top as *const _ as usize
8323        },
8324        44usize,
8325        concat!(
8326            "Offset of field: ",
8327            stringify!(_mjvGLCamera),
8328            "::",
8329            stringify!(frustum_top)
8330        )
8331    );
8332    assert_eq!(
8333        unsafe {
8334            &(*(::std::ptr::null::<_mjvGLCamera>())).frustum_near as *const _ as usize
8335        },
8336        48usize,
8337        concat!(
8338            "Offset of field: ",
8339            stringify!(_mjvGLCamera),
8340            "::",
8341            stringify!(frustum_near)
8342        )
8343    );
8344    assert_eq!(
8345        unsafe {
8346            &(*(::std::ptr::null::<_mjvGLCamera>())).frustum_far as *const _ as usize
8347        },
8348        52usize,
8349        concat!(
8350            "Offset of field: ",
8351            stringify!(_mjvGLCamera),
8352            "::",
8353            stringify!(frustum_far)
8354        )
8355    );
8356}
8357pub type mjvGLCamera = _mjvGLCamera;
8358#[repr(C)]
8359#[derive(Copy, Clone)]
8360pub struct _mjvGeom {
8361    pub type_: ::std::os::raw::c_int,
8362    pub dataid: ::std::os::raw::c_int,
8363    pub objtype: ::std::os::raw::c_int,
8364    pub objid: ::std::os::raw::c_int,
8365    pub category: ::std::os::raw::c_int,
8366    pub texid: ::std::os::raw::c_int,
8367    pub texuniform: ::std::os::raw::c_int,
8368    pub texcoord: ::std::os::raw::c_int,
8369    pub segid: ::std::os::raw::c_int,
8370    pub texrepeat: [f32; 2usize],
8371    pub size: [f32; 3usize],
8372    pub pos: [f32; 3usize],
8373    pub mat: [f32; 9usize],
8374    pub rgba: [f32; 4usize],
8375    pub emission: f32,
8376    pub specular: f32,
8377    pub shininess: f32,
8378    pub reflectance: f32,
8379    pub label: [::std::os::raw::c_char; 100usize],
8380    pub camdist: f32,
8381    pub modelrbound: f32,
8382    pub transparent: mjtByte,
8383}
8384#[test]
8385fn bindgen_test_layout__mjvGeom() {
8386    assert_eq!(
8387        ::std::mem::size_of::<_mjvGeom>(),
8388        248usize,
8389        concat!("Size of: ", stringify!(_mjvGeom))
8390    );
8391    assert_eq!(
8392        ::std::mem::align_of::<_mjvGeom>(),
8393        4usize,
8394        concat!("Alignment of ", stringify!(_mjvGeom))
8395    );
8396    assert_eq!(
8397        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).type_ as *const _ as usize },
8398        0usize,
8399        concat!(
8400            "Offset of field: ",
8401            stringify!(_mjvGeom),
8402            "::",
8403            stringify!(type_)
8404        )
8405    );
8406    assert_eq!(
8407        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).dataid as *const _ as usize },
8408        4usize,
8409        concat!(
8410            "Offset of field: ",
8411            stringify!(_mjvGeom),
8412            "::",
8413            stringify!(dataid)
8414        )
8415    );
8416    assert_eq!(
8417        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).objtype as *const _ as usize },
8418        8usize,
8419        concat!(
8420            "Offset of field: ",
8421            stringify!(_mjvGeom),
8422            "::",
8423            stringify!(objtype)
8424        )
8425    );
8426    assert_eq!(
8427        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).objid as *const _ as usize },
8428        12usize,
8429        concat!(
8430            "Offset of field: ",
8431            stringify!(_mjvGeom),
8432            "::",
8433            stringify!(objid)
8434        )
8435    );
8436    assert_eq!(
8437        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).category as *const _ as usize },
8438        16usize,
8439        concat!(
8440            "Offset of field: ",
8441            stringify!(_mjvGeom),
8442            "::",
8443            stringify!(category)
8444        )
8445    );
8446    assert_eq!(
8447        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).texid as *const _ as usize },
8448        20usize,
8449        concat!(
8450            "Offset of field: ",
8451            stringify!(_mjvGeom),
8452            "::",
8453            stringify!(texid)
8454        )
8455    );
8456    assert_eq!(
8457        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).texuniform as *const _ as usize },
8458        24usize,
8459        concat!(
8460            "Offset of field: ",
8461            stringify!(_mjvGeom),
8462            "::",
8463            stringify!(texuniform)
8464        )
8465    );
8466    assert_eq!(
8467        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).texcoord as *const _ as usize },
8468        28usize,
8469        concat!(
8470            "Offset of field: ",
8471            stringify!(_mjvGeom),
8472            "::",
8473            stringify!(texcoord)
8474        )
8475    );
8476    assert_eq!(
8477        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).segid as *const _ as usize },
8478        32usize,
8479        concat!(
8480            "Offset of field: ",
8481            stringify!(_mjvGeom),
8482            "::",
8483            stringify!(segid)
8484        )
8485    );
8486    assert_eq!(
8487        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).texrepeat as *const _ as usize },
8488        36usize,
8489        concat!(
8490            "Offset of field: ",
8491            stringify!(_mjvGeom),
8492            "::",
8493            stringify!(texrepeat)
8494        )
8495    );
8496    assert_eq!(
8497        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).size as *const _ as usize },
8498        44usize,
8499        concat!(
8500            "Offset of field: ",
8501            stringify!(_mjvGeom),
8502            "::",
8503            stringify!(size)
8504        )
8505    );
8506    assert_eq!(
8507        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).pos as *const _ as usize },
8508        56usize,
8509        concat!(
8510            "Offset of field: ",
8511            stringify!(_mjvGeom),
8512            "::",
8513            stringify!(pos)
8514        )
8515    );
8516    assert_eq!(
8517        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).mat as *const _ as usize },
8518        68usize,
8519        concat!(
8520            "Offset of field: ",
8521            stringify!(_mjvGeom),
8522            "::",
8523            stringify!(mat)
8524        )
8525    );
8526    assert_eq!(
8527        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).rgba as *const _ as usize },
8528        104usize,
8529        concat!(
8530            "Offset of field: ",
8531            stringify!(_mjvGeom),
8532            "::",
8533            stringify!(rgba)
8534        )
8535    );
8536    assert_eq!(
8537        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).emission as *const _ as usize },
8538        120usize,
8539        concat!(
8540            "Offset of field: ",
8541            stringify!(_mjvGeom),
8542            "::",
8543            stringify!(emission)
8544        )
8545    );
8546    assert_eq!(
8547        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).specular as *const _ as usize },
8548        124usize,
8549        concat!(
8550            "Offset of field: ",
8551            stringify!(_mjvGeom),
8552            "::",
8553            stringify!(specular)
8554        )
8555    );
8556    assert_eq!(
8557        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).shininess as *const _ as usize },
8558        128usize,
8559        concat!(
8560            "Offset of field: ",
8561            stringify!(_mjvGeom),
8562            "::",
8563            stringify!(shininess)
8564        )
8565    );
8566    assert_eq!(
8567        unsafe {
8568            &(*(::std::ptr::null::<_mjvGeom>())).reflectance as *const _ as usize
8569        },
8570        132usize,
8571        concat!(
8572            "Offset of field: ",
8573            stringify!(_mjvGeom),
8574            "::",
8575            stringify!(reflectance)
8576        )
8577    );
8578    assert_eq!(
8579        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).label as *const _ as usize },
8580        136usize,
8581        concat!(
8582            "Offset of field: ",
8583            stringify!(_mjvGeom),
8584            "::",
8585            stringify!(label)
8586        )
8587    );
8588    assert_eq!(
8589        unsafe { &(*(::std::ptr::null::<_mjvGeom>())).camdist as *const _ as usize },
8590        236usize,
8591        concat!(
8592            "Offset of field: ",
8593            stringify!(_mjvGeom),
8594            "::",
8595            stringify!(camdist)
8596        )
8597    );
8598    assert_eq!(
8599        unsafe {
8600            &(*(::std::ptr::null::<_mjvGeom>())).modelrbound as *const _ as usize
8601        },
8602        240usize,
8603        concat!(
8604            "Offset of field: ",
8605            stringify!(_mjvGeom),
8606            "::",
8607            stringify!(modelrbound)
8608        )
8609    );
8610    assert_eq!(
8611        unsafe {
8612            &(*(::std::ptr::null::<_mjvGeom>())).transparent as *const _ as usize
8613        },
8614        244usize,
8615        concat!(
8616            "Offset of field: ",
8617            stringify!(_mjvGeom),
8618            "::",
8619            stringify!(transparent)
8620        )
8621    );
8622}
8623impl Default for _mjvGeom {
8624    fn default() -> Self {
8625        unsafe { ::std::mem::zeroed() }
8626    }
8627}
8628pub type mjvGeom = _mjvGeom;
8629#[repr(C)]
8630#[derive(Debug, Default, Copy, Clone)]
8631pub struct _mjvLight {
8632    pub pos: [f32; 3usize],
8633    pub dir: [f32; 3usize],
8634    pub attenuation: [f32; 3usize],
8635    pub cutoff: f32,
8636    pub exponent: f32,
8637    pub ambient: [f32; 3usize],
8638    pub diffuse: [f32; 3usize],
8639    pub specular: [f32; 3usize],
8640    pub headlight: mjtByte,
8641    pub directional: mjtByte,
8642    pub castshadow: mjtByte,
8643}
8644#[test]
8645fn bindgen_test_layout__mjvLight() {
8646    assert_eq!(
8647        ::std::mem::size_of::<_mjvLight>(),
8648        84usize,
8649        concat!("Size of: ", stringify!(_mjvLight))
8650    );
8651    assert_eq!(
8652        ::std::mem::align_of::<_mjvLight>(),
8653        4usize,
8654        concat!("Alignment of ", stringify!(_mjvLight))
8655    );
8656    assert_eq!(
8657        unsafe { &(*(::std::ptr::null::<_mjvLight>())).pos as *const _ as usize },
8658        0usize,
8659        concat!(
8660            "Offset of field: ",
8661            stringify!(_mjvLight),
8662            "::",
8663            stringify!(pos)
8664        )
8665    );
8666    assert_eq!(
8667        unsafe { &(*(::std::ptr::null::<_mjvLight>())).dir as *const _ as usize },
8668        12usize,
8669        concat!(
8670            "Offset of field: ",
8671            stringify!(_mjvLight),
8672            "::",
8673            stringify!(dir)
8674        )
8675    );
8676    assert_eq!(
8677        unsafe {
8678            &(*(::std::ptr::null::<_mjvLight>())).attenuation as *const _ as usize
8679        },
8680        24usize,
8681        concat!(
8682            "Offset of field: ",
8683            stringify!(_mjvLight),
8684            "::",
8685            stringify!(attenuation)
8686        )
8687    );
8688    assert_eq!(
8689        unsafe { &(*(::std::ptr::null::<_mjvLight>())).cutoff as *const _ as usize },
8690        36usize,
8691        concat!(
8692            "Offset of field: ",
8693            stringify!(_mjvLight),
8694            "::",
8695            stringify!(cutoff)
8696        )
8697    );
8698    assert_eq!(
8699        unsafe { &(*(::std::ptr::null::<_mjvLight>())).exponent as *const _ as usize },
8700        40usize,
8701        concat!(
8702            "Offset of field: ",
8703            stringify!(_mjvLight),
8704            "::",
8705            stringify!(exponent)
8706        )
8707    );
8708    assert_eq!(
8709        unsafe { &(*(::std::ptr::null::<_mjvLight>())).ambient as *const _ as usize },
8710        44usize,
8711        concat!(
8712            "Offset of field: ",
8713            stringify!(_mjvLight),
8714            "::",
8715            stringify!(ambient)
8716        )
8717    );
8718    assert_eq!(
8719        unsafe { &(*(::std::ptr::null::<_mjvLight>())).diffuse as *const _ as usize },
8720        56usize,
8721        concat!(
8722            "Offset of field: ",
8723            stringify!(_mjvLight),
8724            "::",
8725            stringify!(diffuse)
8726        )
8727    );
8728    assert_eq!(
8729        unsafe { &(*(::std::ptr::null::<_mjvLight>())).specular as *const _ as usize },
8730        68usize,
8731        concat!(
8732            "Offset of field: ",
8733            stringify!(_mjvLight),
8734            "::",
8735            stringify!(specular)
8736        )
8737    );
8738    assert_eq!(
8739        unsafe { &(*(::std::ptr::null::<_mjvLight>())).headlight as *const _ as usize },
8740        80usize,
8741        concat!(
8742            "Offset of field: ",
8743            stringify!(_mjvLight),
8744            "::",
8745            stringify!(headlight)
8746        )
8747    );
8748    assert_eq!(
8749        unsafe {
8750            &(*(::std::ptr::null::<_mjvLight>())).directional as *const _ as usize
8751        },
8752        81usize,
8753        concat!(
8754            "Offset of field: ",
8755            stringify!(_mjvLight),
8756            "::",
8757            stringify!(directional)
8758        )
8759    );
8760    assert_eq!(
8761        unsafe {
8762            &(*(::std::ptr::null::<_mjvLight>())).castshadow as *const _ as usize
8763        },
8764        82usize,
8765        concat!(
8766            "Offset of field: ",
8767            stringify!(_mjvLight),
8768            "::",
8769            stringify!(castshadow)
8770        )
8771    );
8772}
8773pub type mjvLight = _mjvLight;
8774#[repr(C)]
8775#[derive(Debug, Default, Copy, Clone)]
8776pub struct _mjvOption {
8777    pub label: ::std::os::raw::c_int,
8778    pub frame: ::std::os::raw::c_int,
8779    pub geomgroup: [mjtByte; 6usize],
8780    pub sitegroup: [mjtByte; 6usize],
8781    pub jointgroup: [mjtByte; 6usize],
8782    pub tendongroup: [mjtByte; 6usize],
8783    pub actuatorgroup: [mjtByte; 6usize],
8784    pub flags: [mjtByte; 22usize],
8785}
8786#[test]
8787fn bindgen_test_layout__mjvOption() {
8788    assert_eq!(
8789        ::std::mem::size_of::<_mjvOption>(),
8790        60usize,
8791        concat!("Size of: ", stringify!(_mjvOption))
8792    );
8793    assert_eq!(
8794        ::std::mem::align_of::<_mjvOption>(),
8795        4usize,
8796        concat!("Alignment of ", stringify!(_mjvOption))
8797    );
8798    assert_eq!(
8799        unsafe { &(*(::std::ptr::null::<_mjvOption>())).label as *const _ as usize },
8800        0usize,
8801        concat!(
8802            "Offset of field: ",
8803            stringify!(_mjvOption),
8804            "::",
8805            stringify!(label)
8806        )
8807    );
8808    assert_eq!(
8809        unsafe { &(*(::std::ptr::null::<_mjvOption>())).frame as *const _ as usize },
8810        4usize,
8811        concat!(
8812            "Offset of field: ",
8813            stringify!(_mjvOption),
8814            "::",
8815            stringify!(frame)
8816        )
8817    );
8818    assert_eq!(
8819        unsafe {
8820            &(*(::std::ptr::null::<_mjvOption>())).geomgroup as *const _ as usize
8821        },
8822        8usize,
8823        concat!(
8824            "Offset of field: ",
8825            stringify!(_mjvOption),
8826            "::",
8827            stringify!(geomgroup)
8828        )
8829    );
8830    assert_eq!(
8831        unsafe {
8832            &(*(::std::ptr::null::<_mjvOption>())).sitegroup as *const _ as usize
8833        },
8834        14usize,
8835        concat!(
8836            "Offset of field: ",
8837            stringify!(_mjvOption),
8838            "::",
8839            stringify!(sitegroup)
8840        )
8841    );
8842    assert_eq!(
8843        unsafe {
8844            &(*(::std::ptr::null::<_mjvOption>())).jointgroup as *const _ as usize
8845        },
8846        20usize,
8847        concat!(
8848            "Offset of field: ",
8849            stringify!(_mjvOption),
8850            "::",
8851            stringify!(jointgroup)
8852        )
8853    );
8854    assert_eq!(
8855        unsafe {
8856            &(*(::std::ptr::null::<_mjvOption>())).tendongroup as *const _ as usize
8857        },
8858        26usize,
8859        concat!(
8860            "Offset of field: ",
8861            stringify!(_mjvOption),
8862            "::",
8863            stringify!(tendongroup)
8864        )
8865    );
8866    assert_eq!(
8867        unsafe {
8868            &(*(::std::ptr::null::<_mjvOption>())).actuatorgroup as *const _ as usize
8869        },
8870        32usize,
8871        concat!(
8872            "Offset of field: ",
8873            stringify!(_mjvOption),
8874            "::",
8875            stringify!(actuatorgroup)
8876        )
8877    );
8878    assert_eq!(
8879        unsafe { &(*(::std::ptr::null::<_mjvOption>())).flags as *const _ as usize },
8880        38usize,
8881        concat!(
8882            "Offset of field: ",
8883            stringify!(_mjvOption),
8884            "::",
8885            stringify!(flags)
8886        )
8887    );
8888}
8889pub type mjvOption = _mjvOption;
8890#[repr(C)]
8891#[derive(Debug, Copy, Clone)]
8892pub struct _mjvScene {
8893    pub maxgeom: ::std::os::raw::c_int,
8894    pub ngeom: ::std::os::raw::c_int,
8895    pub geoms: *mut mjvGeom,
8896    pub geomorder: *mut ::std::os::raw::c_int,
8897    pub nskin: ::std::os::raw::c_int,
8898    pub skinfacenum: *mut ::std::os::raw::c_int,
8899    pub skinvertadr: *mut ::std::os::raw::c_int,
8900    pub skinvertnum: *mut ::std::os::raw::c_int,
8901    pub skinvert: *mut f32,
8902    pub skinnormal: *mut f32,
8903    pub nlight: ::std::os::raw::c_int,
8904    pub lights: [mjvLight; 8usize],
8905    pub camera: [mjvGLCamera; 2usize],
8906    pub enabletransform: mjtByte,
8907    pub translate: [f32; 3usize],
8908    pub rotate: [f32; 4usize],
8909    pub scale: f32,
8910    pub stereo: ::std::os::raw::c_int,
8911    pub flags: [mjtByte; 9usize],
8912}
8913#[test]
8914fn bindgen_test_layout__mjvScene() {
8915    assert_eq!(
8916        ::std::mem::size_of::<_mjvScene>(),
8917        912usize,
8918        concat!("Size of: ", stringify!(_mjvScene))
8919    );
8920    assert_eq!(
8921        ::std::mem::align_of::<_mjvScene>(),
8922        8usize,
8923        concat!("Alignment of ", stringify!(_mjvScene))
8924    );
8925    assert_eq!(
8926        unsafe { &(*(::std::ptr::null::<_mjvScene>())).maxgeom as *const _ as usize },
8927        0usize,
8928        concat!(
8929            "Offset of field: ",
8930            stringify!(_mjvScene),
8931            "::",
8932            stringify!(maxgeom)
8933        )
8934    );
8935    assert_eq!(
8936        unsafe { &(*(::std::ptr::null::<_mjvScene>())).ngeom as *const _ as usize },
8937        4usize,
8938        concat!(
8939            "Offset of field: ",
8940            stringify!(_mjvScene),
8941            "::",
8942            stringify!(ngeom)
8943        )
8944    );
8945    assert_eq!(
8946        unsafe { &(*(::std::ptr::null::<_mjvScene>())).geoms as *const _ as usize },
8947        8usize,
8948        concat!(
8949            "Offset of field: ",
8950            stringify!(_mjvScene),
8951            "::",
8952            stringify!(geoms)
8953        )
8954    );
8955    assert_eq!(
8956        unsafe { &(*(::std::ptr::null::<_mjvScene>())).geomorder as *const _ as usize },
8957        16usize,
8958        concat!(
8959            "Offset of field: ",
8960            stringify!(_mjvScene),
8961            "::",
8962            stringify!(geomorder)
8963        )
8964    );
8965    assert_eq!(
8966        unsafe { &(*(::std::ptr::null::<_mjvScene>())).nskin as *const _ as usize },
8967        24usize,
8968        concat!(
8969            "Offset of field: ",
8970            stringify!(_mjvScene),
8971            "::",
8972            stringify!(nskin)
8973        )
8974    );
8975    assert_eq!(
8976        unsafe {
8977            &(*(::std::ptr::null::<_mjvScene>())).skinfacenum as *const _ as usize
8978        },
8979        32usize,
8980        concat!(
8981            "Offset of field: ",
8982            stringify!(_mjvScene),
8983            "::",
8984            stringify!(skinfacenum)
8985        )
8986    );
8987    assert_eq!(
8988        unsafe {
8989            &(*(::std::ptr::null::<_mjvScene>())).skinvertadr as *const _ as usize
8990        },
8991        40usize,
8992        concat!(
8993            "Offset of field: ",
8994            stringify!(_mjvScene),
8995            "::",
8996            stringify!(skinvertadr)
8997        )
8998    );
8999    assert_eq!(
9000        unsafe {
9001            &(*(::std::ptr::null::<_mjvScene>())).skinvertnum as *const _ as usize
9002        },
9003        48usize,
9004        concat!(
9005            "Offset of field: ",
9006            stringify!(_mjvScene),
9007            "::",
9008            stringify!(skinvertnum)
9009        )
9010    );
9011    assert_eq!(
9012        unsafe { &(*(::std::ptr::null::<_mjvScene>())).skinvert as *const _ as usize },
9013        56usize,
9014        concat!(
9015            "Offset of field: ",
9016            stringify!(_mjvScene),
9017            "::",
9018            stringify!(skinvert)
9019        )
9020    );
9021    assert_eq!(
9022        unsafe {
9023            &(*(::std::ptr::null::<_mjvScene>())).skinnormal as *const _ as usize
9024        },
9025        64usize,
9026        concat!(
9027            "Offset of field: ",
9028            stringify!(_mjvScene),
9029            "::",
9030            stringify!(skinnormal)
9031        )
9032    );
9033    assert_eq!(
9034        unsafe { &(*(::std::ptr::null::<_mjvScene>())).nlight as *const _ as usize },
9035        72usize,
9036        concat!(
9037            "Offset of field: ",
9038            stringify!(_mjvScene),
9039            "::",
9040            stringify!(nlight)
9041        )
9042    );
9043    assert_eq!(
9044        unsafe { &(*(::std::ptr::null::<_mjvScene>())).lights as *const _ as usize },
9045        76usize,
9046        concat!(
9047            "Offset of field: ",
9048            stringify!(_mjvScene),
9049            "::",
9050            stringify!(lights)
9051        )
9052    );
9053    assert_eq!(
9054        unsafe { &(*(::std::ptr::null::<_mjvScene>())).camera as *const _ as usize },
9055        748usize,
9056        concat!(
9057            "Offset of field: ",
9058            stringify!(_mjvScene),
9059            "::",
9060            stringify!(camera)
9061        )
9062    );
9063    assert_eq!(
9064        unsafe {
9065            &(*(::std::ptr::null::<_mjvScene>())).enabletransform as *const _ as usize
9066        },
9067        860usize,
9068        concat!(
9069            "Offset of field: ",
9070            stringify!(_mjvScene),
9071            "::",
9072            stringify!(enabletransform)
9073        )
9074    );
9075    assert_eq!(
9076        unsafe { &(*(::std::ptr::null::<_mjvScene>())).translate as *const _ as usize },
9077        864usize,
9078        concat!(
9079            "Offset of field: ",
9080            stringify!(_mjvScene),
9081            "::",
9082            stringify!(translate)
9083        )
9084    );
9085    assert_eq!(
9086        unsafe { &(*(::std::ptr::null::<_mjvScene>())).rotate as *const _ as usize },
9087        876usize,
9088        concat!(
9089            "Offset of field: ",
9090            stringify!(_mjvScene),
9091            "::",
9092            stringify!(rotate)
9093        )
9094    );
9095    assert_eq!(
9096        unsafe { &(*(::std::ptr::null::<_mjvScene>())).scale as *const _ as usize },
9097        892usize,
9098        concat!(
9099            "Offset of field: ",
9100            stringify!(_mjvScene),
9101            "::",
9102            stringify!(scale)
9103        )
9104    );
9105    assert_eq!(
9106        unsafe { &(*(::std::ptr::null::<_mjvScene>())).stereo as *const _ as usize },
9107        896usize,
9108        concat!(
9109            "Offset of field: ",
9110            stringify!(_mjvScene),
9111            "::",
9112            stringify!(stereo)
9113        )
9114    );
9115    assert_eq!(
9116        unsafe { &(*(::std::ptr::null::<_mjvScene>())).flags as *const _ as usize },
9117        900usize,
9118        concat!(
9119            "Offset of field: ",
9120            stringify!(_mjvScene),
9121            "::",
9122            stringify!(flags)
9123        )
9124    );
9125}
9126impl Default for _mjvScene {
9127    fn default() -> Self {
9128        unsafe { ::std::mem::zeroed() }
9129    }
9130}
9131pub type mjvScene = _mjvScene;
9132#[repr(C)]
9133#[derive(Copy, Clone)]
9134pub struct _mjvFigure {
9135    pub flg_legend: ::std::os::raw::c_int,
9136    pub flg_ticklabel: [::std::os::raw::c_int; 2usize],
9137    pub flg_extend: ::std::os::raw::c_int,
9138    pub flg_barplot: ::std::os::raw::c_int,
9139    pub flg_selection: ::std::os::raw::c_int,
9140    pub flg_symmetric: ::std::os::raw::c_int,
9141    pub legendoff: ::std::os::raw::c_int,
9142    pub gridsize: [::std::os::raw::c_int; 2usize],
9143    pub selection: ::std::os::raw::c_int,
9144    pub highlight: [::std::os::raw::c_int; 2usize],
9145    pub gridrgb: [f32; 3usize],
9146    pub gridwidth: f32,
9147    pub figurergba: [f32; 4usize],
9148    pub panergba: [f32; 4usize],
9149    pub legendrgba: [f32; 4usize],
9150    pub textrgb: [f32; 3usize],
9151    pub range: [[f32; 2usize]; 2usize],
9152    pub xlabel: [::std::os::raw::c_char; 100usize],
9153    pub title: [::std::os::raw::c_char; 100usize],
9154    pub xformat: [::std::os::raw::c_char; 20usize],
9155    pub yformat: [::std::os::raw::c_char; 20usize],
9156    pub minwidth: [::std::os::raw::c_char; 20usize],
9157    pub linepnt: [::std::os::raw::c_int; 100usize],
9158    pub linergb: [[f32; 3usize]; 100usize],
9159    pub linewidth: [f32; 100usize],
9160    pub linedata: [[f32; 2000usize]; 100usize],
9161    pub linename: [[::std::os::raw::c_char; 100usize]; 100usize],
9162    pub xaxispixel: [::std::os::raw::c_int; 2usize],
9163    pub yaxispixel: [::std::os::raw::c_int; 2usize],
9164    pub xaxisdata: [f32; 2usize],
9165    pub yaxisdata: [f32; 2usize],
9166}
9167#[test]
9168fn bindgen_test_layout__mjvFigure() {
9169    assert_eq!(
9170        ::std::mem::size_of::<_mjvFigure>(),
9171        812436usize,
9172        concat!("Size of: ", stringify!(_mjvFigure))
9173    );
9174    assert_eq!(
9175        ::std::mem::align_of::<_mjvFigure>(),
9176        4usize,
9177        concat!("Alignment of ", stringify!(_mjvFigure))
9178    );
9179    assert_eq!(
9180        unsafe {
9181            &(*(::std::ptr::null::<_mjvFigure>())).flg_legend as *const _ as usize
9182        },
9183        0usize,
9184        concat!(
9185            "Offset of field: ",
9186            stringify!(_mjvFigure),
9187            "::",
9188            stringify!(flg_legend)
9189        )
9190    );
9191    assert_eq!(
9192        unsafe {
9193            &(*(::std::ptr::null::<_mjvFigure>())).flg_ticklabel as *const _ as usize
9194        },
9195        4usize,
9196        concat!(
9197            "Offset of field: ",
9198            stringify!(_mjvFigure),
9199            "::",
9200            stringify!(flg_ticklabel)
9201        )
9202    );
9203    assert_eq!(
9204        unsafe {
9205            &(*(::std::ptr::null::<_mjvFigure>())).flg_extend as *const _ as usize
9206        },
9207        12usize,
9208        concat!(
9209            "Offset of field: ",
9210            stringify!(_mjvFigure),
9211            "::",
9212            stringify!(flg_extend)
9213        )
9214    );
9215    assert_eq!(
9216        unsafe {
9217            &(*(::std::ptr::null::<_mjvFigure>())).flg_barplot as *const _ as usize
9218        },
9219        16usize,
9220        concat!(
9221            "Offset of field: ",
9222            stringify!(_mjvFigure),
9223            "::",
9224            stringify!(flg_barplot)
9225        )
9226    );
9227    assert_eq!(
9228        unsafe {
9229            &(*(::std::ptr::null::<_mjvFigure>())).flg_selection as *const _ as usize
9230        },
9231        20usize,
9232        concat!(
9233            "Offset of field: ",
9234            stringify!(_mjvFigure),
9235            "::",
9236            stringify!(flg_selection)
9237        )
9238    );
9239    assert_eq!(
9240        unsafe {
9241            &(*(::std::ptr::null::<_mjvFigure>())).flg_symmetric as *const _ as usize
9242        },
9243        24usize,
9244        concat!(
9245            "Offset of field: ",
9246            stringify!(_mjvFigure),
9247            "::",
9248            stringify!(flg_symmetric)
9249        )
9250    );
9251    assert_eq!(
9252        unsafe {
9253            &(*(::std::ptr::null::<_mjvFigure>())).legendoff as *const _ as usize
9254        },
9255        28usize,
9256        concat!(
9257            "Offset of field: ",
9258            stringify!(_mjvFigure),
9259            "::",
9260            stringify!(legendoff)
9261        )
9262    );
9263    assert_eq!(
9264        unsafe { &(*(::std::ptr::null::<_mjvFigure>())).gridsize as *const _ as usize },
9265        32usize,
9266        concat!(
9267            "Offset of field: ",
9268            stringify!(_mjvFigure),
9269            "::",
9270            stringify!(gridsize)
9271        )
9272    );
9273    assert_eq!(
9274        unsafe {
9275            &(*(::std::ptr::null::<_mjvFigure>())).selection as *const _ as usize
9276        },
9277        40usize,
9278        concat!(
9279            "Offset of field: ",
9280            stringify!(_mjvFigure),
9281            "::",
9282            stringify!(selection)
9283        )
9284    );
9285    assert_eq!(
9286        unsafe {
9287            &(*(::std::ptr::null::<_mjvFigure>())).highlight as *const _ as usize
9288        },
9289        44usize,
9290        concat!(
9291            "Offset of field: ",
9292            stringify!(_mjvFigure),
9293            "::",
9294            stringify!(highlight)
9295        )
9296    );
9297    assert_eq!(
9298        unsafe { &(*(::std::ptr::null::<_mjvFigure>())).gridrgb as *const _ as usize },
9299        52usize,
9300        concat!(
9301            "Offset of field: ",
9302            stringify!(_mjvFigure),
9303            "::",
9304            stringify!(gridrgb)
9305        )
9306    );
9307    assert_eq!(
9308        unsafe {
9309            &(*(::std::ptr::null::<_mjvFigure>())).gridwidth as *const _ as usize
9310        },
9311        64usize,
9312        concat!(
9313            "Offset of field: ",
9314            stringify!(_mjvFigure),
9315            "::",
9316            stringify!(gridwidth)
9317        )
9318    );
9319    assert_eq!(
9320        unsafe {
9321            &(*(::std::ptr::null::<_mjvFigure>())).figurergba as *const _ as usize
9322        },
9323        68usize,
9324        concat!(
9325            "Offset of field: ",
9326            stringify!(_mjvFigure),
9327            "::",
9328            stringify!(figurergba)
9329        )
9330    );
9331    assert_eq!(
9332        unsafe { &(*(::std::ptr::null::<_mjvFigure>())).panergba as *const _ as usize },
9333        84usize,
9334        concat!(
9335            "Offset of field: ",
9336            stringify!(_mjvFigure),
9337            "::",
9338            stringify!(panergba)
9339        )
9340    );
9341    assert_eq!(
9342        unsafe {
9343            &(*(::std::ptr::null::<_mjvFigure>())).legendrgba as *const _ as usize
9344        },
9345        100usize,
9346        concat!(
9347            "Offset of field: ",
9348            stringify!(_mjvFigure),
9349            "::",
9350            stringify!(legendrgba)
9351        )
9352    );
9353    assert_eq!(
9354        unsafe { &(*(::std::ptr::null::<_mjvFigure>())).textrgb as *const _ as usize },
9355        116usize,
9356        concat!(
9357            "Offset of field: ",
9358            stringify!(_mjvFigure),
9359            "::",
9360            stringify!(textrgb)
9361        )
9362    );
9363    assert_eq!(
9364        unsafe { &(*(::std::ptr::null::<_mjvFigure>())).range as *const _ as usize },
9365        128usize,
9366        concat!(
9367            "Offset of field: ",
9368            stringify!(_mjvFigure),
9369            "::",
9370            stringify!(range)
9371        )
9372    );
9373    assert_eq!(
9374        unsafe { &(*(::std::ptr::null::<_mjvFigure>())).xlabel as *const _ as usize },
9375        144usize,
9376        concat!(
9377            "Offset of field: ",
9378            stringify!(_mjvFigure),
9379            "::",
9380            stringify!(xlabel)
9381        )
9382    );
9383    assert_eq!(
9384        unsafe { &(*(::std::ptr::null::<_mjvFigure>())).title as *const _ as usize },
9385        244usize,
9386        concat!(
9387            "Offset of field: ",
9388            stringify!(_mjvFigure),
9389            "::",
9390            stringify!(title)
9391        )
9392    );
9393    assert_eq!(
9394        unsafe { &(*(::std::ptr::null::<_mjvFigure>())).xformat as *const _ as usize },
9395        344usize,
9396        concat!(
9397            "Offset of field: ",
9398            stringify!(_mjvFigure),
9399            "::",
9400            stringify!(xformat)
9401        )
9402    );
9403    assert_eq!(
9404        unsafe { &(*(::std::ptr::null::<_mjvFigure>())).yformat as *const _ as usize },
9405        364usize,
9406        concat!(
9407            "Offset of field: ",
9408            stringify!(_mjvFigure),
9409            "::",
9410            stringify!(yformat)
9411        )
9412    );
9413    assert_eq!(
9414        unsafe { &(*(::std::ptr::null::<_mjvFigure>())).minwidth as *const _ as usize },
9415        384usize,
9416        concat!(
9417            "Offset of field: ",
9418            stringify!(_mjvFigure),
9419            "::",
9420            stringify!(minwidth)
9421        )
9422    );
9423    assert_eq!(
9424        unsafe { &(*(::std::ptr::null::<_mjvFigure>())).linepnt as *const _ as usize },
9425        404usize,
9426        concat!(
9427            "Offset of field: ",
9428            stringify!(_mjvFigure),
9429            "::",
9430            stringify!(linepnt)
9431        )
9432    );
9433    assert_eq!(
9434        unsafe { &(*(::std::ptr::null::<_mjvFigure>())).linergb as *const _ as usize },
9435        804usize,
9436        concat!(
9437            "Offset of field: ",
9438            stringify!(_mjvFigure),
9439            "::",
9440            stringify!(linergb)
9441        )
9442    );
9443    assert_eq!(
9444        unsafe {
9445            &(*(::std::ptr::null::<_mjvFigure>())).linewidth as *const _ as usize
9446        },
9447        2004usize,
9448        concat!(
9449            "Offset of field: ",
9450            stringify!(_mjvFigure),
9451            "::",
9452            stringify!(linewidth)
9453        )
9454    );
9455    assert_eq!(
9456        unsafe { &(*(::std::ptr::null::<_mjvFigure>())).linedata as *const _ as usize },
9457        2404usize,
9458        concat!(
9459            "Offset of field: ",
9460            stringify!(_mjvFigure),
9461            "::",
9462            stringify!(linedata)
9463        )
9464    );
9465    assert_eq!(
9466        unsafe { &(*(::std::ptr::null::<_mjvFigure>())).linename as *const _ as usize },
9467        802404usize,
9468        concat!(
9469            "Offset of field: ",
9470            stringify!(_mjvFigure),
9471            "::",
9472            stringify!(linename)
9473        )
9474    );
9475    assert_eq!(
9476        unsafe {
9477            &(*(::std::ptr::null::<_mjvFigure>())).xaxispixel as *const _ as usize
9478        },
9479        812404usize,
9480        concat!(
9481            "Offset of field: ",
9482            stringify!(_mjvFigure),
9483            "::",
9484            stringify!(xaxispixel)
9485        )
9486    );
9487    assert_eq!(
9488        unsafe {
9489            &(*(::std::ptr::null::<_mjvFigure>())).yaxispixel as *const _ as usize
9490        },
9491        812412usize,
9492        concat!(
9493            "Offset of field: ",
9494            stringify!(_mjvFigure),
9495            "::",
9496            stringify!(yaxispixel)
9497        )
9498    );
9499    assert_eq!(
9500        unsafe {
9501            &(*(::std::ptr::null::<_mjvFigure>())).xaxisdata as *const _ as usize
9502        },
9503        812420usize,
9504        concat!(
9505            "Offset of field: ",
9506            stringify!(_mjvFigure),
9507            "::",
9508            stringify!(xaxisdata)
9509        )
9510    );
9511    assert_eq!(
9512        unsafe {
9513            &(*(::std::ptr::null::<_mjvFigure>())).yaxisdata as *const _ as usize
9514        },
9515        812428usize,
9516        concat!(
9517            "Offset of field: ",
9518            stringify!(_mjvFigure),
9519            "::",
9520            stringify!(yaxisdata)
9521        )
9522    );
9523}
9524impl Default for _mjvFigure {
9525    fn default() -> Self {
9526        unsafe { ::std::mem::zeroed() }
9527    }
9528}
9529pub type mjvFigure = _mjvFigure;
9530#[repr(u32)]
9531#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
9532pub enum _mjtGridPos {
9533    TOPLEFT = 0,
9534    TOPRIGHT = 1,
9535    BOTTOMLEFT = 2,
9536    BOTTOMRIGHT = 3,
9537}
9538pub use self::_mjtGridPos as mjtGridPos;
9539#[repr(u32)]
9540#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
9541pub enum _mjtFramebuffer {
9542    WINDOW = 0,
9543    OFFSCREEN = 1,
9544}
9545pub use self::_mjtFramebuffer as mjtFramebuffer;
9546#[repr(u32)]
9547#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
9548pub enum _mjtFontScale {
9549    SCALE_50 = 50,
9550    SCALE_100 = 100,
9551    SCALE_150 = 150,
9552    SCALE_200 = 200,
9553    SCALE_250 = 250,
9554    SCALE_300 = 300,
9555}
9556pub use self::_mjtFontScale as mjtFontScale;
9557#[repr(u32)]
9558#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
9559pub enum _mjtFont {
9560    NORMAL = 0,
9561    SHADOW = 1,
9562    BIG = 2,
9563}
9564pub use self::_mjtFont as mjtFont;
9565#[repr(C)]
9566#[derive(Debug, Default, Copy, Clone)]
9567pub struct _mjrRect {
9568    pub left: ::std::os::raw::c_int,
9569    pub bottom: ::std::os::raw::c_int,
9570    pub width: ::std::os::raw::c_int,
9571    pub height: ::std::os::raw::c_int,
9572}
9573#[test]
9574fn bindgen_test_layout__mjrRect() {
9575    assert_eq!(
9576        ::std::mem::size_of::<_mjrRect>(),
9577        16usize,
9578        concat!("Size of: ", stringify!(_mjrRect))
9579    );
9580    assert_eq!(
9581        ::std::mem::align_of::<_mjrRect>(),
9582        4usize,
9583        concat!("Alignment of ", stringify!(_mjrRect))
9584    );
9585    assert_eq!(
9586        unsafe { &(*(::std::ptr::null::<_mjrRect>())).left as *const _ as usize },
9587        0usize,
9588        concat!(
9589            "Offset of field: ",
9590            stringify!(_mjrRect),
9591            "::",
9592            stringify!(left)
9593        )
9594    );
9595    assert_eq!(
9596        unsafe { &(*(::std::ptr::null::<_mjrRect>())).bottom as *const _ as usize },
9597        4usize,
9598        concat!(
9599            "Offset of field: ",
9600            stringify!(_mjrRect),
9601            "::",
9602            stringify!(bottom)
9603        )
9604    );
9605    assert_eq!(
9606        unsafe { &(*(::std::ptr::null::<_mjrRect>())).width as *const _ as usize },
9607        8usize,
9608        concat!(
9609            "Offset of field: ",
9610            stringify!(_mjrRect),
9611            "::",
9612            stringify!(width)
9613        )
9614    );
9615    assert_eq!(
9616        unsafe { &(*(::std::ptr::null::<_mjrRect>())).height as *const _ as usize },
9617        12usize,
9618        concat!(
9619            "Offset of field: ",
9620            stringify!(_mjrRect),
9621            "::",
9622            stringify!(height)
9623        )
9624    );
9625}
9626pub type mjrRect = _mjrRect;
9627#[repr(C)]
9628#[derive(Copy, Clone)]
9629pub struct _mjrContext {
9630    pub lineWidth: f32,
9631    pub shadowClip: f32,
9632    pub shadowScale: f32,
9633    pub fogStart: f32,
9634    pub fogEnd: f32,
9635    pub fogRGBA: [f32; 4usize],
9636    pub shadowSize: ::std::os::raw::c_int,
9637    pub offWidth: ::std::os::raw::c_int,
9638    pub offHeight: ::std::os::raw::c_int,
9639    pub offSamples: ::std::os::raw::c_int,
9640    pub fontScale: ::std::os::raw::c_int,
9641    pub auxWidth: [::std::os::raw::c_int; 10usize],
9642    pub auxHeight: [::std::os::raw::c_int; 10usize],
9643    pub auxSamples: [::std::os::raw::c_int; 10usize],
9644    pub offFBO: ::std::os::raw::c_uint,
9645    pub offFBO_r: ::std::os::raw::c_uint,
9646    pub offColor: ::std::os::raw::c_uint,
9647    pub offColor_r: ::std::os::raw::c_uint,
9648    pub offDepthStencil: ::std::os::raw::c_uint,
9649    pub offDepthStencil_r: ::std::os::raw::c_uint,
9650    pub shadowFBO: ::std::os::raw::c_uint,
9651    pub shadowTex: ::std::os::raw::c_uint,
9652    pub auxFBO: [::std::os::raw::c_uint; 10usize],
9653    pub auxFBO_r: [::std::os::raw::c_uint; 10usize],
9654    pub auxColor: [::std::os::raw::c_uint; 10usize],
9655    pub auxColor_r: [::std::os::raw::c_uint; 10usize],
9656    pub ntexture: ::std::os::raw::c_int,
9657    pub textureType: [::std::os::raw::c_int; 100usize],
9658    pub texture: [::std::os::raw::c_uint; 100usize],
9659    pub basePlane: ::std::os::raw::c_uint,
9660    pub baseMesh: ::std::os::raw::c_uint,
9661    pub baseHField: ::std::os::raw::c_uint,
9662    pub baseBuiltin: ::std::os::raw::c_uint,
9663    pub baseFontNormal: ::std::os::raw::c_uint,
9664    pub baseFontShadow: ::std::os::raw::c_uint,
9665    pub baseFontBig: ::std::os::raw::c_uint,
9666    pub rangePlane: ::std::os::raw::c_int,
9667    pub rangeMesh: ::std::os::raw::c_int,
9668    pub rangeHField: ::std::os::raw::c_int,
9669    pub rangeBuiltin: ::std::os::raw::c_int,
9670    pub rangeFont: ::std::os::raw::c_int,
9671    pub nskin: ::std::os::raw::c_int,
9672    pub skinvertVBO: *mut ::std::os::raw::c_uint,
9673    pub skinnormalVBO: *mut ::std::os::raw::c_uint,
9674    pub skintexcoordVBO: *mut ::std::os::raw::c_uint,
9675    pub skinfaceVBO: *mut ::std::os::raw::c_uint,
9676    pub charWidth: [::std::os::raw::c_int; 127usize],
9677    pub charWidthBig: [::std::os::raw::c_int; 127usize],
9678    pub charHeight: ::std::os::raw::c_int,
9679    pub charHeightBig: ::std::os::raw::c_int,
9680    pub glewInitialized: ::std::os::raw::c_int,
9681    pub windowAvailable: ::std::os::raw::c_int,
9682    pub windowSamples: ::std::os::raw::c_int,
9683    pub windowStereo: ::std::os::raw::c_int,
9684    pub windowDoublebuffer: ::std::os::raw::c_int,
9685    pub currentBuffer: ::std::os::raw::c_int,
9686}
9687#[test]
9688fn bindgen_test_layout__mjrContext() {
9689    assert_eq!(
9690        ::std::mem::size_of::<_mjrContext>(),
9691        2304usize,
9692        concat!("Size of: ", stringify!(_mjrContext))
9693    );
9694    assert_eq!(
9695        ::std::mem::align_of::<_mjrContext>(),
9696        8usize,
9697        concat!("Alignment of ", stringify!(_mjrContext))
9698    );
9699    assert_eq!(
9700        unsafe {
9701            &(*(::std::ptr::null::<_mjrContext>())).lineWidth as *const _ as usize
9702        },
9703        0usize,
9704        concat!(
9705            "Offset of field: ",
9706            stringify!(_mjrContext),
9707            "::",
9708            stringify!(lineWidth)
9709        )
9710    );
9711    assert_eq!(
9712        unsafe {
9713            &(*(::std::ptr::null::<_mjrContext>())).shadowClip as *const _ as usize
9714        },
9715        4usize,
9716        concat!(
9717            "Offset of field: ",
9718            stringify!(_mjrContext),
9719            "::",
9720            stringify!(shadowClip)
9721        )
9722    );
9723    assert_eq!(
9724        unsafe {
9725            &(*(::std::ptr::null::<_mjrContext>())).shadowScale as *const _ as usize
9726        },
9727        8usize,
9728        concat!(
9729            "Offset of field: ",
9730            stringify!(_mjrContext),
9731            "::",
9732            stringify!(shadowScale)
9733        )
9734    );
9735    assert_eq!(
9736        unsafe {
9737            &(*(::std::ptr::null::<_mjrContext>())).fogStart as *const _ as usize
9738        },
9739        12usize,
9740        concat!(
9741            "Offset of field: ",
9742            stringify!(_mjrContext),
9743            "::",
9744            stringify!(fogStart)
9745        )
9746    );
9747    assert_eq!(
9748        unsafe { &(*(::std::ptr::null::<_mjrContext>())).fogEnd as *const _ as usize },
9749        16usize,
9750        concat!(
9751            "Offset of field: ",
9752            stringify!(_mjrContext),
9753            "::",
9754            stringify!(fogEnd)
9755        )
9756    );
9757    assert_eq!(
9758        unsafe { &(*(::std::ptr::null::<_mjrContext>())).fogRGBA as *const _ as usize },
9759        20usize,
9760        concat!(
9761            "Offset of field: ",
9762            stringify!(_mjrContext),
9763            "::",
9764            stringify!(fogRGBA)
9765        )
9766    );
9767    assert_eq!(
9768        unsafe {
9769            &(*(::std::ptr::null::<_mjrContext>())).shadowSize as *const _ as usize
9770        },
9771        36usize,
9772        concat!(
9773            "Offset of field: ",
9774            stringify!(_mjrContext),
9775            "::",
9776            stringify!(shadowSize)
9777        )
9778    );
9779    assert_eq!(
9780        unsafe {
9781            &(*(::std::ptr::null::<_mjrContext>())).offWidth as *const _ as usize
9782        },
9783        40usize,
9784        concat!(
9785            "Offset of field: ",
9786            stringify!(_mjrContext),
9787            "::",
9788            stringify!(offWidth)
9789        )
9790    );
9791    assert_eq!(
9792        unsafe {
9793            &(*(::std::ptr::null::<_mjrContext>())).offHeight as *const _ as usize
9794        },
9795        44usize,
9796        concat!(
9797            "Offset of field: ",
9798            stringify!(_mjrContext),
9799            "::",
9800            stringify!(offHeight)
9801        )
9802    );
9803    assert_eq!(
9804        unsafe {
9805            &(*(::std::ptr::null::<_mjrContext>())).offSamples as *const _ as usize
9806        },
9807        48usize,
9808        concat!(
9809            "Offset of field: ",
9810            stringify!(_mjrContext),
9811            "::",
9812            stringify!(offSamples)
9813        )
9814    );
9815    assert_eq!(
9816        unsafe {
9817            &(*(::std::ptr::null::<_mjrContext>())).fontScale as *const _ as usize
9818        },
9819        52usize,
9820        concat!(
9821            "Offset of field: ",
9822            stringify!(_mjrContext),
9823            "::",
9824            stringify!(fontScale)
9825        )
9826    );
9827    assert_eq!(
9828        unsafe {
9829            &(*(::std::ptr::null::<_mjrContext>())).auxWidth as *const _ as usize
9830        },
9831        56usize,
9832        concat!(
9833            "Offset of field: ",
9834            stringify!(_mjrContext),
9835            "::",
9836            stringify!(auxWidth)
9837        )
9838    );
9839    assert_eq!(
9840        unsafe {
9841            &(*(::std::ptr::null::<_mjrContext>())).auxHeight as *const _ as usize
9842        },
9843        96usize,
9844        concat!(
9845            "Offset of field: ",
9846            stringify!(_mjrContext),
9847            "::",
9848            stringify!(auxHeight)
9849        )
9850    );
9851    assert_eq!(
9852        unsafe {
9853            &(*(::std::ptr::null::<_mjrContext>())).auxSamples as *const _ as usize
9854        },
9855        136usize,
9856        concat!(
9857            "Offset of field: ",
9858            stringify!(_mjrContext),
9859            "::",
9860            stringify!(auxSamples)
9861        )
9862    );
9863    assert_eq!(
9864        unsafe { &(*(::std::ptr::null::<_mjrContext>())).offFBO as *const _ as usize },
9865        176usize,
9866        concat!(
9867            "Offset of field: ",
9868            stringify!(_mjrContext),
9869            "::",
9870            stringify!(offFBO)
9871        )
9872    );
9873    assert_eq!(
9874        unsafe {
9875            &(*(::std::ptr::null::<_mjrContext>())).offFBO_r as *const _ as usize
9876        },
9877        180usize,
9878        concat!(
9879            "Offset of field: ",
9880            stringify!(_mjrContext),
9881            "::",
9882            stringify!(offFBO_r)
9883        )
9884    );
9885    assert_eq!(
9886        unsafe {
9887            &(*(::std::ptr::null::<_mjrContext>())).offColor as *const _ as usize
9888        },
9889        184usize,
9890        concat!(
9891            "Offset of field: ",
9892            stringify!(_mjrContext),
9893            "::",
9894            stringify!(offColor)
9895        )
9896    );
9897    assert_eq!(
9898        unsafe {
9899            &(*(::std::ptr::null::<_mjrContext>())).offColor_r as *const _ as usize
9900        },
9901        188usize,
9902        concat!(
9903            "Offset of field: ",
9904            stringify!(_mjrContext),
9905            "::",
9906            stringify!(offColor_r)
9907        )
9908    );
9909    assert_eq!(
9910        unsafe {
9911            &(*(::std::ptr::null::<_mjrContext>())).offDepthStencil as *const _ as usize
9912        },
9913        192usize,
9914        concat!(
9915            "Offset of field: ",
9916            stringify!(_mjrContext),
9917            "::",
9918            stringify!(offDepthStencil)
9919        )
9920    );
9921    assert_eq!(
9922        unsafe {
9923            &(*(::std::ptr::null::<_mjrContext>())).offDepthStencil_r as *const _
9924                as usize
9925        },
9926        196usize,
9927        concat!(
9928            "Offset of field: ",
9929            stringify!(_mjrContext),
9930            "::",
9931            stringify!(offDepthStencil_r)
9932        )
9933    );
9934    assert_eq!(
9935        unsafe {
9936            &(*(::std::ptr::null::<_mjrContext>())).shadowFBO as *const _ as usize
9937        },
9938        200usize,
9939        concat!(
9940            "Offset of field: ",
9941            stringify!(_mjrContext),
9942            "::",
9943            stringify!(shadowFBO)
9944        )
9945    );
9946    assert_eq!(
9947        unsafe {
9948            &(*(::std::ptr::null::<_mjrContext>())).shadowTex as *const _ as usize
9949        },
9950        204usize,
9951        concat!(
9952            "Offset of field: ",
9953            stringify!(_mjrContext),
9954            "::",
9955            stringify!(shadowTex)
9956        )
9957    );
9958    assert_eq!(
9959        unsafe { &(*(::std::ptr::null::<_mjrContext>())).auxFBO as *const _ as usize },
9960        208usize,
9961        concat!(
9962            "Offset of field: ",
9963            stringify!(_mjrContext),
9964            "::",
9965            stringify!(auxFBO)
9966        )
9967    );
9968    assert_eq!(
9969        unsafe {
9970            &(*(::std::ptr::null::<_mjrContext>())).auxFBO_r as *const _ as usize
9971        },
9972        248usize,
9973        concat!(
9974            "Offset of field: ",
9975            stringify!(_mjrContext),
9976            "::",
9977            stringify!(auxFBO_r)
9978        )
9979    );
9980    assert_eq!(
9981        unsafe {
9982            &(*(::std::ptr::null::<_mjrContext>())).auxColor as *const _ as usize
9983        },
9984        288usize,
9985        concat!(
9986            "Offset of field: ",
9987            stringify!(_mjrContext),
9988            "::",
9989            stringify!(auxColor)
9990        )
9991    );
9992    assert_eq!(
9993        unsafe {
9994            &(*(::std::ptr::null::<_mjrContext>())).auxColor_r as *const _ as usize
9995        },
9996        328usize,
9997        concat!(
9998            "Offset of field: ",
9999            stringify!(_mjrContext),
10000            "::",
10001            stringify!(auxColor_r)
10002        )
10003    );
10004    assert_eq!(
10005        unsafe {
10006            &(*(::std::ptr::null::<_mjrContext>())).ntexture as *const _ as usize
10007        },
10008        368usize,
10009        concat!(
10010            "Offset of field: ",
10011            stringify!(_mjrContext),
10012            "::",
10013            stringify!(ntexture)
10014        )
10015    );
10016    assert_eq!(
10017        unsafe {
10018            &(*(::std::ptr::null::<_mjrContext>())).textureType as *const _ as usize
10019        },
10020        372usize,
10021        concat!(
10022            "Offset of field: ",
10023            stringify!(_mjrContext),
10024            "::",
10025            stringify!(textureType)
10026        )
10027    );
10028    assert_eq!(
10029        unsafe { &(*(::std::ptr::null::<_mjrContext>())).texture as *const _ as usize },
10030        772usize,
10031        concat!(
10032            "Offset of field: ",
10033            stringify!(_mjrContext),
10034            "::",
10035            stringify!(texture)
10036        )
10037    );
10038    assert_eq!(
10039        unsafe {
10040            &(*(::std::ptr::null::<_mjrContext>())).basePlane as *const _ as usize
10041        },
10042        1172usize,
10043        concat!(
10044            "Offset of field: ",
10045            stringify!(_mjrContext),
10046            "::",
10047            stringify!(basePlane)
10048        )
10049    );
10050    assert_eq!(
10051        unsafe {
10052            &(*(::std::ptr::null::<_mjrContext>())).baseMesh as *const _ as usize
10053        },
10054        1176usize,
10055        concat!(
10056            "Offset of field: ",
10057            stringify!(_mjrContext),
10058            "::",
10059            stringify!(baseMesh)
10060        )
10061    );
10062    assert_eq!(
10063        unsafe {
10064            &(*(::std::ptr::null::<_mjrContext>())).baseHField as *const _ as usize
10065        },
10066        1180usize,
10067        concat!(
10068            "Offset of field: ",
10069            stringify!(_mjrContext),
10070            "::",
10071            stringify!(baseHField)
10072        )
10073    );
10074    assert_eq!(
10075        unsafe {
10076            &(*(::std::ptr::null::<_mjrContext>())).baseBuiltin as *const _ as usize
10077        },
10078        1184usize,
10079        concat!(
10080            "Offset of field: ",
10081            stringify!(_mjrContext),
10082            "::",
10083            stringify!(baseBuiltin)
10084        )
10085    );
10086    assert_eq!(
10087        unsafe {
10088            &(*(::std::ptr::null::<_mjrContext>())).baseFontNormal as *const _ as usize
10089        },
10090        1188usize,
10091        concat!(
10092            "Offset of field: ",
10093            stringify!(_mjrContext),
10094            "::",
10095            stringify!(baseFontNormal)
10096        )
10097    );
10098    assert_eq!(
10099        unsafe {
10100            &(*(::std::ptr::null::<_mjrContext>())).baseFontShadow as *const _ as usize
10101        },
10102        1192usize,
10103        concat!(
10104            "Offset of field: ",
10105            stringify!(_mjrContext),
10106            "::",
10107            stringify!(baseFontShadow)
10108        )
10109    );
10110    assert_eq!(
10111        unsafe {
10112            &(*(::std::ptr::null::<_mjrContext>())).baseFontBig as *const _ as usize
10113        },
10114        1196usize,
10115        concat!(
10116            "Offset of field: ",
10117            stringify!(_mjrContext),
10118            "::",
10119            stringify!(baseFontBig)
10120        )
10121    );
10122    assert_eq!(
10123        unsafe {
10124            &(*(::std::ptr::null::<_mjrContext>())).rangePlane as *const _ as usize
10125        },
10126        1200usize,
10127        concat!(
10128            "Offset of field: ",
10129            stringify!(_mjrContext),
10130            "::",
10131            stringify!(rangePlane)
10132        )
10133    );
10134    assert_eq!(
10135        unsafe {
10136            &(*(::std::ptr::null::<_mjrContext>())).rangeMesh as *const _ as usize
10137        },
10138        1204usize,
10139        concat!(
10140            "Offset of field: ",
10141            stringify!(_mjrContext),
10142            "::",
10143            stringify!(rangeMesh)
10144        )
10145    );
10146    assert_eq!(
10147        unsafe {
10148            &(*(::std::ptr::null::<_mjrContext>())).rangeHField as *const _ as usize
10149        },
10150        1208usize,
10151        concat!(
10152            "Offset of field: ",
10153            stringify!(_mjrContext),
10154            "::",
10155            stringify!(rangeHField)
10156        )
10157    );
10158    assert_eq!(
10159        unsafe {
10160            &(*(::std::ptr::null::<_mjrContext>())).rangeBuiltin as *const _ as usize
10161        },
10162        1212usize,
10163        concat!(
10164            "Offset of field: ",
10165            stringify!(_mjrContext),
10166            "::",
10167            stringify!(rangeBuiltin)
10168        )
10169    );
10170    assert_eq!(
10171        unsafe {
10172            &(*(::std::ptr::null::<_mjrContext>())).rangeFont as *const _ as usize
10173        },
10174        1216usize,
10175        concat!(
10176            "Offset of field: ",
10177            stringify!(_mjrContext),
10178            "::",
10179            stringify!(rangeFont)
10180        )
10181    );
10182    assert_eq!(
10183        unsafe { &(*(::std::ptr::null::<_mjrContext>())).nskin as *const _ as usize },
10184        1220usize,
10185        concat!(
10186            "Offset of field: ",
10187            stringify!(_mjrContext),
10188            "::",
10189            stringify!(nskin)
10190        )
10191    );
10192    assert_eq!(
10193        unsafe {
10194            &(*(::std::ptr::null::<_mjrContext>())).skinvertVBO as *const _ as usize
10195        },
10196        1224usize,
10197        concat!(
10198            "Offset of field: ",
10199            stringify!(_mjrContext),
10200            "::",
10201            stringify!(skinvertVBO)
10202        )
10203    );
10204    assert_eq!(
10205        unsafe {
10206            &(*(::std::ptr::null::<_mjrContext>())).skinnormalVBO as *const _ as usize
10207        },
10208        1232usize,
10209        concat!(
10210            "Offset of field: ",
10211            stringify!(_mjrContext),
10212            "::",
10213            stringify!(skinnormalVBO)
10214        )
10215    );
10216    assert_eq!(
10217        unsafe {
10218            &(*(::std::ptr::null::<_mjrContext>())).skintexcoordVBO as *const _ as usize
10219        },
10220        1240usize,
10221        concat!(
10222            "Offset of field: ",
10223            stringify!(_mjrContext),
10224            "::",
10225            stringify!(skintexcoordVBO)
10226        )
10227    );
10228    assert_eq!(
10229        unsafe {
10230            &(*(::std::ptr::null::<_mjrContext>())).skinfaceVBO as *const _ as usize
10231        },
10232        1248usize,
10233        concat!(
10234            "Offset of field: ",
10235            stringify!(_mjrContext),
10236            "::",
10237            stringify!(skinfaceVBO)
10238        )
10239    );
10240    assert_eq!(
10241        unsafe {
10242            &(*(::std::ptr::null::<_mjrContext>())).charWidth as *const _ as usize
10243        },
10244        1256usize,
10245        concat!(
10246            "Offset of field: ",
10247            stringify!(_mjrContext),
10248            "::",
10249            stringify!(charWidth)
10250        )
10251    );
10252    assert_eq!(
10253        unsafe {
10254            &(*(::std::ptr::null::<_mjrContext>())).charWidthBig as *const _ as usize
10255        },
10256        1764usize,
10257        concat!(
10258            "Offset of field: ",
10259            stringify!(_mjrContext),
10260            "::",
10261            stringify!(charWidthBig)
10262        )
10263    );
10264    assert_eq!(
10265        unsafe {
10266            &(*(::std::ptr::null::<_mjrContext>())).charHeight as *const _ as usize
10267        },
10268        2272usize,
10269        concat!(
10270            "Offset of field: ",
10271            stringify!(_mjrContext),
10272            "::",
10273            stringify!(charHeight)
10274        )
10275    );
10276    assert_eq!(
10277        unsafe {
10278            &(*(::std::ptr::null::<_mjrContext>())).charHeightBig as *const _ as usize
10279        },
10280        2276usize,
10281        concat!(
10282            "Offset of field: ",
10283            stringify!(_mjrContext),
10284            "::",
10285            stringify!(charHeightBig)
10286        )
10287    );
10288    assert_eq!(
10289        unsafe {
10290            &(*(::std::ptr::null::<_mjrContext>())).glewInitialized as *const _ as usize
10291        },
10292        2280usize,
10293        concat!(
10294            "Offset of field: ",
10295            stringify!(_mjrContext),
10296            "::",
10297            stringify!(glewInitialized)
10298        )
10299    );
10300    assert_eq!(
10301        unsafe {
10302            &(*(::std::ptr::null::<_mjrContext>())).windowAvailable as *const _ as usize
10303        },
10304        2284usize,
10305        concat!(
10306            "Offset of field: ",
10307            stringify!(_mjrContext),
10308            "::",
10309            stringify!(windowAvailable)
10310        )
10311    );
10312    assert_eq!(
10313        unsafe {
10314            &(*(::std::ptr::null::<_mjrContext>())).windowSamples as *const _ as usize
10315        },
10316        2288usize,
10317        concat!(
10318            "Offset of field: ",
10319            stringify!(_mjrContext),
10320            "::",
10321            stringify!(windowSamples)
10322        )
10323    );
10324    assert_eq!(
10325        unsafe {
10326            &(*(::std::ptr::null::<_mjrContext>())).windowStereo as *const _ as usize
10327        },
10328        2292usize,
10329        concat!(
10330            "Offset of field: ",
10331            stringify!(_mjrContext),
10332            "::",
10333            stringify!(windowStereo)
10334        )
10335    );
10336    assert_eq!(
10337        unsafe {
10338            &(*(::std::ptr::null::<_mjrContext>())).windowDoublebuffer as *const _
10339                as usize
10340        },
10341        2296usize,
10342        concat!(
10343            "Offset of field: ",
10344            stringify!(_mjrContext),
10345            "::",
10346            stringify!(windowDoublebuffer)
10347        )
10348    );
10349    assert_eq!(
10350        unsafe {
10351            &(*(::std::ptr::null::<_mjrContext>())).currentBuffer as *const _ as usize
10352        },
10353        2300usize,
10354        concat!(
10355            "Offset of field: ",
10356            stringify!(_mjrContext),
10357            "::",
10358            stringify!(currentBuffer)
10359        )
10360    );
10361}
10362impl Default for _mjrContext {
10363    fn default() -> Self {
10364        unsafe { ::std::mem::zeroed() }
10365    }
10366}
10367pub type mjrContext = _mjrContext;
10368#[repr(u32)]
10369#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
10370pub enum _mjtButton {
10371    NONE = 0,
10372    LEFT = 1,
10373    RIGHT = 2,
10374    MIDDLE = 3,
10375}
10376pub use self::_mjtButton as mjtButton;
10377#[repr(u32)]
10378#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
10379pub enum _mjtEvent {
10380    NONE = 0,
10381    MOVE = 1,
10382    PRESS = 2,
10383    RELEASE = 3,
10384    SCROLL = 4,
10385    KEY = 5,
10386    RESIZE = 6,
10387}
10388pub use self::_mjtEvent as mjtEvent;
10389#[repr(i32)]
10390#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
10391pub enum _mjtItem {
10392    END = -2,
10393    SECTION = -1,
10394    SEPARATOR = 0,
10395    STATIC = 1,
10396    BUTTON = 2,
10397    CHECKINT = 3,
10398    CHECKBYTE = 4,
10399    RADIO = 5,
10400    SELECT = 6,
10401    SLIDERINT = 7,
10402    SLIDERNUM = 8,
10403    EDITINT = 9,
10404    EDITNUM = 10,
10405    EDITTXT = 11,
10406    mjNITEM = 12,
10407}
10408pub use self::_mjtItem as mjtItem;
10409pub type mjfItemEnable = ::std::option::Option<
10410    unsafe extern "C" fn(
10411        category: ::std::os::raw::c_int,
10412        data: *mut ::std::os::raw::c_void,
10413    ) -> ::std::os::raw::c_int,
10414>;
10415#[repr(C)]
10416#[derive(Debug, Copy, Clone)]
10417pub struct _mjuiState {
10418    pub nrect: ::std::os::raw::c_int,
10419    pub rect: [mjrRect; 15usize],
10420    pub userdata: *mut ::std::os::raw::c_void,
10421    pub type_: ::std::os::raw::c_int,
10422    pub left: ::std::os::raw::c_int,
10423    pub right: ::std::os::raw::c_int,
10424    pub middle: ::std::os::raw::c_int,
10425    pub doubleclick: ::std::os::raw::c_int,
10426    pub button: ::std::os::raw::c_int,
10427    pub buttontime: f64,
10428    pub x: f64,
10429    pub y: f64,
10430    pub dx: f64,
10431    pub dy: f64,
10432    pub sx: f64,
10433    pub sy: f64,
10434    pub control: ::std::os::raw::c_int,
10435    pub shift: ::std::os::raw::c_int,
10436    pub alt: ::std::os::raw::c_int,
10437    pub key: ::std::os::raw::c_int,
10438    pub keytime: f64,
10439    pub mouserect: ::std::os::raw::c_int,
10440    pub dragrect: ::std::os::raw::c_int,
10441    pub dragbutton: ::std::os::raw::c_int,
10442}
10443#[test]
10444fn bindgen_test_layout__mjuiState() {
10445    assert_eq!(
10446        ::std::mem::size_of::<_mjuiState>(),
10447        376usize,
10448        concat!("Size of: ", stringify!(_mjuiState))
10449    );
10450    assert_eq!(
10451        ::std::mem::align_of::<_mjuiState>(),
10452        8usize,
10453        concat!("Alignment of ", stringify!(_mjuiState))
10454    );
10455    assert_eq!(
10456        unsafe { &(*(::std::ptr::null::<_mjuiState>())).nrect as *const _ as usize },
10457        0usize,
10458        concat!(
10459            "Offset of field: ",
10460            stringify!(_mjuiState),
10461            "::",
10462            stringify!(nrect)
10463        )
10464    );
10465    assert_eq!(
10466        unsafe { &(*(::std::ptr::null::<_mjuiState>())).rect as *const _ as usize },
10467        4usize,
10468        concat!(
10469            "Offset of field: ",
10470            stringify!(_mjuiState),
10471            "::",
10472            stringify!(rect)
10473        )
10474    );
10475    assert_eq!(
10476        unsafe { &(*(::std::ptr::null::<_mjuiState>())).userdata as *const _ as usize },
10477        248usize,
10478        concat!(
10479            "Offset of field: ",
10480            stringify!(_mjuiState),
10481            "::",
10482            stringify!(userdata)
10483        )
10484    );
10485    assert_eq!(
10486        unsafe { &(*(::std::ptr::null::<_mjuiState>())).type_ as *const _ as usize },
10487        256usize,
10488        concat!(
10489            "Offset of field: ",
10490            stringify!(_mjuiState),
10491            "::",
10492            stringify!(type_)
10493        )
10494    );
10495    assert_eq!(
10496        unsafe { &(*(::std::ptr::null::<_mjuiState>())).left as *const _ as usize },
10497        260usize,
10498        concat!(
10499            "Offset of field: ",
10500            stringify!(_mjuiState),
10501            "::",
10502            stringify!(left)
10503        )
10504    );
10505    assert_eq!(
10506        unsafe { &(*(::std::ptr::null::<_mjuiState>())).right as *const _ as usize },
10507        264usize,
10508        concat!(
10509            "Offset of field: ",
10510            stringify!(_mjuiState),
10511            "::",
10512            stringify!(right)
10513        )
10514    );
10515    assert_eq!(
10516        unsafe { &(*(::std::ptr::null::<_mjuiState>())).middle as *const _ as usize },
10517        268usize,
10518        concat!(
10519            "Offset of field: ",
10520            stringify!(_mjuiState),
10521            "::",
10522            stringify!(middle)
10523        )
10524    );
10525    assert_eq!(
10526        unsafe {
10527            &(*(::std::ptr::null::<_mjuiState>())).doubleclick as *const _ as usize
10528        },
10529        272usize,
10530        concat!(
10531            "Offset of field: ",
10532            stringify!(_mjuiState),
10533            "::",
10534            stringify!(doubleclick)
10535        )
10536    );
10537    assert_eq!(
10538        unsafe { &(*(::std::ptr::null::<_mjuiState>())).button as *const _ as usize },
10539        276usize,
10540        concat!(
10541            "Offset of field: ",
10542            stringify!(_mjuiState),
10543            "::",
10544            stringify!(button)
10545        )
10546    );
10547    assert_eq!(
10548        unsafe {
10549            &(*(::std::ptr::null::<_mjuiState>())).buttontime as *const _ as usize
10550        },
10551        280usize,
10552        concat!(
10553            "Offset of field: ",
10554            stringify!(_mjuiState),
10555            "::",
10556            stringify!(buttontime)
10557        )
10558    );
10559    assert_eq!(
10560        unsafe { &(*(::std::ptr::null::<_mjuiState>())).x as *const _ as usize },
10561        288usize,
10562        concat!(
10563            "Offset of field: ",
10564            stringify!(_mjuiState),
10565            "::",
10566            stringify!(x)
10567        )
10568    );
10569    assert_eq!(
10570        unsafe { &(*(::std::ptr::null::<_mjuiState>())).y as *const _ as usize },
10571        296usize,
10572        concat!(
10573            "Offset of field: ",
10574            stringify!(_mjuiState),
10575            "::",
10576            stringify!(y)
10577        )
10578    );
10579    assert_eq!(
10580        unsafe { &(*(::std::ptr::null::<_mjuiState>())).dx as *const _ as usize },
10581        304usize,
10582        concat!(
10583            "Offset of field: ",
10584            stringify!(_mjuiState),
10585            "::",
10586            stringify!(dx)
10587        )
10588    );
10589    assert_eq!(
10590        unsafe { &(*(::std::ptr::null::<_mjuiState>())).dy as *const _ as usize },
10591        312usize,
10592        concat!(
10593            "Offset of field: ",
10594            stringify!(_mjuiState),
10595            "::",
10596            stringify!(dy)
10597        )
10598    );
10599    assert_eq!(
10600        unsafe { &(*(::std::ptr::null::<_mjuiState>())).sx as *const _ as usize },
10601        320usize,
10602        concat!(
10603            "Offset of field: ",
10604            stringify!(_mjuiState),
10605            "::",
10606            stringify!(sx)
10607        )
10608    );
10609    assert_eq!(
10610        unsafe { &(*(::std::ptr::null::<_mjuiState>())).sy as *const _ as usize },
10611        328usize,
10612        concat!(
10613            "Offset of field: ",
10614            stringify!(_mjuiState),
10615            "::",
10616            stringify!(sy)
10617        )
10618    );
10619    assert_eq!(
10620        unsafe { &(*(::std::ptr::null::<_mjuiState>())).control as *const _ as usize },
10621        336usize,
10622        concat!(
10623            "Offset of field: ",
10624            stringify!(_mjuiState),
10625            "::",
10626            stringify!(control)
10627        )
10628    );
10629    assert_eq!(
10630        unsafe { &(*(::std::ptr::null::<_mjuiState>())).shift as *const _ as usize },
10631        340usize,
10632        concat!(
10633            "Offset of field: ",
10634            stringify!(_mjuiState),
10635            "::",
10636            stringify!(shift)
10637        )
10638    );
10639    assert_eq!(
10640        unsafe { &(*(::std::ptr::null::<_mjuiState>())).alt as *const _ as usize },
10641        344usize,
10642        concat!(
10643            "Offset of field: ",
10644            stringify!(_mjuiState),
10645            "::",
10646            stringify!(alt)
10647        )
10648    );
10649    assert_eq!(
10650        unsafe { &(*(::std::ptr::null::<_mjuiState>())).key as *const _ as usize },
10651        348usize,
10652        concat!(
10653            "Offset of field: ",
10654            stringify!(_mjuiState),
10655            "::",
10656            stringify!(key)
10657        )
10658    );
10659    assert_eq!(
10660        unsafe { &(*(::std::ptr::null::<_mjuiState>())).keytime as *const _ as usize },
10661        352usize,
10662        concat!(
10663            "Offset of field: ",
10664            stringify!(_mjuiState),
10665            "::",
10666            stringify!(keytime)
10667        )
10668    );
10669    assert_eq!(
10670        unsafe {
10671            &(*(::std::ptr::null::<_mjuiState>())).mouserect as *const _ as usize
10672        },
10673        360usize,
10674        concat!(
10675            "Offset of field: ",
10676            stringify!(_mjuiState),
10677            "::",
10678            stringify!(mouserect)
10679        )
10680    );
10681    assert_eq!(
10682        unsafe { &(*(::std::ptr::null::<_mjuiState>())).dragrect as *const _ as usize },
10683        364usize,
10684        concat!(
10685            "Offset of field: ",
10686            stringify!(_mjuiState),
10687            "::",
10688            stringify!(dragrect)
10689        )
10690    );
10691    assert_eq!(
10692        unsafe {
10693            &(*(::std::ptr::null::<_mjuiState>())).dragbutton as *const _ as usize
10694        },
10695        368usize,
10696        concat!(
10697            "Offset of field: ",
10698            stringify!(_mjuiState),
10699            "::",
10700            stringify!(dragbutton)
10701        )
10702    );
10703}
10704impl Default for _mjuiState {
10705    fn default() -> Self {
10706        unsafe { ::std::mem::zeroed() }
10707    }
10708}
10709pub type mjuiState = _mjuiState;
10710#[repr(C)]
10711#[derive(Debug, Default, Copy, Clone)]
10712pub struct _mjuiThemeSpacing {
10713    pub total: ::std::os::raw::c_int,
10714    pub scroll: ::std::os::raw::c_int,
10715    pub label: ::std::os::raw::c_int,
10716    pub section: ::std::os::raw::c_int,
10717    pub itemside: ::std::os::raw::c_int,
10718    pub itemmid: ::std::os::raw::c_int,
10719    pub itemver: ::std::os::raw::c_int,
10720    pub texthor: ::std::os::raw::c_int,
10721    pub textver: ::std::os::raw::c_int,
10722    pub linescroll: ::std::os::raw::c_int,
10723    pub samples: ::std::os::raw::c_int,
10724}
10725#[test]
10726fn bindgen_test_layout__mjuiThemeSpacing() {
10727    assert_eq!(
10728        ::std::mem::size_of::<_mjuiThemeSpacing>(),
10729        44usize,
10730        concat!("Size of: ", stringify!(_mjuiThemeSpacing))
10731    );
10732    assert_eq!(
10733        ::std::mem::align_of::<_mjuiThemeSpacing>(),
10734        4usize,
10735        concat!("Alignment of ", stringify!(_mjuiThemeSpacing))
10736    );
10737    assert_eq!(
10738        unsafe {
10739            &(*(::std::ptr::null::<_mjuiThemeSpacing>())).total as *const _ as usize
10740        },
10741        0usize,
10742        concat!(
10743            "Offset of field: ",
10744            stringify!(_mjuiThemeSpacing),
10745            "::",
10746            stringify!(total)
10747        )
10748    );
10749    assert_eq!(
10750        unsafe {
10751            &(*(::std::ptr::null::<_mjuiThemeSpacing>())).scroll as *const _ as usize
10752        },
10753        4usize,
10754        concat!(
10755            "Offset of field: ",
10756            stringify!(_mjuiThemeSpacing),
10757            "::",
10758            stringify!(scroll)
10759        )
10760    );
10761    assert_eq!(
10762        unsafe {
10763            &(*(::std::ptr::null::<_mjuiThemeSpacing>())).label as *const _ as usize
10764        },
10765        8usize,
10766        concat!(
10767            "Offset of field: ",
10768            stringify!(_mjuiThemeSpacing),
10769            "::",
10770            stringify!(label)
10771        )
10772    );
10773    assert_eq!(
10774        unsafe {
10775            &(*(::std::ptr::null::<_mjuiThemeSpacing>())).section as *const _ as usize
10776        },
10777        12usize,
10778        concat!(
10779            "Offset of field: ",
10780            stringify!(_mjuiThemeSpacing),
10781            "::",
10782            stringify!(section)
10783        )
10784    );
10785    assert_eq!(
10786        unsafe {
10787            &(*(::std::ptr::null::<_mjuiThemeSpacing>())).itemside as *const _ as usize
10788        },
10789        16usize,
10790        concat!(
10791            "Offset of field: ",
10792            stringify!(_mjuiThemeSpacing),
10793            "::",
10794            stringify!(itemside)
10795        )
10796    );
10797    assert_eq!(
10798        unsafe {
10799            &(*(::std::ptr::null::<_mjuiThemeSpacing>())).itemmid as *const _ as usize
10800        },
10801        20usize,
10802        concat!(
10803            "Offset of field: ",
10804            stringify!(_mjuiThemeSpacing),
10805            "::",
10806            stringify!(itemmid)
10807        )
10808    );
10809    assert_eq!(
10810        unsafe {
10811            &(*(::std::ptr::null::<_mjuiThemeSpacing>())).itemver as *const _ as usize
10812        },
10813        24usize,
10814        concat!(
10815            "Offset of field: ",
10816            stringify!(_mjuiThemeSpacing),
10817            "::",
10818            stringify!(itemver)
10819        )
10820    );
10821    assert_eq!(
10822        unsafe {
10823            &(*(::std::ptr::null::<_mjuiThemeSpacing>())).texthor as *const _ as usize
10824        },
10825        28usize,
10826        concat!(
10827            "Offset of field: ",
10828            stringify!(_mjuiThemeSpacing),
10829            "::",
10830            stringify!(texthor)
10831        )
10832    );
10833    assert_eq!(
10834        unsafe {
10835            &(*(::std::ptr::null::<_mjuiThemeSpacing>())).textver as *const _ as usize
10836        },
10837        32usize,
10838        concat!(
10839            "Offset of field: ",
10840            stringify!(_mjuiThemeSpacing),
10841            "::",
10842            stringify!(textver)
10843        )
10844    );
10845    assert_eq!(
10846        unsafe {
10847            &(*(::std::ptr::null::<_mjuiThemeSpacing>())).linescroll as *const _
10848                as usize
10849        },
10850        36usize,
10851        concat!(
10852            "Offset of field: ",
10853            stringify!(_mjuiThemeSpacing),
10854            "::",
10855            stringify!(linescroll)
10856        )
10857    );
10858    assert_eq!(
10859        unsafe {
10860            &(*(::std::ptr::null::<_mjuiThemeSpacing>())).samples as *const _ as usize
10861        },
10862        40usize,
10863        concat!(
10864            "Offset of field: ",
10865            stringify!(_mjuiThemeSpacing),
10866            "::",
10867            stringify!(samples)
10868        )
10869    );
10870}
10871pub type mjuiThemeSpacing = _mjuiThemeSpacing;
10872#[repr(C)]
10873#[derive(Debug, Default, Copy, Clone)]
10874pub struct _mjuiThemeColor {
10875    pub master: [f32; 3usize],
10876    pub thumb: [f32; 3usize],
10877    pub secttitle: [f32; 3usize],
10878    pub sectfont: [f32; 3usize],
10879    pub sectsymbol: [f32; 3usize],
10880    pub sectpane: [f32; 3usize],
10881    pub shortcut: [f32; 3usize],
10882    pub fontactive: [f32; 3usize],
10883    pub fontinactive: [f32; 3usize],
10884    pub decorinactive: [f32; 3usize],
10885    pub decorinactive2: [f32; 3usize],
10886    pub button: [f32; 3usize],
10887    pub check: [f32; 3usize],
10888    pub radio: [f32; 3usize],
10889    pub select: [f32; 3usize],
10890    pub select2: [f32; 3usize],
10891    pub slider: [f32; 3usize],
10892    pub slider2: [f32; 3usize],
10893    pub edit: [f32; 3usize],
10894    pub edit2: [f32; 3usize],
10895    pub cursor: [f32; 3usize],
10896}
10897#[test]
10898fn bindgen_test_layout__mjuiThemeColor() {
10899    assert_eq!(
10900        ::std::mem::size_of::<_mjuiThemeColor>(),
10901        252usize,
10902        concat!("Size of: ", stringify!(_mjuiThemeColor))
10903    );
10904    assert_eq!(
10905        ::std::mem::align_of::<_mjuiThemeColor>(),
10906        4usize,
10907        concat!("Alignment of ", stringify!(_mjuiThemeColor))
10908    );
10909    assert_eq!(
10910        unsafe {
10911            &(*(::std::ptr::null::<_mjuiThemeColor>())).master as *const _ as usize
10912        },
10913        0usize,
10914        concat!(
10915            "Offset of field: ",
10916            stringify!(_mjuiThemeColor),
10917            "::",
10918            stringify!(master)
10919        )
10920    );
10921    assert_eq!(
10922        unsafe {
10923            &(*(::std::ptr::null::<_mjuiThemeColor>())).thumb as *const _ as usize
10924        },
10925        12usize,
10926        concat!(
10927            "Offset of field: ",
10928            stringify!(_mjuiThemeColor),
10929            "::",
10930            stringify!(thumb)
10931        )
10932    );
10933    assert_eq!(
10934        unsafe {
10935            &(*(::std::ptr::null::<_mjuiThemeColor>())).secttitle as *const _ as usize
10936        },
10937        24usize,
10938        concat!(
10939            "Offset of field: ",
10940            stringify!(_mjuiThemeColor),
10941            "::",
10942            stringify!(secttitle)
10943        )
10944    );
10945    assert_eq!(
10946        unsafe {
10947            &(*(::std::ptr::null::<_mjuiThemeColor>())).sectfont as *const _ as usize
10948        },
10949        36usize,
10950        concat!(
10951            "Offset of field: ",
10952            stringify!(_mjuiThemeColor),
10953            "::",
10954            stringify!(sectfont)
10955        )
10956    );
10957    assert_eq!(
10958        unsafe {
10959            &(*(::std::ptr::null::<_mjuiThemeColor>())).sectsymbol as *const _ as usize
10960        },
10961        48usize,
10962        concat!(
10963            "Offset of field: ",
10964            stringify!(_mjuiThemeColor),
10965            "::",
10966            stringify!(sectsymbol)
10967        )
10968    );
10969    assert_eq!(
10970        unsafe {
10971            &(*(::std::ptr::null::<_mjuiThemeColor>())).sectpane as *const _ as usize
10972        },
10973        60usize,
10974        concat!(
10975            "Offset of field: ",
10976            stringify!(_mjuiThemeColor),
10977            "::",
10978            stringify!(sectpane)
10979        )
10980    );
10981    assert_eq!(
10982        unsafe {
10983            &(*(::std::ptr::null::<_mjuiThemeColor>())).shortcut as *const _ as usize
10984        },
10985        72usize,
10986        concat!(
10987            "Offset of field: ",
10988            stringify!(_mjuiThemeColor),
10989            "::",
10990            stringify!(shortcut)
10991        )
10992    );
10993    assert_eq!(
10994        unsafe {
10995            &(*(::std::ptr::null::<_mjuiThemeColor>())).fontactive as *const _ as usize
10996        },
10997        84usize,
10998        concat!(
10999            "Offset of field: ",
11000            stringify!(_mjuiThemeColor),
11001            "::",
11002            stringify!(fontactive)
11003        )
11004    );
11005    assert_eq!(
11006        unsafe {
11007            &(*(::std::ptr::null::<_mjuiThemeColor>())).fontinactive as *const _
11008                as usize
11009        },
11010        96usize,
11011        concat!(
11012            "Offset of field: ",
11013            stringify!(_mjuiThemeColor),
11014            "::",
11015            stringify!(fontinactive)
11016        )
11017    );
11018    assert_eq!(
11019        unsafe {
11020            &(*(::std::ptr::null::<_mjuiThemeColor>())).decorinactive as *const _
11021                as usize
11022        },
11023        108usize,
11024        concat!(
11025            "Offset of field: ",
11026            stringify!(_mjuiThemeColor),
11027            "::",
11028            stringify!(decorinactive)
11029        )
11030    );
11031    assert_eq!(
11032        unsafe {
11033            &(*(::std::ptr::null::<_mjuiThemeColor>())).decorinactive2 as *const _
11034                as usize
11035        },
11036        120usize,
11037        concat!(
11038            "Offset of field: ",
11039            stringify!(_mjuiThemeColor),
11040            "::",
11041            stringify!(decorinactive2)
11042        )
11043    );
11044    assert_eq!(
11045        unsafe {
11046            &(*(::std::ptr::null::<_mjuiThemeColor>())).button as *const _ as usize
11047        },
11048        132usize,
11049        concat!(
11050            "Offset of field: ",
11051            stringify!(_mjuiThemeColor),
11052            "::",
11053            stringify!(button)
11054        )
11055    );
11056    assert_eq!(
11057        unsafe {
11058            &(*(::std::ptr::null::<_mjuiThemeColor>())).check as *const _ as usize
11059        },
11060        144usize,
11061        concat!(
11062            "Offset of field: ",
11063            stringify!(_mjuiThemeColor),
11064            "::",
11065            stringify!(check)
11066        )
11067    );
11068    assert_eq!(
11069        unsafe {
11070            &(*(::std::ptr::null::<_mjuiThemeColor>())).radio as *const _ as usize
11071        },
11072        156usize,
11073        concat!(
11074            "Offset of field: ",
11075            stringify!(_mjuiThemeColor),
11076            "::",
11077            stringify!(radio)
11078        )
11079    );
11080    assert_eq!(
11081        unsafe {
11082            &(*(::std::ptr::null::<_mjuiThemeColor>())).select as *const _ as usize
11083        },
11084        168usize,
11085        concat!(
11086            "Offset of field: ",
11087            stringify!(_mjuiThemeColor),
11088            "::",
11089            stringify!(select)
11090        )
11091    );
11092    assert_eq!(
11093        unsafe {
11094            &(*(::std::ptr::null::<_mjuiThemeColor>())).select2 as *const _ as usize
11095        },
11096        180usize,
11097        concat!(
11098            "Offset of field: ",
11099            stringify!(_mjuiThemeColor),
11100            "::",
11101            stringify!(select2)
11102        )
11103    );
11104    assert_eq!(
11105        unsafe {
11106            &(*(::std::ptr::null::<_mjuiThemeColor>())).slider as *const _ as usize
11107        },
11108        192usize,
11109        concat!(
11110            "Offset of field: ",
11111            stringify!(_mjuiThemeColor),
11112            "::",
11113            stringify!(slider)
11114        )
11115    );
11116    assert_eq!(
11117        unsafe {
11118            &(*(::std::ptr::null::<_mjuiThemeColor>())).slider2 as *const _ as usize
11119        },
11120        204usize,
11121        concat!(
11122            "Offset of field: ",
11123            stringify!(_mjuiThemeColor),
11124            "::",
11125            stringify!(slider2)
11126        )
11127    );
11128    assert_eq!(
11129        unsafe {
11130            &(*(::std::ptr::null::<_mjuiThemeColor>())).edit as *const _ as usize
11131        },
11132        216usize,
11133        concat!(
11134            "Offset of field: ",
11135            stringify!(_mjuiThemeColor),
11136            "::",
11137            stringify!(edit)
11138        )
11139    );
11140    assert_eq!(
11141        unsafe {
11142            &(*(::std::ptr::null::<_mjuiThemeColor>())).edit2 as *const _ as usize
11143        },
11144        228usize,
11145        concat!(
11146            "Offset of field: ",
11147            stringify!(_mjuiThemeColor),
11148            "::",
11149            stringify!(edit2)
11150        )
11151    );
11152    assert_eq!(
11153        unsafe {
11154            &(*(::std::ptr::null::<_mjuiThemeColor>())).cursor as *const _ as usize
11155        },
11156        240usize,
11157        concat!(
11158            "Offset of field: ",
11159            stringify!(_mjuiThemeColor),
11160            "::",
11161            stringify!(cursor)
11162        )
11163    );
11164}
11165pub type mjuiThemeColor = _mjuiThemeColor;
11166#[repr(C)]
11167#[derive(Copy, Clone)]
11168pub struct _mjuiItem {
11169    pub type_: ::std::os::raw::c_int,
11170    pub name: [::std::os::raw::c_char; 40usize],
11171    pub state: ::std::os::raw::c_int,
11172    pub pdata: *mut ::std::os::raw::c_void,
11173    pub sectionid: ::std::os::raw::c_int,
11174    pub itemid: ::std::os::raw::c_int,
11175    pub __bindgen_anon_1: _mjuiItem__bindgen_ty_1,
11176    pub rect: mjrRect,
11177}
11178#[repr(C)]
11179#[derive(Copy, Clone)]
11180pub union _mjuiItem__bindgen_ty_1 {
11181    pub single: _mjuiItem__bindgen_ty_1__bindgen_ty_1,
11182    pub multi: _mjuiItem__bindgen_ty_1__bindgen_ty_2,
11183    pub slider: _mjuiItem__bindgen_ty_1__bindgen_ty_3,
11184    pub edit: _mjuiItem__bindgen_ty_1__bindgen_ty_4,
11185    _bindgen_union_align: [u64; 101usize],
11186}
11187#[repr(C)]
11188#[derive(Debug, Default, Copy, Clone)]
11189pub struct _mjuiItem__bindgen_ty_1__bindgen_ty_1 {
11190    pub modifier: ::std::os::raw::c_int,
11191    pub shortcut: ::std::os::raw::c_int,
11192}
11193#[test]
11194fn bindgen_test_layout__mjuiItem__bindgen_ty_1__bindgen_ty_1() {
11195    assert_eq!(
11196        ::std::mem::size_of::<_mjuiItem__bindgen_ty_1__bindgen_ty_1>(),
11197        8usize,
11198        concat!(
11199            "Size of: ",
11200            stringify!(_mjuiItem__bindgen_ty_1__bindgen_ty_1)
11201        )
11202    );
11203    assert_eq!(
11204        ::std::mem::align_of::<_mjuiItem__bindgen_ty_1__bindgen_ty_1>(),
11205        4usize,
11206        concat!(
11207            "Alignment of ",
11208            stringify!(_mjuiItem__bindgen_ty_1__bindgen_ty_1)
11209        )
11210    );
11211    assert_eq!(
11212        unsafe {
11213            &(*(::std::ptr::null::<_mjuiItem__bindgen_ty_1__bindgen_ty_1>())).modifier
11214                as *const _ as usize
11215        },
11216        0usize,
11217        concat!(
11218            "Offset of field: ",
11219            stringify!(_mjuiItem__bindgen_ty_1__bindgen_ty_1),
11220            "::",
11221            stringify!(modifier)
11222        )
11223    );
11224    assert_eq!(
11225        unsafe {
11226            &(*(::std::ptr::null::<_mjuiItem__bindgen_ty_1__bindgen_ty_1>())).shortcut
11227                as *const _ as usize
11228        },
11229        4usize,
11230        concat!(
11231            "Offset of field: ",
11232            stringify!(_mjuiItem__bindgen_ty_1__bindgen_ty_1),
11233            "::",
11234            stringify!(shortcut)
11235        )
11236    );
11237}
11238#[repr(C)]
11239#[derive(Copy, Clone)]
11240pub struct _mjuiItem__bindgen_ty_1__bindgen_ty_2 {
11241    pub nelem: ::std::os::raw::c_int,
11242    pub name: [[::std::os::raw::c_char; 40usize]; 20usize],
11243}
11244#[test]
11245fn bindgen_test_layout__mjuiItem__bindgen_ty_1__bindgen_ty_2() {
11246    assert_eq!(
11247        ::std::mem::size_of::<_mjuiItem__bindgen_ty_1__bindgen_ty_2>(),
11248        804usize,
11249        concat!(
11250            "Size of: ",
11251            stringify!(_mjuiItem__bindgen_ty_1__bindgen_ty_2)
11252        )
11253    );
11254    assert_eq!(
11255        ::std::mem::align_of::<_mjuiItem__bindgen_ty_1__bindgen_ty_2>(),
11256        4usize,
11257        concat!(
11258            "Alignment of ",
11259            stringify!(_mjuiItem__bindgen_ty_1__bindgen_ty_2)
11260        )
11261    );
11262    assert_eq!(
11263        unsafe {
11264            &(*(::std::ptr::null::<_mjuiItem__bindgen_ty_1__bindgen_ty_2>())).nelem
11265                as *const _ as usize
11266        },
11267        0usize,
11268        concat!(
11269            "Offset of field: ",
11270            stringify!(_mjuiItem__bindgen_ty_1__bindgen_ty_2),
11271            "::",
11272            stringify!(nelem)
11273        )
11274    );
11275    assert_eq!(
11276        unsafe {
11277            &(*(::std::ptr::null::<_mjuiItem__bindgen_ty_1__bindgen_ty_2>())).name
11278                as *const _ as usize
11279        },
11280        4usize,
11281        concat!(
11282            "Offset of field: ",
11283            stringify!(_mjuiItem__bindgen_ty_1__bindgen_ty_2),
11284            "::",
11285            stringify!(name)
11286        )
11287    );
11288}
11289impl Default for _mjuiItem__bindgen_ty_1__bindgen_ty_2 {
11290    fn default() -> Self {
11291        unsafe { ::std::mem::zeroed() }
11292    }
11293}
11294#[repr(C)]
11295#[derive(Debug, Default, Copy, Clone)]
11296pub struct _mjuiItem__bindgen_ty_1__bindgen_ty_3 {
11297    pub range: [f64; 2usize],
11298    pub divisions: f64,
11299}
11300#[test]
11301fn bindgen_test_layout__mjuiItem__bindgen_ty_1__bindgen_ty_3() {
11302    assert_eq!(
11303        ::std::mem::size_of::<_mjuiItem__bindgen_ty_1__bindgen_ty_3>(),
11304        24usize,
11305        concat!(
11306            "Size of: ",
11307            stringify!(_mjuiItem__bindgen_ty_1__bindgen_ty_3)
11308        )
11309    );
11310    assert_eq!(
11311        ::std::mem::align_of::<_mjuiItem__bindgen_ty_1__bindgen_ty_3>(),
11312        8usize,
11313        concat!(
11314            "Alignment of ",
11315            stringify!(_mjuiItem__bindgen_ty_1__bindgen_ty_3)
11316        )
11317    );
11318    assert_eq!(
11319        unsafe {
11320            &(*(::std::ptr::null::<_mjuiItem__bindgen_ty_1__bindgen_ty_3>())).range
11321                as *const _ as usize
11322        },
11323        0usize,
11324        concat!(
11325            "Offset of field: ",
11326            stringify!(_mjuiItem__bindgen_ty_1__bindgen_ty_3),
11327            "::",
11328            stringify!(range)
11329        )
11330    );
11331    assert_eq!(
11332        unsafe {
11333            &(*(::std::ptr::null::<_mjuiItem__bindgen_ty_1__bindgen_ty_3>())).divisions
11334                as *const _ as usize
11335        },
11336        16usize,
11337        concat!(
11338            "Offset of field: ",
11339            stringify!(_mjuiItem__bindgen_ty_1__bindgen_ty_3),
11340            "::",
11341            stringify!(divisions)
11342        )
11343    );
11344}
11345#[repr(C)]
11346#[derive(Debug, Default, Copy, Clone)]
11347pub struct _mjuiItem__bindgen_ty_1__bindgen_ty_4 {
11348    pub nelem: ::std::os::raw::c_int,
11349    pub range: [[f64; 2usize]; 5usize],
11350}
11351#[test]
11352fn bindgen_test_layout__mjuiItem__bindgen_ty_1__bindgen_ty_4() {
11353    assert_eq!(
11354        ::std::mem::size_of::<_mjuiItem__bindgen_ty_1__bindgen_ty_4>(),
11355        88usize,
11356        concat!(
11357            "Size of: ",
11358            stringify!(_mjuiItem__bindgen_ty_1__bindgen_ty_4)
11359        )
11360    );
11361    assert_eq!(
11362        ::std::mem::align_of::<_mjuiItem__bindgen_ty_1__bindgen_ty_4>(),
11363        8usize,
11364        concat!(
11365            "Alignment of ",
11366            stringify!(_mjuiItem__bindgen_ty_1__bindgen_ty_4)
11367        )
11368    );
11369    assert_eq!(
11370        unsafe {
11371            &(*(::std::ptr::null::<_mjuiItem__bindgen_ty_1__bindgen_ty_4>())).nelem
11372                as *const _ as usize
11373        },
11374        0usize,
11375        concat!(
11376            "Offset of field: ",
11377            stringify!(_mjuiItem__bindgen_ty_1__bindgen_ty_4),
11378            "::",
11379            stringify!(nelem)
11380        )
11381    );
11382    assert_eq!(
11383        unsafe {
11384            &(*(::std::ptr::null::<_mjuiItem__bindgen_ty_1__bindgen_ty_4>())).range
11385                as *const _ as usize
11386        },
11387        8usize,
11388        concat!(
11389            "Offset of field: ",
11390            stringify!(_mjuiItem__bindgen_ty_1__bindgen_ty_4),
11391            "::",
11392            stringify!(range)
11393        )
11394    );
11395}
11396#[test]
11397fn bindgen_test_layout__mjuiItem__bindgen_ty_1() {
11398    assert_eq!(
11399        ::std::mem::size_of::<_mjuiItem__bindgen_ty_1>(),
11400        808usize,
11401        concat!("Size of: ", stringify!(_mjuiItem__bindgen_ty_1))
11402    );
11403    assert_eq!(
11404        ::std::mem::align_of::<_mjuiItem__bindgen_ty_1>(),
11405        8usize,
11406        concat!("Alignment of ", stringify!(_mjuiItem__bindgen_ty_1))
11407    );
11408    assert_eq!(
11409        unsafe {
11410            &(*(::std::ptr::null::<_mjuiItem__bindgen_ty_1>())).single as *const _
11411                as usize
11412        },
11413        0usize,
11414        concat!(
11415            "Offset of field: ",
11416            stringify!(_mjuiItem__bindgen_ty_1),
11417            "::",
11418            stringify!(single)
11419        )
11420    );
11421    assert_eq!(
11422        unsafe {
11423            &(*(::std::ptr::null::<_mjuiItem__bindgen_ty_1>())).multi as *const _
11424                as usize
11425        },
11426        0usize,
11427        concat!(
11428            "Offset of field: ",
11429            stringify!(_mjuiItem__bindgen_ty_1),
11430            "::",
11431            stringify!(multi)
11432        )
11433    );
11434    assert_eq!(
11435        unsafe {
11436            &(*(::std::ptr::null::<_mjuiItem__bindgen_ty_1>())).slider as *const _
11437                as usize
11438        },
11439        0usize,
11440        concat!(
11441            "Offset of field: ",
11442            stringify!(_mjuiItem__bindgen_ty_1),
11443            "::",
11444            stringify!(slider)
11445        )
11446    );
11447    assert_eq!(
11448        unsafe {
11449            &(*(::std::ptr::null::<_mjuiItem__bindgen_ty_1>())).edit as *const _
11450                as usize
11451        },
11452        0usize,
11453        concat!(
11454            "Offset of field: ",
11455            stringify!(_mjuiItem__bindgen_ty_1),
11456            "::",
11457            stringify!(edit)
11458        )
11459    );
11460}
11461impl Default for _mjuiItem__bindgen_ty_1 {
11462    fn default() -> Self {
11463        unsafe { ::std::mem::zeroed() }
11464    }
11465}
11466#[test]
11467fn bindgen_test_layout__mjuiItem() {
11468    assert_eq!(
11469        ::std::mem::size_of::<_mjuiItem>(),
11470        888usize,
11471        concat!("Size of: ", stringify!(_mjuiItem))
11472    );
11473    assert_eq!(
11474        ::std::mem::align_of::<_mjuiItem>(),
11475        8usize,
11476        concat!("Alignment of ", stringify!(_mjuiItem))
11477    );
11478    assert_eq!(
11479        unsafe { &(*(::std::ptr::null::<_mjuiItem>())).type_ as *const _ as usize },
11480        0usize,
11481        concat!(
11482            "Offset of field: ",
11483            stringify!(_mjuiItem),
11484            "::",
11485            stringify!(type_)
11486        )
11487    );
11488    assert_eq!(
11489        unsafe { &(*(::std::ptr::null::<_mjuiItem>())).name as *const _ as usize },
11490        4usize,
11491        concat!(
11492            "Offset of field: ",
11493            stringify!(_mjuiItem),
11494            "::",
11495            stringify!(name)
11496        )
11497    );
11498    assert_eq!(
11499        unsafe { &(*(::std::ptr::null::<_mjuiItem>())).state as *const _ as usize },
11500        44usize,
11501        concat!(
11502            "Offset of field: ",
11503            stringify!(_mjuiItem),
11504            "::",
11505            stringify!(state)
11506        )
11507    );
11508    assert_eq!(
11509        unsafe { &(*(::std::ptr::null::<_mjuiItem>())).pdata as *const _ as usize },
11510        48usize,
11511        concat!(
11512            "Offset of field: ",
11513            stringify!(_mjuiItem),
11514            "::",
11515            stringify!(pdata)
11516        )
11517    );
11518    assert_eq!(
11519        unsafe { &(*(::std::ptr::null::<_mjuiItem>())).sectionid as *const _ as usize },
11520        56usize,
11521        concat!(
11522            "Offset of field: ",
11523            stringify!(_mjuiItem),
11524            "::",
11525            stringify!(sectionid)
11526        )
11527    );
11528    assert_eq!(
11529        unsafe { &(*(::std::ptr::null::<_mjuiItem>())).itemid as *const _ as usize },
11530        60usize,
11531        concat!(
11532            "Offset of field: ",
11533            stringify!(_mjuiItem),
11534            "::",
11535            stringify!(itemid)
11536        )
11537    );
11538    assert_eq!(
11539        unsafe { &(*(::std::ptr::null::<_mjuiItem>())).rect as *const _ as usize },
11540        872usize,
11541        concat!(
11542            "Offset of field: ",
11543            stringify!(_mjuiItem),
11544            "::",
11545            stringify!(rect)
11546        )
11547    );
11548}
11549impl Default for _mjuiItem {
11550    fn default() -> Self {
11551        unsafe { ::std::mem::zeroed() }
11552    }
11553}
11554pub type mjuiItem = _mjuiItem;
11555#[repr(C)]
11556#[derive(Copy, Clone)]
11557pub struct _mjuiSection {
11558    pub name: [::std::os::raw::c_char; 40usize],
11559    pub state: ::std::os::raw::c_int,
11560    pub modifier: ::std::os::raw::c_int,
11561    pub shortcut: ::std::os::raw::c_int,
11562    pub nitem: ::std::os::raw::c_int,
11563    pub item: [mjuiItem; 80usize],
11564    pub rtitle: mjrRect,
11565    pub rcontent: mjrRect,
11566}
11567#[test]
11568fn bindgen_test_layout__mjuiSection() {
11569    assert_eq!(
11570        ::std::mem::size_of::<_mjuiSection>(),
11571        71128usize,
11572        concat!("Size of: ", stringify!(_mjuiSection))
11573    );
11574    assert_eq!(
11575        ::std::mem::align_of::<_mjuiSection>(),
11576        8usize,
11577        concat!("Alignment of ", stringify!(_mjuiSection))
11578    );
11579    assert_eq!(
11580        unsafe { &(*(::std::ptr::null::<_mjuiSection>())).name as *const _ as usize },
11581        0usize,
11582        concat!(
11583            "Offset of field: ",
11584            stringify!(_mjuiSection),
11585            "::",
11586            stringify!(name)
11587        )
11588    );
11589    assert_eq!(
11590        unsafe { &(*(::std::ptr::null::<_mjuiSection>())).state as *const _ as usize },
11591        40usize,
11592        concat!(
11593            "Offset of field: ",
11594            stringify!(_mjuiSection),
11595            "::",
11596            stringify!(state)
11597        )
11598    );
11599    assert_eq!(
11600        unsafe {
11601            &(*(::std::ptr::null::<_mjuiSection>())).modifier as *const _ as usize
11602        },
11603        44usize,
11604        concat!(
11605            "Offset of field: ",
11606            stringify!(_mjuiSection),
11607            "::",
11608            stringify!(modifier)
11609        )
11610    );
11611    assert_eq!(
11612        unsafe {
11613            &(*(::std::ptr::null::<_mjuiSection>())).shortcut as *const _ as usize
11614        },
11615        48usize,
11616        concat!(
11617            "Offset of field: ",
11618            stringify!(_mjuiSection),
11619            "::",
11620            stringify!(shortcut)
11621        )
11622    );
11623    assert_eq!(
11624        unsafe { &(*(::std::ptr::null::<_mjuiSection>())).nitem as *const _ as usize },
11625        52usize,
11626        concat!(
11627            "Offset of field: ",
11628            stringify!(_mjuiSection),
11629            "::",
11630            stringify!(nitem)
11631        )
11632    );
11633    assert_eq!(
11634        unsafe { &(*(::std::ptr::null::<_mjuiSection>())).item as *const _ as usize },
11635        56usize,
11636        concat!(
11637            "Offset of field: ",
11638            stringify!(_mjuiSection),
11639            "::",
11640            stringify!(item)
11641        )
11642    );
11643    assert_eq!(
11644        unsafe { &(*(::std::ptr::null::<_mjuiSection>())).rtitle as *const _ as usize },
11645        71096usize,
11646        concat!(
11647            "Offset of field: ",
11648            stringify!(_mjuiSection),
11649            "::",
11650            stringify!(rtitle)
11651        )
11652    );
11653    assert_eq!(
11654        unsafe {
11655            &(*(::std::ptr::null::<_mjuiSection>())).rcontent as *const _ as usize
11656        },
11657        71112usize,
11658        concat!(
11659            "Offset of field: ",
11660            stringify!(_mjuiSection),
11661            "::",
11662            stringify!(rcontent)
11663        )
11664    );
11665}
11666impl Default for _mjuiSection {
11667    fn default() -> Self {
11668        unsafe { ::std::mem::zeroed() }
11669    }
11670}
11671pub type mjuiSection = _mjuiSection;
11672#[repr(C)]
11673#[derive(Copy, Clone)]
11674pub struct _mjUI {
11675    pub spacing: mjuiThemeSpacing,
11676    pub color: mjuiThemeColor,
11677    pub predicate: mjfItemEnable,
11678    pub userdata: *mut ::std::os::raw::c_void,
11679    pub rectid: ::std::os::raw::c_int,
11680    pub auxid: ::std::os::raw::c_int,
11681    pub radiocol: ::std::os::raw::c_int,
11682    pub width: ::std::os::raw::c_int,
11683    pub height: ::std::os::raw::c_int,
11684    pub maxheight: ::std::os::raw::c_int,
11685    pub scroll: ::std::os::raw::c_int,
11686    pub mousesect: ::std::os::raw::c_int,
11687    pub mouseitem: ::std::os::raw::c_int,
11688    pub mousehelp: ::std::os::raw::c_int,
11689    pub editsect: ::std::os::raw::c_int,
11690    pub edititem: ::std::os::raw::c_int,
11691    pub editcursor: ::std::os::raw::c_int,
11692    pub editscroll: ::std::os::raw::c_int,
11693    pub edittext: [::std::os::raw::c_char; 500usize],
11694    pub editchanged: *mut mjuiItem,
11695    pub nsect: ::std::os::raw::c_int,
11696    pub sect: [mjuiSection; 10usize],
11697}
11698#[test]
11699fn bindgen_test_layout__mjUI() {
11700    assert_eq!(
11701        ::std::mem::size_of::<_mjUI>(),
11702        712168usize,
11703        concat!("Size of: ", stringify!(_mjUI))
11704    );
11705    assert_eq!(
11706        ::std::mem::align_of::<_mjUI>(),
11707        8usize,
11708        concat!("Alignment of ", stringify!(_mjUI))
11709    );
11710    assert_eq!(
11711        unsafe { &(*(::std::ptr::null::<_mjUI>())).spacing as *const _ as usize },
11712        0usize,
11713        concat!(
11714            "Offset of field: ",
11715            stringify!(_mjUI),
11716            "::",
11717            stringify!(spacing)
11718        )
11719    );
11720    assert_eq!(
11721        unsafe { &(*(::std::ptr::null::<_mjUI>())).color as *const _ as usize },
11722        44usize,
11723        concat!(
11724            "Offset of field: ",
11725            stringify!(_mjUI),
11726            "::",
11727            stringify!(color)
11728        )
11729    );
11730    assert_eq!(
11731        unsafe { &(*(::std::ptr::null::<_mjUI>())).predicate as *const _ as usize },
11732        296usize,
11733        concat!(
11734            "Offset of field: ",
11735            stringify!(_mjUI),
11736            "::",
11737            stringify!(predicate)
11738        )
11739    );
11740    assert_eq!(
11741        unsafe { &(*(::std::ptr::null::<_mjUI>())).userdata as *const _ as usize },
11742        304usize,
11743        concat!(
11744            "Offset of field: ",
11745            stringify!(_mjUI),
11746            "::",
11747            stringify!(userdata)
11748        )
11749    );
11750    assert_eq!(
11751        unsafe { &(*(::std::ptr::null::<_mjUI>())).rectid as *const _ as usize },
11752        312usize,
11753        concat!(
11754            "Offset of field: ",
11755            stringify!(_mjUI),
11756            "::",
11757            stringify!(rectid)
11758        )
11759    );
11760    assert_eq!(
11761        unsafe { &(*(::std::ptr::null::<_mjUI>())).auxid as *const _ as usize },
11762        316usize,
11763        concat!(
11764            "Offset of field: ",
11765            stringify!(_mjUI),
11766            "::",
11767            stringify!(auxid)
11768        )
11769    );
11770    assert_eq!(
11771        unsafe { &(*(::std::ptr::null::<_mjUI>())).radiocol as *const _ as usize },
11772        320usize,
11773        concat!(
11774            "Offset of field: ",
11775            stringify!(_mjUI),
11776            "::",
11777            stringify!(radiocol)
11778        )
11779    );
11780    assert_eq!(
11781        unsafe { &(*(::std::ptr::null::<_mjUI>())).width as *const _ as usize },
11782        324usize,
11783        concat!(
11784            "Offset of field: ",
11785            stringify!(_mjUI),
11786            "::",
11787            stringify!(width)
11788        )
11789    );
11790    assert_eq!(
11791        unsafe { &(*(::std::ptr::null::<_mjUI>())).height as *const _ as usize },
11792        328usize,
11793        concat!(
11794            "Offset of field: ",
11795            stringify!(_mjUI),
11796            "::",
11797            stringify!(height)
11798        )
11799    );
11800    assert_eq!(
11801        unsafe { &(*(::std::ptr::null::<_mjUI>())).maxheight as *const _ as usize },
11802        332usize,
11803        concat!(
11804            "Offset of field: ",
11805            stringify!(_mjUI),
11806            "::",
11807            stringify!(maxheight)
11808        )
11809    );
11810    assert_eq!(
11811        unsafe { &(*(::std::ptr::null::<_mjUI>())).scroll as *const _ as usize },
11812        336usize,
11813        concat!(
11814            "Offset of field: ",
11815            stringify!(_mjUI),
11816            "::",
11817            stringify!(scroll)
11818        )
11819    );
11820    assert_eq!(
11821        unsafe { &(*(::std::ptr::null::<_mjUI>())).mousesect as *const _ as usize },
11822        340usize,
11823        concat!(
11824            "Offset of field: ",
11825            stringify!(_mjUI),
11826            "::",
11827            stringify!(mousesect)
11828        )
11829    );
11830    assert_eq!(
11831        unsafe { &(*(::std::ptr::null::<_mjUI>())).mouseitem as *const _ as usize },
11832        344usize,
11833        concat!(
11834            "Offset of field: ",
11835            stringify!(_mjUI),
11836            "::",
11837            stringify!(mouseitem)
11838        )
11839    );
11840    assert_eq!(
11841        unsafe { &(*(::std::ptr::null::<_mjUI>())).mousehelp as *const _ as usize },
11842        348usize,
11843        concat!(
11844            "Offset of field: ",
11845            stringify!(_mjUI),
11846            "::",
11847            stringify!(mousehelp)
11848        )
11849    );
11850    assert_eq!(
11851        unsafe { &(*(::std::ptr::null::<_mjUI>())).editsect as *const _ as usize },
11852        352usize,
11853        concat!(
11854            "Offset of field: ",
11855            stringify!(_mjUI),
11856            "::",
11857            stringify!(editsect)
11858        )
11859    );
11860    assert_eq!(
11861        unsafe { &(*(::std::ptr::null::<_mjUI>())).edititem as *const _ as usize },
11862        356usize,
11863        concat!(
11864            "Offset of field: ",
11865            stringify!(_mjUI),
11866            "::",
11867            stringify!(edititem)
11868        )
11869    );
11870    assert_eq!(
11871        unsafe { &(*(::std::ptr::null::<_mjUI>())).editcursor as *const _ as usize },
11872        360usize,
11873        concat!(
11874            "Offset of field: ",
11875            stringify!(_mjUI),
11876            "::",
11877            stringify!(editcursor)
11878        )
11879    );
11880    assert_eq!(
11881        unsafe { &(*(::std::ptr::null::<_mjUI>())).editscroll as *const _ as usize },
11882        364usize,
11883        concat!(
11884            "Offset of field: ",
11885            stringify!(_mjUI),
11886            "::",
11887            stringify!(editscroll)
11888        )
11889    );
11890    assert_eq!(
11891        unsafe { &(*(::std::ptr::null::<_mjUI>())).edittext as *const _ as usize },
11892        368usize,
11893        concat!(
11894            "Offset of field: ",
11895            stringify!(_mjUI),
11896            "::",
11897            stringify!(edittext)
11898        )
11899    );
11900    assert_eq!(
11901        unsafe { &(*(::std::ptr::null::<_mjUI>())).editchanged as *const _ as usize },
11902        872usize,
11903        concat!(
11904            "Offset of field: ",
11905            stringify!(_mjUI),
11906            "::",
11907            stringify!(editchanged)
11908        )
11909    );
11910    assert_eq!(
11911        unsafe { &(*(::std::ptr::null::<_mjUI>())).nsect as *const _ as usize },
11912        880usize,
11913        concat!(
11914            "Offset of field: ",
11915            stringify!(_mjUI),
11916            "::",
11917            stringify!(nsect)
11918        )
11919    );
11920    assert_eq!(
11921        unsafe { &(*(::std::ptr::null::<_mjUI>())).sect as *const _ as usize },
11922        888usize,
11923        concat!(
11924            "Offset of field: ",
11925            stringify!(_mjUI),
11926            "::",
11927            stringify!(sect)
11928        )
11929    );
11930}
11931impl Default for _mjUI {
11932    fn default() -> Self {
11933        unsafe { ::std::mem::zeroed() }
11934    }
11935}
11936pub type mjUI = _mjUI;
11937#[repr(C)]
11938#[derive(Copy, Clone)]
11939pub struct _mjuiDef {
11940    pub type_: ::std::os::raw::c_int,
11941    pub name: [::std::os::raw::c_char; 40usize],
11942    pub state: ::std::os::raw::c_int,
11943    pub pdata: *mut ::std::os::raw::c_void,
11944    pub other: [::std::os::raw::c_char; 500usize],
11945}
11946#[test]
11947fn bindgen_test_layout__mjuiDef() {
11948    assert_eq!(
11949        ::std::mem::size_of::<_mjuiDef>(),
11950        560usize,
11951        concat!("Size of: ", stringify!(_mjuiDef))
11952    );
11953    assert_eq!(
11954        ::std::mem::align_of::<_mjuiDef>(),
11955        8usize,
11956        concat!("Alignment of ", stringify!(_mjuiDef))
11957    );
11958    assert_eq!(
11959        unsafe { &(*(::std::ptr::null::<_mjuiDef>())).type_ as *const _ as usize },
11960        0usize,
11961        concat!(
11962            "Offset of field: ",
11963            stringify!(_mjuiDef),
11964            "::",
11965            stringify!(type_)
11966        )
11967    );
11968    assert_eq!(
11969        unsafe { &(*(::std::ptr::null::<_mjuiDef>())).name as *const _ as usize },
11970        4usize,
11971        concat!(
11972            "Offset of field: ",
11973            stringify!(_mjuiDef),
11974            "::",
11975            stringify!(name)
11976        )
11977    );
11978    assert_eq!(
11979        unsafe { &(*(::std::ptr::null::<_mjuiDef>())).state as *const _ as usize },
11980        44usize,
11981        concat!(
11982            "Offset of field: ",
11983            stringify!(_mjuiDef),
11984            "::",
11985            stringify!(state)
11986        )
11987    );
11988    assert_eq!(
11989        unsafe { &(*(::std::ptr::null::<_mjuiDef>())).pdata as *const _ as usize },
11990        48usize,
11991        concat!(
11992            "Offset of field: ",
11993            stringify!(_mjuiDef),
11994            "::",
11995            stringify!(pdata)
11996        )
11997    );
11998    assert_eq!(
11999        unsafe { &(*(::std::ptr::null::<_mjuiDef>())).other as *const _ as usize },
12000        56usize,
12001        concat!(
12002            "Offset of field: ",
12003            stringify!(_mjuiDef),
12004            "::",
12005            stringify!(other)
12006        )
12007    );
12008}
12009impl Default for _mjuiDef {
12010    fn default() -> Self {
12011        unsafe { ::std::mem::zeroed() }
12012    }
12013}
12014pub type mjuiDef = _mjuiDef;
12015extern "C" {
12016    pub static mut mju_user_error: ::std::option::Option<
12017        unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char),
12018    >;
12019}
12020extern "C" {
12021    pub static mut mju_user_warning: ::std::option::Option<
12022        unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char),
12023    >;
12024}
12025extern "C" {
12026    pub static mut mju_user_malloc: ::std::option::Option<
12027        unsafe extern "C" fn(arg1: usize) -> *mut ::std::os::raw::c_void,
12028    >;
12029}
12030extern "C" {
12031    pub static mut mju_user_free:
12032        ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
12033}
12034extern "C" {
12035    pub static mut mjcb_passive: mjfGeneric;
12036}
12037extern "C" {
12038    pub static mut mjcb_control: mjfGeneric;
12039}
12040extern "C" {
12041    pub static mut mjcb_contactfilter: mjfGeneric;
12042}
12043extern "C" {
12044    pub static mut mjcb_sensor: mjfSensor;
12045}
12046extern "C" {
12047    pub static mut mjcb_time: mjfTime;
12048}
12049extern "C" {
12050    pub static mut mjcb_act_dyn: mjfAct;
12051}
12052extern "C" {
12053    pub static mut mjcb_act_gain: mjfAct;
12054}
12055extern "C" {
12056    pub static mut mjcb_act_bias: mjfAct;
12057}
12058extern "C" {
12059    pub static mut mjCOLLISIONFUNC: [[mjfCollision; 8usize]; 8usize];
12060}
12061extern "C" {
12062    pub static mut mjDISABLESTRING: [*const ::std::os::raw::c_char; 12usize];
12063}
12064extern "C" {
12065    pub static mut mjENABLESTRING: [*const ::std::os::raw::c_char; 4usize];
12066}
12067extern "C" {
12068    pub static mut mjTIMERSTRING: [*const ::std::os::raw::c_char; 13usize];
12069}
12070extern "C" {
12071    pub static mut mjLABELSTRING: [*const ::std::os::raw::c_char; 14usize];
12072}
12073extern "C" {
12074    pub static mut mjFRAMESTRING: [*const ::std::os::raw::c_char; 7usize];
12075}
12076extern "C" {
12077    pub static mut mjVISSTRING: [[*const ::std::os::raw::c_char; 3usize]; 22usize];
12078}
12079extern "C" {
12080    pub fn mj_activate(
12081        filename: *const ::std::os::raw::c_char,
12082    ) -> ::std::os::raw::c_int;
12083}
12084extern "C" {
12085    pub fn mj_deactivate();
12086}
12087extern "C" {
12088    pub fn mj_certQuestion(question: *mut mjtNum);
12089}
12090extern "C" {
12091    pub fn mj_certAnswer(question: *const mjtNum, answer: *mut mjtNum);
12092}
12093extern "C" {
12094    pub fn mj_certCheck(
12095        question: *const mjtNum,
12096        answer: *const mjtNum,
12097    ) -> ::std::os::raw::c_int;
12098}
12099extern "C" {
12100    pub fn mj_defaultVFS(vfs: *mut mjVFS);
12101}
12102extern "C" {
12103    pub fn mj_addFileVFS(
12104        vfs: *mut mjVFS,
12105        directory: *const ::std::os::raw::c_char,
12106        filename: *const ::std::os::raw::c_char,
12107    ) -> ::std::os::raw::c_int;
12108}
12109extern "C" {
12110    pub fn mj_makeEmptyFileVFS(
12111        vfs: *mut mjVFS,
12112        filename: *const ::std::os::raw::c_char,
12113        filesize: ::std::os::raw::c_int,
12114    ) -> ::std::os::raw::c_int;
12115}
12116extern "C" {
12117    pub fn mj_findFileVFS(
12118        vfs: *const mjVFS,
12119        filename: *const ::std::os::raw::c_char,
12120    ) -> ::std::os::raw::c_int;
12121}
12122extern "C" {
12123    pub fn mj_deleteFileVFS(
12124        vfs: *mut mjVFS,
12125        filename: *const ::std::os::raw::c_char,
12126    ) -> ::std::os::raw::c_int;
12127}
12128extern "C" {
12129    pub fn mj_deleteVFS(vfs: *mut mjVFS);
12130}
12131extern "C" {
12132    pub fn mj_loadXML(
12133        filename: *const ::std::os::raw::c_char,
12134        vfs: *const mjVFS,
12135        error: *mut ::std::os::raw::c_char,
12136        error_sz: ::std::os::raw::c_int,
12137    ) -> *mut mjModel;
12138}
12139extern "C" {
12140    pub fn mj_saveLastXML(
12141        filename: *const ::std::os::raw::c_char,
12142        m: *const mjModel,
12143        error: *mut ::std::os::raw::c_char,
12144        error_sz: ::std::os::raw::c_int,
12145    ) -> ::std::os::raw::c_int;
12146}
12147extern "C" {
12148    pub fn mj_freeLastXML();
12149}
12150extern "C" {
12151    pub fn mj_printSchema(
12152        filename: *const ::std::os::raw::c_char,
12153        buffer: *mut ::std::os::raw::c_char,
12154        buffer_sz: ::std::os::raw::c_int,
12155        flg_html: ::std::os::raw::c_int,
12156        flg_pad: ::std::os::raw::c_int,
12157    ) -> ::std::os::raw::c_int;
12158}
12159extern "C" {
12160    pub fn mj_step(m: *const mjModel, d: *mut mjData);
12161}
12162extern "C" {
12163    pub fn mj_step1(m: *const mjModel, d: *mut mjData);
12164}
12165extern "C" {
12166    pub fn mj_step2(m: *const mjModel, d: *mut mjData);
12167}
12168extern "C" {
12169    pub fn mj_forward(m: *const mjModel, d: *mut mjData);
12170}
12171extern "C" {
12172    pub fn mj_inverse(m: *const mjModel, d: *mut mjData);
12173}
12174extern "C" {
12175    pub fn mj_forwardSkip(
12176        m: *const mjModel,
12177        d: *mut mjData,
12178        skipstage: ::std::os::raw::c_int,
12179        skipsensor: ::std::os::raw::c_int,
12180    );
12181}
12182extern "C" {
12183    pub fn mj_inverseSkip(
12184        m: *const mjModel,
12185        d: *mut mjData,
12186        skipstage: ::std::os::raw::c_int,
12187        skipsensor: ::std::os::raw::c_int,
12188    );
12189}
12190extern "C" {
12191    pub fn mj_defaultLROpt(opt: *mut mjLROpt);
12192}
12193extern "C" {
12194    pub fn mj_defaultSolRefImp(solref: *mut mjtNum, solimp: *mut mjtNum);
12195}
12196extern "C" {
12197    pub fn mj_defaultOption(opt: *mut mjOption);
12198}
12199extern "C" {
12200    pub fn mj_defaultVisual(vis: *mut mjVisual);
12201}
12202extern "C" {
12203    pub fn mj_copyModel(dest: *mut mjModel, src: *const mjModel) -> *mut mjModel;
12204}
12205extern "C" {
12206    pub fn mj_saveModel(
12207        m: *const mjModel,
12208        filename: *const ::std::os::raw::c_char,
12209        buffer: *mut ::std::os::raw::c_void,
12210        buffer_sz: ::std::os::raw::c_int,
12211    );
12212}
12213extern "C" {
12214    pub fn mj_loadModel(
12215        filename: *const ::std::os::raw::c_char,
12216        vfs: *const mjVFS,
12217    ) -> *mut mjModel;
12218}
12219extern "C" {
12220    pub fn mj_deleteModel(m: *mut mjModel);
12221}
12222extern "C" {
12223    pub fn mj_sizeModel(m: *const mjModel) -> ::std::os::raw::c_int;
12224}
12225extern "C" {
12226    pub fn mj_makeData(m: *const mjModel) -> *mut mjData;
12227}
12228extern "C" {
12229    pub fn mj_copyData(
12230        dest: *mut mjData,
12231        m: *const mjModel,
12232        src: *const mjData,
12233    ) -> *mut mjData;
12234}
12235extern "C" {
12236    pub fn mj_resetData(m: *const mjModel, d: *mut mjData);
12237}
12238extern "C" {
12239    pub fn mj_resetDataDebug(
12240        m: *const mjModel,
12241        d: *mut mjData,
12242        debug_value: ::std::os::raw::c_uchar,
12243    );
12244}
12245extern "C" {
12246    pub fn mj_resetDataKeyframe(
12247        m: *const mjModel,
12248        d: *mut mjData,
12249        key: ::std::os::raw::c_int,
12250    );
12251}
12252extern "C" {
12253    pub fn mj_stackAlloc(d: *mut mjData, size: ::std::os::raw::c_int) -> *mut mjtNum;
12254}
12255extern "C" {
12256    pub fn mj_deleteData(d: *mut mjData);
12257}
12258extern "C" {
12259    pub fn mj_resetCallbacks();
12260}
12261extern "C" {
12262    pub fn mj_setConst(m: *mut mjModel, d: *mut mjData);
12263}
12264extern "C" {
12265    pub fn mj_setLengthRange(
12266        m: *mut mjModel,
12267        d: *mut mjData,
12268        index: ::std::os::raw::c_int,
12269        opt: *const mjLROpt,
12270        error: *mut ::std::os::raw::c_char,
12271        error_sz: ::std::os::raw::c_int,
12272    ) -> ::std::os::raw::c_int;
12273}
12274extern "C" {
12275    pub fn mj_printModel(m: *const mjModel, filename: *const ::std::os::raw::c_char);
12276}
12277extern "C" {
12278    pub fn mj_printData(
12279        m: *const mjModel,
12280        d: *mut mjData,
12281        filename: *const ::std::os::raw::c_char,
12282    );
12283}
12284extern "C" {
12285    pub fn mju_printMat(
12286        mat: *const mjtNum,
12287        nr: ::std::os::raw::c_int,
12288        nc: ::std::os::raw::c_int,
12289    );
12290}
12291extern "C" {
12292    pub fn mju_printMatSparse(
12293        mat: *const mjtNum,
12294        nr: ::std::os::raw::c_int,
12295        rownnz: *const ::std::os::raw::c_int,
12296        rowadr: *const ::std::os::raw::c_int,
12297        colind: *const ::std::os::raw::c_int,
12298    );
12299}
12300extern "C" {
12301    pub fn mj_fwdPosition(m: *const mjModel, d: *mut mjData);
12302}
12303extern "C" {
12304    pub fn mj_fwdVelocity(m: *const mjModel, d: *mut mjData);
12305}
12306extern "C" {
12307    pub fn mj_fwdActuation(m: *const mjModel, d: *mut mjData);
12308}
12309extern "C" {
12310    pub fn mj_fwdAcceleration(m: *const mjModel, d: *mut mjData);
12311}
12312extern "C" {
12313    pub fn mj_fwdConstraint(m: *const mjModel, d: *mut mjData);
12314}
12315extern "C" {
12316    pub fn mj_Euler(m: *const mjModel, d: *mut mjData);
12317}
12318extern "C" {
12319    pub fn mj_RungeKutta(m: *const mjModel, d: *mut mjData, N: ::std::os::raw::c_int);
12320}
12321extern "C" {
12322    pub fn mj_invPosition(m: *const mjModel, d: *mut mjData);
12323}
12324extern "C" {
12325    pub fn mj_invVelocity(m: *const mjModel, d: *mut mjData);
12326}
12327extern "C" {
12328    pub fn mj_invConstraint(m: *const mjModel, d: *mut mjData);
12329}
12330extern "C" {
12331    pub fn mj_compareFwdInv(m: *const mjModel, d: *mut mjData);
12332}
12333extern "C" {
12334    pub fn mj_sensorPos(m: *const mjModel, d: *mut mjData);
12335}
12336extern "C" {
12337    pub fn mj_sensorVel(m: *const mjModel, d: *mut mjData);
12338}
12339extern "C" {
12340    pub fn mj_sensorAcc(m: *const mjModel, d: *mut mjData);
12341}
12342extern "C" {
12343    pub fn mj_energyPos(m: *const mjModel, d: *mut mjData);
12344}
12345extern "C" {
12346    pub fn mj_energyVel(m: *const mjModel, d: *mut mjData);
12347}
12348extern "C" {
12349    pub fn mj_checkPos(m: *const mjModel, d: *mut mjData);
12350}
12351extern "C" {
12352    pub fn mj_checkVel(m: *const mjModel, d: *mut mjData);
12353}
12354extern "C" {
12355    pub fn mj_checkAcc(m: *const mjModel, d: *mut mjData);
12356}
12357extern "C" {
12358    pub fn mj_kinematics(m: *const mjModel, d: *mut mjData);
12359}
12360extern "C" {
12361    pub fn mj_comPos(m: *const mjModel, d: *mut mjData);
12362}
12363extern "C" {
12364    pub fn mj_camlight(m: *const mjModel, d: *mut mjData);
12365}
12366extern "C" {
12367    pub fn mj_tendon(m: *const mjModel, d: *mut mjData);
12368}
12369extern "C" {
12370    pub fn mj_transmission(m: *const mjModel, d: *mut mjData);
12371}
12372extern "C" {
12373    pub fn mj_crb(m: *const mjModel, d: *mut mjData);
12374}
12375extern "C" {
12376    pub fn mj_factorM(m: *const mjModel, d: *mut mjData);
12377}
12378extern "C" {
12379    pub fn mj_solveM(
12380        m: *const mjModel,
12381        d: *mut mjData,
12382        x: *mut mjtNum,
12383        y: *const mjtNum,
12384        n: ::std::os::raw::c_int,
12385    );
12386}
12387extern "C" {
12388    pub fn mj_solveM2(
12389        m: *const mjModel,
12390        d: *mut mjData,
12391        x: *mut mjtNum,
12392        y: *const mjtNum,
12393        n: ::std::os::raw::c_int,
12394    );
12395}
12396extern "C" {
12397    pub fn mj_comVel(m: *const mjModel, d: *mut mjData);
12398}
12399extern "C" {
12400    pub fn mj_passive(m: *const mjModel, d: *mut mjData);
12401}
12402extern "C" {
12403    pub fn mj_subtreeVel(m: *const mjModel, d: *mut mjData);
12404}
12405extern "C" {
12406    pub fn mj_rne(
12407        m: *const mjModel,
12408        d: *mut mjData,
12409        flg_acc: ::std::os::raw::c_int,
12410        result: *mut mjtNum,
12411    );
12412}
12413extern "C" {
12414    pub fn mj_rnePostConstraint(m: *const mjModel, d: *mut mjData);
12415}
12416extern "C" {
12417    pub fn mj_collision(m: *const mjModel, d: *mut mjData);
12418}
12419extern "C" {
12420    pub fn mj_makeConstraint(m: *const mjModel, d: *mut mjData);
12421}
12422extern "C" {
12423    pub fn mj_projectConstraint(m: *const mjModel, d: *mut mjData);
12424}
12425extern "C" {
12426    pub fn mj_referenceConstraint(m: *const mjModel, d: *mut mjData);
12427}
12428extern "C" {
12429    pub fn mj_constraintUpdate(
12430        m: *const mjModel,
12431        d: *mut mjData,
12432        jar: *const mjtNum,
12433        cost: *mut mjtNum,
12434        flg_coneHessian: ::std::os::raw::c_int,
12435    );
12436}
12437extern "C" {
12438    pub fn mj_addContact(
12439        m: *const mjModel,
12440        d: *mut mjData,
12441        con: *const mjContact,
12442    ) -> ::std::os::raw::c_int;
12443}
12444extern "C" {
12445    pub fn mj_isPyramidal(m: *const mjModel) -> ::std::os::raw::c_int;
12446}
12447extern "C" {
12448    pub fn mj_isSparse(m: *const mjModel) -> ::std::os::raw::c_int;
12449}
12450extern "C" {
12451    pub fn mj_isDual(m: *const mjModel) -> ::std::os::raw::c_int;
12452}
12453extern "C" {
12454    pub fn mj_mulJacVec(
12455        m: *const mjModel,
12456        d: *mut mjData,
12457        res: *mut mjtNum,
12458        vec: *const mjtNum,
12459    );
12460}
12461extern "C" {
12462    pub fn mj_mulJacTVec(
12463        m: *const mjModel,
12464        d: *mut mjData,
12465        res: *mut mjtNum,
12466        vec: *const mjtNum,
12467    );
12468}
12469extern "C" {
12470    pub fn mj_jac(
12471        m: *const mjModel,
12472        d: *const mjData,
12473        jacp: *mut mjtNum,
12474        jacr: *mut mjtNum,
12475        point: *const mjtNum,
12476        body: ::std::os::raw::c_int,
12477    );
12478}
12479extern "C" {
12480    pub fn mj_jacBody(
12481        m: *const mjModel,
12482        d: *const mjData,
12483        jacp: *mut mjtNum,
12484        jacr: *mut mjtNum,
12485        body: ::std::os::raw::c_int,
12486    );
12487}
12488extern "C" {
12489    pub fn mj_jacBodyCom(
12490        m: *const mjModel,
12491        d: *const mjData,
12492        jacp: *mut mjtNum,
12493        jacr: *mut mjtNum,
12494        body: ::std::os::raw::c_int,
12495    );
12496}
12497extern "C" {
12498    pub fn mj_jacGeom(
12499        m: *const mjModel,
12500        d: *const mjData,
12501        jacp: *mut mjtNum,
12502        jacr: *mut mjtNum,
12503        geom: ::std::os::raw::c_int,
12504    );
12505}
12506extern "C" {
12507    pub fn mj_jacSite(
12508        m: *const mjModel,
12509        d: *const mjData,
12510        jacp: *mut mjtNum,
12511        jacr: *mut mjtNum,
12512        site: ::std::os::raw::c_int,
12513    );
12514}
12515extern "C" {
12516    pub fn mj_jacPointAxis(
12517        m: *const mjModel,
12518        d: *mut mjData,
12519        jacPoint: *mut mjtNum,
12520        jacAxis: *mut mjtNum,
12521        point: *const mjtNum,
12522        axis: *const mjtNum,
12523        body: ::std::os::raw::c_int,
12524    );
12525}
12526extern "C" {
12527    pub fn mj_name2id(
12528        m: *const mjModel,
12529        type_: ::std::os::raw::c_int,
12530        name: *const ::std::os::raw::c_char,
12531    ) -> ::std::os::raw::c_int;
12532}
12533extern "C" {
12534    pub fn mj_id2name(
12535        m: *const mjModel,
12536        type_: ::std::os::raw::c_int,
12537        id: ::std::os::raw::c_int,
12538    ) -> *const ::std::os::raw::c_char;
12539}
12540extern "C" {
12541    pub fn mj_fullM(m: *const mjModel, dst: *mut mjtNum, M: *const mjtNum);
12542}
12543extern "C" {
12544    pub fn mj_mulM(
12545        m: *const mjModel,
12546        d: *const mjData,
12547        res: *mut mjtNum,
12548        vec: *const mjtNum,
12549    );
12550}
12551extern "C" {
12552    pub fn mj_mulM2(
12553        m: *const mjModel,
12554        d: *const mjData,
12555        res: *mut mjtNum,
12556        vec: *const mjtNum,
12557    );
12558}
12559extern "C" {
12560    pub fn mj_addM(
12561        m: *const mjModel,
12562        d: *mut mjData,
12563        dst: *mut mjtNum,
12564        rownnz: *mut ::std::os::raw::c_int,
12565        rowadr: *mut ::std::os::raw::c_int,
12566        colind: *mut ::std::os::raw::c_int,
12567    );
12568}
12569extern "C" {
12570    pub fn mj_applyFT(
12571        m: *const mjModel,
12572        d: *mut mjData,
12573        force: *const mjtNum,
12574        torque: *const mjtNum,
12575        point: *const mjtNum,
12576        body: ::std::os::raw::c_int,
12577        qfrc_target: *mut mjtNum,
12578    );
12579}
12580extern "C" {
12581    pub fn mj_objectVelocity(
12582        m: *const mjModel,
12583        d: *const mjData,
12584        objtype: ::std::os::raw::c_int,
12585        objid: ::std::os::raw::c_int,
12586        res: *mut mjtNum,
12587        flg_local: ::std::os::raw::c_int,
12588    );
12589}
12590extern "C" {
12591    pub fn mj_objectAcceleration(
12592        m: *const mjModel,
12593        d: *const mjData,
12594        objtype: ::std::os::raw::c_int,
12595        objid: ::std::os::raw::c_int,
12596        res: *mut mjtNum,
12597        flg_local: ::std::os::raw::c_int,
12598    );
12599}
12600extern "C" {
12601    pub fn mj_contactForce(
12602        m: *const mjModel,
12603        d: *const mjData,
12604        id: ::std::os::raw::c_int,
12605        result: *mut mjtNum,
12606    );
12607}
12608extern "C" {
12609    pub fn mj_differentiatePos(
12610        m: *const mjModel,
12611        qvel: *mut mjtNum,
12612        dt: mjtNum,
12613        qpos1: *const mjtNum,
12614        qpos2: *const mjtNum,
12615    );
12616}
12617extern "C" {
12618    pub fn mj_integratePos(
12619        m: *const mjModel,
12620        qpos: *mut mjtNum,
12621        qvel: *const mjtNum,
12622        dt: mjtNum,
12623    );
12624}
12625extern "C" {
12626    pub fn mj_normalizeQuat(m: *const mjModel, qpos: *mut mjtNum);
12627}
12628extern "C" {
12629    pub fn mj_local2Global(
12630        d: *mut mjData,
12631        xpos: *mut mjtNum,
12632        xmat: *mut mjtNum,
12633        pos: *const mjtNum,
12634        quat: *const mjtNum,
12635        body: ::std::os::raw::c_int,
12636        sameframe: mjtByte,
12637    );
12638}
12639extern "C" {
12640    pub fn mj_getTotalmass(m: *const mjModel) -> mjtNum;
12641}
12642extern "C" {
12643    pub fn mj_setTotalmass(m: *mut mjModel, newmass: mjtNum);
12644}
12645extern "C" {
12646    pub fn mj_version() -> ::std::os::raw::c_int;
12647}
12648extern "C" {
12649    pub fn mj_ray(
12650        m: *const mjModel,
12651        d: *const mjData,
12652        pnt: *const mjtNum,
12653        vec: *const mjtNum,
12654        geomgroup: *const mjtByte,
12655        flg_static: mjtByte,
12656        bodyexclude: ::std::os::raw::c_int,
12657        geomid: *mut ::std::os::raw::c_int,
12658    ) -> mjtNum;
12659}
12660extern "C" {
12661    pub fn mj_rayHfield(
12662        m: *const mjModel,
12663        d: *const mjData,
12664        geomid: ::std::os::raw::c_int,
12665        pnt: *const mjtNum,
12666        vec: *const mjtNum,
12667    ) -> mjtNum;
12668}
12669extern "C" {
12670    pub fn mj_rayMesh(
12671        m: *const mjModel,
12672        d: *const mjData,
12673        geomid: ::std::os::raw::c_int,
12674        pnt: *const mjtNum,
12675        vec: *const mjtNum,
12676    ) -> mjtNum;
12677}
12678extern "C" {
12679    pub fn mju_rayGeom(
12680        pos: *const mjtNum,
12681        mat: *const mjtNum,
12682        size: *const mjtNum,
12683        pnt: *const mjtNum,
12684        vec: *const mjtNum,
12685        geomtype: ::std::os::raw::c_int,
12686    ) -> mjtNum;
12687}
12688extern "C" {
12689    pub fn mju_raySkin(
12690        nface: ::std::os::raw::c_int,
12691        nvert: ::std::os::raw::c_int,
12692        face: *const ::std::os::raw::c_int,
12693        vert: *const f32,
12694        pnt: *const mjtNum,
12695        vec: *const mjtNum,
12696        vertid: *mut ::std::os::raw::c_int,
12697    ) -> mjtNum;
12698}
12699extern "C" {
12700    pub fn mjv_defaultCamera(cam: *mut mjvCamera);
12701}
12702extern "C" {
12703    pub fn mjv_defaultPerturb(pert: *mut mjvPerturb);
12704}
12705extern "C" {
12706    pub fn mjv_room2model(
12707        modelpos: *mut mjtNum,
12708        modelquat: *mut mjtNum,
12709        roompos: *const mjtNum,
12710        roomquat: *const mjtNum,
12711        scn: *const mjvScene,
12712    );
12713}
12714extern "C" {
12715    pub fn mjv_model2room(
12716        roompos: *mut mjtNum,
12717        roomquat: *mut mjtNum,
12718        modelpos: *const mjtNum,
12719        modelquat: *const mjtNum,
12720        scn: *const mjvScene,
12721    );
12722}
12723extern "C" {
12724    pub fn mjv_cameraInModel(
12725        headpos: *mut mjtNum,
12726        forward: *mut mjtNum,
12727        up: *mut mjtNum,
12728        scn: *const mjvScene,
12729    );
12730}
12731extern "C" {
12732    pub fn mjv_cameraInRoom(
12733        headpos: *mut mjtNum,
12734        forward: *mut mjtNum,
12735        up: *mut mjtNum,
12736        scn: *const mjvScene,
12737    );
12738}
12739extern "C" {
12740    pub fn mjv_frustumHeight(scn: *const mjvScene) -> mjtNum;
12741}
12742extern "C" {
12743    pub fn mjv_alignToCamera(
12744        res: *mut mjtNum,
12745        vec: *const mjtNum,
12746        forward: *const mjtNum,
12747    );
12748}
12749extern "C" {
12750    pub fn mjv_moveCamera(
12751        m: *const mjModel,
12752        action: ::std::os::raw::c_int,
12753        reldx: mjtNum,
12754        reldy: mjtNum,
12755        scn: *const mjvScene,
12756        cam: *mut mjvCamera,
12757    );
12758}
12759extern "C" {
12760    pub fn mjv_movePerturb(
12761        m: *const mjModel,
12762        d: *const mjData,
12763        action: ::std::os::raw::c_int,
12764        reldx: mjtNum,
12765        reldy: mjtNum,
12766        scn: *const mjvScene,
12767        pert: *mut mjvPerturb,
12768    );
12769}
12770extern "C" {
12771    pub fn mjv_moveModel(
12772        m: *const mjModel,
12773        action: ::std::os::raw::c_int,
12774        reldx: mjtNum,
12775        reldy: mjtNum,
12776        roomup: *const mjtNum,
12777        scn: *mut mjvScene,
12778    );
12779}
12780extern "C" {
12781    pub fn mjv_initPerturb(
12782        m: *const mjModel,
12783        d: *const mjData,
12784        scn: *const mjvScene,
12785        pert: *mut mjvPerturb,
12786    );
12787}
12788extern "C" {
12789    pub fn mjv_applyPerturbPose(
12790        m: *const mjModel,
12791        d: *mut mjData,
12792        pert: *const mjvPerturb,
12793        flg_paused: ::std::os::raw::c_int,
12794    );
12795}
12796extern "C" {
12797    pub fn mjv_applyPerturbForce(
12798        m: *const mjModel,
12799        d: *mut mjData,
12800        pert: *const mjvPerturb,
12801    );
12802}
12803extern "C" {
12804    pub fn mjv_averageCamera(
12805        cam1: *const mjvGLCamera,
12806        cam2: *const mjvGLCamera,
12807    ) -> mjvGLCamera;
12808}
12809extern "C" {
12810    pub fn mjv_select(
12811        m: *const mjModel,
12812        d: *const mjData,
12813        vopt: *const mjvOption,
12814        aspectratio: mjtNum,
12815        relx: mjtNum,
12816        rely: mjtNum,
12817        scn: *const mjvScene,
12818        selpnt: *mut mjtNum,
12819        geomid: *mut ::std::os::raw::c_int,
12820        skinid: *mut ::std::os::raw::c_int,
12821    ) -> ::std::os::raw::c_int;
12822}
12823extern "C" {
12824    pub fn mjv_defaultOption(opt: *mut mjvOption);
12825}
12826extern "C" {
12827    pub fn mjv_defaultFigure(fig: *mut mjvFigure);
12828}
12829extern "C" {
12830    pub fn mjv_initGeom(
12831        geom: *mut mjvGeom,
12832        type_: ::std::os::raw::c_int,
12833        size: *const mjtNum,
12834        pos: *const mjtNum,
12835        mat: *const mjtNum,
12836        rgba: *const f32,
12837    );
12838}
12839extern "C" {
12840    pub fn mjv_makeConnector(
12841        geom: *mut mjvGeom,
12842        type_: ::std::os::raw::c_int,
12843        width: mjtNum,
12844        a0: mjtNum,
12845        a1: mjtNum,
12846        a2: mjtNum,
12847        b0: mjtNum,
12848        b1: mjtNum,
12849        b2: mjtNum,
12850    );
12851}
12852extern "C" {
12853    pub fn mjv_defaultScene(scn: *mut mjvScene);
12854}
12855extern "C" {
12856    pub fn mjv_makeScene(
12857        m: *const mjModel,
12858        scn: *mut mjvScene,
12859        maxgeom: ::std::os::raw::c_int,
12860    );
12861}
12862extern "C" {
12863    pub fn mjv_freeScene(scn: *mut mjvScene);
12864}
12865extern "C" {
12866    pub fn mjv_updateScene(
12867        m: *const mjModel,
12868        d: *mut mjData,
12869        opt: *const mjvOption,
12870        pert: *const mjvPerturb,
12871        cam: *mut mjvCamera,
12872        catmask: ::std::os::raw::c_int,
12873        scn: *mut mjvScene,
12874    );
12875}
12876extern "C" {
12877    pub fn mjv_addGeoms(
12878        m: *const mjModel,
12879        d: *mut mjData,
12880        opt: *const mjvOption,
12881        pert: *const mjvPerturb,
12882        catmask: ::std::os::raw::c_int,
12883        scn: *mut mjvScene,
12884    );
12885}
12886extern "C" {
12887    pub fn mjv_makeLights(m: *const mjModel, d: *mut mjData, scn: *mut mjvScene);
12888}
12889extern "C" {
12890    pub fn mjv_updateCamera(
12891        m: *const mjModel,
12892        d: *mut mjData,
12893        cam: *mut mjvCamera,
12894        scn: *mut mjvScene,
12895    );
12896}
12897extern "C" {
12898    pub fn mjv_updateSkin(m: *const mjModel, d: *mut mjData, scn: *mut mjvScene);
12899}
12900extern "C" {
12901    pub fn mjui_themeSpacing(ind: ::std::os::raw::c_int) -> mjuiThemeSpacing;
12902}
12903extern "C" {
12904    pub fn mjui_themeColor(ind: ::std::os::raw::c_int) -> mjuiThemeColor;
12905}
12906extern "C" {
12907    pub fn mjui_add(ui: *mut mjUI, def: *const mjuiDef);
12908}
12909extern "C" {
12910    pub fn mjui_resize(ui: *mut mjUI, con: *const mjrContext);
12911}
12912extern "C" {
12913    pub fn mjui_update(
12914        section: ::std::os::raw::c_int,
12915        item: ::std::os::raw::c_int,
12916        ui: *const mjUI,
12917        state: *const mjuiState,
12918        con: *const mjrContext,
12919    );
12920}
12921extern "C" {
12922    pub fn mjui_event(
12923        ui: *mut mjUI,
12924        state: *mut mjuiState,
12925        con: *const mjrContext,
12926    ) -> *mut mjuiItem;
12927}
12928extern "C" {
12929    pub fn mjui_render(ui: *mut mjUI, state: *const mjuiState, con: *const mjrContext);
12930}
12931extern "C" {
12932    pub fn mju_error(msg: *const ::std::os::raw::c_char);
12933}
12934extern "C" {
12935    pub fn mju_error_i(msg: *const ::std::os::raw::c_char, i: ::std::os::raw::c_int);
12936}
12937extern "C" {
12938    pub fn mju_error_s(
12939        msg: *const ::std::os::raw::c_char,
12940        text: *const ::std::os::raw::c_char,
12941    );
12942}
12943extern "C" {
12944    pub fn mju_warning(msg: *const ::std::os::raw::c_char);
12945}
12946extern "C" {
12947    pub fn mju_warning_i(msg: *const ::std::os::raw::c_char, i: ::std::os::raw::c_int);
12948}
12949extern "C" {
12950    pub fn mju_warning_s(
12951        msg: *const ::std::os::raw::c_char,
12952        text: *const ::std::os::raw::c_char,
12953    );
12954}
12955extern "C" {
12956    pub fn mju_clearHandlers();
12957}
12958extern "C" {
12959    pub fn mju_malloc(size: usize) -> *mut ::std::os::raw::c_void;
12960}
12961extern "C" {
12962    pub fn mju_free(ptr: *mut ::std::os::raw::c_void);
12963}
12964extern "C" {
12965    pub fn mj_warning(
12966        d: *mut mjData,
12967        warning: ::std::os::raw::c_int,
12968        info: ::std::os::raw::c_int,
12969    );
12970}
12971extern "C" {
12972    pub fn mju_writeLog(
12973        type_: *const ::std::os::raw::c_char,
12974        msg: *const ::std::os::raw::c_char,
12975    );
12976}
12977extern "C" {
12978    pub fn mju_zero3(res: *mut mjtNum);
12979}
12980extern "C" {
12981    pub fn mju_copy3(res: *mut mjtNum, data: *const mjtNum);
12982}
12983extern "C" {
12984    pub fn mju_scl3(res: *mut mjtNum, vec: *const mjtNum, scl: mjtNum);
12985}
12986extern "C" {
12987    pub fn mju_add3(res: *mut mjtNum, vec1: *const mjtNum, vec2: *const mjtNum);
12988}
12989extern "C" {
12990    pub fn mju_sub3(res: *mut mjtNum, vec1: *const mjtNum, vec2: *const mjtNum);
12991}
12992extern "C" {
12993    pub fn mju_addTo3(res: *mut mjtNum, vec: *const mjtNum);
12994}
12995extern "C" {
12996    pub fn mju_subFrom3(res: *mut mjtNum, vec: *const mjtNum);
12997}
12998extern "C" {
12999    pub fn mju_addToScl3(res: *mut mjtNum, vec: *const mjtNum, scl: mjtNum);
13000}
13001extern "C" {
13002    pub fn mju_addScl3(
13003        res: *mut mjtNum,
13004        vec1: *const mjtNum,
13005        vec2: *const mjtNum,
13006        scl: mjtNum,
13007    );
13008}
13009extern "C" {
13010    pub fn mju_normalize3(res: *mut mjtNum) -> mjtNum;
13011}
13012extern "C" {
13013    pub fn mju_norm3(vec: *const mjtNum) -> mjtNum;
13014}
13015extern "C" {
13016    pub fn mju_dot3(vec1: *const mjtNum, vec2: *const mjtNum) -> mjtNum;
13017}
13018extern "C" {
13019    pub fn mju_dist3(pos1: *const mjtNum, pos2: *const mjtNum) -> mjtNum;
13020}
13021extern "C" {
13022    pub fn mju_rotVecMat(res: *mut mjtNum, vec: *const mjtNum, mat: *const mjtNum);
13023}
13024extern "C" {
13025    pub fn mju_rotVecMatT(res: *mut mjtNum, vec: *const mjtNum, mat: *const mjtNum);
13026}
13027extern "C" {
13028    pub fn mju_cross(res: *mut mjtNum, a: *const mjtNum, b: *const mjtNum);
13029}
13030extern "C" {
13031    pub fn mju_zero4(res: *mut mjtNum);
13032}
13033extern "C" {
13034    pub fn mju_unit4(res: *mut mjtNum);
13035}
13036extern "C" {
13037    pub fn mju_copy4(res: *mut mjtNum, data: *const mjtNum);
13038}
13039extern "C" {
13040    pub fn mju_normalize4(res: *mut mjtNum) -> mjtNum;
13041}
13042extern "C" {
13043    pub fn mju_zero(res: *mut mjtNum, n: ::std::os::raw::c_int);
13044}
13045extern "C" {
13046    pub fn mju_copy(res: *mut mjtNum, data: *const mjtNum, n: ::std::os::raw::c_int);
13047}
13048extern "C" {
13049    pub fn mju_sum(vec: *const mjtNum, n: ::std::os::raw::c_int) -> mjtNum;
13050}
13051extern "C" {
13052    pub fn mju_L1(vec: *const mjtNum, n: ::std::os::raw::c_int) -> mjtNum;
13053}
13054extern "C" {
13055    pub fn mju_scl(
13056        res: *mut mjtNum,
13057        vec: *const mjtNum,
13058        scl: mjtNum,
13059        n: ::std::os::raw::c_int,
13060    );
13061}
13062extern "C" {
13063    pub fn mju_add(
13064        res: *mut mjtNum,
13065        vec1: *const mjtNum,
13066        vec2: *const mjtNum,
13067        n: ::std::os::raw::c_int,
13068    );
13069}
13070extern "C" {
13071    pub fn mju_sub(
13072        res: *mut mjtNum,
13073        vec1: *const mjtNum,
13074        vec2: *const mjtNum,
13075        n: ::std::os::raw::c_int,
13076    );
13077}
13078extern "C" {
13079    pub fn mju_addTo(res: *mut mjtNum, vec: *const mjtNum, n: ::std::os::raw::c_int);
13080}
13081extern "C" {
13082    pub fn mju_subFrom(res: *mut mjtNum, vec: *const mjtNum, n: ::std::os::raw::c_int);
13083}
13084extern "C" {
13085    pub fn mju_addToScl(
13086        res: *mut mjtNum,
13087        vec: *const mjtNum,
13088        scl: mjtNum,
13089        n: ::std::os::raw::c_int,
13090    );
13091}
13092extern "C" {
13093    pub fn mju_addScl(
13094        res: *mut mjtNum,
13095        vec1: *const mjtNum,
13096        vec2: *const mjtNum,
13097        scl: mjtNum,
13098        n: ::std::os::raw::c_int,
13099    );
13100}
13101extern "C" {
13102    pub fn mju_normalize(res: *mut mjtNum, n: ::std::os::raw::c_int) -> mjtNum;
13103}
13104extern "C" {
13105    pub fn mju_norm(res: *const mjtNum, n: ::std::os::raw::c_int) -> mjtNum;
13106}
13107extern "C" {
13108    pub fn mju_dot(
13109        vec1: *const mjtNum,
13110        vec2: *const mjtNum,
13111        n: ::std::os::raw::c_int,
13112    ) -> mjtNum;
13113}
13114extern "C" {
13115    pub fn mju_mulMatVec(
13116        res: *mut mjtNum,
13117        mat: *const mjtNum,
13118        vec: *const mjtNum,
13119        nr: ::std::os::raw::c_int,
13120        nc: ::std::os::raw::c_int,
13121    );
13122}
13123extern "C" {
13124    pub fn mju_mulMatTVec(
13125        res: *mut mjtNum,
13126        mat: *const mjtNum,
13127        vec: *const mjtNum,
13128        nr: ::std::os::raw::c_int,
13129        nc: ::std::os::raw::c_int,
13130    );
13131}
13132extern "C" {
13133    pub fn mju_transpose(
13134        res: *mut mjtNum,
13135        mat: *const mjtNum,
13136        nr: ::std::os::raw::c_int,
13137        nc: ::std::os::raw::c_int,
13138    );
13139}
13140extern "C" {
13141    pub fn mju_mulMatMat(
13142        res: *mut mjtNum,
13143        mat1: *const mjtNum,
13144        mat2: *const mjtNum,
13145        r1: ::std::os::raw::c_int,
13146        c1: ::std::os::raw::c_int,
13147        c2: ::std::os::raw::c_int,
13148    );
13149}
13150extern "C" {
13151    pub fn mju_mulMatMatT(
13152        res: *mut mjtNum,
13153        mat1: *const mjtNum,
13154        mat2: *const mjtNum,
13155        r1: ::std::os::raw::c_int,
13156        c1: ::std::os::raw::c_int,
13157        r2: ::std::os::raw::c_int,
13158    );
13159}
13160extern "C" {
13161    pub fn mju_mulMatTMat(
13162        res: *mut mjtNum,
13163        mat1: *const mjtNum,
13164        mat2: *const mjtNum,
13165        r1: ::std::os::raw::c_int,
13166        c1: ::std::os::raw::c_int,
13167        c2: ::std::os::raw::c_int,
13168    );
13169}
13170extern "C" {
13171    pub fn mju_sqrMatTD(
13172        res: *mut mjtNum,
13173        mat: *const mjtNum,
13174        diag: *const mjtNum,
13175        nr: ::std::os::raw::c_int,
13176        nc: ::std::os::raw::c_int,
13177    );
13178}
13179extern "C" {
13180    pub fn mju_transformSpatial(
13181        res: *mut mjtNum,
13182        vec: *const mjtNum,
13183        flg_force: ::std::os::raw::c_int,
13184        newpos: *const mjtNum,
13185        oldpos: *const mjtNum,
13186        rotnew2old: *const mjtNum,
13187    );
13188}
13189extern "C" {
13190    pub fn mju_rotVecQuat(res: *mut mjtNum, vec: *const mjtNum, quat: *const mjtNum);
13191}
13192extern "C" {
13193    pub fn mju_negQuat(res: *mut mjtNum, quat: *const mjtNum);
13194}
13195extern "C" {
13196    pub fn mju_mulQuat(res: *mut mjtNum, quat1: *const mjtNum, quat2: *const mjtNum);
13197}
13198extern "C" {
13199    pub fn mju_mulQuatAxis(res: *mut mjtNum, quat: *const mjtNum, axis: *const mjtNum);
13200}
13201extern "C" {
13202    pub fn mju_axisAngle2Quat(res: *mut mjtNum, axis: *const mjtNum, angle: mjtNum);
13203}
13204extern "C" {
13205    pub fn mju_quat2Vel(res: *mut mjtNum, quat: *const mjtNum, dt: mjtNum);
13206}
13207extern "C" {
13208    pub fn mju_subQuat(res: *mut mjtNum, qa: *const mjtNum, qb: *const mjtNum);
13209}
13210extern "C" {
13211    pub fn mju_quat2Mat(res: *mut mjtNum, quat: *const mjtNum);
13212}
13213extern "C" {
13214    pub fn mju_mat2Quat(quat: *mut mjtNum, mat: *const mjtNum);
13215}
13216extern "C" {
13217    pub fn mju_derivQuat(res: *mut mjtNum, quat: *const mjtNum, vel: *const mjtNum);
13218}
13219extern "C" {
13220    pub fn mju_quatIntegrate(quat: *mut mjtNum, vel: *const mjtNum, scale: mjtNum);
13221}
13222extern "C" {
13223    pub fn mju_quatZ2Vec(quat: *mut mjtNum, vec: *const mjtNum);
13224}
13225extern "C" {
13226    pub fn mju_mulPose(
13227        posres: *mut mjtNum,
13228        quatres: *mut mjtNum,
13229        pos1: *const mjtNum,
13230        quat1: *const mjtNum,
13231        pos2: *const mjtNum,
13232        quat2: *const mjtNum,
13233    );
13234}
13235extern "C" {
13236    pub fn mju_negPose(
13237        posres: *mut mjtNum,
13238        quatres: *mut mjtNum,
13239        pos: *const mjtNum,
13240        quat: *const mjtNum,
13241    );
13242}
13243extern "C" {
13244    pub fn mju_trnVecPose(
13245        res: *mut mjtNum,
13246        pos: *const mjtNum,
13247        quat: *const mjtNum,
13248        vec: *const mjtNum,
13249    );
13250}
13251extern "C" {
13252    pub fn mju_cholFactor(
13253        mat: *mut mjtNum,
13254        n: ::std::os::raw::c_int,
13255        mindiag: mjtNum,
13256    ) -> ::std::os::raw::c_int;
13257}
13258extern "C" {
13259    pub fn mju_cholSolve(
13260        res: *mut mjtNum,
13261        mat: *const mjtNum,
13262        vec: *const mjtNum,
13263        n: ::std::os::raw::c_int,
13264    );
13265}
13266extern "C" {
13267    pub fn mju_cholUpdate(
13268        mat: *mut mjtNum,
13269        x: *mut mjtNum,
13270        n: ::std::os::raw::c_int,
13271        flg_plus: ::std::os::raw::c_int,
13272    ) -> ::std::os::raw::c_int;
13273}
13274extern "C" {
13275    pub fn mju_eig3(
13276        eigval: *mut mjtNum,
13277        eigvec: *mut mjtNum,
13278        quat: *mut mjtNum,
13279        mat: *const mjtNum,
13280    ) -> ::std::os::raw::c_int;
13281}
13282extern "C" {
13283    pub fn mju_muscleGain(
13284        len: mjtNum,
13285        vel: mjtNum,
13286        lengthrange: *const mjtNum,
13287        acc0: mjtNum,
13288        prm: *const mjtNum,
13289    ) -> mjtNum;
13290}
13291extern "C" {
13292    pub fn mju_muscleBias(
13293        len: mjtNum,
13294        lengthrange: *const mjtNum,
13295        acc0: mjtNum,
13296        prm: *const mjtNum,
13297    ) -> mjtNum;
13298}
13299extern "C" {
13300    pub fn mju_muscleDynamics(ctrl: mjtNum, act: mjtNum, prm: *const mjtNum) -> mjtNum;
13301}
13302extern "C" {
13303    pub fn mju_encodePyramid(
13304        pyramid: *mut mjtNum,
13305        force: *const mjtNum,
13306        mu: *const mjtNum,
13307        dim: ::std::os::raw::c_int,
13308    );
13309}
13310extern "C" {
13311    pub fn mju_decodePyramid(
13312        force: *mut mjtNum,
13313        pyramid: *const mjtNum,
13314        mu: *const mjtNum,
13315        dim: ::std::os::raw::c_int,
13316    );
13317}
13318extern "C" {
13319    pub fn mju_springDamper(
13320        pos0: mjtNum,
13321        vel0: mjtNum,
13322        Kp: mjtNum,
13323        Kv: mjtNum,
13324        dt: mjtNum,
13325    ) -> mjtNum;
13326}
13327extern "C" {
13328    pub fn mju_min(a: mjtNum, b: mjtNum) -> mjtNum;
13329}
13330extern "C" {
13331    pub fn mju_max(a: mjtNum, b: mjtNum) -> mjtNum;
13332}
13333extern "C" {
13334    pub fn mju_sign(x: mjtNum) -> mjtNum;
13335}
13336extern "C" {
13337    pub fn mju_round(x: mjtNum) -> ::std::os::raw::c_int;
13338}
13339extern "C" {
13340    pub fn mju_type2Str(type_: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
13341}
13342extern "C" {
13343    pub fn mju_str2Type(str_: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
13344}
13345extern "C" {
13346    pub fn mju_warningText(
13347        warning: ::std::os::raw::c_int,
13348        info: ::std::os::raw::c_int,
13349    ) -> *const ::std::os::raw::c_char;
13350}
13351extern "C" {
13352    pub fn mju_isBad(x: mjtNum) -> ::std::os::raw::c_int;
13353}
13354extern "C" {
13355    pub fn mju_isZero(
13356        vec: *mut mjtNum,
13357        n: ::std::os::raw::c_int,
13358    ) -> ::std::os::raw::c_int;
13359}
13360extern "C" {
13361    pub fn mju_standardNormal(num2: *mut mjtNum) -> mjtNum;
13362}
13363extern "C" {
13364    pub fn mju_f2n(res: *mut mjtNum, vec: *const f32, n: ::std::os::raw::c_int);
13365}
13366extern "C" {
13367    pub fn mju_n2f(res: *mut f32, vec: *const mjtNum, n: ::std::os::raw::c_int);
13368}
13369extern "C" {
13370    pub fn mju_d2n(res: *mut mjtNum, vec: *const f64, n: ::std::os::raw::c_int);
13371}
13372extern "C" {
13373    pub fn mju_n2d(res: *mut f64, vec: *const mjtNum, n: ::std::os::raw::c_int);
13374}
13375extern "C" {
13376    pub fn mju_insertionSort(list: *mut mjtNum, n: ::std::os::raw::c_int);
13377}
13378extern "C" {
13379    pub fn mju_Halton(
13380        index: ::std::os::raw::c_int,
13381        base: ::std::os::raw::c_int,
13382    ) -> mjtNum;
13383}
13384extern "C" {
13385    pub fn mju_strncpy(
13386        dst: *mut ::std::os::raw::c_char,
13387        src: *const ::std::os::raw::c_char,
13388        n: ::std::os::raw::c_int,
13389    ) -> *mut ::std::os::raw::c_char;
13390}