structs.py 444 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494
  1. # Copyright 2023 DeepMind Technologies Limited
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. # ==============================================================================
  15. """Provides information about MuJoCo API structs.
  16. DO NOT EDIT. THIS FILE IS AUTOMATICALLY GENERATED.
  17. """
  18. from typing import Mapping
  19. from .ast_nodes import AnonymousStructDecl
  20. from .ast_nodes import AnonymousUnionDecl
  21. from .ast_nodes import ArrayType
  22. from .ast_nodes import PointerType
  23. from .ast_nodes import StructDecl
  24. from .ast_nodes import StructFieldDecl
  25. from .ast_nodes import ValueType
  26. STRUCTS: Mapping[str, StructDecl] = dict([
  27. ('mjLROpt',
  28. StructDecl(
  29. name='mjLROpt',
  30. declname='struct mjLROpt_',
  31. fields=(
  32. StructFieldDecl(
  33. name='mode',
  34. type=ValueType(name='int'),
  35. doc='which actuators to process (mjtLRMode)',
  36. ),
  37. StructFieldDecl(
  38. name='useexisting',
  39. type=ValueType(name='int'),
  40. doc='use existing length range if available',
  41. ),
  42. StructFieldDecl(
  43. name='uselimit',
  44. type=ValueType(name='int'),
  45. doc='use joint and tendon limits if available',
  46. ),
  47. StructFieldDecl(
  48. name='accel',
  49. type=ValueType(name='mjtNum'),
  50. doc='target acceleration used to compute force',
  51. ),
  52. StructFieldDecl(
  53. name='maxforce',
  54. type=ValueType(name='mjtNum'),
  55. doc='maximum force; 0: no limit',
  56. ),
  57. StructFieldDecl(
  58. name='timeconst',
  59. type=ValueType(name='mjtNum'),
  60. doc='time constant for velocity reduction; min 0.01',
  61. ),
  62. StructFieldDecl(
  63. name='timestep',
  64. type=ValueType(name='mjtNum'),
  65. doc='simulation timestep; 0: use mjOption.timestep',
  66. ),
  67. StructFieldDecl(
  68. name='inttotal',
  69. type=ValueType(name='mjtNum'),
  70. doc='total simulation time interval',
  71. ),
  72. StructFieldDecl(
  73. name='interval',
  74. type=ValueType(name='mjtNum'),
  75. doc='evaluation time interval (at the end)',
  76. ),
  77. StructFieldDecl(
  78. name='tolrange',
  79. type=ValueType(name='mjtNum'),
  80. doc='convergence tolerance (relative to range)',
  81. ),
  82. ),
  83. )),
  84. ('mjVFS',
  85. StructDecl(
  86. name='mjVFS',
  87. declname='struct mjVFS_',
  88. fields=(
  89. StructFieldDecl(
  90. name='impl_',
  91. type=PointerType(
  92. inner_type=ValueType(name='void'),
  93. ),
  94. doc='internal pointer to VFS memory',
  95. ),
  96. ),
  97. )),
  98. ('mjOption',
  99. StructDecl(
  100. name='mjOption',
  101. declname='struct mjOption_',
  102. fields=(
  103. StructFieldDecl(
  104. name='timestep',
  105. type=ValueType(name='mjtNum'),
  106. doc='timestep',
  107. ),
  108. StructFieldDecl(
  109. name='apirate',
  110. type=ValueType(name='mjtNum'),
  111. doc='update rate for remote API (Hz)',
  112. ),
  113. StructFieldDecl(
  114. name='impratio',
  115. type=ValueType(name='mjtNum'),
  116. doc='ratio of friction-to-normal contact impedance',
  117. ),
  118. StructFieldDecl(
  119. name='tolerance',
  120. type=ValueType(name='mjtNum'),
  121. doc='main solver tolerance',
  122. ),
  123. StructFieldDecl(
  124. name='ls_tolerance',
  125. type=ValueType(name='mjtNum'),
  126. doc='CG/Newton linesearch tolerance',
  127. ),
  128. StructFieldDecl(
  129. name='noslip_tolerance',
  130. type=ValueType(name='mjtNum'),
  131. doc='noslip solver tolerance',
  132. ),
  133. StructFieldDecl(
  134. name='ccd_tolerance',
  135. type=ValueType(name='mjtNum'),
  136. doc='convex collision solver tolerance',
  137. ),
  138. StructFieldDecl(
  139. name='gravity',
  140. type=ArrayType(
  141. inner_type=ValueType(name='mjtNum'),
  142. extents=(3,),
  143. ),
  144. doc='gravitational acceleration',
  145. ),
  146. StructFieldDecl(
  147. name='wind',
  148. type=ArrayType(
  149. inner_type=ValueType(name='mjtNum'),
  150. extents=(3,),
  151. ),
  152. doc='wind (for lift, drag and viscosity)',
  153. ),
  154. StructFieldDecl(
  155. name='magnetic',
  156. type=ArrayType(
  157. inner_type=ValueType(name='mjtNum'),
  158. extents=(3,),
  159. ),
  160. doc='global magnetic flux',
  161. ),
  162. StructFieldDecl(
  163. name='density',
  164. type=ValueType(name='mjtNum'),
  165. doc='density of medium',
  166. ),
  167. StructFieldDecl(
  168. name='viscosity',
  169. type=ValueType(name='mjtNum'),
  170. doc='viscosity of medium',
  171. ),
  172. StructFieldDecl(
  173. name='o_margin',
  174. type=ValueType(name='mjtNum'),
  175. doc='margin',
  176. ),
  177. StructFieldDecl(
  178. name='o_solref',
  179. type=ArrayType(
  180. inner_type=ValueType(name='mjtNum'),
  181. extents=(2,),
  182. ),
  183. doc='solref',
  184. ),
  185. StructFieldDecl(
  186. name='o_solimp',
  187. type=ArrayType(
  188. inner_type=ValueType(name='mjtNum'),
  189. extents=(5,),
  190. ),
  191. doc='solimp',
  192. ),
  193. StructFieldDecl(
  194. name='o_friction',
  195. type=ArrayType(
  196. inner_type=ValueType(name='mjtNum'),
  197. extents=(5,),
  198. ),
  199. doc='friction',
  200. ),
  201. StructFieldDecl(
  202. name='integrator',
  203. type=ValueType(name='int'),
  204. doc='integration mode (mjtIntegrator)',
  205. ),
  206. StructFieldDecl(
  207. name='cone',
  208. type=ValueType(name='int'),
  209. doc='type of friction cone (mjtCone)',
  210. ),
  211. StructFieldDecl(
  212. name='jacobian',
  213. type=ValueType(name='int'),
  214. doc='type of Jacobian (mjtJacobian)',
  215. ),
  216. StructFieldDecl(
  217. name='solver',
  218. type=ValueType(name='int'),
  219. doc='solver algorithm (mjtSolver)',
  220. ),
  221. StructFieldDecl(
  222. name='iterations',
  223. type=ValueType(name='int'),
  224. doc='maximum number of main solver iterations',
  225. ),
  226. StructFieldDecl(
  227. name='ls_iterations',
  228. type=ValueType(name='int'),
  229. doc='maximum number of CG/Newton linesearch iterations',
  230. ),
  231. StructFieldDecl(
  232. name='noslip_iterations',
  233. type=ValueType(name='int'),
  234. doc='maximum number of noslip solver iterations',
  235. ),
  236. StructFieldDecl(
  237. name='ccd_iterations',
  238. type=ValueType(name='int'),
  239. doc='maximum number of convex collision solver iterations',
  240. ),
  241. StructFieldDecl(
  242. name='disableflags',
  243. type=ValueType(name='int'),
  244. doc='bit flags for disabling standard features',
  245. ),
  246. StructFieldDecl(
  247. name='enableflags',
  248. type=ValueType(name='int'),
  249. doc='bit flags for enabling optional features',
  250. ),
  251. StructFieldDecl(
  252. name='disableactuator',
  253. type=ValueType(name='int'),
  254. doc='bit flags for disabling actuators by group id',
  255. ),
  256. StructFieldDecl(
  257. name='sdf_initpoints',
  258. type=ValueType(name='int'),
  259. doc='number of starting points for gradient descent',
  260. ),
  261. StructFieldDecl(
  262. name='sdf_iterations',
  263. type=ValueType(name='int'),
  264. doc='max number of iterations for gradient descent',
  265. ),
  266. ),
  267. )),
  268. ('mjVisual',
  269. StructDecl(
  270. name='mjVisual',
  271. declname='struct mjVisual_',
  272. fields=(
  273. StructFieldDecl(
  274. name='global',
  275. type=AnonymousStructDecl(
  276. fields=(
  277. StructFieldDecl(
  278. name='orthographic',
  279. type=ValueType(name='int'),
  280. doc='is the free camera orthographic (0: no, 1: yes)', # pylint: disable=line-too-long
  281. ),
  282. StructFieldDecl(
  283. name='fovy',
  284. type=ValueType(name='float'),
  285. doc='y field-of-view of free camera (orthographic ? length : degree)', # pylint: disable=line-too-long
  286. ),
  287. StructFieldDecl(
  288. name='ipd',
  289. type=ValueType(name='float'),
  290. doc='inter-pupilary distance for free camera',
  291. ),
  292. StructFieldDecl(
  293. name='azimuth',
  294. type=ValueType(name='float'),
  295. doc='initial azimuth of free camera (degrees)',
  296. ),
  297. StructFieldDecl(
  298. name='elevation',
  299. type=ValueType(name='float'),
  300. doc='initial elevation of free camera (degrees)',
  301. ),
  302. StructFieldDecl(
  303. name='linewidth',
  304. type=ValueType(name='float'),
  305. doc='line width for wireframe and ray rendering',
  306. ),
  307. StructFieldDecl(
  308. name='glow',
  309. type=ValueType(name='float'),
  310. doc='glow coefficient for selected body',
  311. ),
  312. StructFieldDecl(
  313. name='realtime',
  314. type=ValueType(name='float'),
  315. doc='initial real-time factor (1: real time)',
  316. ),
  317. StructFieldDecl(
  318. name='offwidth',
  319. type=ValueType(name='int'),
  320. doc='width of offscreen buffer',
  321. ),
  322. StructFieldDecl(
  323. name='offheight',
  324. type=ValueType(name='int'),
  325. doc='height of offscreen buffer',
  326. ),
  327. StructFieldDecl(
  328. name='ellipsoidinertia',
  329. type=ValueType(name='int'),
  330. doc='geom for inertia visualization (0: box, 1: ellipsoid)', # pylint: disable=line-too-long
  331. ),
  332. StructFieldDecl(
  333. name='bvactive',
  334. type=ValueType(name='int'),
  335. doc='visualize active bounding volumes (0: no, 1: yes)', # pylint: disable=line-too-long
  336. ),
  337. ),
  338. ),
  339. doc='',
  340. ),
  341. StructFieldDecl(
  342. name='quality',
  343. type=AnonymousStructDecl(
  344. fields=(
  345. StructFieldDecl(
  346. name='shadowsize',
  347. type=ValueType(name='int'),
  348. doc='size of shadowmap texture',
  349. ),
  350. StructFieldDecl(
  351. name='offsamples',
  352. type=ValueType(name='int'),
  353. doc='number of multisamples for offscreen rendering', # pylint: disable=line-too-long
  354. ),
  355. StructFieldDecl(
  356. name='numslices',
  357. type=ValueType(name='int'),
  358. doc='number of slices for builtin geom drawing',
  359. ),
  360. StructFieldDecl(
  361. name='numstacks',
  362. type=ValueType(name='int'),
  363. doc='number of stacks for builtin geom drawing',
  364. ),
  365. StructFieldDecl(
  366. name='numquads',
  367. type=ValueType(name='int'),
  368. doc='number of quads for box rendering',
  369. ),
  370. ),
  371. ),
  372. doc='',
  373. ),
  374. StructFieldDecl(
  375. name='headlight',
  376. type=AnonymousStructDecl(
  377. fields=(
  378. StructFieldDecl(
  379. name='ambient',
  380. type=ArrayType(
  381. inner_type=ValueType(name='float'),
  382. extents=(3,),
  383. ),
  384. doc='ambient rgb (alpha=1)',
  385. ),
  386. StructFieldDecl(
  387. name='diffuse',
  388. type=ArrayType(
  389. inner_type=ValueType(name='float'),
  390. extents=(3,),
  391. ),
  392. doc='diffuse rgb (alpha=1)',
  393. ),
  394. StructFieldDecl(
  395. name='specular',
  396. type=ArrayType(
  397. inner_type=ValueType(name='float'),
  398. extents=(3,),
  399. ),
  400. doc='specular rgb (alpha=1)',
  401. ),
  402. StructFieldDecl(
  403. name='active',
  404. type=ValueType(name='int'),
  405. doc='is headlight active',
  406. ),
  407. ),
  408. ),
  409. doc='',
  410. ),
  411. StructFieldDecl(
  412. name='map',
  413. type=AnonymousStructDecl(
  414. fields=(
  415. StructFieldDecl(
  416. name='stiffness',
  417. type=ValueType(name='float'),
  418. doc='mouse perturbation stiffness (space->force)',
  419. ),
  420. StructFieldDecl(
  421. name='stiffnessrot',
  422. type=ValueType(name='float'),
  423. doc='mouse perturbation stiffness (space->torque)',
  424. ),
  425. StructFieldDecl(
  426. name='force',
  427. type=ValueType(name='float'),
  428. doc='from force units to space units',
  429. ),
  430. StructFieldDecl(
  431. name='torque',
  432. type=ValueType(name='float'),
  433. doc='from torque units to space units',
  434. ),
  435. StructFieldDecl(
  436. name='alpha',
  437. type=ValueType(name='float'),
  438. doc='scale geom alphas when transparency is enabled', # pylint: disable=line-too-long
  439. ),
  440. StructFieldDecl(
  441. name='fogstart',
  442. type=ValueType(name='float'),
  443. doc='OpenGL fog starts at fogstart * mjModel.stat.extent', # pylint: disable=line-too-long
  444. ),
  445. StructFieldDecl(
  446. name='fogend',
  447. type=ValueType(name='float'),
  448. doc='OpenGL fog ends at fogend * mjModel.stat.extent', # pylint: disable=line-too-long
  449. ),
  450. StructFieldDecl(
  451. name='znear',
  452. type=ValueType(name='float'),
  453. doc='near clipping plane = znear * mjModel.stat.extent', # pylint: disable=line-too-long
  454. ),
  455. StructFieldDecl(
  456. name='zfar',
  457. type=ValueType(name='float'),
  458. doc='far clipping plane = zfar * mjModel.stat.extent', # pylint: disable=line-too-long
  459. ),
  460. StructFieldDecl(
  461. name='haze',
  462. type=ValueType(name='float'),
  463. doc='haze ratio',
  464. ),
  465. StructFieldDecl(
  466. name='shadowclip',
  467. type=ValueType(name='float'),
  468. doc='directional light: shadowclip * mjModel.stat.extent', # pylint: disable=line-too-long
  469. ),
  470. StructFieldDecl(
  471. name='shadowscale',
  472. type=ValueType(name='float'),
  473. doc='spot light: shadowscale * light.cutoff',
  474. ),
  475. StructFieldDecl(
  476. name='actuatortendon',
  477. type=ValueType(name='float'),
  478. doc='scale tendon width',
  479. ),
  480. ),
  481. ),
  482. doc='',
  483. ),
  484. StructFieldDecl(
  485. name='scale',
  486. type=AnonymousStructDecl(
  487. fields=(
  488. StructFieldDecl(
  489. name='forcewidth',
  490. type=ValueType(name='float'),
  491. doc='width of force arrow',
  492. ),
  493. StructFieldDecl(
  494. name='contactwidth',
  495. type=ValueType(name='float'),
  496. doc='contact width',
  497. ),
  498. StructFieldDecl(
  499. name='contactheight',
  500. type=ValueType(name='float'),
  501. doc='contact height',
  502. ),
  503. StructFieldDecl(
  504. name='connect',
  505. type=ValueType(name='float'),
  506. doc='autoconnect capsule width',
  507. ),
  508. StructFieldDecl(
  509. name='com',
  510. type=ValueType(name='float'),
  511. doc='com radius',
  512. ),
  513. StructFieldDecl(
  514. name='camera',
  515. type=ValueType(name='float'),
  516. doc='camera object',
  517. ),
  518. StructFieldDecl(
  519. name='light',
  520. type=ValueType(name='float'),
  521. doc='light object',
  522. ),
  523. StructFieldDecl(
  524. name='selectpoint',
  525. type=ValueType(name='float'),
  526. doc='selection point',
  527. ),
  528. StructFieldDecl(
  529. name='jointlength',
  530. type=ValueType(name='float'),
  531. doc='joint length',
  532. ),
  533. StructFieldDecl(
  534. name='jointwidth',
  535. type=ValueType(name='float'),
  536. doc='joint width',
  537. ),
  538. StructFieldDecl(
  539. name='actuatorlength',
  540. type=ValueType(name='float'),
  541. doc='actuator length',
  542. ),
  543. StructFieldDecl(
  544. name='actuatorwidth',
  545. type=ValueType(name='float'),
  546. doc='actuator width',
  547. ),
  548. StructFieldDecl(
  549. name='framelength',
  550. type=ValueType(name='float'),
  551. doc='bodyframe axis length',
  552. ),
  553. StructFieldDecl(
  554. name='framewidth',
  555. type=ValueType(name='float'),
  556. doc='bodyframe axis width',
  557. ),
  558. StructFieldDecl(
  559. name='constraint',
  560. type=ValueType(name='float'),
  561. doc='constraint width',
  562. ),
  563. StructFieldDecl(
  564. name='slidercrank',
  565. type=ValueType(name='float'),
  566. doc='slidercrank width',
  567. ),
  568. StructFieldDecl(
  569. name='frustum',
  570. type=ValueType(name='float'),
  571. doc='frustum zfar plane',
  572. ),
  573. ),
  574. ),
  575. doc='',
  576. ),
  577. StructFieldDecl(
  578. name='rgba',
  579. type=AnonymousStructDecl(
  580. fields=(
  581. StructFieldDecl(
  582. name='fog',
  583. type=ArrayType(
  584. inner_type=ValueType(name='float'),
  585. extents=(4,),
  586. ),
  587. doc='fog',
  588. ),
  589. StructFieldDecl(
  590. name='haze',
  591. type=ArrayType(
  592. inner_type=ValueType(name='float'),
  593. extents=(4,),
  594. ),
  595. doc='haze',
  596. ),
  597. StructFieldDecl(
  598. name='force',
  599. type=ArrayType(
  600. inner_type=ValueType(name='float'),
  601. extents=(4,),
  602. ),
  603. doc='external force',
  604. ),
  605. StructFieldDecl(
  606. name='inertia',
  607. type=ArrayType(
  608. inner_type=ValueType(name='float'),
  609. extents=(4,),
  610. ),
  611. doc='inertia box',
  612. ),
  613. StructFieldDecl(
  614. name='joint',
  615. type=ArrayType(
  616. inner_type=ValueType(name='float'),
  617. extents=(4,),
  618. ),
  619. doc='joint',
  620. ),
  621. StructFieldDecl(
  622. name='actuator',
  623. type=ArrayType(
  624. inner_type=ValueType(name='float'),
  625. extents=(4,),
  626. ),
  627. doc='actuator, neutral',
  628. ),
  629. StructFieldDecl(
  630. name='actuatornegative',
  631. type=ArrayType(
  632. inner_type=ValueType(name='float'),
  633. extents=(4,),
  634. ),
  635. doc='actuator, negative limit',
  636. ),
  637. StructFieldDecl(
  638. name='actuatorpositive',
  639. type=ArrayType(
  640. inner_type=ValueType(name='float'),
  641. extents=(4,),
  642. ),
  643. doc='actuator, positive limit',
  644. ),
  645. StructFieldDecl(
  646. name='com',
  647. type=ArrayType(
  648. inner_type=ValueType(name='float'),
  649. extents=(4,),
  650. ),
  651. doc='center of mass',
  652. ),
  653. StructFieldDecl(
  654. name='camera',
  655. type=ArrayType(
  656. inner_type=ValueType(name='float'),
  657. extents=(4,),
  658. ),
  659. doc='camera object',
  660. ),
  661. StructFieldDecl(
  662. name='light',
  663. type=ArrayType(
  664. inner_type=ValueType(name='float'),
  665. extents=(4,),
  666. ),
  667. doc='light object',
  668. ),
  669. StructFieldDecl(
  670. name='selectpoint',
  671. type=ArrayType(
  672. inner_type=ValueType(name='float'),
  673. extents=(4,),
  674. ),
  675. doc='selection point',
  676. ),
  677. StructFieldDecl(
  678. name='connect',
  679. type=ArrayType(
  680. inner_type=ValueType(name='float'),
  681. extents=(4,),
  682. ),
  683. doc='auto connect',
  684. ),
  685. StructFieldDecl(
  686. name='contactpoint',
  687. type=ArrayType(
  688. inner_type=ValueType(name='float'),
  689. extents=(4,),
  690. ),
  691. doc='contact point',
  692. ),
  693. StructFieldDecl(
  694. name='contactforce',
  695. type=ArrayType(
  696. inner_type=ValueType(name='float'),
  697. extents=(4,),
  698. ),
  699. doc='contact force',
  700. ),
  701. StructFieldDecl(
  702. name='contactfriction',
  703. type=ArrayType(
  704. inner_type=ValueType(name='float'),
  705. extents=(4,),
  706. ),
  707. doc='contact friction force',
  708. ),
  709. StructFieldDecl(
  710. name='contacttorque',
  711. type=ArrayType(
  712. inner_type=ValueType(name='float'),
  713. extents=(4,),
  714. ),
  715. doc='contact torque',
  716. ),
  717. StructFieldDecl(
  718. name='contactgap',
  719. type=ArrayType(
  720. inner_type=ValueType(name='float'),
  721. extents=(4,),
  722. ),
  723. doc='contact point in gap',
  724. ),
  725. StructFieldDecl(
  726. name='rangefinder',
  727. type=ArrayType(
  728. inner_type=ValueType(name='float'),
  729. extents=(4,),
  730. ),
  731. doc='rangefinder ray',
  732. ),
  733. StructFieldDecl(
  734. name='constraint',
  735. type=ArrayType(
  736. inner_type=ValueType(name='float'),
  737. extents=(4,),
  738. ),
  739. doc='constraint',
  740. ),
  741. StructFieldDecl(
  742. name='slidercrank',
  743. type=ArrayType(
  744. inner_type=ValueType(name='float'),
  745. extents=(4,),
  746. ),
  747. doc='slidercrank',
  748. ),
  749. StructFieldDecl(
  750. name='crankbroken',
  751. type=ArrayType(
  752. inner_type=ValueType(name='float'),
  753. extents=(4,),
  754. ),
  755. doc='used when crank must be stretched/broken',
  756. ),
  757. StructFieldDecl(
  758. name='frustum',
  759. type=ArrayType(
  760. inner_type=ValueType(name='float'),
  761. extents=(4,),
  762. ),
  763. doc='camera frustum',
  764. ),
  765. StructFieldDecl(
  766. name='bv',
  767. type=ArrayType(
  768. inner_type=ValueType(name='float'),
  769. extents=(4,),
  770. ),
  771. doc='bounding volume',
  772. ),
  773. StructFieldDecl(
  774. name='bvactive',
  775. type=ArrayType(
  776. inner_type=ValueType(name='float'),
  777. extents=(4,),
  778. ),
  779. doc='active bounding volume',
  780. ),
  781. ),
  782. ),
  783. doc='',
  784. ),
  785. ),
  786. )),
  787. ('mjStatistic',
  788. StructDecl(
  789. name='mjStatistic',
  790. declname='struct mjStatistic_',
  791. fields=(
  792. StructFieldDecl(
  793. name='meaninertia',
  794. type=ValueType(name='mjtNum'),
  795. doc='mean diagonal inertia',
  796. ),
  797. StructFieldDecl(
  798. name='meanmass',
  799. type=ValueType(name='mjtNum'),
  800. doc='mean body mass',
  801. ),
  802. StructFieldDecl(
  803. name='meansize',
  804. type=ValueType(name='mjtNum'),
  805. doc='mean body size',
  806. ),
  807. StructFieldDecl(
  808. name='extent',
  809. type=ValueType(name='mjtNum'),
  810. doc='spatial extent',
  811. ),
  812. StructFieldDecl(
  813. name='center',
  814. type=ArrayType(
  815. inner_type=ValueType(name='mjtNum'),
  816. extents=(3,),
  817. ),
  818. doc='center of model',
  819. ),
  820. ),
  821. )),
  822. ('mjModel',
  823. StructDecl(
  824. name='mjModel',
  825. declname='struct mjModel_',
  826. fields=(
  827. StructFieldDecl(
  828. name='nq',
  829. type=ValueType(name='int'),
  830. doc='number of generalized coordinates = dim(qpos)',
  831. ),
  832. StructFieldDecl(
  833. name='nv',
  834. type=ValueType(name='int'),
  835. doc='number of degrees of freedom = dim(qvel)',
  836. ),
  837. StructFieldDecl(
  838. name='nu',
  839. type=ValueType(name='int'),
  840. doc='number of actuators/controls = dim(ctrl)',
  841. ),
  842. StructFieldDecl(
  843. name='na',
  844. type=ValueType(name='int'),
  845. doc='number of activation states = dim(act)',
  846. ),
  847. StructFieldDecl(
  848. name='nbody',
  849. type=ValueType(name='int'),
  850. doc='number of bodies',
  851. ),
  852. StructFieldDecl(
  853. name='nbvh',
  854. type=ValueType(name='int'),
  855. doc='number of total bounding volumes in all bodies',
  856. ),
  857. StructFieldDecl(
  858. name='nbvhstatic',
  859. type=ValueType(name='int'),
  860. doc='number of static bounding volumes (aabb stored in mjModel)', # pylint: disable=line-too-long
  861. ),
  862. StructFieldDecl(
  863. name='nbvhdynamic',
  864. type=ValueType(name='int'),
  865. doc='number of dynamic bounding volumes (aabb stored in mjData)', # pylint: disable=line-too-long
  866. ),
  867. StructFieldDecl(
  868. name='njnt',
  869. type=ValueType(name='int'),
  870. doc='number of joints',
  871. ),
  872. StructFieldDecl(
  873. name='ngeom',
  874. type=ValueType(name='int'),
  875. doc='number of geoms',
  876. ),
  877. StructFieldDecl(
  878. name='nsite',
  879. type=ValueType(name='int'),
  880. doc='number of sites',
  881. ),
  882. StructFieldDecl(
  883. name='ncam',
  884. type=ValueType(name='int'),
  885. doc='number of cameras',
  886. ),
  887. StructFieldDecl(
  888. name='nlight',
  889. type=ValueType(name='int'),
  890. doc='number of lights',
  891. ),
  892. StructFieldDecl(
  893. name='nflex',
  894. type=ValueType(name='int'),
  895. doc='number of flexes',
  896. ),
  897. StructFieldDecl(
  898. name='nflexvert',
  899. type=ValueType(name='int'),
  900. doc='number of vertices in all flexes',
  901. ),
  902. StructFieldDecl(
  903. name='nflexedge',
  904. type=ValueType(name='int'),
  905. doc='number of edges in all flexes',
  906. ),
  907. StructFieldDecl(
  908. name='nflexelem',
  909. type=ValueType(name='int'),
  910. doc='number of elements in all flexes',
  911. ),
  912. StructFieldDecl(
  913. name='nflexelemdata',
  914. type=ValueType(name='int'),
  915. doc='number of element vertex ids in all flexes',
  916. ),
  917. StructFieldDecl(
  918. name='nflexelemedge',
  919. type=ValueType(name='int'),
  920. doc='number of element edge ids in all flexes',
  921. ),
  922. StructFieldDecl(
  923. name='nflexshelldata',
  924. type=ValueType(name='int'),
  925. doc='number of shell fragment vertex ids in all flexes',
  926. ),
  927. StructFieldDecl(
  928. name='nflexevpair',
  929. type=ValueType(name='int'),
  930. doc='number of element-vertex pairs in all flexes',
  931. ),
  932. StructFieldDecl(
  933. name='nflextexcoord',
  934. type=ValueType(name='int'),
  935. doc='number of vertices with texture coordinates',
  936. ),
  937. StructFieldDecl(
  938. name='nmesh',
  939. type=ValueType(name='int'),
  940. doc='number of meshes',
  941. ),
  942. StructFieldDecl(
  943. name='nmeshvert',
  944. type=ValueType(name='int'),
  945. doc='number of vertices in all meshes',
  946. ),
  947. StructFieldDecl(
  948. name='nmeshnormal',
  949. type=ValueType(name='int'),
  950. doc='number of normals in all meshes',
  951. ),
  952. StructFieldDecl(
  953. name='nmeshtexcoord',
  954. type=ValueType(name='int'),
  955. doc='number of texcoords in all meshes',
  956. ),
  957. StructFieldDecl(
  958. name='nmeshface',
  959. type=ValueType(name='int'),
  960. doc='number of triangular faces in all meshes',
  961. ),
  962. StructFieldDecl(
  963. name='nmeshgraph',
  964. type=ValueType(name='int'),
  965. doc='number of ints in mesh auxiliary data',
  966. ),
  967. StructFieldDecl(
  968. name='nskin',
  969. type=ValueType(name='int'),
  970. doc='number of skins',
  971. ),
  972. StructFieldDecl(
  973. name='nskinvert',
  974. type=ValueType(name='int'),
  975. doc='number of vertices in all skins',
  976. ),
  977. StructFieldDecl(
  978. name='nskintexvert',
  979. type=ValueType(name='int'),
  980. doc='number of vertiex with texcoords in all skins',
  981. ),
  982. StructFieldDecl(
  983. name='nskinface',
  984. type=ValueType(name='int'),
  985. doc='number of triangular faces in all skins',
  986. ),
  987. StructFieldDecl(
  988. name='nskinbone',
  989. type=ValueType(name='int'),
  990. doc='number of bones in all skins',
  991. ),
  992. StructFieldDecl(
  993. name='nskinbonevert',
  994. type=ValueType(name='int'),
  995. doc='number of vertices in all skin bones',
  996. ),
  997. StructFieldDecl(
  998. name='nhfield',
  999. type=ValueType(name='int'),
  1000. doc='number of heightfields',
  1001. ),
  1002. StructFieldDecl(
  1003. name='nhfielddata',
  1004. type=ValueType(name='int'),
  1005. doc='number of data points in all heightfields',
  1006. ),
  1007. StructFieldDecl(
  1008. name='ntex',
  1009. type=ValueType(name='int'),
  1010. doc='number of textures',
  1011. ),
  1012. StructFieldDecl(
  1013. name='ntexdata',
  1014. type=ValueType(name='int'),
  1015. doc='number of bytes in texture rgb data',
  1016. ),
  1017. StructFieldDecl(
  1018. name='nmat',
  1019. type=ValueType(name='int'),
  1020. doc='number of materials',
  1021. ),
  1022. StructFieldDecl(
  1023. name='npair',
  1024. type=ValueType(name='int'),
  1025. doc='number of predefined geom pairs',
  1026. ),
  1027. StructFieldDecl(
  1028. name='nexclude',
  1029. type=ValueType(name='int'),
  1030. doc='number of excluded geom pairs',
  1031. ),
  1032. StructFieldDecl(
  1033. name='neq',
  1034. type=ValueType(name='int'),
  1035. doc='number of equality constraints',
  1036. ),
  1037. StructFieldDecl(
  1038. name='ntendon',
  1039. type=ValueType(name='int'),
  1040. doc='number of tendons',
  1041. ),
  1042. StructFieldDecl(
  1043. name='nwrap',
  1044. type=ValueType(name='int'),
  1045. doc='number of wrap objects in all tendon paths',
  1046. ),
  1047. StructFieldDecl(
  1048. name='nsensor',
  1049. type=ValueType(name='int'),
  1050. doc='number of sensors',
  1051. ),
  1052. StructFieldDecl(
  1053. name='nnumeric',
  1054. type=ValueType(name='int'),
  1055. doc='number of numeric custom fields',
  1056. ),
  1057. StructFieldDecl(
  1058. name='nnumericdata',
  1059. type=ValueType(name='int'),
  1060. doc='number of mjtNums in all numeric fields',
  1061. ),
  1062. StructFieldDecl(
  1063. name='ntext',
  1064. type=ValueType(name='int'),
  1065. doc='number of text custom fields',
  1066. ),
  1067. StructFieldDecl(
  1068. name='ntextdata',
  1069. type=ValueType(name='int'),
  1070. doc='number of mjtBytes in all text fields',
  1071. ),
  1072. StructFieldDecl(
  1073. name='ntuple',
  1074. type=ValueType(name='int'),
  1075. doc='number of tuple custom fields',
  1076. ),
  1077. StructFieldDecl(
  1078. name='ntupledata',
  1079. type=ValueType(name='int'),
  1080. doc='number of objects in all tuple fields',
  1081. ),
  1082. StructFieldDecl(
  1083. name='nkey',
  1084. type=ValueType(name='int'),
  1085. doc='number of keyframes',
  1086. ),
  1087. StructFieldDecl(
  1088. name='nmocap',
  1089. type=ValueType(name='int'),
  1090. doc='number of mocap bodies',
  1091. ),
  1092. StructFieldDecl(
  1093. name='nplugin',
  1094. type=ValueType(name='int'),
  1095. doc='number of plugin instances',
  1096. ),
  1097. StructFieldDecl(
  1098. name='npluginattr',
  1099. type=ValueType(name='int'),
  1100. doc='number of chars in all plugin config attributes',
  1101. ),
  1102. StructFieldDecl(
  1103. name='nuser_body',
  1104. type=ValueType(name='int'),
  1105. doc='number of mjtNums in body_user',
  1106. ),
  1107. StructFieldDecl(
  1108. name='nuser_jnt',
  1109. type=ValueType(name='int'),
  1110. doc='number of mjtNums in jnt_user',
  1111. ),
  1112. StructFieldDecl(
  1113. name='nuser_geom',
  1114. type=ValueType(name='int'),
  1115. doc='number of mjtNums in geom_user',
  1116. ),
  1117. StructFieldDecl(
  1118. name='nuser_site',
  1119. type=ValueType(name='int'),
  1120. doc='number of mjtNums in site_user',
  1121. ),
  1122. StructFieldDecl(
  1123. name='nuser_cam',
  1124. type=ValueType(name='int'),
  1125. doc='number of mjtNums in cam_user',
  1126. ),
  1127. StructFieldDecl(
  1128. name='nuser_tendon',
  1129. type=ValueType(name='int'),
  1130. doc='number of mjtNums in tendon_user',
  1131. ),
  1132. StructFieldDecl(
  1133. name='nuser_actuator',
  1134. type=ValueType(name='int'),
  1135. doc='number of mjtNums in actuator_user',
  1136. ),
  1137. StructFieldDecl(
  1138. name='nuser_sensor',
  1139. type=ValueType(name='int'),
  1140. doc='number of mjtNums in sensor_user',
  1141. ),
  1142. StructFieldDecl(
  1143. name='nnames',
  1144. type=ValueType(name='int'),
  1145. doc='number of chars in all names',
  1146. ),
  1147. StructFieldDecl(
  1148. name='nnames_map',
  1149. type=ValueType(name='int'),
  1150. doc='number of slots in the names hash map',
  1151. ),
  1152. StructFieldDecl(
  1153. name='npaths',
  1154. type=ValueType(name='int'),
  1155. doc='number of chars in all paths',
  1156. ),
  1157. StructFieldDecl(
  1158. name='nM',
  1159. type=ValueType(name='int'),
  1160. doc='number of non-zeros in sparse inertia matrix',
  1161. ),
  1162. StructFieldDecl(
  1163. name='nB',
  1164. type=ValueType(name='int'),
  1165. doc='number of non-zeros in sparse body-dof matrix',
  1166. ),
  1167. StructFieldDecl(
  1168. name='nC',
  1169. type=ValueType(name='int'),
  1170. doc='number of non-zeros in sparse reduced dof-dof matrix',
  1171. ),
  1172. StructFieldDecl(
  1173. name='nD',
  1174. type=ValueType(name='int'),
  1175. doc='number of non-zeros in sparse dof-dof matrix',
  1176. ),
  1177. StructFieldDecl(
  1178. name='ntree',
  1179. type=ValueType(name='int'),
  1180. doc='number of kinematic trees under world body',
  1181. ),
  1182. StructFieldDecl(
  1183. name='ngravcomp',
  1184. type=ValueType(name='int'),
  1185. doc='number of bodies with nonzero gravcomp',
  1186. ),
  1187. StructFieldDecl(
  1188. name='nemax',
  1189. type=ValueType(name='int'),
  1190. doc='number of potential equality-constraint rows',
  1191. ),
  1192. StructFieldDecl(
  1193. name='njmax',
  1194. type=ValueType(name='int'),
  1195. doc='number of available rows in constraint Jacobian',
  1196. ),
  1197. StructFieldDecl(
  1198. name='nconmax',
  1199. type=ValueType(name='int'),
  1200. doc='number of potential contacts in contact list',
  1201. ),
  1202. StructFieldDecl(
  1203. name='nuserdata',
  1204. type=ValueType(name='int'),
  1205. doc='number of mjtNums reserved for the user',
  1206. ),
  1207. StructFieldDecl(
  1208. name='nsensordata',
  1209. type=ValueType(name='int'),
  1210. doc='number of mjtNums in sensor data vector',
  1211. ),
  1212. StructFieldDecl(
  1213. name='npluginstate',
  1214. type=ValueType(name='int'),
  1215. doc='number of mjtNums in plugin state vector',
  1216. ),
  1217. StructFieldDecl(
  1218. name='narena',
  1219. type=ValueType(name='size_t'),
  1220. doc='number of bytes in the mjData arena (inclusive of stack)',
  1221. ),
  1222. StructFieldDecl(
  1223. name='nbuffer',
  1224. type=ValueType(name='size_t'),
  1225. doc='number of bytes in buffer',
  1226. ),
  1227. StructFieldDecl(
  1228. name='opt',
  1229. type=ValueType(name='mjOption'),
  1230. doc='physics options',
  1231. ),
  1232. StructFieldDecl(
  1233. name='vis',
  1234. type=ValueType(name='mjVisual'),
  1235. doc='visualization options',
  1236. ),
  1237. StructFieldDecl(
  1238. name='stat',
  1239. type=ValueType(name='mjStatistic'),
  1240. doc='model statistics',
  1241. ),
  1242. StructFieldDecl(
  1243. name='buffer',
  1244. type=PointerType(
  1245. inner_type=ValueType(name='void'),
  1246. ),
  1247. doc='main buffer; all pointers point in it (nbuffer)',
  1248. ),
  1249. StructFieldDecl(
  1250. name='qpos0',
  1251. type=PointerType(
  1252. inner_type=ValueType(name='mjtNum'),
  1253. ),
  1254. doc='qpos values at default pose',
  1255. array_extent=('nq',),
  1256. ),
  1257. StructFieldDecl(
  1258. name='qpos_spring',
  1259. type=PointerType(
  1260. inner_type=ValueType(name='mjtNum'),
  1261. ),
  1262. doc='reference pose for springs',
  1263. array_extent=('nq',),
  1264. ),
  1265. StructFieldDecl(
  1266. name='body_parentid',
  1267. type=PointerType(
  1268. inner_type=ValueType(name='int'),
  1269. ),
  1270. doc="id of body's parent",
  1271. array_extent=('nbody',),
  1272. ),
  1273. StructFieldDecl(
  1274. name='body_rootid',
  1275. type=PointerType(
  1276. inner_type=ValueType(name='int'),
  1277. ),
  1278. doc='id of root above body',
  1279. array_extent=('nbody',),
  1280. ),
  1281. StructFieldDecl(
  1282. name='body_weldid',
  1283. type=PointerType(
  1284. inner_type=ValueType(name='int'),
  1285. ),
  1286. doc='id of body that this body is welded to',
  1287. array_extent=('nbody',),
  1288. ),
  1289. StructFieldDecl(
  1290. name='body_mocapid',
  1291. type=PointerType(
  1292. inner_type=ValueType(name='int'),
  1293. ),
  1294. doc='id of mocap data; -1: none',
  1295. array_extent=('nbody',),
  1296. ),
  1297. StructFieldDecl(
  1298. name='body_jntnum',
  1299. type=PointerType(
  1300. inner_type=ValueType(name='int'),
  1301. ),
  1302. doc='number of joints for this body',
  1303. array_extent=('nbody',),
  1304. ),
  1305. StructFieldDecl(
  1306. name='body_jntadr',
  1307. type=PointerType(
  1308. inner_type=ValueType(name='int'),
  1309. ),
  1310. doc='start addr of joints; -1: no joints',
  1311. array_extent=('nbody',),
  1312. ),
  1313. StructFieldDecl(
  1314. name='body_dofnum',
  1315. type=PointerType(
  1316. inner_type=ValueType(name='int'),
  1317. ),
  1318. doc='number of motion degrees of freedom',
  1319. array_extent=('nbody',),
  1320. ),
  1321. StructFieldDecl(
  1322. name='body_dofadr',
  1323. type=PointerType(
  1324. inner_type=ValueType(name='int'),
  1325. ),
  1326. doc='start addr of dofs; -1: no dofs',
  1327. array_extent=('nbody',),
  1328. ),
  1329. StructFieldDecl(
  1330. name='body_treeid',
  1331. type=PointerType(
  1332. inner_type=ValueType(name='int'),
  1333. ),
  1334. doc="id of body's kinematic tree; -1: static",
  1335. array_extent=('nbody',),
  1336. ),
  1337. StructFieldDecl(
  1338. name='body_geomnum',
  1339. type=PointerType(
  1340. inner_type=ValueType(name='int'),
  1341. ),
  1342. doc='number of geoms',
  1343. array_extent=('nbody',),
  1344. ),
  1345. StructFieldDecl(
  1346. name='body_geomadr',
  1347. type=PointerType(
  1348. inner_type=ValueType(name='int'),
  1349. ),
  1350. doc='start addr of geoms; -1: no geoms',
  1351. array_extent=('nbody',),
  1352. ),
  1353. StructFieldDecl(
  1354. name='body_simple',
  1355. type=PointerType(
  1356. inner_type=ValueType(name='mjtByte'),
  1357. ),
  1358. doc='1: diag M; 2: diag M, sliders only',
  1359. array_extent=('nbody',),
  1360. ),
  1361. StructFieldDecl(
  1362. name='body_sameframe',
  1363. type=PointerType(
  1364. inner_type=ValueType(name='mjtByte'),
  1365. ),
  1366. doc='same frame as inertia (mjtSameframe)',
  1367. array_extent=('nbody',),
  1368. ),
  1369. StructFieldDecl(
  1370. name='body_pos',
  1371. type=PointerType(
  1372. inner_type=ValueType(name='mjtNum'),
  1373. ),
  1374. doc='position offset rel. to parent body',
  1375. array_extent=('nbody', 3),
  1376. ),
  1377. StructFieldDecl(
  1378. name='body_quat',
  1379. type=PointerType(
  1380. inner_type=ValueType(name='mjtNum'),
  1381. ),
  1382. doc='orientation offset rel. to parent body',
  1383. array_extent=('nbody', 4),
  1384. ),
  1385. StructFieldDecl(
  1386. name='body_ipos',
  1387. type=PointerType(
  1388. inner_type=ValueType(name='mjtNum'),
  1389. ),
  1390. doc='local position of center of mass',
  1391. array_extent=('nbody', 3),
  1392. ),
  1393. StructFieldDecl(
  1394. name='body_iquat',
  1395. type=PointerType(
  1396. inner_type=ValueType(name='mjtNum'),
  1397. ),
  1398. doc='local orientation of inertia ellipsoid',
  1399. array_extent=('nbody', 4),
  1400. ),
  1401. StructFieldDecl(
  1402. name='body_mass',
  1403. type=PointerType(
  1404. inner_type=ValueType(name='mjtNum'),
  1405. ),
  1406. doc='mass',
  1407. array_extent=('nbody',),
  1408. ),
  1409. StructFieldDecl(
  1410. name='body_subtreemass',
  1411. type=PointerType(
  1412. inner_type=ValueType(name='mjtNum'),
  1413. ),
  1414. doc='mass of subtree starting at this body',
  1415. array_extent=('nbody',),
  1416. ),
  1417. StructFieldDecl(
  1418. name='body_inertia',
  1419. type=PointerType(
  1420. inner_type=ValueType(name='mjtNum'),
  1421. ),
  1422. doc='diagonal inertia in ipos/iquat frame',
  1423. array_extent=('nbody', 3),
  1424. ),
  1425. StructFieldDecl(
  1426. name='body_invweight0',
  1427. type=PointerType(
  1428. inner_type=ValueType(name='mjtNum'),
  1429. ),
  1430. doc='mean inv inert in qpos0 (trn, rot)',
  1431. array_extent=('nbody', 2),
  1432. ),
  1433. StructFieldDecl(
  1434. name='body_gravcomp',
  1435. type=PointerType(
  1436. inner_type=ValueType(name='mjtNum'),
  1437. ),
  1438. doc='antigravity force, units of body weight',
  1439. array_extent=('nbody',),
  1440. ),
  1441. StructFieldDecl(
  1442. name='body_margin',
  1443. type=PointerType(
  1444. inner_type=ValueType(name='mjtNum'),
  1445. ),
  1446. doc='MAX over all geom margins',
  1447. array_extent=('nbody',),
  1448. ),
  1449. StructFieldDecl(
  1450. name='body_user',
  1451. type=PointerType(
  1452. inner_type=ValueType(name='mjtNum'),
  1453. ),
  1454. doc='user data',
  1455. array_extent=('nbody', 'nuser_body'),
  1456. ),
  1457. StructFieldDecl(
  1458. name='body_plugin',
  1459. type=PointerType(
  1460. inner_type=ValueType(name='int'),
  1461. ),
  1462. doc='plugin instance id; -1: not in use',
  1463. array_extent=('nbody',),
  1464. ),
  1465. StructFieldDecl(
  1466. name='body_contype',
  1467. type=PointerType(
  1468. inner_type=ValueType(name='int'),
  1469. ),
  1470. doc='OR over all geom contypes',
  1471. array_extent=('nbody',),
  1472. ),
  1473. StructFieldDecl(
  1474. name='body_conaffinity',
  1475. type=PointerType(
  1476. inner_type=ValueType(name='int'),
  1477. ),
  1478. doc='OR over all geom conaffinities',
  1479. array_extent=('nbody',),
  1480. ),
  1481. StructFieldDecl(
  1482. name='body_bvhadr',
  1483. type=PointerType(
  1484. inner_type=ValueType(name='int'),
  1485. ),
  1486. doc='address of bvh root',
  1487. array_extent=('nbody',),
  1488. ),
  1489. StructFieldDecl(
  1490. name='body_bvhnum',
  1491. type=PointerType(
  1492. inner_type=ValueType(name='int'),
  1493. ),
  1494. doc='number of bounding volumes',
  1495. array_extent=('nbody',),
  1496. ),
  1497. StructFieldDecl(
  1498. name='bvh_depth',
  1499. type=PointerType(
  1500. inner_type=ValueType(name='int'),
  1501. ),
  1502. doc='depth in the bounding volume hierarchy',
  1503. array_extent=('nbvh',),
  1504. ),
  1505. StructFieldDecl(
  1506. name='bvh_child',
  1507. type=PointerType(
  1508. inner_type=ValueType(name='int'),
  1509. ),
  1510. doc='left and right children in tree',
  1511. array_extent=('nbvh', 2),
  1512. ),
  1513. StructFieldDecl(
  1514. name='bvh_nodeid',
  1515. type=PointerType(
  1516. inner_type=ValueType(name='int'),
  1517. ),
  1518. doc='geom or elem id of node; -1: non-leaf',
  1519. array_extent=('nbvh',),
  1520. ),
  1521. StructFieldDecl(
  1522. name='bvh_aabb',
  1523. type=PointerType(
  1524. inner_type=ValueType(name='mjtNum'),
  1525. ),
  1526. doc='local bounding box (center, size)',
  1527. array_extent=('nbvhstatic', 6),
  1528. ),
  1529. StructFieldDecl(
  1530. name='jnt_type',
  1531. type=PointerType(
  1532. inner_type=ValueType(name='int'),
  1533. ),
  1534. doc='type of joint (mjtJoint)',
  1535. array_extent=('njnt',),
  1536. ),
  1537. StructFieldDecl(
  1538. name='jnt_qposadr',
  1539. type=PointerType(
  1540. inner_type=ValueType(name='int'),
  1541. ),
  1542. doc="start addr in 'qpos' for joint's data",
  1543. array_extent=('njnt',),
  1544. ),
  1545. StructFieldDecl(
  1546. name='jnt_dofadr',
  1547. type=PointerType(
  1548. inner_type=ValueType(name='int'),
  1549. ),
  1550. doc="start addr in 'qvel' for joint's data",
  1551. array_extent=('njnt',),
  1552. ),
  1553. StructFieldDecl(
  1554. name='jnt_bodyid',
  1555. type=PointerType(
  1556. inner_type=ValueType(name='int'),
  1557. ),
  1558. doc="id of joint's body",
  1559. array_extent=('njnt',),
  1560. ),
  1561. StructFieldDecl(
  1562. name='jnt_group',
  1563. type=PointerType(
  1564. inner_type=ValueType(name='int'),
  1565. ),
  1566. doc='group for visibility',
  1567. array_extent=('njnt',),
  1568. ),
  1569. StructFieldDecl(
  1570. name='jnt_limited',
  1571. type=PointerType(
  1572. inner_type=ValueType(name='mjtByte'),
  1573. ),
  1574. doc='does joint have limits',
  1575. array_extent=('njnt',),
  1576. ),
  1577. StructFieldDecl(
  1578. name='jnt_actfrclimited',
  1579. type=PointerType(
  1580. inner_type=ValueType(name='mjtByte'),
  1581. ),
  1582. doc='does joint have actuator force limits',
  1583. array_extent=('njnt',),
  1584. ),
  1585. StructFieldDecl(
  1586. name='jnt_actgravcomp',
  1587. type=PointerType(
  1588. inner_type=ValueType(name='mjtByte'),
  1589. ),
  1590. doc='is gravcomp force applied via actuators',
  1591. array_extent=('njnt',),
  1592. ),
  1593. StructFieldDecl(
  1594. name='jnt_solref',
  1595. type=PointerType(
  1596. inner_type=ValueType(name='mjtNum'),
  1597. ),
  1598. doc='constraint solver reference: limit',
  1599. array_extent=('njnt', 'mjNREF'),
  1600. ),
  1601. StructFieldDecl(
  1602. name='jnt_solimp',
  1603. type=PointerType(
  1604. inner_type=ValueType(name='mjtNum'),
  1605. ),
  1606. doc='constraint solver impedance: limit',
  1607. array_extent=('njnt', 'mjNIMP'),
  1608. ),
  1609. StructFieldDecl(
  1610. name='jnt_pos',
  1611. type=PointerType(
  1612. inner_type=ValueType(name='mjtNum'),
  1613. ),
  1614. doc='local anchor position',
  1615. array_extent=('njnt', 3),
  1616. ),
  1617. StructFieldDecl(
  1618. name='jnt_axis',
  1619. type=PointerType(
  1620. inner_type=ValueType(name='mjtNum'),
  1621. ),
  1622. doc='local joint axis',
  1623. array_extent=('njnt', 3),
  1624. ),
  1625. StructFieldDecl(
  1626. name='jnt_stiffness',
  1627. type=PointerType(
  1628. inner_type=ValueType(name='mjtNum'),
  1629. ),
  1630. doc='stiffness coefficient',
  1631. array_extent=('njnt',),
  1632. ),
  1633. StructFieldDecl(
  1634. name='jnt_range',
  1635. type=PointerType(
  1636. inner_type=ValueType(name='mjtNum'),
  1637. ),
  1638. doc='joint limits',
  1639. array_extent=('njnt', 2),
  1640. ),
  1641. StructFieldDecl(
  1642. name='jnt_actfrcrange',
  1643. type=PointerType(
  1644. inner_type=ValueType(name='mjtNum'),
  1645. ),
  1646. doc='range of total actuator force',
  1647. array_extent=('njnt', 2),
  1648. ),
  1649. StructFieldDecl(
  1650. name='jnt_margin',
  1651. type=PointerType(
  1652. inner_type=ValueType(name='mjtNum'),
  1653. ),
  1654. doc='min distance for limit detection',
  1655. array_extent=('njnt',),
  1656. ),
  1657. StructFieldDecl(
  1658. name='jnt_user',
  1659. type=PointerType(
  1660. inner_type=ValueType(name='mjtNum'),
  1661. ),
  1662. doc='user data',
  1663. array_extent=('njnt', 'nuser_jnt'),
  1664. ),
  1665. StructFieldDecl(
  1666. name='dof_bodyid',
  1667. type=PointerType(
  1668. inner_type=ValueType(name='int'),
  1669. ),
  1670. doc="id of dof's body",
  1671. array_extent=('nv',),
  1672. ),
  1673. StructFieldDecl(
  1674. name='dof_jntid',
  1675. type=PointerType(
  1676. inner_type=ValueType(name='int'),
  1677. ),
  1678. doc="id of dof's joint",
  1679. array_extent=('nv',),
  1680. ),
  1681. StructFieldDecl(
  1682. name='dof_parentid',
  1683. type=PointerType(
  1684. inner_type=ValueType(name='int'),
  1685. ),
  1686. doc="id of dof's parent; -1: none",
  1687. array_extent=('nv',),
  1688. ),
  1689. StructFieldDecl(
  1690. name='dof_treeid',
  1691. type=PointerType(
  1692. inner_type=ValueType(name='int'),
  1693. ),
  1694. doc="id of dof's kinematic tree",
  1695. array_extent=('nv',),
  1696. ),
  1697. StructFieldDecl(
  1698. name='dof_Madr',
  1699. type=PointerType(
  1700. inner_type=ValueType(name='int'),
  1701. ),
  1702. doc='dof address in M-diagonal',
  1703. array_extent=('nv',),
  1704. ),
  1705. StructFieldDecl(
  1706. name='dof_simplenum',
  1707. type=PointerType(
  1708. inner_type=ValueType(name='int'),
  1709. ),
  1710. doc='number of consecutive simple dofs',
  1711. array_extent=('nv',),
  1712. ),
  1713. StructFieldDecl(
  1714. name='dof_solref',
  1715. type=PointerType(
  1716. inner_type=ValueType(name='mjtNum'),
  1717. ),
  1718. doc='constraint solver reference:frictionloss (nv x mjNREF)',
  1719. ),
  1720. StructFieldDecl(
  1721. name='dof_solimp',
  1722. type=PointerType(
  1723. inner_type=ValueType(name='mjtNum'),
  1724. ),
  1725. doc='constraint solver impedance:frictionloss (nv x mjNIMP)',
  1726. ),
  1727. StructFieldDecl(
  1728. name='dof_frictionloss',
  1729. type=PointerType(
  1730. inner_type=ValueType(name='mjtNum'),
  1731. ),
  1732. doc='dof friction loss',
  1733. array_extent=('nv',),
  1734. ),
  1735. StructFieldDecl(
  1736. name='dof_armature',
  1737. type=PointerType(
  1738. inner_type=ValueType(name='mjtNum'),
  1739. ),
  1740. doc='dof armature inertia/mass',
  1741. array_extent=('nv',),
  1742. ),
  1743. StructFieldDecl(
  1744. name='dof_damping',
  1745. type=PointerType(
  1746. inner_type=ValueType(name='mjtNum'),
  1747. ),
  1748. doc='damping coefficient',
  1749. array_extent=('nv',),
  1750. ),
  1751. StructFieldDecl(
  1752. name='dof_invweight0',
  1753. type=PointerType(
  1754. inner_type=ValueType(name='mjtNum'),
  1755. ),
  1756. doc='diag. inverse inertia in qpos0',
  1757. array_extent=('nv',),
  1758. ),
  1759. StructFieldDecl(
  1760. name='dof_M0',
  1761. type=PointerType(
  1762. inner_type=ValueType(name='mjtNum'),
  1763. ),
  1764. doc='diag. inertia in qpos0',
  1765. array_extent=('nv',),
  1766. ),
  1767. StructFieldDecl(
  1768. name='geom_type',
  1769. type=PointerType(
  1770. inner_type=ValueType(name='int'),
  1771. ),
  1772. doc='geometric type (mjtGeom)',
  1773. array_extent=('ngeom',),
  1774. ),
  1775. StructFieldDecl(
  1776. name='geom_contype',
  1777. type=PointerType(
  1778. inner_type=ValueType(name='int'),
  1779. ),
  1780. doc='geom contact type',
  1781. array_extent=('ngeom',),
  1782. ),
  1783. StructFieldDecl(
  1784. name='geom_conaffinity',
  1785. type=PointerType(
  1786. inner_type=ValueType(name='int'),
  1787. ),
  1788. doc='geom contact affinity',
  1789. array_extent=('ngeom',),
  1790. ),
  1791. StructFieldDecl(
  1792. name='geom_condim',
  1793. type=PointerType(
  1794. inner_type=ValueType(name='int'),
  1795. ),
  1796. doc='contact dimensionality (1, 3, 4, 6)',
  1797. array_extent=('ngeom',),
  1798. ),
  1799. StructFieldDecl(
  1800. name='geom_bodyid',
  1801. type=PointerType(
  1802. inner_type=ValueType(name='int'),
  1803. ),
  1804. doc="id of geom's body",
  1805. array_extent=('ngeom',),
  1806. ),
  1807. StructFieldDecl(
  1808. name='geom_dataid',
  1809. type=PointerType(
  1810. inner_type=ValueType(name='int'),
  1811. ),
  1812. doc="id of geom's mesh/hfield; -1: none",
  1813. array_extent=('ngeom',),
  1814. ),
  1815. StructFieldDecl(
  1816. name='geom_matid',
  1817. type=PointerType(
  1818. inner_type=ValueType(name='int'),
  1819. ),
  1820. doc='material id for rendering; -1: none',
  1821. array_extent=('ngeom',),
  1822. ),
  1823. StructFieldDecl(
  1824. name='geom_group',
  1825. type=PointerType(
  1826. inner_type=ValueType(name='int'),
  1827. ),
  1828. doc='group for visibility',
  1829. array_extent=('ngeom',),
  1830. ),
  1831. StructFieldDecl(
  1832. name='geom_priority',
  1833. type=PointerType(
  1834. inner_type=ValueType(name='int'),
  1835. ),
  1836. doc='geom contact priority',
  1837. array_extent=('ngeom',),
  1838. ),
  1839. StructFieldDecl(
  1840. name='geom_plugin',
  1841. type=PointerType(
  1842. inner_type=ValueType(name='int'),
  1843. ),
  1844. doc='plugin instance id; -1: not in use',
  1845. array_extent=('ngeom',),
  1846. ),
  1847. StructFieldDecl(
  1848. name='geom_sameframe',
  1849. type=PointerType(
  1850. inner_type=ValueType(name='mjtByte'),
  1851. ),
  1852. doc='same frame as body (mjtSameframe)',
  1853. array_extent=('ngeom',),
  1854. ),
  1855. StructFieldDecl(
  1856. name='geom_solmix',
  1857. type=PointerType(
  1858. inner_type=ValueType(name='mjtNum'),
  1859. ),
  1860. doc='mixing coef for solref/imp in geom pair',
  1861. array_extent=('ngeom',),
  1862. ),
  1863. StructFieldDecl(
  1864. name='geom_solref',
  1865. type=PointerType(
  1866. inner_type=ValueType(name='mjtNum'),
  1867. ),
  1868. doc='constraint solver reference: contact',
  1869. array_extent=('ngeom', 'mjNREF'),
  1870. ),
  1871. StructFieldDecl(
  1872. name='geom_solimp',
  1873. type=PointerType(
  1874. inner_type=ValueType(name='mjtNum'),
  1875. ),
  1876. doc='constraint solver impedance: contact',
  1877. array_extent=('ngeom', 'mjNIMP'),
  1878. ),
  1879. StructFieldDecl(
  1880. name='geom_size',
  1881. type=PointerType(
  1882. inner_type=ValueType(name='mjtNum'),
  1883. ),
  1884. doc='geom-specific size parameters',
  1885. array_extent=('ngeom', 3),
  1886. ),
  1887. StructFieldDecl(
  1888. name='geom_aabb',
  1889. type=PointerType(
  1890. inner_type=ValueType(name='mjtNum'),
  1891. ),
  1892. doc='bounding box, (center, size)',
  1893. array_extent=('ngeom', 6),
  1894. ),
  1895. StructFieldDecl(
  1896. name='geom_rbound',
  1897. type=PointerType(
  1898. inner_type=ValueType(name='mjtNum'),
  1899. ),
  1900. doc='radius of bounding sphere',
  1901. array_extent=('ngeom',),
  1902. ),
  1903. StructFieldDecl(
  1904. name='geom_pos',
  1905. type=PointerType(
  1906. inner_type=ValueType(name='mjtNum'),
  1907. ),
  1908. doc='local position offset rel. to body',
  1909. array_extent=('ngeom', 3),
  1910. ),
  1911. StructFieldDecl(
  1912. name='geom_quat',
  1913. type=PointerType(
  1914. inner_type=ValueType(name='mjtNum'),
  1915. ),
  1916. doc='local orientation offset rel. to body',
  1917. array_extent=('ngeom', 4),
  1918. ),
  1919. StructFieldDecl(
  1920. name='geom_friction',
  1921. type=PointerType(
  1922. inner_type=ValueType(name='mjtNum'),
  1923. ),
  1924. doc='friction for (slide, spin, roll)',
  1925. array_extent=('ngeom', 3),
  1926. ),
  1927. StructFieldDecl(
  1928. name='geom_margin',
  1929. type=PointerType(
  1930. inner_type=ValueType(name='mjtNum'),
  1931. ),
  1932. doc='detect contact if dist<margin(ngeom x 1)',
  1933. ),
  1934. StructFieldDecl(
  1935. name='geom_gap',
  1936. type=PointerType(
  1937. inner_type=ValueType(name='mjtNum'),
  1938. ),
  1939. doc='include in solver if dist<margin-gap',
  1940. array_extent=('ngeom',),
  1941. ),
  1942. StructFieldDecl(
  1943. name='geom_fluid',
  1944. type=PointerType(
  1945. inner_type=ValueType(name='mjtNum'),
  1946. ),
  1947. doc='fluid interaction parameters',
  1948. array_extent=('ngeom', 'mjNFLUID'),
  1949. ),
  1950. StructFieldDecl(
  1951. name='geom_user',
  1952. type=PointerType(
  1953. inner_type=ValueType(name='mjtNum'),
  1954. ),
  1955. doc='user data',
  1956. array_extent=('ngeom', 'nuser_geom'),
  1957. ),
  1958. StructFieldDecl(
  1959. name='geom_rgba',
  1960. type=PointerType(
  1961. inner_type=ValueType(name='float'),
  1962. ),
  1963. doc='rgba when material is omitted',
  1964. array_extent=('ngeom', 4),
  1965. ),
  1966. StructFieldDecl(
  1967. name='site_type',
  1968. type=PointerType(
  1969. inner_type=ValueType(name='int'),
  1970. ),
  1971. doc='geom type for rendering (mjtGeom)',
  1972. array_extent=('nsite',),
  1973. ),
  1974. StructFieldDecl(
  1975. name='site_bodyid',
  1976. type=PointerType(
  1977. inner_type=ValueType(name='int'),
  1978. ),
  1979. doc="id of site's body",
  1980. array_extent=('nsite',),
  1981. ),
  1982. StructFieldDecl(
  1983. name='site_matid',
  1984. type=PointerType(
  1985. inner_type=ValueType(name='int'),
  1986. ),
  1987. doc='material id for rendering; -1: none',
  1988. array_extent=('nsite',),
  1989. ),
  1990. StructFieldDecl(
  1991. name='site_group',
  1992. type=PointerType(
  1993. inner_type=ValueType(name='int'),
  1994. ),
  1995. doc='group for visibility',
  1996. array_extent=('nsite',),
  1997. ),
  1998. StructFieldDecl(
  1999. name='site_sameframe',
  2000. type=PointerType(
  2001. inner_type=ValueType(name='mjtByte'),
  2002. ),
  2003. doc='same frame as body (mjtSameframe)',
  2004. array_extent=('nsite',),
  2005. ),
  2006. StructFieldDecl(
  2007. name='site_size',
  2008. type=PointerType(
  2009. inner_type=ValueType(name='mjtNum'),
  2010. ),
  2011. doc='geom size for rendering',
  2012. array_extent=('nsite', 3),
  2013. ),
  2014. StructFieldDecl(
  2015. name='site_pos',
  2016. type=PointerType(
  2017. inner_type=ValueType(name='mjtNum'),
  2018. ),
  2019. doc='local position offset rel. to body',
  2020. array_extent=('nsite', 3),
  2021. ),
  2022. StructFieldDecl(
  2023. name='site_quat',
  2024. type=PointerType(
  2025. inner_type=ValueType(name='mjtNum'),
  2026. ),
  2027. doc='local orientation offset rel. to body',
  2028. array_extent=('nsite', 4),
  2029. ),
  2030. StructFieldDecl(
  2031. name='site_user',
  2032. type=PointerType(
  2033. inner_type=ValueType(name='mjtNum'),
  2034. ),
  2035. doc='user data',
  2036. array_extent=('nsite', 'nuser_site'),
  2037. ),
  2038. StructFieldDecl(
  2039. name='site_rgba',
  2040. type=PointerType(
  2041. inner_type=ValueType(name='float'),
  2042. ),
  2043. doc='rgba when material is omitted',
  2044. array_extent=('nsite', 4),
  2045. ),
  2046. StructFieldDecl(
  2047. name='cam_mode',
  2048. type=PointerType(
  2049. inner_type=ValueType(name='int'),
  2050. ),
  2051. doc='camera tracking mode (mjtCamLight)',
  2052. array_extent=('ncam',),
  2053. ),
  2054. StructFieldDecl(
  2055. name='cam_bodyid',
  2056. type=PointerType(
  2057. inner_type=ValueType(name='int'),
  2058. ),
  2059. doc="id of camera's body",
  2060. array_extent=('ncam',),
  2061. ),
  2062. StructFieldDecl(
  2063. name='cam_targetbodyid',
  2064. type=PointerType(
  2065. inner_type=ValueType(name='int'),
  2066. ),
  2067. doc='id of targeted body; -1: none',
  2068. array_extent=('ncam',),
  2069. ),
  2070. StructFieldDecl(
  2071. name='cam_pos',
  2072. type=PointerType(
  2073. inner_type=ValueType(name='mjtNum'),
  2074. ),
  2075. doc='position rel. to body frame',
  2076. array_extent=('ncam', 3),
  2077. ),
  2078. StructFieldDecl(
  2079. name='cam_quat',
  2080. type=PointerType(
  2081. inner_type=ValueType(name='mjtNum'),
  2082. ),
  2083. doc='orientation rel. to body frame',
  2084. array_extent=('ncam', 4),
  2085. ),
  2086. StructFieldDecl(
  2087. name='cam_poscom0',
  2088. type=PointerType(
  2089. inner_type=ValueType(name='mjtNum'),
  2090. ),
  2091. doc='global position rel. to sub-com in qpos0 (ncam x 3)',
  2092. ),
  2093. StructFieldDecl(
  2094. name='cam_pos0',
  2095. type=PointerType(
  2096. inner_type=ValueType(name='mjtNum'),
  2097. ),
  2098. doc='global position rel. to body in qpos0',
  2099. array_extent=('ncam', 3),
  2100. ),
  2101. StructFieldDecl(
  2102. name='cam_mat0',
  2103. type=PointerType(
  2104. inner_type=ValueType(name='mjtNum'),
  2105. ),
  2106. doc='global orientation in qpos0',
  2107. array_extent=('ncam', 9),
  2108. ),
  2109. StructFieldDecl(
  2110. name='cam_orthographic',
  2111. type=PointerType(
  2112. inner_type=ValueType(name='int'),
  2113. ),
  2114. doc='orthographic camera; 0: no, 1: yes',
  2115. array_extent=('ncam',),
  2116. ),
  2117. StructFieldDecl(
  2118. name='cam_fovy',
  2119. type=PointerType(
  2120. inner_type=ValueType(name='mjtNum'),
  2121. ),
  2122. doc='y field-of-view (ortho ? len : deg)',
  2123. array_extent=('ncam',),
  2124. ),
  2125. StructFieldDecl(
  2126. name='cam_ipd',
  2127. type=PointerType(
  2128. inner_type=ValueType(name='mjtNum'),
  2129. ),
  2130. doc='inter-pupilary distance',
  2131. array_extent=('ncam',),
  2132. ),
  2133. StructFieldDecl(
  2134. name='cam_resolution',
  2135. type=PointerType(
  2136. inner_type=ValueType(name='int'),
  2137. ),
  2138. doc='resolution: pixels [width, height]',
  2139. array_extent=('ncam', 2),
  2140. ),
  2141. StructFieldDecl(
  2142. name='cam_sensorsize',
  2143. type=PointerType(
  2144. inner_type=ValueType(name='float'),
  2145. ),
  2146. doc='sensor size: length [width, height]',
  2147. array_extent=('ncam', 2),
  2148. ),
  2149. StructFieldDecl(
  2150. name='cam_intrinsic',
  2151. type=PointerType(
  2152. inner_type=ValueType(name='float'),
  2153. ),
  2154. doc='[focal length; principal point]',
  2155. array_extent=('ncam', 4),
  2156. ),
  2157. StructFieldDecl(
  2158. name='cam_user',
  2159. type=PointerType(
  2160. inner_type=ValueType(name='mjtNum'),
  2161. ),
  2162. doc='user data',
  2163. array_extent=('ncam', 'nuser_cam'),
  2164. ),
  2165. StructFieldDecl(
  2166. name='light_mode',
  2167. type=PointerType(
  2168. inner_type=ValueType(name='int'),
  2169. ),
  2170. doc='light tracking mode (mjtCamLight)',
  2171. array_extent=('nlight',),
  2172. ),
  2173. StructFieldDecl(
  2174. name='light_bodyid',
  2175. type=PointerType(
  2176. inner_type=ValueType(name='int'),
  2177. ),
  2178. doc="id of light's body",
  2179. array_extent=('nlight',),
  2180. ),
  2181. StructFieldDecl(
  2182. name='light_targetbodyid',
  2183. type=PointerType(
  2184. inner_type=ValueType(name='int'),
  2185. ),
  2186. doc='id of targeted body; -1: none',
  2187. array_extent=('nlight',),
  2188. ),
  2189. StructFieldDecl(
  2190. name='light_directional',
  2191. type=PointerType(
  2192. inner_type=ValueType(name='mjtByte'),
  2193. ),
  2194. doc='directional light',
  2195. array_extent=('nlight',),
  2196. ),
  2197. StructFieldDecl(
  2198. name='light_castshadow',
  2199. type=PointerType(
  2200. inner_type=ValueType(name='mjtByte'),
  2201. ),
  2202. doc='does light cast shadows',
  2203. array_extent=('nlight',),
  2204. ),
  2205. StructFieldDecl(
  2206. name='light_bulbradius',
  2207. type=PointerType(
  2208. inner_type=ValueType(name='float'),
  2209. ),
  2210. doc='light radius for soft shadows',
  2211. array_extent=('nlight',),
  2212. ),
  2213. StructFieldDecl(
  2214. name='light_active',
  2215. type=PointerType(
  2216. inner_type=ValueType(name='mjtByte'),
  2217. ),
  2218. doc='is light on',
  2219. array_extent=('nlight',),
  2220. ),
  2221. StructFieldDecl(
  2222. name='light_pos',
  2223. type=PointerType(
  2224. inner_type=ValueType(name='mjtNum'),
  2225. ),
  2226. doc='position rel. to body frame',
  2227. array_extent=('nlight', 3),
  2228. ),
  2229. StructFieldDecl(
  2230. name='light_dir',
  2231. type=PointerType(
  2232. inner_type=ValueType(name='mjtNum'),
  2233. ),
  2234. doc='direction rel. to body frame',
  2235. array_extent=('nlight', 3),
  2236. ),
  2237. StructFieldDecl(
  2238. name='light_poscom0',
  2239. type=PointerType(
  2240. inner_type=ValueType(name='mjtNum'),
  2241. ),
  2242. doc='global position rel. to sub-com in qpos0 (nlight x 3)',
  2243. ),
  2244. StructFieldDecl(
  2245. name='light_pos0',
  2246. type=PointerType(
  2247. inner_type=ValueType(name='mjtNum'),
  2248. ),
  2249. doc='global position rel. to body in qpos0',
  2250. array_extent=('nlight', 3),
  2251. ),
  2252. StructFieldDecl(
  2253. name='light_dir0',
  2254. type=PointerType(
  2255. inner_type=ValueType(name='mjtNum'),
  2256. ),
  2257. doc='global direction in qpos0',
  2258. array_extent=('nlight', 3),
  2259. ),
  2260. StructFieldDecl(
  2261. name='light_attenuation',
  2262. type=PointerType(
  2263. inner_type=ValueType(name='float'),
  2264. ),
  2265. doc='OpenGL attenuation (quadratic model)',
  2266. array_extent=('nlight', 3),
  2267. ),
  2268. StructFieldDecl(
  2269. name='light_cutoff',
  2270. type=PointerType(
  2271. inner_type=ValueType(name='float'),
  2272. ),
  2273. doc='OpenGL cutoff',
  2274. array_extent=('nlight',),
  2275. ),
  2276. StructFieldDecl(
  2277. name='light_exponent',
  2278. type=PointerType(
  2279. inner_type=ValueType(name='float'),
  2280. ),
  2281. doc='OpenGL exponent',
  2282. array_extent=('nlight',),
  2283. ),
  2284. StructFieldDecl(
  2285. name='light_ambient',
  2286. type=PointerType(
  2287. inner_type=ValueType(name='float'),
  2288. ),
  2289. doc='ambient rgb (alpha=1)',
  2290. array_extent=('nlight', 3),
  2291. ),
  2292. StructFieldDecl(
  2293. name='light_diffuse',
  2294. type=PointerType(
  2295. inner_type=ValueType(name='float'),
  2296. ),
  2297. doc='diffuse rgb (alpha=1)',
  2298. array_extent=('nlight', 3),
  2299. ),
  2300. StructFieldDecl(
  2301. name='light_specular',
  2302. type=PointerType(
  2303. inner_type=ValueType(name='float'),
  2304. ),
  2305. doc='specular rgb (alpha=1)',
  2306. array_extent=('nlight', 3),
  2307. ),
  2308. StructFieldDecl(
  2309. name='flex_contype',
  2310. type=PointerType(
  2311. inner_type=ValueType(name='int'),
  2312. ),
  2313. doc='flex contact type',
  2314. array_extent=('nflex',),
  2315. ),
  2316. StructFieldDecl(
  2317. name='flex_conaffinity',
  2318. type=PointerType(
  2319. inner_type=ValueType(name='int'),
  2320. ),
  2321. doc='flex contact affinity',
  2322. array_extent=('nflex',),
  2323. ),
  2324. StructFieldDecl(
  2325. name='flex_condim',
  2326. type=PointerType(
  2327. inner_type=ValueType(name='int'),
  2328. ),
  2329. doc='contact dimensionality (1, 3, 4, 6)',
  2330. array_extent=('nflex',),
  2331. ),
  2332. StructFieldDecl(
  2333. name='flex_priority',
  2334. type=PointerType(
  2335. inner_type=ValueType(name='int'),
  2336. ),
  2337. doc='flex contact priority',
  2338. array_extent=('nflex',),
  2339. ),
  2340. StructFieldDecl(
  2341. name='flex_solmix',
  2342. type=PointerType(
  2343. inner_type=ValueType(name='mjtNum'),
  2344. ),
  2345. doc='mix coef for solref/imp in contact pair',
  2346. array_extent=('nflex',),
  2347. ),
  2348. StructFieldDecl(
  2349. name='flex_solref',
  2350. type=PointerType(
  2351. inner_type=ValueType(name='mjtNum'),
  2352. ),
  2353. doc='constraint solver reference: contact',
  2354. array_extent=('nflex', 'mjNREF'),
  2355. ),
  2356. StructFieldDecl(
  2357. name='flex_solimp',
  2358. type=PointerType(
  2359. inner_type=ValueType(name='mjtNum'),
  2360. ),
  2361. doc='constraint solver impedance: contact',
  2362. array_extent=('nflex', 'mjNIMP'),
  2363. ),
  2364. StructFieldDecl(
  2365. name='flex_friction',
  2366. type=PointerType(
  2367. inner_type=ValueType(name='mjtNum'),
  2368. ),
  2369. doc='friction for (slide, spin, roll)',
  2370. array_extent=('nflex', 3),
  2371. ),
  2372. StructFieldDecl(
  2373. name='flex_margin',
  2374. type=PointerType(
  2375. inner_type=ValueType(name='mjtNum'),
  2376. ),
  2377. doc='detect contact if dist<margin(nflex x 1)',
  2378. ),
  2379. StructFieldDecl(
  2380. name='flex_gap',
  2381. type=PointerType(
  2382. inner_type=ValueType(name='mjtNum'),
  2383. ),
  2384. doc='include in solver if dist<margin-gap',
  2385. array_extent=('nflex',),
  2386. ),
  2387. StructFieldDecl(
  2388. name='flex_internal',
  2389. type=PointerType(
  2390. inner_type=ValueType(name='mjtByte'),
  2391. ),
  2392. doc='internal flex collision enabled',
  2393. array_extent=('nflex',),
  2394. ),
  2395. StructFieldDecl(
  2396. name='flex_selfcollide',
  2397. type=PointerType(
  2398. inner_type=ValueType(name='int'),
  2399. ),
  2400. doc='self collision mode (mjtFlexSelf)',
  2401. array_extent=('nflex',),
  2402. ),
  2403. StructFieldDecl(
  2404. name='flex_activelayers',
  2405. type=PointerType(
  2406. inner_type=ValueType(name='int'),
  2407. ),
  2408. doc='number of active element layers, 3D only (nflex x 1)',
  2409. ),
  2410. StructFieldDecl(
  2411. name='flex_dim',
  2412. type=PointerType(
  2413. inner_type=ValueType(name='int'),
  2414. ),
  2415. doc='1: lines, 2: triangles, 3: tetrahedra',
  2416. array_extent=('nflex',),
  2417. ),
  2418. StructFieldDecl(
  2419. name='flex_matid',
  2420. type=PointerType(
  2421. inner_type=ValueType(name='int'),
  2422. ),
  2423. doc='material id for rendering',
  2424. array_extent=('nflex',),
  2425. ),
  2426. StructFieldDecl(
  2427. name='flex_group',
  2428. type=PointerType(
  2429. inner_type=ValueType(name='int'),
  2430. ),
  2431. doc='group for visibility',
  2432. array_extent=('nflex',),
  2433. ),
  2434. StructFieldDecl(
  2435. name='flex_vertadr',
  2436. type=PointerType(
  2437. inner_type=ValueType(name='int'),
  2438. ),
  2439. doc='first vertex address',
  2440. array_extent=('nflex',),
  2441. ),
  2442. StructFieldDecl(
  2443. name='flex_vertnum',
  2444. type=PointerType(
  2445. inner_type=ValueType(name='int'),
  2446. ),
  2447. doc='number of vertices',
  2448. array_extent=('nflex',),
  2449. ),
  2450. StructFieldDecl(
  2451. name='flex_edgeadr',
  2452. type=PointerType(
  2453. inner_type=ValueType(name='int'),
  2454. ),
  2455. doc='first edge address',
  2456. array_extent=('nflex',),
  2457. ),
  2458. StructFieldDecl(
  2459. name='flex_edgenum',
  2460. type=PointerType(
  2461. inner_type=ValueType(name='int'),
  2462. ),
  2463. doc='number of edges',
  2464. array_extent=('nflex',),
  2465. ),
  2466. StructFieldDecl(
  2467. name='flex_elemadr',
  2468. type=PointerType(
  2469. inner_type=ValueType(name='int'),
  2470. ),
  2471. doc='first element address',
  2472. array_extent=('nflex',),
  2473. ),
  2474. StructFieldDecl(
  2475. name='flex_elemnum',
  2476. type=PointerType(
  2477. inner_type=ValueType(name='int'),
  2478. ),
  2479. doc='number of elements',
  2480. array_extent=('nflex',),
  2481. ),
  2482. StructFieldDecl(
  2483. name='flex_elemdataadr',
  2484. type=PointerType(
  2485. inner_type=ValueType(name='int'),
  2486. ),
  2487. doc='first element vertex id address',
  2488. array_extent=('nflex',),
  2489. ),
  2490. StructFieldDecl(
  2491. name='flex_elemedgeadr',
  2492. type=PointerType(
  2493. inner_type=ValueType(name='int'),
  2494. ),
  2495. doc='first element edge id address',
  2496. array_extent=('nflex',),
  2497. ),
  2498. StructFieldDecl(
  2499. name='flex_shellnum',
  2500. type=PointerType(
  2501. inner_type=ValueType(name='int'),
  2502. ),
  2503. doc='number of shells',
  2504. array_extent=('nflex',),
  2505. ),
  2506. StructFieldDecl(
  2507. name='flex_shelldataadr',
  2508. type=PointerType(
  2509. inner_type=ValueType(name='int'),
  2510. ),
  2511. doc='first shell data address',
  2512. array_extent=('nflex',),
  2513. ),
  2514. StructFieldDecl(
  2515. name='flex_evpairadr',
  2516. type=PointerType(
  2517. inner_type=ValueType(name='int'),
  2518. ),
  2519. doc='first evpair address',
  2520. array_extent=('nflex',),
  2521. ),
  2522. StructFieldDecl(
  2523. name='flex_evpairnum',
  2524. type=PointerType(
  2525. inner_type=ValueType(name='int'),
  2526. ),
  2527. doc='number of evpairs',
  2528. array_extent=('nflex',),
  2529. ),
  2530. StructFieldDecl(
  2531. name='flex_texcoordadr',
  2532. type=PointerType(
  2533. inner_type=ValueType(name='int'),
  2534. ),
  2535. doc='address in flex_texcoord; -1: none',
  2536. array_extent=('nflex',),
  2537. ),
  2538. StructFieldDecl(
  2539. name='flex_vertbodyid',
  2540. type=PointerType(
  2541. inner_type=ValueType(name='int'),
  2542. ),
  2543. doc='vertex body ids',
  2544. array_extent=('nflexvert',),
  2545. ),
  2546. StructFieldDecl(
  2547. name='flex_edge',
  2548. type=PointerType(
  2549. inner_type=ValueType(name='int'),
  2550. ),
  2551. doc='edge vertex ids (2 per edge)',
  2552. array_extent=('nflexedge', 2),
  2553. ),
  2554. StructFieldDecl(
  2555. name='flex_elem',
  2556. type=PointerType(
  2557. inner_type=ValueType(name='int'),
  2558. ),
  2559. doc='element vertex ids (dim+1 per elem)',
  2560. array_extent=('nflexelemdata',),
  2561. ),
  2562. StructFieldDecl(
  2563. name='flex_elemedge',
  2564. type=PointerType(
  2565. inner_type=ValueType(name='int'),
  2566. ),
  2567. doc='element edge ids',
  2568. array_extent=('nflexelemedge',),
  2569. ),
  2570. StructFieldDecl(
  2571. name='flex_elemlayer',
  2572. type=PointerType(
  2573. inner_type=ValueType(name='int'),
  2574. ),
  2575. doc='element distance from surface, 3D only',
  2576. array_extent=('nflexelem',),
  2577. ),
  2578. StructFieldDecl(
  2579. name='flex_shell',
  2580. type=PointerType(
  2581. inner_type=ValueType(name='int'),
  2582. ),
  2583. doc='shell fragment vertex ids (dim per frag) (nflexshelldata x 1)', # pylint: disable=line-too-long
  2584. ),
  2585. StructFieldDecl(
  2586. name='flex_evpair',
  2587. type=PointerType(
  2588. inner_type=ValueType(name='int'),
  2589. ),
  2590. doc='(element, vertex) collision pairs',
  2591. array_extent=('nflexevpair', 2),
  2592. ),
  2593. StructFieldDecl(
  2594. name='flex_vert',
  2595. type=PointerType(
  2596. inner_type=ValueType(name='mjtNum'),
  2597. ),
  2598. doc='vertex positions in local body frames',
  2599. array_extent=('nflexvert', 3),
  2600. ),
  2601. StructFieldDecl(
  2602. name='flex_xvert0',
  2603. type=PointerType(
  2604. inner_type=ValueType(name='mjtNum'),
  2605. ),
  2606. doc='Cartesian vertex positions in qpos0',
  2607. array_extent=('nflexvert', 3),
  2608. ),
  2609. StructFieldDecl(
  2610. name='flexedge_length0',
  2611. type=PointerType(
  2612. inner_type=ValueType(name='mjtNum'),
  2613. ),
  2614. doc='edge lengths in qpos0',
  2615. array_extent=('nflexedge',),
  2616. ),
  2617. StructFieldDecl(
  2618. name='flexedge_invweight0',
  2619. type=PointerType(
  2620. inner_type=ValueType(name='mjtNum'),
  2621. ),
  2622. doc='edge inv. weight in qpos0',
  2623. array_extent=('nflexedge',),
  2624. ),
  2625. StructFieldDecl(
  2626. name='flex_radius',
  2627. type=PointerType(
  2628. inner_type=ValueType(name='mjtNum'),
  2629. ),
  2630. doc='radius around primitive element',
  2631. array_extent=('nflex',),
  2632. ),
  2633. StructFieldDecl(
  2634. name='flex_stiffness',
  2635. type=PointerType(
  2636. inner_type=ValueType(name='mjtNum'),
  2637. ),
  2638. doc='finite element stiffness matrix',
  2639. array_extent=('nflexelem', 21),
  2640. ),
  2641. StructFieldDecl(
  2642. name='flex_damping',
  2643. type=PointerType(
  2644. inner_type=ValueType(name='mjtNum'),
  2645. ),
  2646. doc="Rayleigh's damping coefficient",
  2647. array_extent=('nflex',),
  2648. ),
  2649. StructFieldDecl(
  2650. name='flex_edgestiffness',
  2651. type=PointerType(
  2652. inner_type=ValueType(name='mjtNum'),
  2653. ),
  2654. doc='edge stiffness',
  2655. array_extent=('nflex',),
  2656. ),
  2657. StructFieldDecl(
  2658. name='flex_edgedamping',
  2659. type=PointerType(
  2660. inner_type=ValueType(name='mjtNum'),
  2661. ),
  2662. doc='edge damping',
  2663. array_extent=('nflex',),
  2664. ),
  2665. StructFieldDecl(
  2666. name='flex_edgeequality',
  2667. type=PointerType(
  2668. inner_type=ValueType(name='mjtByte'),
  2669. ),
  2670. doc='is edge equality constraint defined',
  2671. array_extent=('nflex',),
  2672. ),
  2673. StructFieldDecl(
  2674. name='flex_rigid',
  2675. type=PointerType(
  2676. inner_type=ValueType(name='mjtByte'),
  2677. ),
  2678. doc='are all verices in the same body',
  2679. array_extent=('nflex',),
  2680. ),
  2681. StructFieldDecl(
  2682. name='flexedge_rigid',
  2683. type=PointerType(
  2684. inner_type=ValueType(name='mjtByte'),
  2685. ),
  2686. doc='are both edge vertices in same body',
  2687. array_extent=('nflexedge',),
  2688. ),
  2689. StructFieldDecl(
  2690. name='flex_centered',
  2691. type=PointerType(
  2692. inner_type=ValueType(name='mjtByte'),
  2693. ),
  2694. doc='are all vertex coordinates (0,0,0)',
  2695. array_extent=('nflex',),
  2696. ),
  2697. StructFieldDecl(
  2698. name='flex_flatskin',
  2699. type=PointerType(
  2700. inner_type=ValueType(name='mjtByte'),
  2701. ),
  2702. doc='render flex skin with flat shading',
  2703. array_extent=('nflex',),
  2704. ),
  2705. StructFieldDecl(
  2706. name='flex_bvhadr',
  2707. type=PointerType(
  2708. inner_type=ValueType(name='int'),
  2709. ),
  2710. doc='address of bvh root; -1: no bvh',
  2711. array_extent=('nflex',),
  2712. ),
  2713. StructFieldDecl(
  2714. name='flex_bvhnum',
  2715. type=PointerType(
  2716. inner_type=ValueType(name='int'),
  2717. ),
  2718. doc='number of bounding volumes',
  2719. array_extent=('nflex',),
  2720. ),
  2721. StructFieldDecl(
  2722. name='flex_rgba',
  2723. type=PointerType(
  2724. inner_type=ValueType(name='float'),
  2725. ),
  2726. doc='rgba when material is omitted',
  2727. array_extent=('nflex', 4),
  2728. ),
  2729. StructFieldDecl(
  2730. name='flex_texcoord',
  2731. type=PointerType(
  2732. inner_type=ValueType(name='float'),
  2733. ),
  2734. doc='vertex texture coordinates',
  2735. array_extent=('nflextexcoord', 2),
  2736. ),
  2737. StructFieldDecl(
  2738. name='mesh_vertadr',
  2739. type=PointerType(
  2740. inner_type=ValueType(name='int'),
  2741. ),
  2742. doc='first vertex address',
  2743. array_extent=('nmesh',),
  2744. ),
  2745. StructFieldDecl(
  2746. name='mesh_vertnum',
  2747. type=PointerType(
  2748. inner_type=ValueType(name='int'),
  2749. ),
  2750. doc='number of vertices',
  2751. array_extent=('nmesh',),
  2752. ),
  2753. StructFieldDecl(
  2754. name='mesh_faceadr',
  2755. type=PointerType(
  2756. inner_type=ValueType(name='int'),
  2757. ),
  2758. doc='first face address',
  2759. array_extent=('nmesh',),
  2760. ),
  2761. StructFieldDecl(
  2762. name='mesh_facenum',
  2763. type=PointerType(
  2764. inner_type=ValueType(name='int'),
  2765. ),
  2766. doc='number of faces',
  2767. array_extent=('nmesh',),
  2768. ),
  2769. StructFieldDecl(
  2770. name='mesh_bvhadr',
  2771. type=PointerType(
  2772. inner_type=ValueType(name='int'),
  2773. ),
  2774. doc='address of bvh root',
  2775. array_extent=('nmesh',),
  2776. ),
  2777. StructFieldDecl(
  2778. name='mesh_bvhnum',
  2779. type=PointerType(
  2780. inner_type=ValueType(name='int'),
  2781. ),
  2782. doc='number of bvh',
  2783. array_extent=('nmesh',),
  2784. ),
  2785. StructFieldDecl(
  2786. name='mesh_normaladr',
  2787. type=PointerType(
  2788. inner_type=ValueType(name='int'),
  2789. ),
  2790. doc='first normal address',
  2791. array_extent=('nmesh',),
  2792. ),
  2793. StructFieldDecl(
  2794. name='mesh_normalnum',
  2795. type=PointerType(
  2796. inner_type=ValueType(name='int'),
  2797. ),
  2798. doc='number of normals',
  2799. array_extent=('nmesh',),
  2800. ),
  2801. StructFieldDecl(
  2802. name='mesh_texcoordadr',
  2803. type=PointerType(
  2804. inner_type=ValueType(name='int'),
  2805. ),
  2806. doc='texcoord data address; -1: no texcoord',
  2807. array_extent=('nmesh',),
  2808. ),
  2809. StructFieldDecl(
  2810. name='mesh_texcoordnum',
  2811. type=PointerType(
  2812. inner_type=ValueType(name='int'),
  2813. ),
  2814. doc='number of texcoord',
  2815. array_extent=('nmesh',),
  2816. ),
  2817. StructFieldDecl(
  2818. name='mesh_graphadr',
  2819. type=PointerType(
  2820. inner_type=ValueType(name='int'),
  2821. ),
  2822. doc='graph data address; -1: no graph',
  2823. array_extent=('nmesh',),
  2824. ),
  2825. StructFieldDecl(
  2826. name='mesh_vert',
  2827. type=PointerType(
  2828. inner_type=ValueType(name='float'),
  2829. ),
  2830. doc='vertex positions for all meshes',
  2831. array_extent=('nmeshvert', 3),
  2832. ),
  2833. StructFieldDecl(
  2834. name='mesh_normal',
  2835. type=PointerType(
  2836. inner_type=ValueType(name='float'),
  2837. ),
  2838. doc='normals for all meshes',
  2839. array_extent=('nmeshnormal', 3),
  2840. ),
  2841. StructFieldDecl(
  2842. name='mesh_texcoord',
  2843. type=PointerType(
  2844. inner_type=ValueType(name='float'),
  2845. ),
  2846. doc='vertex texcoords for all meshes',
  2847. array_extent=('nmeshtexcoord', 2),
  2848. ),
  2849. StructFieldDecl(
  2850. name='mesh_face',
  2851. type=PointerType(
  2852. inner_type=ValueType(name='int'),
  2853. ),
  2854. doc='vertex face data',
  2855. array_extent=('nmeshface', 3),
  2856. ),
  2857. StructFieldDecl(
  2858. name='mesh_facenormal',
  2859. type=PointerType(
  2860. inner_type=ValueType(name='int'),
  2861. ),
  2862. doc='normal face data',
  2863. array_extent=('nmeshface', 3),
  2864. ),
  2865. StructFieldDecl(
  2866. name='mesh_facetexcoord',
  2867. type=PointerType(
  2868. inner_type=ValueType(name='int'),
  2869. ),
  2870. doc='texture face data',
  2871. array_extent=('nmeshface', 3),
  2872. ),
  2873. StructFieldDecl(
  2874. name='mesh_graph',
  2875. type=PointerType(
  2876. inner_type=ValueType(name='int'),
  2877. ),
  2878. doc='convex graph data',
  2879. array_extent=('nmeshgraph',),
  2880. ),
  2881. StructFieldDecl(
  2882. name='mesh_scale',
  2883. type=PointerType(
  2884. inner_type=ValueType(name='mjtNum'),
  2885. ),
  2886. doc='scaling applied to asset vertices',
  2887. array_extent=('nmesh', 3),
  2888. ),
  2889. StructFieldDecl(
  2890. name='mesh_pos',
  2891. type=PointerType(
  2892. inner_type=ValueType(name='mjtNum'),
  2893. ),
  2894. doc='translation applied to asset vertices',
  2895. array_extent=('nmesh', 3),
  2896. ),
  2897. StructFieldDecl(
  2898. name='mesh_quat',
  2899. type=PointerType(
  2900. inner_type=ValueType(name='mjtNum'),
  2901. ),
  2902. doc='rotation applied to asset vertices',
  2903. array_extent=('nmesh', 4),
  2904. ),
  2905. StructFieldDecl(
  2906. name='mesh_pathadr',
  2907. type=PointerType(
  2908. inner_type=ValueType(name='int'),
  2909. ),
  2910. doc='address of asset path for mesh; -1: none (nmesh x 1)',
  2911. ),
  2912. StructFieldDecl(
  2913. name='skin_matid',
  2914. type=PointerType(
  2915. inner_type=ValueType(name='int'),
  2916. ),
  2917. doc='skin material id; -1: none',
  2918. array_extent=('nskin',),
  2919. ),
  2920. StructFieldDecl(
  2921. name='skin_group',
  2922. type=PointerType(
  2923. inner_type=ValueType(name='int'),
  2924. ),
  2925. doc='group for visibility',
  2926. array_extent=('nskin',),
  2927. ),
  2928. StructFieldDecl(
  2929. name='skin_rgba',
  2930. type=PointerType(
  2931. inner_type=ValueType(name='float'),
  2932. ),
  2933. doc='skin rgba',
  2934. array_extent=('nskin', 4),
  2935. ),
  2936. StructFieldDecl(
  2937. name='skin_inflate',
  2938. type=PointerType(
  2939. inner_type=ValueType(name='float'),
  2940. ),
  2941. doc='inflate skin in normal direction',
  2942. array_extent=('nskin',),
  2943. ),
  2944. StructFieldDecl(
  2945. name='skin_vertadr',
  2946. type=PointerType(
  2947. inner_type=ValueType(name='int'),
  2948. ),
  2949. doc='first vertex address',
  2950. array_extent=('nskin',),
  2951. ),
  2952. StructFieldDecl(
  2953. name='skin_vertnum',
  2954. type=PointerType(
  2955. inner_type=ValueType(name='int'),
  2956. ),
  2957. doc='number of vertices',
  2958. array_extent=('nskin',),
  2959. ),
  2960. StructFieldDecl(
  2961. name='skin_texcoordadr',
  2962. type=PointerType(
  2963. inner_type=ValueType(name='int'),
  2964. ),
  2965. doc='texcoord data address; -1: no texcoord',
  2966. array_extent=('nskin',),
  2967. ),
  2968. StructFieldDecl(
  2969. name='skin_faceadr',
  2970. type=PointerType(
  2971. inner_type=ValueType(name='int'),
  2972. ),
  2973. doc='first face address',
  2974. array_extent=('nskin',),
  2975. ),
  2976. StructFieldDecl(
  2977. name='skin_facenum',
  2978. type=PointerType(
  2979. inner_type=ValueType(name='int'),
  2980. ),
  2981. doc='number of faces',
  2982. array_extent=('nskin',),
  2983. ),
  2984. StructFieldDecl(
  2985. name='skin_boneadr',
  2986. type=PointerType(
  2987. inner_type=ValueType(name='int'),
  2988. ),
  2989. doc='first bone in skin',
  2990. array_extent=('nskin',),
  2991. ),
  2992. StructFieldDecl(
  2993. name='skin_bonenum',
  2994. type=PointerType(
  2995. inner_type=ValueType(name='int'),
  2996. ),
  2997. doc='number of bones in skin',
  2998. array_extent=('nskin',),
  2999. ),
  3000. StructFieldDecl(
  3001. name='skin_vert',
  3002. type=PointerType(
  3003. inner_type=ValueType(name='float'),
  3004. ),
  3005. doc='vertex positions for all skin meshes',
  3006. array_extent=('nskinvert', 3),
  3007. ),
  3008. StructFieldDecl(
  3009. name='skin_texcoord',
  3010. type=PointerType(
  3011. inner_type=ValueType(name='float'),
  3012. ),
  3013. doc='vertex texcoords for all skin meshes',
  3014. array_extent=('nskintexvert', 2),
  3015. ),
  3016. StructFieldDecl(
  3017. name='skin_face',
  3018. type=PointerType(
  3019. inner_type=ValueType(name='int'),
  3020. ),
  3021. doc='triangle faces for all skin meshes',
  3022. array_extent=('nskinface', 3),
  3023. ),
  3024. StructFieldDecl(
  3025. name='skin_bonevertadr',
  3026. type=PointerType(
  3027. inner_type=ValueType(name='int'),
  3028. ),
  3029. doc='first vertex in each bone',
  3030. array_extent=('nskinbone',),
  3031. ),
  3032. StructFieldDecl(
  3033. name='skin_bonevertnum',
  3034. type=PointerType(
  3035. inner_type=ValueType(name='int'),
  3036. ),
  3037. doc='number of vertices in each bone',
  3038. array_extent=('nskinbone',),
  3039. ),
  3040. StructFieldDecl(
  3041. name='skin_bonebindpos',
  3042. type=PointerType(
  3043. inner_type=ValueType(name='float'),
  3044. ),
  3045. doc='bind pos of each bone',
  3046. array_extent=('nskinbone', 3),
  3047. ),
  3048. StructFieldDecl(
  3049. name='skin_bonebindquat',
  3050. type=PointerType(
  3051. inner_type=ValueType(name='float'),
  3052. ),
  3053. doc='bind quat of each bone',
  3054. array_extent=('nskinbone', 4),
  3055. ),
  3056. StructFieldDecl(
  3057. name='skin_bonebodyid',
  3058. type=PointerType(
  3059. inner_type=ValueType(name='int'),
  3060. ),
  3061. doc='body id of each bone',
  3062. array_extent=('nskinbone',),
  3063. ),
  3064. StructFieldDecl(
  3065. name='skin_bonevertid',
  3066. type=PointerType(
  3067. inner_type=ValueType(name='int'),
  3068. ),
  3069. doc='mesh ids of vertices in each bone',
  3070. array_extent=('nskinbonevert',),
  3071. ),
  3072. StructFieldDecl(
  3073. name='skin_bonevertweight',
  3074. type=PointerType(
  3075. inner_type=ValueType(name='float'),
  3076. ),
  3077. doc='weights of vertices in each bone',
  3078. array_extent=('nskinbonevert',),
  3079. ),
  3080. StructFieldDecl(
  3081. name='skin_pathadr',
  3082. type=PointerType(
  3083. inner_type=ValueType(name='int'),
  3084. ),
  3085. doc='address of asset path for skin; -1: none (nskin x 1)',
  3086. ),
  3087. StructFieldDecl(
  3088. name='hfield_size',
  3089. type=PointerType(
  3090. inner_type=ValueType(name='mjtNum'),
  3091. ),
  3092. doc='(x, y, z_top, z_bottom)',
  3093. array_extent=('nhfield', 4),
  3094. ),
  3095. StructFieldDecl(
  3096. name='hfield_nrow',
  3097. type=PointerType(
  3098. inner_type=ValueType(name='int'),
  3099. ),
  3100. doc='number of rows in grid',
  3101. array_extent=('nhfield',),
  3102. ),
  3103. StructFieldDecl(
  3104. name='hfield_ncol',
  3105. type=PointerType(
  3106. inner_type=ValueType(name='int'),
  3107. ),
  3108. doc='number of columns in grid',
  3109. array_extent=('nhfield',),
  3110. ),
  3111. StructFieldDecl(
  3112. name='hfield_adr',
  3113. type=PointerType(
  3114. inner_type=ValueType(name='int'),
  3115. ),
  3116. doc='address in hfield_data',
  3117. array_extent=('nhfield',),
  3118. ),
  3119. StructFieldDecl(
  3120. name='hfield_data',
  3121. type=PointerType(
  3122. inner_type=ValueType(name='float'),
  3123. ),
  3124. doc='elevation data',
  3125. array_extent=('nhfielddata',),
  3126. ),
  3127. StructFieldDecl(
  3128. name='hfield_pathadr',
  3129. type=PointerType(
  3130. inner_type=ValueType(name='int'),
  3131. ),
  3132. doc='address of hfield asset path; -1: none',
  3133. array_extent=('nhfield',),
  3134. ),
  3135. StructFieldDecl(
  3136. name='tex_type',
  3137. type=PointerType(
  3138. inner_type=ValueType(name='int'),
  3139. ),
  3140. doc='texture type (mjtTexture)',
  3141. array_extent=('ntex',),
  3142. ),
  3143. StructFieldDecl(
  3144. name='tex_height',
  3145. type=PointerType(
  3146. inner_type=ValueType(name='int'),
  3147. ),
  3148. doc='number of rows in texture image',
  3149. array_extent=('ntex',),
  3150. ),
  3151. StructFieldDecl(
  3152. name='tex_width',
  3153. type=PointerType(
  3154. inner_type=ValueType(name='int'),
  3155. ),
  3156. doc='number of columns in texture image',
  3157. array_extent=('ntex',),
  3158. ),
  3159. StructFieldDecl(
  3160. name='tex_nchannel',
  3161. type=PointerType(
  3162. inner_type=ValueType(name='int'),
  3163. ),
  3164. doc='number of channels in texture image',
  3165. array_extent=('ntex',),
  3166. ),
  3167. StructFieldDecl(
  3168. name='tex_adr',
  3169. type=PointerType(
  3170. inner_type=ValueType(name='int'),
  3171. ),
  3172. doc='start address in tex_data',
  3173. array_extent=('ntex',),
  3174. ),
  3175. StructFieldDecl(
  3176. name='tex_data',
  3177. type=PointerType(
  3178. inner_type=ValueType(name='mjtByte'),
  3179. ),
  3180. doc='pixel values',
  3181. array_extent=('ntexdata',),
  3182. ),
  3183. StructFieldDecl(
  3184. name='tex_pathadr',
  3185. type=PointerType(
  3186. inner_type=ValueType(name='int'),
  3187. ),
  3188. doc='address of texture asset path; -1: none',
  3189. array_extent=('ntex',),
  3190. ),
  3191. StructFieldDecl(
  3192. name='mat_texid',
  3193. type=PointerType(
  3194. inner_type=ValueType(name='int'),
  3195. ),
  3196. doc='indices of textures; -1: none',
  3197. array_extent=('nmat', 'mjNTEXROLE'),
  3198. ),
  3199. StructFieldDecl(
  3200. name='mat_texuniform',
  3201. type=PointerType(
  3202. inner_type=ValueType(name='mjtByte'),
  3203. ),
  3204. doc='make texture cube uniform',
  3205. array_extent=('nmat',),
  3206. ),
  3207. StructFieldDecl(
  3208. name='mat_texrepeat',
  3209. type=PointerType(
  3210. inner_type=ValueType(name='float'),
  3211. ),
  3212. doc='texture repetition for 2d mapping',
  3213. array_extent=('nmat', 2),
  3214. ),
  3215. StructFieldDecl(
  3216. name='mat_emission',
  3217. type=PointerType(
  3218. inner_type=ValueType(name='float'),
  3219. ),
  3220. doc='emission (x rgb)',
  3221. array_extent=('nmat',),
  3222. ),
  3223. StructFieldDecl(
  3224. name='mat_specular',
  3225. type=PointerType(
  3226. inner_type=ValueType(name='float'),
  3227. ),
  3228. doc='specular (x white)',
  3229. array_extent=('nmat',),
  3230. ),
  3231. StructFieldDecl(
  3232. name='mat_shininess',
  3233. type=PointerType(
  3234. inner_type=ValueType(name='float'),
  3235. ),
  3236. doc='shininess coef',
  3237. array_extent=('nmat',),
  3238. ),
  3239. StructFieldDecl(
  3240. name='mat_reflectance',
  3241. type=PointerType(
  3242. inner_type=ValueType(name='float'),
  3243. ),
  3244. doc='reflectance (0: disable)',
  3245. array_extent=('nmat',),
  3246. ),
  3247. StructFieldDecl(
  3248. name='mat_metallic',
  3249. type=PointerType(
  3250. inner_type=ValueType(name='float'),
  3251. ),
  3252. doc='metallic coef',
  3253. array_extent=('nmat',),
  3254. ),
  3255. StructFieldDecl(
  3256. name='mat_roughness',
  3257. type=PointerType(
  3258. inner_type=ValueType(name='float'),
  3259. ),
  3260. doc='roughness coef',
  3261. array_extent=('nmat',),
  3262. ),
  3263. StructFieldDecl(
  3264. name='mat_rgba',
  3265. type=PointerType(
  3266. inner_type=ValueType(name='float'),
  3267. ),
  3268. doc='rgba',
  3269. array_extent=('nmat', 4),
  3270. ),
  3271. StructFieldDecl(
  3272. name='pair_dim',
  3273. type=PointerType(
  3274. inner_type=ValueType(name='int'),
  3275. ),
  3276. doc='contact dimensionality',
  3277. array_extent=('npair',),
  3278. ),
  3279. StructFieldDecl(
  3280. name='pair_geom1',
  3281. type=PointerType(
  3282. inner_type=ValueType(name='int'),
  3283. ),
  3284. doc='id of geom1',
  3285. array_extent=('npair',),
  3286. ),
  3287. StructFieldDecl(
  3288. name='pair_geom2',
  3289. type=PointerType(
  3290. inner_type=ValueType(name='int'),
  3291. ),
  3292. doc='id of geom2',
  3293. array_extent=('npair',),
  3294. ),
  3295. StructFieldDecl(
  3296. name='pair_signature',
  3297. type=PointerType(
  3298. inner_type=ValueType(name='int'),
  3299. ),
  3300. doc='body1<<16 + body2',
  3301. array_extent=('npair',),
  3302. ),
  3303. StructFieldDecl(
  3304. name='pair_solref',
  3305. type=PointerType(
  3306. inner_type=ValueType(name='mjtNum'),
  3307. ),
  3308. doc='solver reference: contact normal',
  3309. array_extent=('npair', 'mjNREF'),
  3310. ),
  3311. StructFieldDecl(
  3312. name='pair_solreffriction',
  3313. type=PointerType(
  3314. inner_type=ValueType(name='mjtNum'),
  3315. ),
  3316. doc='solver reference: contact friction',
  3317. array_extent=('npair', 'mjNREF'),
  3318. ),
  3319. StructFieldDecl(
  3320. name='pair_solimp',
  3321. type=PointerType(
  3322. inner_type=ValueType(name='mjtNum'),
  3323. ),
  3324. doc='solver impedance: contact',
  3325. array_extent=('npair', 'mjNIMP'),
  3326. ),
  3327. StructFieldDecl(
  3328. name='pair_margin',
  3329. type=PointerType(
  3330. inner_type=ValueType(name='mjtNum'),
  3331. ),
  3332. doc='detect contact if dist<margin(npair x 1)',
  3333. ),
  3334. StructFieldDecl(
  3335. name='pair_gap',
  3336. type=PointerType(
  3337. inner_type=ValueType(name='mjtNum'),
  3338. ),
  3339. doc='include in solver if dist<margin-gap',
  3340. array_extent=('npair',),
  3341. ),
  3342. StructFieldDecl(
  3343. name='pair_friction',
  3344. type=PointerType(
  3345. inner_type=ValueType(name='mjtNum'),
  3346. ),
  3347. doc='tangent1, 2, spin, roll1, 2',
  3348. array_extent=('npair', 5),
  3349. ),
  3350. StructFieldDecl(
  3351. name='exclude_signature',
  3352. type=PointerType(
  3353. inner_type=ValueType(name='int'),
  3354. ),
  3355. doc='body1<<16 + body2',
  3356. array_extent=('nexclude',),
  3357. ),
  3358. StructFieldDecl(
  3359. name='eq_type',
  3360. type=PointerType(
  3361. inner_type=ValueType(name='int'),
  3362. ),
  3363. doc='constraint type (mjtEq)',
  3364. array_extent=('neq',),
  3365. ),
  3366. StructFieldDecl(
  3367. name='eq_obj1id',
  3368. type=PointerType(
  3369. inner_type=ValueType(name='int'),
  3370. ),
  3371. doc='id of object 1',
  3372. array_extent=('neq',),
  3373. ),
  3374. StructFieldDecl(
  3375. name='eq_obj2id',
  3376. type=PointerType(
  3377. inner_type=ValueType(name='int'),
  3378. ),
  3379. doc='id of object 2',
  3380. array_extent=('neq',),
  3381. ),
  3382. StructFieldDecl(
  3383. name='eq_objtype',
  3384. type=PointerType(
  3385. inner_type=ValueType(name='int'),
  3386. ),
  3387. doc='type of both objects (mjtObj)',
  3388. array_extent=('neq',),
  3389. ),
  3390. StructFieldDecl(
  3391. name='eq_active0',
  3392. type=PointerType(
  3393. inner_type=ValueType(name='mjtByte'),
  3394. ),
  3395. doc='initial enable/disable constraint state',
  3396. array_extent=('neq',),
  3397. ),
  3398. StructFieldDecl(
  3399. name='eq_solref',
  3400. type=PointerType(
  3401. inner_type=ValueType(name='mjtNum'),
  3402. ),
  3403. doc='constraint solver reference',
  3404. array_extent=('neq', 'mjNREF'),
  3405. ),
  3406. StructFieldDecl(
  3407. name='eq_solimp',
  3408. type=PointerType(
  3409. inner_type=ValueType(name='mjtNum'),
  3410. ),
  3411. doc='constraint solver impedance',
  3412. array_extent=('neq', 'mjNIMP'),
  3413. ),
  3414. StructFieldDecl(
  3415. name='eq_data',
  3416. type=PointerType(
  3417. inner_type=ValueType(name='mjtNum'),
  3418. ),
  3419. doc='numeric data for constraint',
  3420. array_extent=('neq', 'mjNEQDATA'),
  3421. ),
  3422. StructFieldDecl(
  3423. name='tendon_adr',
  3424. type=PointerType(
  3425. inner_type=ValueType(name='int'),
  3426. ),
  3427. doc="address of first object in tendon's path (ntendon x 1)",
  3428. ),
  3429. StructFieldDecl(
  3430. name='tendon_num',
  3431. type=PointerType(
  3432. inner_type=ValueType(name='int'),
  3433. ),
  3434. doc="number of objects in tendon's path",
  3435. array_extent=('ntendon',),
  3436. ),
  3437. StructFieldDecl(
  3438. name='tendon_matid',
  3439. type=PointerType(
  3440. inner_type=ValueType(name='int'),
  3441. ),
  3442. doc='material id for rendering',
  3443. array_extent=('ntendon',),
  3444. ),
  3445. StructFieldDecl(
  3446. name='tendon_group',
  3447. type=PointerType(
  3448. inner_type=ValueType(name='int'),
  3449. ),
  3450. doc='group for visibility',
  3451. array_extent=('ntendon',),
  3452. ),
  3453. StructFieldDecl(
  3454. name='tendon_limited',
  3455. type=PointerType(
  3456. inner_type=ValueType(name='mjtByte'),
  3457. ),
  3458. doc='does tendon have length limits',
  3459. array_extent=('ntendon',),
  3460. ),
  3461. StructFieldDecl(
  3462. name='tendon_width',
  3463. type=PointerType(
  3464. inner_type=ValueType(name='mjtNum'),
  3465. ),
  3466. doc='width for rendering',
  3467. array_extent=('ntendon',),
  3468. ),
  3469. StructFieldDecl(
  3470. name='tendon_solref_lim',
  3471. type=PointerType(
  3472. inner_type=ValueType(name='mjtNum'),
  3473. ),
  3474. doc='constraint solver reference: limit',
  3475. array_extent=('ntendon', 'mjNREF'),
  3476. ),
  3477. StructFieldDecl(
  3478. name='tendon_solimp_lim',
  3479. type=PointerType(
  3480. inner_type=ValueType(name='mjtNum'),
  3481. ),
  3482. doc='constraint solver impedance: limit',
  3483. array_extent=('ntendon', 'mjNIMP'),
  3484. ),
  3485. StructFieldDecl(
  3486. name='tendon_solref_fri',
  3487. type=PointerType(
  3488. inner_type=ValueType(name='mjtNum'),
  3489. ),
  3490. doc='constraint solver reference: friction',
  3491. array_extent=('ntendon', 'mjNREF'),
  3492. ),
  3493. StructFieldDecl(
  3494. name='tendon_solimp_fri',
  3495. type=PointerType(
  3496. inner_type=ValueType(name='mjtNum'),
  3497. ),
  3498. doc='constraint solver impedance: friction',
  3499. array_extent=('ntendon', 'mjNIMP'),
  3500. ),
  3501. StructFieldDecl(
  3502. name='tendon_range',
  3503. type=PointerType(
  3504. inner_type=ValueType(name='mjtNum'),
  3505. ),
  3506. doc='tendon length limits',
  3507. array_extent=('ntendon', 2),
  3508. ),
  3509. StructFieldDecl(
  3510. name='tendon_margin',
  3511. type=PointerType(
  3512. inner_type=ValueType(name='mjtNum'),
  3513. ),
  3514. doc='min distance for limit detection',
  3515. array_extent=('ntendon',),
  3516. ),
  3517. StructFieldDecl(
  3518. name='tendon_stiffness',
  3519. type=PointerType(
  3520. inner_type=ValueType(name='mjtNum'),
  3521. ),
  3522. doc='stiffness coefficient',
  3523. array_extent=('ntendon',),
  3524. ),
  3525. StructFieldDecl(
  3526. name='tendon_damping',
  3527. type=PointerType(
  3528. inner_type=ValueType(name='mjtNum'),
  3529. ),
  3530. doc='damping coefficient',
  3531. array_extent=('ntendon',),
  3532. ),
  3533. StructFieldDecl(
  3534. name='tendon_frictionloss',
  3535. type=PointerType(
  3536. inner_type=ValueType(name='mjtNum'),
  3537. ),
  3538. doc='loss due to friction',
  3539. array_extent=('ntendon',),
  3540. ),
  3541. StructFieldDecl(
  3542. name='tendon_lengthspring',
  3543. type=PointerType(
  3544. inner_type=ValueType(name='mjtNum'),
  3545. ),
  3546. doc='spring resting length range',
  3547. array_extent=('ntendon', 2),
  3548. ),
  3549. StructFieldDecl(
  3550. name='tendon_length0',
  3551. type=PointerType(
  3552. inner_type=ValueType(name='mjtNum'),
  3553. ),
  3554. doc='tendon length in qpos0',
  3555. array_extent=('ntendon',),
  3556. ),
  3557. StructFieldDecl(
  3558. name='tendon_invweight0',
  3559. type=PointerType(
  3560. inner_type=ValueType(name='mjtNum'),
  3561. ),
  3562. doc='inv. weight in qpos0',
  3563. array_extent=('ntendon',),
  3564. ),
  3565. StructFieldDecl(
  3566. name='tendon_user',
  3567. type=PointerType(
  3568. inner_type=ValueType(name='mjtNum'),
  3569. ),
  3570. doc='user data',
  3571. array_extent=('ntendon', 'nuser_tendon'),
  3572. ),
  3573. StructFieldDecl(
  3574. name='tendon_rgba',
  3575. type=PointerType(
  3576. inner_type=ValueType(name='float'),
  3577. ),
  3578. doc='rgba when material is omitted',
  3579. array_extent=('ntendon', 4),
  3580. ),
  3581. StructFieldDecl(
  3582. name='wrap_type',
  3583. type=PointerType(
  3584. inner_type=ValueType(name='int'),
  3585. ),
  3586. doc='wrap object type (mjtWrap)',
  3587. array_extent=('nwrap',),
  3588. ),
  3589. StructFieldDecl(
  3590. name='wrap_objid',
  3591. type=PointerType(
  3592. inner_type=ValueType(name='int'),
  3593. ),
  3594. doc='object id: geom, site, joint',
  3595. array_extent=('nwrap',),
  3596. ),
  3597. StructFieldDecl(
  3598. name='wrap_prm',
  3599. type=PointerType(
  3600. inner_type=ValueType(name='mjtNum'),
  3601. ),
  3602. doc='divisor, joint coef, or site id',
  3603. array_extent=('nwrap',),
  3604. ),
  3605. StructFieldDecl(
  3606. name='actuator_trntype',
  3607. type=PointerType(
  3608. inner_type=ValueType(name='int'),
  3609. ),
  3610. doc='transmission type (mjtTrn)',
  3611. array_extent=('nu',),
  3612. ),
  3613. StructFieldDecl(
  3614. name='actuator_dyntype',
  3615. type=PointerType(
  3616. inner_type=ValueType(name='int'),
  3617. ),
  3618. doc='dynamics type (mjtDyn)',
  3619. array_extent=('nu',),
  3620. ),
  3621. StructFieldDecl(
  3622. name='actuator_gaintype',
  3623. type=PointerType(
  3624. inner_type=ValueType(name='int'),
  3625. ),
  3626. doc='gain type (mjtGain)',
  3627. array_extent=('nu',),
  3628. ),
  3629. StructFieldDecl(
  3630. name='actuator_biastype',
  3631. type=PointerType(
  3632. inner_type=ValueType(name='int'),
  3633. ),
  3634. doc='bias type (mjtBias)',
  3635. array_extent=('nu',),
  3636. ),
  3637. StructFieldDecl(
  3638. name='actuator_trnid',
  3639. type=PointerType(
  3640. inner_type=ValueType(name='int'),
  3641. ),
  3642. doc='transmission id: joint, tendon, site',
  3643. array_extent=('nu', 2),
  3644. ),
  3645. StructFieldDecl(
  3646. name='actuator_actadr',
  3647. type=PointerType(
  3648. inner_type=ValueType(name='int'),
  3649. ),
  3650. doc='first activation address; -1: stateless',
  3651. array_extent=('nu',),
  3652. ),
  3653. StructFieldDecl(
  3654. name='actuator_actnum',
  3655. type=PointerType(
  3656. inner_type=ValueType(name='int'),
  3657. ),
  3658. doc='number of activation variables',
  3659. array_extent=('nu',),
  3660. ),
  3661. StructFieldDecl(
  3662. name='actuator_group',
  3663. type=PointerType(
  3664. inner_type=ValueType(name='int'),
  3665. ),
  3666. doc='group for visibility',
  3667. array_extent=('nu',),
  3668. ),
  3669. StructFieldDecl(
  3670. name='actuator_ctrllimited',
  3671. type=PointerType(
  3672. inner_type=ValueType(name='mjtByte'),
  3673. ),
  3674. doc='is control limited',
  3675. array_extent=('nu',),
  3676. ),
  3677. StructFieldDecl(
  3678. name='actuator_forcelimited',
  3679. type=PointerType(
  3680. inner_type=ValueType(name='mjtByte'),
  3681. ),
  3682. doc='is force limited',
  3683. array_extent=('nu',),
  3684. ),
  3685. StructFieldDecl(
  3686. name='actuator_actlimited',
  3687. type=PointerType(
  3688. inner_type=ValueType(name='mjtByte'),
  3689. ),
  3690. doc='is activation limited',
  3691. array_extent=('nu',),
  3692. ),
  3693. StructFieldDecl(
  3694. name='actuator_dynprm',
  3695. type=PointerType(
  3696. inner_type=ValueType(name='mjtNum'),
  3697. ),
  3698. doc='dynamics parameters',
  3699. array_extent=('nu', 'mjNDYN'),
  3700. ),
  3701. StructFieldDecl(
  3702. name='actuator_gainprm',
  3703. type=PointerType(
  3704. inner_type=ValueType(name='mjtNum'),
  3705. ),
  3706. doc='gain parameters',
  3707. array_extent=('nu', 'mjNGAIN'),
  3708. ),
  3709. StructFieldDecl(
  3710. name='actuator_biasprm',
  3711. type=PointerType(
  3712. inner_type=ValueType(name='mjtNum'),
  3713. ),
  3714. doc='bias parameters',
  3715. array_extent=('nu', 'mjNBIAS'),
  3716. ),
  3717. StructFieldDecl(
  3718. name='actuator_actearly',
  3719. type=PointerType(
  3720. inner_type=ValueType(name='mjtByte'),
  3721. ),
  3722. doc='step activation before force',
  3723. array_extent=('nu',),
  3724. ),
  3725. StructFieldDecl(
  3726. name='actuator_ctrlrange',
  3727. type=PointerType(
  3728. inner_type=ValueType(name='mjtNum'),
  3729. ),
  3730. doc='range of controls',
  3731. array_extent=('nu', 2),
  3732. ),
  3733. StructFieldDecl(
  3734. name='actuator_forcerange',
  3735. type=PointerType(
  3736. inner_type=ValueType(name='mjtNum'),
  3737. ),
  3738. doc='range of forces',
  3739. array_extent=('nu', 2),
  3740. ),
  3741. StructFieldDecl(
  3742. name='actuator_actrange',
  3743. type=PointerType(
  3744. inner_type=ValueType(name='mjtNum'),
  3745. ),
  3746. doc='range of activations',
  3747. array_extent=('nu', 2),
  3748. ),
  3749. StructFieldDecl(
  3750. name='actuator_gear',
  3751. type=PointerType(
  3752. inner_type=ValueType(name='mjtNum'),
  3753. ),
  3754. doc='scale length and transmitted force',
  3755. array_extent=('nu', 6),
  3756. ),
  3757. StructFieldDecl(
  3758. name='actuator_cranklength',
  3759. type=PointerType(
  3760. inner_type=ValueType(name='mjtNum'),
  3761. ),
  3762. doc='crank length for slider-crank',
  3763. array_extent=('nu',),
  3764. ),
  3765. StructFieldDecl(
  3766. name='actuator_acc0',
  3767. type=PointerType(
  3768. inner_type=ValueType(name='mjtNum'),
  3769. ),
  3770. doc='acceleration from unit force in qpos0',
  3771. array_extent=('nu',),
  3772. ),
  3773. StructFieldDecl(
  3774. name='actuator_length0',
  3775. type=PointerType(
  3776. inner_type=ValueType(name='mjtNum'),
  3777. ),
  3778. doc='actuator length in qpos0',
  3779. array_extent=('nu',),
  3780. ),
  3781. StructFieldDecl(
  3782. name='actuator_lengthrange',
  3783. type=PointerType(
  3784. inner_type=ValueType(name='mjtNum'),
  3785. ),
  3786. doc='feasible actuator length range',
  3787. array_extent=('nu', 2),
  3788. ),
  3789. StructFieldDecl(
  3790. name='actuator_user',
  3791. type=PointerType(
  3792. inner_type=ValueType(name='mjtNum'),
  3793. ),
  3794. doc='user data',
  3795. array_extent=('nu', 'nuser_actuator'),
  3796. ),
  3797. StructFieldDecl(
  3798. name='actuator_plugin',
  3799. type=PointerType(
  3800. inner_type=ValueType(name='int'),
  3801. ),
  3802. doc='plugin instance id; -1: not a plugin',
  3803. array_extent=('nu',),
  3804. ),
  3805. StructFieldDecl(
  3806. name='sensor_type',
  3807. type=PointerType(
  3808. inner_type=ValueType(name='int'),
  3809. ),
  3810. doc='sensor type (mjtSensor)',
  3811. array_extent=('nsensor',),
  3812. ),
  3813. StructFieldDecl(
  3814. name='sensor_datatype',
  3815. type=PointerType(
  3816. inner_type=ValueType(name='int'),
  3817. ),
  3818. doc='numeric data type (mjtDataType)',
  3819. array_extent=('nsensor',),
  3820. ),
  3821. StructFieldDecl(
  3822. name='sensor_needstage',
  3823. type=PointerType(
  3824. inner_type=ValueType(name='int'),
  3825. ),
  3826. doc='required compute stage (mjtStage)',
  3827. array_extent=('nsensor',),
  3828. ),
  3829. StructFieldDecl(
  3830. name='sensor_objtype',
  3831. type=PointerType(
  3832. inner_type=ValueType(name='int'),
  3833. ),
  3834. doc='type of sensorized object (mjtObj)',
  3835. array_extent=('nsensor',),
  3836. ),
  3837. StructFieldDecl(
  3838. name='sensor_objid',
  3839. type=PointerType(
  3840. inner_type=ValueType(name='int'),
  3841. ),
  3842. doc='id of sensorized object',
  3843. array_extent=('nsensor',),
  3844. ),
  3845. StructFieldDecl(
  3846. name='sensor_reftype',
  3847. type=PointerType(
  3848. inner_type=ValueType(name='int'),
  3849. ),
  3850. doc='type of reference frame (mjtObj)',
  3851. array_extent=('nsensor',),
  3852. ),
  3853. StructFieldDecl(
  3854. name='sensor_refid',
  3855. type=PointerType(
  3856. inner_type=ValueType(name='int'),
  3857. ),
  3858. doc='id of reference frame; -1: global frame',
  3859. array_extent=('nsensor',),
  3860. ),
  3861. StructFieldDecl(
  3862. name='sensor_dim',
  3863. type=PointerType(
  3864. inner_type=ValueType(name='int'),
  3865. ),
  3866. doc='number of scalar outputs',
  3867. array_extent=('nsensor',),
  3868. ),
  3869. StructFieldDecl(
  3870. name='sensor_adr',
  3871. type=PointerType(
  3872. inner_type=ValueType(name='int'),
  3873. ),
  3874. doc='address in sensor array',
  3875. array_extent=('nsensor',),
  3876. ),
  3877. StructFieldDecl(
  3878. name='sensor_cutoff',
  3879. type=PointerType(
  3880. inner_type=ValueType(name='mjtNum'),
  3881. ),
  3882. doc='cutoff for real and positive; 0: ignore',
  3883. array_extent=('nsensor',),
  3884. ),
  3885. StructFieldDecl(
  3886. name='sensor_noise',
  3887. type=PointerType(
  3888. inner_type=ValueType(name='mjtNum'),
  3889. ),
  3890. doc='noise standard deviation',
  3891. array_extent=('nsensor',),
  3892. ),
  3893. StructFieldDecl(
  3894. name='sensor_user',
  3895. type=PointerType(
  3896. inner_type=ValueType(name='mjtNum'),
  3897. ),
  3898. doc='user data',
  3899. array_extent=('nsensor', 'nuser_sensor'),
  3900. ),
  3901. StructFieldDecl(
  3902. name='sensor_plugin',
  3903. type=PointerType(
  3904. inner_type=ValueType(name='int'),
  3905. ),
  3906. doc='plugin instance id; -1: not a plugin',
  3907. array_extent=('nsensor',),
  3908. ),
  3909. StructFieldDecl(
  3910. name='plugin',
  3911. type=PointerType(
  3912. inner_type=ValueType(name='int'),
  3913. ),
  3914. doc='globally registered plugin slot number',
  3915. array_extent=('nplugin',),
  3916. ),
  3917. StructFieldDecl(
  3918. name='plugin_stateadr',
  3919. type=PointerType(
  3920. inner_type=ValueType(name='int'),
  3921. ),
  3922. doc='address in the plugin state array',
  3923. array_extent=('nplugin',),
  3924. ),
  3925. StructFieldDecl(
  3926. name='plugin_statenum',
  3927. type=PointerType(
  3928. inner_type=ValueType(name='int'),
  3929. ),
  3930. doc='number of states in the plugin instance',
  3931. array_extent=('nplugin',),
  3932. ),
  3933. StructFieldDecl(
  3934. name='plugin_attr',
  3935. type=PointerType(
  3936. inner_type=ValueType(name='char'),
  3937. ),
  3938. doc='config attributes of plugin instances',
  3939. array_extent=('npluginattr',),
  3940. ),
  3941. StructFieldDecl(
  3942. name='plugin_attradr',
  3943. type=PointerType(
  3944. inner_type=ValueType(name='int'),
  3945. ),
  3946. doc="address to each instance's config attrib (nplugin x 1)",
  3947. ),
  3948. StructFieldDecl(
  3949. name='numeric_adr',
  3950. type=PointerType(
  3951. inner_type=ValueType(name='int'),
  3952. ),
  3953. doc='address of field in numeric_data',
  3954. array_extent=('nnumeric',),
  3955. ),
  3956. StructFieldDecl(
  3957. name='numeric_size',
  3958. type=PointerType(
  3959. inner_type=ValueType(name='int'),
  3960. ),
  3961. doc='size of numeric field',
  3962. array_extent=('nnumeric',),
  3963. ),
  3964. StructFieldDecl(
  3965. name='numeric_data',
  3966. type=PointerType(
  3967. inner_type=ValueType(name='mjtNum'),
  3968. ),
  3969. doc='array of all numeric fields',
  3970. array_extent=('nnumericdata',),
  3971. ),
  3972. StructFieldDecl(
  3973. name='text_adr',
  3974. type=PointerType(
  3975. inner_type=ValueType(name='int'),
  3976. ),
  3977. doc='address of text in text_data',
  3978. array_extent=('ntext',),
  3979. ),
  3980. StructFieldDecl(
  3981. name='text_size',
  3982. type=PointerType(
  3983. inner_type=ValueType(name='int'),
  3984. ),
  3985. doc='size of text field (strlen+1)',
  3986. array_extent=('ntext',),
  3987. ),
  3988. StructFieldDecl(
  3989. name='text_data',
  3990. type=PointerType(
  3991. inner_type=ValueType(name='char'),
  3992. ),
  3993. doc='array of all text fields (0-terminated)',
  3994. array_extent=('ntextdata',),
  3995. ),
  3996. StructFieldDecl(
  3997. name='tuple_adr',
  3998. type=PointerType(
  3999. inner_type=ValueType(name='int'),
  4000. ),
  4001. doc='address of text in text_data',
  4002. array_extent=('ntuple',),
  4003. ),
  4004. StructFieldDecl(
  4005. name='tuple_size',
  4006. type=PointerType(
  4007. inner_type=ValueType(name='int'),
  4008. ),
  4009. doc='number of objects in tuple',
  4010. array_extent=('ntuple',),
  4011. ),
  4012. StructFieldDecl(
  4013. name='tuple_objtype',
  4014. type=PointerType(
  4015. inner_type=ValueType(name='int'),
  4016. ),
  4017. doc='array of object types in all tuples',
  4018. array_extent=('ntupledata',),
  4019. ),
  4020. StructFieldDecl(
  4021. name='tuple_objid',
  4022. type=PointerType(
  4023. inner_type=ValueType(name='int'),
  4024. ),
  4025. doc='array of object ids in all tuples',
  4026. array_extent=('ntupledata',),
  4027. ),
  4028. StructFieldDecl(
  4029. name='tuple_objprm',
  4030. type=PointerType(
  4031. inner_type=ValueType(name='mjtNum'),
  4032. ),
  4033. doc='array of object params in all tuples',
  4034. array_extent=('ntupledata',),
  4035. ),
  4036. StructFieldDecl(
  4037. name='key_time',
  4038. type=PointerType(
  4039. inner_type=ValueType(name='mjtNum'),
  4040. ),
  4041. doc='key time',
  4042. array_extent=('nkey',),
  4043. ),
  4044. StructFieldDecl(
  4045. name='key_qpos',
  4046. type=PointerType(
  4047. inner_type=ValueType(name='mjtNum'),
  4048. ),
  4049. doc='key position',
  4050. array_extent=('nkey', 'nq'),
  4051. ),
  4052. StructFieldDecl(
  4053. name='key_qvel',
  4054. type=PointerType(
  4055. inner_type=ValueType(name='mjtNum'),
  4056. ),
  4057. doc='key velocity',
  4058. array_extent=('nkey', 'nv'),
  4059. ),
  4060. StructFieldDecl(
  4061. name='key_act',
  4062. type=PointerType(
  4063. inner_type=ValueType(name='mjtNum'),
  4064. ),
  4065. doc='key activation',
  4066. array_extent=('nkey', 'na'),
  4067. ),
  4068. StructFieldDecl(
  4069. name='key_mpos',
  4070. type=PointerType(
  4071. inner_type=ValueType(name='mjtNum'),
  4072. ),
  4073. doc='key mocap position',
  4074. array_extent=('nkey', 'nmocap*3'),
  4075. ),
  4076. StructFieldDecl(
  4077. name='key_mquat',
  4078. type=PointerType(
  4079. inner_type=ValueType(name='mjtNum'),
  4080. ),
  4081. doc='key mocap quaternion',
  4082. array_extent=('nkey', 'nmocap*4'),
  4083. ),
  4084. StructFieldDecl(
  4085. name='key_ctrl',
  4086. type=PointerType(
  4087. inner_type=ValueType(name='mjtNum'),
  4088. ),
  4089. doc='key control',
  4090. array_extent=('nkey', 'nu'),
  4091. ),
  4092. StructFieldDecl(
  4093. name='name_bodyadr',
  4094. type=PointerType(
  4095. inner_type=ValueType(name='int'),
  4096. ),
  4097. doc='body name pointers',
  4098. array_extent=('nbody',),
  4099. ),
  4100. StructFieldDecl(
  4101. name='name_jntadr',
  4102. type=PointerType(
  4103. inner_type=ValueType(name='int'),
  4104. ),
  4105. doc='joint name pointers',
  4106. array_extent=('njnt',),
  4107. ),
  4108. StructFieldDecl(
  4109. name='name_geomadr',
  4110. type=PointerType(
  4111. inner_type=ValueType(name='int'),
  4112. ),
  4113. doc='geom name pointers',
  4114. array_extent=('ngeom',),
  4115. ),
  4116. StructFieldDecl(
  4117. name='name_siteadr',
  4118. type=PointerType(
  4119. inner_type=ValueType(name='int'),
  4120. ),
  4121. doc='site name pointers',
  4122. array_extent=('nsite',),
  4123. ),
  4124. StructFieldDecl(
  4125. name='name_camadr',
  4126. type=PointerType(
  4127. inner_type=ValueType(name='int'),
  4128. ),
  4129. doc='camera name pointers',
  4130. array_extent=('ncam',),
  4131. ),
  4132. StructFieldDecl(
  4133. name='name_lightadr',
  4134. type=PointerType(
  4135. inner_type=ValueType(name='int'),
  4136. ),
  4137. doc='light name pointers',
  4138. array_extent=('nlight',),
  4139. ),
  4140. StructFieldDecl(
  4141. name='name_flexadr',
  4142. type=PointerType(
  4143. inner_type=ValueType(name='int'),
  4144. ),
  4145. doc='flex name pointers',
  4146. array_extent=('nflex',),
  4147. ),
  4148. StructFieldDecl(
  4149. name='name_meshadr',
  4150. type=PointerType(
  4151. inner_type=ValueType(name='int'),
  4152. ),
  4153. doc='mesh name pointers',
  4154. array_extent=('nmesh',),
  4155. ),
  4156. StructFieldDecl(
  4157. name='name_skinadr',
  4158. type=PointerType(
  4159. inner_type=ValueType(name='int'),
  4160. ),
  4161. doc='skin name pointers',
  4162. array_extent=('nskin',),
  4163. ),
  4164. StructFieldDecl(
  4165. name='name_hfieldadr',
  4166. type=PointerType(
  4167. inner_type=ValueType(name='int'),
  4168. ),
  4169. doc='hfield name pointers',
  4170. array_extent=('nhfield',),
  4171. ),
  4172. StructFieldDecl(
  4173. name='name_texadr',
  4174. type=PointerType(
  4175. inner_type=ValueType(name='int'),
  4176. ),
  4177. doc='texture name pointers',
  4178. array_extent=('ntex',),
  4179. ),
  4180. StructFieldDecl(
  4181. name='name_matadr',
  4182. type=PointerType(
  4183. inner_type=ValueType(name='int'),
  4184. ),
  4185. doc='material name pointers',
  4186. array_extent=('nmat',),
  4187. ),
  4188. StructFieldDecl(
  4189. name='name_pairadr',
  4190. type=PointerType(
  4191. inner_type=ValueType(name='int'),
  4192. ),
  4193. doc='geom pair name pointers',
  4194. array_extent=('npair',),
  4195. ),
  4196. StructFieldDecl(
  4197. name='name_excludeadr',
  4198. type=PointerType(
  4199. inner_type=ValueType(name='int'),
  4200. ),
  4201. doc='exclude name pointers',
  4202. array_extent=('nexclude',),
  4203. ),
  4204. StructFieldDecl(
  4205. name='name_eqadr',
  4206. type=PointerType(
  4207. inner_type=ValueType(name='int'),
  4208. ),
  4209. doc='equality constraint name pointers',
  4210. array_extent=('neq',),
  4211. ),
  4212. StructFieldDecl(
  4213. name='name_tendonadr',
  4214. type=PointerType(
  4215. inner_type=ValueType(name='int'),
  4216. ),
  4217. doc='tendon name pointers',
  4218. array_extent=('ntendon',),
  4219. ),
  4220. StructFieldDecl(
  4221. name='name_actuatoradr',
  4222. type=PointerType(
  4223. inner_type=ValueType(name='int'),
  4224. ),
  4225. doc='actuator name pointers',
  4226. array_extent=('nu',),
  4227. ),
  4228. StructFieldDecl(
  4229. name='name_sensoradr',
  4230. type=PointerType(
  4231. inner_type=ValueType(name='int'),
  4232. ),
  4233. doc='sensor name pointers',
  4234. array_extent=('nsensor',),
  4235. ),
  4236. StructFieldDecl(
  4237. name='name_numericadr',
  4238. type=PointerType(
  4239. inner_type=ValueType(name='int'),
  4240. ),
  4241. doc='numeric name pointers',
  4242. array_extent=('nnumeric',),
  4243. ),
  4244. StructFieldDecl(
  4245. name='name_textadr',
  4246. type=PointerType(
  4247. inner_type=ValueType(name='int'),
  4248. ),
  4249. doc='text name pointers',
  4250. array_extent=('ntext',),
  4251. ),
  4252. StructFieldDecl(
  4253. name='name_tupleadr',
  4254. type=PointerType(
  4255. inner_type=ValueType(name='int'),
  4256. ),
  4257. doc='tuple name pointers',
  4258. array_extent=('ntuple',),
  4259. ),
  4260. StructFieldDecl(
  4261. name='name_keyadr',
  4262. type=PointerType(
  4263. inner_type=ValueType(name='int'),
  4264. ),
  4265. doc='keyframe name pointers',
  4266. array_extent=('nkey',),
  4267. ),
  4268. StructFieldDecl(
  4269. name='name_pluginadr',
  4270. type=PointerType(
  4271. inner_type=ValueType(name='int'),
  4272. ),
  4273. doc='plugin instance name pointers',
  4274. array_extent=('nplugin',),
  4275. ),
  4276. StructFieldDecl(
  4277. name='names',
  4278. type=PointerType(
  4279. inner_type=ValueType(name='char'),
  4280. ),
  4281. doc='names of all objects, 0-terminated',
  4282. array_extent=('nnames',),
  4283. ),
  4284. StructFieldDecl(
  4285. name='names_map',
  4286. type=PointerType(
  4287. inner_type=ValueType(name='int'),
  4288. ),
  4289. doc='internal hash map of names',
  4290. array_extent=('nnames_map',),
  4291. ),
  4292. StructFieldDecl(
  4293. name='paths',
  4294. type=PointerType(
  4295. inner_type=ValueType(name='char'),
  4296. ),
  4297. doc='paths to assets, 0-terminated',
  4298. array_extent=('npaths',),
  4299. ),
  4300. ),
  4301. )),
  4302. ('mjThreadPool',
  4303. StructDecl(
  4304. name='mjThreadPool',
  4305. declname='struct mjThreadPool_',
  4306. fields=(
  4307. StructFieldDecl(
  4308. name='nworker',
  4309. type=ValueType(name='int'),
  4310. doc='number of workers in the pool',
  4311. ),
  4312. ),
  4313. )),
  4314. ('mjTask',
  4315. StructDecl(
  4316. name='mjTask',
  4317. declname='struct mjTask_',
  4318. fields=(
  4319. StructFieldDecl(
  4320. name='func',
  4321. type=ValueType(name='mjfTask'),
  4322. doc='pointer to the function that implements the task',
  4323. ),
  4324. StructFieldDecl(
  4325. name='args',
  4326. type=PointerType(
  4327. inner_type=ValueType(name='void'),
  4328. ),
  4329. doc='arguments to func',
  4330. ),
  4331. StructFieldDecl(
  4332. name='status',
  4333. type=ValueType(name='int', is_volatile=True),
  4334. doc='status of the task',
  4335. ),
  4336. ),
  4337. )),
  4338. ('mjContact',
  4339. StructDecl(
  4340. name='mjContact',
  4341. declname='struct mjContact_',
  4342. fields=(
  4343. StructFieldDecl(
  4344. name='dist',
  4345. type=ValueType(name='mjtNum'),
  4346. doc='distance between nearest points; neg: penetration',
  4347. ),
  4348. StructFieldDecl(
  4349. name='pos',
  4350. type=ArrayType(
  4351. inner_type=ValueType(name='mjtNum'),
  4352. extents=(3,),
  4353. ),
  4354. doc='position of contact point: midpoint between geoms',
  4355. ),
  4356. StructFieldDecl(
  4357. name='frame',
  4358. type=ArrayType(
  4359. inner_type=ValueType(name='mjtNum'),
  4360. extents=(9,),
  4361. ),
  4362. doc='normal is in [0-2], points from geom[0] to geom[1]',
  4363. ),
  4364. StructFieldDecl(
  4365. name='includemargin',
  4366. type=ValueType(name='mjtNum'),
  4367. doc='include if dist<includemargin=margin-gap',
  4368. ),
  4369. StructFieldDecl(
  4370. name='friction',
  4371. type=ArrayType(
  4372. inner_type=ValueType(name='mjtNum'),
  4373. extents=(5,),
  4374. ),
  4375. doc='tangent1, 2, spin, roll1, 2',
  4376. ),
  4377. StructFieldDecl(
  4378. name='solref',
  4379. type=ArrayType(
  4380. inner_type=ValueType(name='mjtNum'),
  4381. extents=(2,),
  4382. ),
  4383. doc='constraint solver reference, normal direction',
  4384. ),
  4385. StructFieldDecl(
  4386. name='solreffriction',
  4387. type=ArrayType(
  4388. inner_type=ValueType(name='mjtNum'),
  4389. extents=(2,),
  4390. ),
  4391. doc='constraint solver reference, friction directions',
  4392. ),
  4393. StructFieldDecl(
  4394. name='solimp',
  4395. type=ArrayType(
  4396. inner_type=ValueType(name='mjtNum'),
  4397. extents=(5,),
  4398. ),
  4399. doc='constraint solver impedance',
  4400. ),
  4401. StructFieldDecl(
  4402. name='mu',
  4403. type=ValueType(name='mjtNum'),
  4404. doc='friction of regularized cone, set by mj_makeConstraint',
  4405. ),
  4406. StructFieldDecl(
  4407. name='H',
  4408. type=ArrayType(
  4409. inner_type=ValueType(name='mjtNum'),
  4410. extents=(36,),
  4411. ),
  4412. doc='cone Hessian, set by mj_constraintUpdate',
  4413. ),
  4414. StructFieldDecl(
  4415. name='dim',
  4416. type=ValueType(name='int'),
  4417. doc='contact space dimensionality: 1, 3, 4 or 6',
  4418. ),
  4419. StructFieldDecl(
  4420. name='geom1',
  4421. type=ValueType(name='int'),
  4422. doc='id of geom 1; deprecated, use geom[0]',
  4423. ),
  4424. StructFieldDecl(
  4425. name='geom2',
  4426. type=ValueType(name='int'),
  4427. doc='id of geom 2; deprecated, use geom[1]',
  4428. ),
  4429. StructFieldDecl(
  4430. name='geom',
  4431. type=ArrayType(
  4432. inner_type=ValueType(name='int'),
  4433. extents=(2,),
  4434. ),
  4435. doc='geom ids; -1 for flex',
  4436. ),
  4437. StructFieldDecl(
  4438. name='flex',
  4439. type=ArrayType(
  4440. inner_type=ValueType(name='int'),
  4441. extents=(2,),
  4442. ),
  4443. doc='flex ids; -1 for geom',
  4444. ),
  4445. StructFieldDecl(
  4446. name='elem',
  4447. type=ArrayType(
  4448. inner_type=ValueType(name='int'),
  4449. extents=(2,),
  4450. ),
  4451. doc='element ids; -1 for geom or flex vertex',
  4452. ),
  4453. StructFieldDecl(
  4454. name='vert',
  4455. type=ArrayType(
  4456. inner_type=ValueType(name='int'),
  4457. extents=(2,),
  4458. ),
  4459. doc='vertex ids; -1 for geom or flex element',
  4460. ),
  4461. StructFieldDecl(
  4462. name='exclude',
  4463. type=ValueType(name='int'),
  4464. doc='0: include, 1: in gap, 2: fused, 3: no dofs',
  4465. ),
  4466. StructFieldDecl(
  4467. name='efc_address',
  4468. type=ValueType(name='int'),
  4469. doc='address in efc; -1: not included',
  4470. ),
  4471. ),
  4472. )),
  4473. ('mjWarningStat',
  4474. StructDecl(
  4475. name='mjWarningStat',
  4476. declname='struct mjWarningStat_',
  4477. fields=(
  4478. StructFieldDecl(
  4479. name='lastinfo',
  4480. type=ValueType(name='int'),
  4481. doc='info from last warning',
  4482. ),
  4483. StructFieldDecl(
  4484. name='number',
  4485. type=ValueType(name='int'),
  4486. doc='how many times was warning raised',
  4487. ),
  4488. ),
  4489. )),
  4490. ('mjTimerStat',
  4491. StructDecl(
  4492. name='mjTimerStat',
  4493. declname='struct mjTimerStat_',
  4494. fields=(
  4495. StructFieldDecl(
  4496. name='duration',
  4497. type=ValueType(name='mjtNum'),
  4498. doc='cumulative duration',
  4499. ),
  4500. StructFieldDecl(
  4501. name='number',
  4502. type=ValueType(name='int'),
  4503. doc='how many times was timer called',
  4504. ),
  4505. ),
  4506. )),
  4507. ('mjSolverStat',
  4508. StructDecl(
  4509. name='mjSolverStat',
  4510. declname='struct mjSolverStat_',
  4511. fields=(
  4512. StructFieldDecl(
  4513. name='improvement',
  4514. type=ValueType(name='mjtNum'),
  4515. doc='cost reduction, scaled by 1/trace(M(qpos0))',
  4516. ),
  4517. StructFieldDecl(
  4518. name='gradient',
  4519. type=ValueType(name='mjtNum'),
  4520. doc='gradient norm (primal only, scaled)',
  4521. ),
  4522. StructFieldDecl(
  4523. name='lineslope',
  4524. type=ValueType(name='mjtNum'),
  4525. doc='slope in linesearch',
  4526. ),
  4527. StructFieldDecl(
  4528. name='nactive',
  4529. type=ValueType(name='int'),
  4530. doc='number of active constraints',
  4531. ),
  4532. StructFieldDecl(
  4533. name='nchange',
  4534. type=ValueType(name='int'),
  4535. doc='number of constraint state changes',
  4536. ),
  4537. StructFieldDecl(
  4538. name='neval',
  4539. type=ValueType(name='int'),
  4540. doc='number of cost evaluations in line search',
  4541. ),
  4542. StructFieldDecl(
  4543. name='nupdate',
  4544. type=ValueType(name='int'),
  4545. doc='number of Cholesky updates in line search',
  4546. ),
  4547. ),
  4548. )),
  4549. ('mjData',
  4550. StructDecl(
  4551. name='mjData',
  4552. declname='struct mjData_',
  4553. fields=(
  4554. StructFieldDecl(
  4555. name='narena',
  4556. type=ValueType(name='size_t'),
  4557. doc='size of the arena in bytes (inclusive of the stack)',
  4558. ),
  4559. StructFieldDecl(
  4560. name='nbuffer',
  4561. type=ValueType(name='size_t'),
  4562. doc='size of main buffer in bytes',
  4563. ),
  4564. StructFieldDecl(
  4565. name='nplugin',
  4566. type=ValueType(name='int'),
  4567. doc='number of plugin instances',
  4568. ),
  4569. StructFieldDecl(
  4570. name='pstack',
  4571. type=ValueType(name='size_t'),
  4572. doc='first available byte in stack',
  4573. ),
  4574. StructFieldDecl(
  4575. name='pbase',
  4576. type=ValueType(name='size_t'),
  4577. doc='value of pstack when mj_markStack was last called',
  4578. ),
  4579. StructFieldDecl(
  4580. name='parena',
  4581. type=ValueType(name='size_t'),
  4582. doc='first available byte in arena',
  4583. ),
  4584. StructFieldDecl(
  4585. name='maxuse_stack',
  4586. type=ValueType(name='size_t'),
  4587. doc='maximum stack allocation in bytes',
  4588. ),
  4589. StructFieldDecl(
  4590. name='maxuse_threadstack',
  4591. type=ArrayType(
  4592. inner_type=ValueType(name='size_t'),
  4593. extents=(128,),
  4594. ),
  4595. doc='maximum stack allocation per thread in bytes',
  4596. ),
  4597. StructFieldDecl(
  4598. name='maxuse_arena',
  4599. type=ValueType(name='size_t'),
  4600. doc='maximum arena allocation in bytes',
  4601. ),
  4602. StructFieldDecl(
  4603. name='maxuse_con',
  4604. type=ValueType(name='int'),
  4605. doc='maximum number of contacts',
  4606. ),
  4607. StructFieldDecl(
  4608. name='maxuse_efc',
  4609. type=ValueType(name='int'),
  4610. doc='maximum number of scalar constraints',
  4611. ),
  4612. StructFieldDecl(
  4613. name='solver',
  4614. type=ArrayType(
  4615. inner_type=ValueType(name='mjSolverStat'),
  4616. extents=(4000,),
  4617. ),
  4618. doc='solver statistics per island, per iteration',
  4619. ),
  4620. StructFieldDecl(
  4621. name='solver_nisland',
  4622. type=ValueType(name='int'),
  4623. doc='number of islands processed by solver',
  4624. ),
  4625. StructFieldDecl(
  4626. name='solver_niter',
  4627. type=ArrayType(
  4628. inner_type=ValueType(name='int'),
  4629. extents=(20,),
  4630. ),
  4631. doc='number of solver iterations, per island',
  4632. ),
  4633. StructFieldDecl(
  4634. name='solver_nnz',
  4635. type=ArrayType(
  4636. inner_type=ValueType(name='int'),
  4637. extents=(20,),
  4638. ),
  4639. doc='number of nonzeros in Hessian or efc_AR, per island',
  4640. ),
  4641. StructFieldDecl(
  4642. name='solver_fwdinv',
  4643. type=ArrayType(
  4644. inner_type=ValueType(name='mjtNum'),
  4645. extents=(2,),
  4646. ),
  4647. doc='forward-inverse comparison: qfrc, efc',
  4648. ),
  4649. StructFieldDecl(
  4650. name='warning',
  4651. type=ArrayType(
  4652. inner_type=ValueType(name='mjWarningStat'),
  4653. extents=(8,),
  4654. ),
  4655. doc='warning statistics',
  4656. ),
  4657. StructFieldDecl(
  4658. name='timer',
  4659. type=ArrayType(
  4660. inner_type=ValueType(name='mjTimerStat'),
  4661. extents=(15,),
  4662. ),
  4663. doc='timer statistics',
  4664. ),
  4665. StructFieldDecl(
  4666. name='ncon',
  4667. type=ValueType(name='int'),
  4668. doc='number of detected contacts',
  4669. ),
  4670. StructFieldDecl(
  4671. name='ne',
  4672. type=ValueType(name='int'),
  4673. doc='number of equality constraints',
  4674. ),
  4675. StructFieldDecl(
  4676. name='nf',
  4677. type=ValueType(name='int'),
  4678. doc='number of friction constraints',
  4679. ),
  4680. StructFieldDecl(
  4681. name='nl',
  4682. type=ValueType(name='int'),
  4683. doc='number of limit constraints',
  4684. ),
  4685. StructFieldDecl(
  4686. name='nefc',
  4687. type=ValueType(name='int'),
  4688. doc='number of constraints',
  4689. ),
  4690. StructFieldDecl(
  4691. name='nnzJ',
  4692. type=ValueType(name='int'),
  4693. doc='number of non-zeros in constraint Jacobian',
  4694. ),
  4695. StructFieldDecl(
  4696. name='nisland',
  4697. type=ValueType(name='int'),
  4698. doc='number of detected constraint islands',
  4699. ),
  4700. StructFieldDecl(
  4701. name='time',
  4702. type=ValueType(name='mjtNum'),
  4703. doc='simulation time',
  4704. ),
  4705. StructFieldDecl(
  4706. name='energy',
  4707. type=ArrayType(
  4708. inner_type=ValueType(name='mjtNum'),
  4709. extents=(2,),
  4710. ),
  4711. doc='potential, kinetic energy',
  4712. ),
  4713. StructFieldDecl(
  4714. name='buffer',
  4715. type=PointerType(
  4716. inner_type=ValueType(name='void'),
  4717. ),
  4718. doc='main buffer; all pointers point in it (nbuffer bytes)', # pylint: disable=line-too-long
  4719. ),
  4720. StructFieldDecl(
  4721. name='arena',
  4722. type=PointerType(
  4723. inner_type=ValueType(name='void'),
  4724. ),
  4725. doc='arena+stack buffer (narena bytes)', # pylint: disable=line-too-long
  4726. ),
  4727. StructFieldDecl(
  4728. name='qpos',
  4729. type=PointerType(
  4730. inner_type=ValueType(name='mjtNum'),
  4731. ),
  4732. doc='position',
  4733. array_extent=('nq',),
  4734. ),
  4735. StructFieldDecl(
  4736. name='qvel',
  4737. type=PointerType(
  4738. inner_type=ValueType(name='mjtNum'),
  4739. ),
  4740. doc='velocity',
  4741. array_extent=('nv',),
  4742. ),
  4743. StructFieldDecl(
  4744. name='act',
  4745. type=PointerType(
  4746. inner_type=ValueType(name='mjtNum'),
  4747. ),
  4748. doc='actuator activation',
  4749. array_extent=('na',),
  4750. ),
  4751. StructFieldDecl(
  4752. name='qacc_warmstart',
  4753. type=PointerType(
  4754. inner_type=ValueType(name='mjtNum'),
  4755. ),
  4756. doc='acceleration used for warmstart',
  4757. array_extent=('nv',),
  4758. ),
  4759. StructFieldDecl(
  4760. name='plugin_state',
  4761. type=PointerType(
  4762. inner_type=ValueType(name='mjtNum'),
  4763. ),
  4764. doc='plugin state',
  4765. array_extent=('npluginstate',),
  4766. ),
  4767. StructFieldDecl(
  4768. name='ctrl',
  4769. type=PointerType(
  4770. inner_type=ValueType(name='mjtNum'),
  4771. ),
  4772. doc='control',
  4773. array_extent=('nu',),
  4774. ),
  4775. StructFieldDecl(
  4776. name='qfrc_applied',
  4777. type=PointerType(
  4778. inner_type=ValueType(name='mjtNum'),
  4779. ),
  4780. doc='applied generalized force',
  4781. array_extent=('nv',),
  4782. ),
  4783. StructFieldDecl(
  4784. name='xfrc_applied',
  4785. type=PointerType(
  4786. inner_type=ValueType(name='mjtNum'),
  4787. ),
  4788. doc='applied Cartesian force/torque',
  4789. array_extent=('nbody', 6),
  4790. ),
  4791. StructFieldDecl(
  4792. name='eq_active',
  4793. type=PointerType(
  4794. inner_type=ValueType(name='mjtByte'),
  4795. ),
  4796. doc='enable/disable constraints',
  4797. array_extent=('neq',),
  4798. ),
  4799. StructFieldDecl(
  4800. name='mocap_pos',
  4801. type=PointerType(
  4802. inner_type=ValueType(name='mjtNum'),
  4803. ),
  4804. doc='positions of mocap bodies',
  4805. array_extent=('nmocap', 3),
  4806. ),
  4807. StructFieldDecl(
  4808. name='mocap_quat',
  4809. type=PointerType(
  4810. inner_type=ValueType(name='mjtNum'),
  4811. ),
  4812. doc='orientations of mocap bodies',
  4813. array_extent=('nmocap', 4),
  4814. ),
  4815. StructFieldDecl(
  4816. name='qacc',
  4817. type=PointerType(
  4818. inner_type=ValueType(name='mjtNum'),
  4819. ),
  4820. doc='acceleration',
  4821. array_extent=('nv',),
  4822. ),
  4823. StructFieldDecl(
  4824. name='act_dot',
  4825. type=PointerType(
  4826. inner_type=ValueType(name='mjtNum'),
  4827. ),
  4828. doc='time-derivative of actuator activation',
  4829. array_extent=('na',),
  4830. ),
  4831. StructFieldDecl(
  4832. name='userdata',
  4833. type=PointerType(
  4834. inner_type=ValueType(name='mjtNum'),
  4835. ),
  4836. doc='user data, not touched by engine',
  4837. array_extent=('nuserdata',),
  4838. ),
  4839. StructFieldDecl(
  4840. name='sensordata',
  4841. type=PointerType(
  4842. inner_type=ValueType(name='mjtNum'),
  4843. ),
  4844. doc='sensor data array',
  4845. array_extent=('nsensordata',),
  4846. ),
  4847. StructFieldDecl(
  4848. name='plugin',
  4849. type=PointerType(
  4850. inner_type=ValueType(name='int'),
  4851. ),
  4852. doc='copy of m->plugin, required for deletion',
  4853. array_extent=('nplugin',),
  4854. ),
  4855. StructFieldDecl(
  4856. name='plugin_data',
  4857. type=PointerType(
  4858. inner_type=ValueType(name='uintptr_t'),
  4859. ),
  4860. doc='pointer to plugin-managed data structure',
  4861. array_extent=('nplugin',),
  4862. ),
  4863. StructFieldDecl(
  4864. name='xpos',
  4865. type=PointerType(
  4866. inner_type=ValueType(name='mjtNum'),
  4867. ),
  4868. doc='Cartesian position of body frame',
  4869. array_extent=('nbody', 3),
  4870. ),
  4871. StructFieldDecl(
  4872. name='xquat',
  4873. type=PointerType(
  4874. inner_type=ValueType(name='mjtNum'),
  4875. ),
  4876. doc='Cartesian orientation of body frame',
  4877. array_extent=('nbody', 4),
  4878. ),
  4879. StructFieldDecl(
  4880. name='xmat',
  4881. type=PointerType(
  4882. inner_type=ValueType(name='mjtNum'),
  4883. ),
  4884. doc='Cartesian orientation of body frame',
  4885. array_extent=('nbody', 9),
  4886. ),
  4887. StructFieldDecl(
  4888. name='xipos',
  4889. type=PointerType(
  4890. inner_type=ValueType(name='mjtNum'),
  4891. ),
  4892. doc='Cartesian position of body com',
  4893. array_extent=('nbody', 3),
  4894. ),
  4895. StructFieldDecl(
  4896. name='ximat',
  4897. type=PointerType(
  4898. inner_type=ValueType(name='mjtNum'),
  4899. ),
  4900. doc='Cartesian orientation of body inertia',
  4901. array_extent=('nbody', 9),
  4902. ),
  4903. StructFieldDecl(
  4904. name='xanchor',
  4905. type=PointerType(
  4906. inner_type=ValueType(name='mjtNum'),
  4907. ),
  4908. doc='Cartesian position of joint anchor',
  4909. array_extent=('njnt', 3),
  4910. ),
  4911. StructFieldDecl(
  4912. name='xaxis',
  4913. type=PointerType(
  4914. inner_type=ValueType(name='mjtNum'),
  4915. ),
  4916. doc='Cartesian joint axis',
  4917. array_extent=('njnt', 3),
  4918. ),
  4919. StructFieldDecl(
  4920. name='geom_xpos',
  4921. type=PointerType(
  4922. inner_type=ValueType(name='mjtNum'),
  4923. ),
  4924. doc='Cartesian geom position',
  4925. array_extent=('ngeom', 3),
  4926. ),
  4927. StructFieldDecl(
  4928. name='geom_xmat',
  4929. type=PointerType(
  4930. inner_type=ValueType(name='mjtNum'),
  4931. ),
  4932. doc='Cartesian geom orientation',
  4933. array_extent=('ngeom', 9),
  4934. ),
  4935. StructFieldDecl(
  4936. name='site_xpos',
  4937. type=PointerType(
  4938. inner_type=ValueType(name='mjtNum'),
  4939. ),
  4940. doc='Cartesian site position',
  4941. array_extent=('nsite', 3),
  4942. ),
  4943. StructFieldDecl(
  4944. name='site_xmat',
  4945. type=PointerType(
  4946. inner_type=ValueType(name='mjtNum'),
  4947. ),
  4948. doc='Cartesian site orientation',
  4949. array_extent=('nsite', 9),
  4950. ),
  4951. StructFieldDecl(
  4952. name='cam_xpos',
  4953. type=PointerType(
  4954. inner_type=ValueType(name='mjtNum'),
  4955. ),
  4956. doc='Cartesian camera position',
  4957. array_extent=('ncam', 3),
  4958. ),
  4959. StructFieldDecl(
  4960. name='cam_xmat',
  4961. type=PointerType(
  4962. inner_type=ValueType(name='mjtNum'),
  4963. ),
  4964. doc='Cartesian camera orientation',
  4965. array_extent=('ncam', 9),
  4966. ),
  4967. StructFieldDecl(
  4968. name='light_xpos',
  4969. type=PointerType(
  4970. inner_type=ValueType(name='mjtNum'),
  4971. ),
  4972. doc='Cartesian light position',
  4973. array_extent=('nlight', 3),
  4974. ),
  4975. StructFieldDecl(
  4976. name='light_xdir',
  4977. type=PointerType(
  4978. inner_type=ValueType(name='mjtNum'),
  4979. ),
  4980. doc='Cartesian light direction',
  4981. array_extent=('nlight', 3),
  4982. ),
  4983. StructFieldDecl(
  4984. name='subtree_com',
  4985. type=PointerType(
  4986. inner_type=ValueType(name='mjtNum'),
  4987. ),
  4988. doc='center of mass of each subtree',
  4989. array_extent=('nbody', 3),
  4990. ),
  4991. StructFieldDecl(
  4992. name='cdof',
  4993. type=PointerType(
  4994. inner_type=ValueType(name='mjtNum'),
  4995. ),
  4996. doc='com-based motion axis of each dof (rot:lin)',
  4997. array_extent=('nv', 6),
  4998. ),
  4999. StructFieldDecl(
  5000. name='cinert',
  5001. type=PointerType(
  5002. inner_type=ValueType(name='mjtNum'),
  5003. ),
  5004. doc='com-based body inertia and mass',
  5005. array_extent=('nbody', 10),
  5006. ),
  5007. StructFieldDecl(
  5008. name='flexvert_xpos',
  5009. type=PointerType(
  5010. inner_type=ValueType(name='mjtNum'),
  5011. ),
  5012. doc='Cartesian flex vertex positions',
  5013. array_extent=('nflexvert', 3),
  5014. ),
  5015. StructFieldDecl(
  5016. name='flexelem_aabb',
  5017. type=PointerType(
  5018. inner_type=ValueType(name='mjtNum'),
  5019. ),
  5020. doc='flex element bounding boxes (center, size)',
  5021. array_extent=('nflexelem', 6),
  5022. ),
  5023. StructFieldDecl(
  5024. name='flexedge_J_rownnz',
  5025. type=PointerType(
  5026. inner_type=ValueType(name='int'),
  5027. ),
  5028. doc='number of non-zeros in Jacobian row',
  5029. array_extent=('nflexedge',),
  5030. ),
  5031. StructFieldDecl(
  5032. name='flexedge_J_rowadr',
  5033. type=PointerType(
  5034. inner_type=ValueType(name='int'),
  5035. ),
  5036. doc='row start address in colind array',
  5037. array_extent=('nflexedge',),
  5038. ),
  5039. StructFieldDecl(
  5040. name='flexedge_J_colind',
  5041. type=PointerType(
  5042. inner_type=ValueType(name='int'),
  5043. ),
  5044. doc='column indices in sparse Jacobian',
  5045. array_extent=('nflexedge', 'nv'),
  5046. ),
  5047. StructFieldDecl(
  5048. name='flexedge_J',
  5049. type=PointerType(
  5050. inner_type=ValueType(name='mjtNum'),
  5051. ),
  5052. doc='flex edge Jacobian',
  5053. array_extent=('nflexedge', 'nv'),
  5054. ),
  5055. StructFieldDecl(
  5056. name='flexedge_length',
  5057. type=PointerType(
  5058. inner_type=ValueType(name='mjtNum'),
  5059. ),
  5060. doc='flex edge lengths',
  5061. array_extent=('nflexedge',),
  5062. ),
  5063. StructFieldDecl(
  5064. name='ten_wrapadr',
  5065. type=PointerType(
  5066. inner_type=ValueType(name='int'),
  5067. ),
  5068. doc="start address of tendon's path",
  5069. array_extent=('ntendon',),
  5070. ),
  5071. StructFieldDecl(
  5072. name='ten_wrapnum',
  5073. type=PointerType(
  5074. inner_type=ValueType(name='int'),
  5075. ),
  5076. doc='number of wrap points in path',
  5077. array_extent=('ntendon',),
  5078. ),
  5079. StructFieldDecl(
  5080. name='ten_J_rownnz',
  5081. type=PointerType(
  5082. inner_type=ValueType(name='int'),
  5083. ),
  5084. doc='number of non-zeros in Jacobian row',
  5085. array_extent=('ntendon',),
  5086. ),
  5087. StructFieldDecl(
  5088. name='ten_J_rowadr',
  5089. type=PointerType(
  5090. inner_type=ValueType(name='int'),
  5091. ),
  5092. doc='row start address in colind array',
  5093. array_extent=('ntendon',),
  5094. ),
  5095. StructFieldDecl(
  5096. name='ten_J_colind',
  5097. type=PointerType(
  5098. inner_type=ValueType(name='int'),
  5099. ),
  5100. doc='column indices in sparse Jacobian',
  5101. array_extent=('ntendon', 'nv'),
  5102. ),
  5103. StructFieldDecl(
  5104. name='ten_J',
  5105. type=PointerType(
  5106. inner_type=ValueType(name='mjtNum'),
  5107. ),
  5108. doc='tendon Jacobian',
  5109. array_extent=('ntendon', 'nv'),
  5110. ),
  5111. StructFieldDecl(
  5112. name='ten_length',
  5113. type=PointerType(
  5114. inner_type=ValueType(name='mjtNum'),
  5115. ),
  5116. doc='tendon lengths',
  5117. array_extent=('ntendon',),
  5118. ),
  5119. StructFieldDecl(
  5120. name='wrap_obj',
  5121. type=PointerType(
  5122. inner_type=ValueType(name='int'),
  5123. ),
  5124. doc='geom id; -1: site; -2: pulley',
  5125. array_extent=('nwrap', 2),
  5126. ),
  5127. StructFieldDecl(
  5128. name='wrap_xpos',
  5129. type=PointerType(
  5130. inner_type=ValueType(name='mjtNum'),
  5131. ),
  5132. doc='Cartesian 3D points in all paths',
  5133. array_extent=('nwrap', 6),
  5134. ),
  5135. StructFieldDecl(
  5136. name='actuator_length',
  5137. type=PointerType(
  5138. inner_type=ValueType(name='mjtNum'),
  5139. ),
  5140. doc='actuator lengths',
  5141. array_extent=('nu',),
  5142. ),
  5143. StructFieldDecl(
  5144. name='moment_rownnz',
  5145. type=PointerType(
  5146. inner_type=ValueType(name='int'),
  5147. ),
  5148. doc='number of non-zeros in actuator_moment row',
  5149. array_extent=('nu',),
  5150. ),
  5151. StructFieldDecl(
  5152. name='moment_rowadr',
  5153. type=PointerType(
  5154. inner_type=ValueType(name='int'),
  5155. ),
  5156. doc='row start address in colind array',
  5157. array_extent=('nu',),
  5158. ),
  5159. StructFieldDecl(
  5160. name='moment_colind',
  5161. type=PointerType(
  5162. inner_type=ValueType(name='int'),
  5163. ),
  5164. doc='column indices in sparse Jacobian',
  5165. array_extent=('nu', 'nv'),
  5166. ),
  5167. StructFieldDecl(
  5168. name='actuator_moment',
  5169. type=PointerType(
  5170. inner_type=ValueType(name='mjtNum'),
  5171. ),
  5172. doc='actuator moments',
  5173. array_extent=('nu', 'nv'),
  5174. ),
  5175. StructFieldDecl(
  5176. name='crb',
  5177. type=PointerType(
  5178. inner_type=ValueType(name='mjtNum'),
  5179. ),
  5180. doc='com-based composite inertia and mass',
  5181. array_extent=('nbody', 10),
  5182. ),
  5183. StructFieldDecl(
  5184. name='qM',
  5185. type=PointerType(
  5186. inner_type=ValueType(name='mjtNum'),
  5187. ),
  5188. doc='total inertia (sparse)',
  5189. array_extent=('nM',),
  5190. ),
  5191. StructFieldDecl(
  5192. name='qLD',
  5193. type=PointerType(
  5194. inner_type=ValueType(name='mjtNum'),
  5195. ),
  5196. doc="L'*D*L factorization of M (sparse)",
  5197. array_extent=('nM',),
  5198. ),
  5199. StructFieldDecl(
  5200. name='qLDiagInv',
  5201. type=PointerType(
  5202. inner_type=ValueType(name='mjtNum'),
  5203. ),
  5204. doc='1/diag(D)',
  5205. array_extent=('nv',),
  5206. ),
  5207. StructFieldDecl(
  5208. name='qLDiagSqrtInv',
  5209. type=PointerType(
  5210. inner_type=ValueType(name='mjtNum'),
  5211. ),
  5212. doc='1/sqrt(diag(D))',
  5213. array_extent=('nv',),
  5214. ),
  5215. StructFieldDecl(
  5216. name='bvh_aabb_dyn',
  5217. type=PointerType(
  5218. inner_type=ValueType(name='mjtNum'),
  5219. ),
  5220. doc='global bounding box (center, size)',
  5221. array_extent=('nbvhdynamic', 6),
  5222. ),
  5223. StructFieldDecl(
  5224. name='bvh_active',
  5225. type=PointerType(
  5226. inner_type=ValueType(name='mjtByte'),
  5227. ),
  5228. doc='was bounding volume checked for collision',
  5229. array_extent=('nbvh',),
  5230. ),
  5231. StructFieldDecl(
  5232. name='flexedge_velocity',
  5233. type=PointerType(
  5234. inner_type=ValueType(name='mjtNum'),
  5235. ),
  5236. doc='flex edge velocities',
  5237. array_extent=('nflexedge',),
  5238. ),
  5239. StructFieldDecl(
  5240. name='ten_velocity',
  5241. type=PointerType(
  5242. inner_type=ValueType(name='mjtNum'),
  5243. ),
  5244. doc='tendon velocities',
  5245. array_extent=('ntendon',),
  5246. ),
  5247. StructFieldDecl(
  5248. name='actuator_velocity',
  5249. type=PointerType(
  5250. inner_type=ValueType(name='mjtNum'),
  5251. ),
  5252. doc='actuator velocities',
  5253. array_extent=('nu',),
  5254. ),
  5255. StructFieldDecl(
  5256. name='cvel',
  5257. type=PointerType(
  5258. inner_type=ValueType(name='mjtNum'),
  5259. ),
  5260. doc='com-based velocity (rot:lin)',
  5261. array_extent=('nbody', 6),
  5262. ),
  5263. StructFieldDecl(
  5264. name='cdof_dot',
  5265. type=PointerType(
  5266. inner_type=ValueType(name='mjtNum'),
  5267. ),
  5268. doc='time-derivative of cdof (rot:lin)',
  5269. array_extent=('nv', 6),
  5270. ),
  5271. StructFieldDecl(
  5272. name='qfrc_bias',
  5273. type=PointerType(
  5274. inner_type=ValueType(name='mjtNum'),
  5275. ),
  5276. doc='C(qpos,qvel)',
  5277. array_extent=('nv',),
  5278. ),
  5279. StructFieldDecl(
  5280. name='qfrc_spring',
  5281. type=PointerType(
  5282. inner_type=ValueType(name='mjtNum'),
  5283. ),
  5284. doc='passive spring force',
  5285. array_extent=('nv',),
  5286. ),
  5287. StructFieldDecl(
  5288. name='qfrc_damper',
  5289. type=PointerType(
  5290. inner_type=ValueType(name='mjtNum'),
  5291. ),
  5292. doc='passive damper force',
  5293. array_extent=('nv',),
  5294. ),
  5295. StructFieldDecl(
  5296. name='qfrc_gravcomp',
  5297. type=PointerType(
  5298. inner_type=ValueType(name='mjtNum'),
  5299. ),
  5300. doc='passive gravity compensation force',
  5301. array_extent=('nv',),
  5302. ),
  5303. StructFieldDecl(
  5304. name='qfrc_fluid',
  5305. type=PointerType(
  5306. inner_type=ValueType(name='mjtNum'),
  5307. ),
  5308. doc='passive fluid force',
  5309. array_extent=('nv',),
  5310. ),
  5311. StructFieldDecl(
  5312. name='qfrc_passive',
  5313. type=PointerType(
  5314. inner_type=ValueType(name='mjtNum'),
  5315. ),
  5316. doc='total passive force',
  5317. array_extent=('nv',),
  5318. ),
  5319. StructFieldDecl(
  5320. name='subtree_linvel',
  5321. type=PointerType(
  5322. inner_type=ValueType(name='mjtNum'),
  5323. ),
  5324. doc='linear velocity of subtree com',
  5325. array_extent=('nbody', 3),
  5326. ),
  5327. StructFieldDecl(
  5328. name='subtree_angmom',
  5329. type=PointerType(
  5330. inner_type=ValueType(name='mjtNum'),
  5331. ),
  5332. doc='angular momentum about subtree com',
  5333. array_extent=('nbody', 3),
  5334. ),
  5335. StructFieldDecl(
  5336. name='qH',
  5337. type=PointerType(
  5338. inner_type=ValueType(name='mjtNum'),
  5339. ),
  5340. doc="L'*D*L factorization of modified M",
  5341. array_extent=('nM',),
  5342. ),
  5343. StructFieldDecl(
  5344. name='qHDiagInv',
  5345. type=PointerType(
  5346. inner_type=ValueType(name='mjtNum'),
  5347. ),
  5348. doc='1/diag(D) of modified M',
  5349. array_extent=('nv',),
  5350. ),
  5351. StructFieldDecl(
  5352. name='B_rownnz',
  5353. type=PointerType(
  5354. inner_type=ValueType(name='int'),
  5355. ),
  5356. doc='body-dof: non-zeros in each row',
  5357. array_extent=('nbody',),
  5358. ),
  5359. StructFieldDecl(
  5360. name='B_rowadr',
  5361. type=PointerType(
  5362. inner_type=ValueType(name='int'),
  5363. ),
  5364. doc='body-dof: address of each row in B_colind',
  5365. array_extent=('nbody',),
  5366. ),
  5367. StructFieldDecl(
  5368. name='B_colind',
  5369. type=PointerType(
  5370. inner_type=ValueType(name='int'),
  5371. ),
  5372. doc='body-dof: column indices of non-zeros',
  5373. array_extent=('nB',),
  5374. ),
  5375. StructFieldDecl(
  5376. name='C_rownnz',
  5377. type=PointerType(
  5378. inner_type=ValueType(name='int'),
  5379. ),
  5380. doc='reduced dof-dof: non-zeros in each row',
  5381. array_extent=('nv',),
  5382. ),
  5383. StructFieldDecl(
  5384. name='C_rowadr',
  5385. type=PointerType(
  5386. inner_type=ValueType(name='int'),
  5387. ),
  5388. doc='reduced dof-dof: address of each row in C_colind (nv x 1)', # pylint: disable=line-too-long
  5389. ),
  5390. StructFieldDecl(
  5391. name='C_colind',
  5392. type=PointerType(
  5393. inner_type=ValueType(name='int'),
  5394. ),
  5395. doc='reduced dof-dof: column indices of non-zeros',
  5396. array_extent=('nC',),
  5397. ),
  5398. StructFieldDecl(
  5399. name='mapM2C',
  5400. type=PointerType(
  5401. inner_type=ValueType(name='int'),
  5402. ),
  5403. doc='index mapping from M to C',
  5404. array_extent=('nC',),
  5405. ),
  5406. StructFieldDecl(
  5407. name='D_rownnz',
  5408. type=PointerType(
  5409. inner_type=ValueType(name='int'),
  5410. ),
  5411. doc='dof-dof: non-zeros in each row',
  5412. array_extent=('nv',),
  5413. ),
  5414. StructFieldDecl(
  5415. name='D_rowadr',
  5416. type=PointerType(
  5417. inner_type=ValueType(name='int'),
  5418. ),
  5419. doc='dof-dof: address of each row in D_colind',
  5420. array_extent=('nv',),
  5421. ),
  5422. StructFieldDecl(
  5423. name='D_colind',
  5424. type=PointerType(
  5425. inner_type=ValueType(name='int'),
  5426. ),
  5427. doc='dof-dof: column indices of non-zeros',
  5428. array_extent=('nD',),
  5429. ),
  5430. StructFieldDecl(
  5431. name='mapM2D',
  5432. type=PointerType(
  5433. inner_type=ValueType(name='int'),
  5434. ),
  5435. doc='index mapping from M to D',
  5436. array_extent=('nD',),
  5437. ),
  5438. StructFieldDecl(
  5439. name='mapD2M',
  5440. type=PointerType(
  5441. inner_type=ValueType(name='int'),
  5442. ),
  5443. doc='index mapping from D to M',
  5444. array_extent=('nM',),
  5445. ),
  5446. StructFieldDecl(
  5447. name='qDeriv',
  5448. type=PointerType(
  5449. inner_type=ValueType(name='mjtNum'),
  5450. ),
  5451. doc='d (passive + actuator - bias) / d qvel',
  5452. array_extent=('nD',),
  5453. ),
  5454. StructFieldDecl(
  5455. name='qLU',
  5456. type=PointerType(
  5457. inner_type=ValueType(name='mjtNum'),
  5458. ),
  5459. doc='sparse LU of (qM - dt*qDeriv)',
  5460. array_extent=('nD',),
  5461. ),
  5462. StructFieldDecl(
  5463. name='actuator_force',
  5464. type=PointerType(
  5465. inner_type=ValueType(name='mjtNum'),
  5466. ),
  5467. doc='actuator force in actuation space',
  5468. array_extent=('nu',),
  5469. ),
  5470. StructFieldDecl(
  5471. name='qfrc_actuator',
  5472. type=PointerType(
  5473. inner_type=ValueType(name='mjtNum'),
  5474. ),
  5475. doc='actuator force',
  5476. array_extent=('nv',),
  5477. ),
  5478. StructFieldDecl(
  5479. name='qfrc_smooth',
  5480. type=PointerType(
  5481. inner_type=ValueType(name='mjtNum'),
  5482. ),
  5483. doc='net unconstrained force',
  5484. array_extent=('nv',),
  5485. ),
  5486. StructFieldDecl(
  5487. name='qacc_smooth',
  5488. type=PointerType(
  5489. inner_type=ValueType(name='mjtNum'),
  5490. ),
  5491. doc='unconstrained acceleration',
  5492. array_extent=('nv',),
  5493. ),
  5494. StructFieldDecl(
  5495. name='qfrc_constraint',
  5496. type=PointerType(
  5497. inner_type=ValueType(name='mjtNum'),
  5498. ),
  5499. doc='constraint force',
  5500. array_extent=('nv',),
  5501. ),
  5502. StructFieldDecl(
  5503. name='qfrc_inverse',
  5504. type=PointerType(
  5505. inner_type=ValueType(name='mjtNum'),
  5506. ),
  5507. doc="net external force; should equal: (nv x 1)qfrc_applied + J'*xfrc_applied + qfrc_actuator", # pylint: disable=line-too-long
  5508. ),
  5509. StructFieldDecl(
  5510. name='cacc',
  5511. type=PointerType(
  5512. inner_type=ValueType(name='mjtNum'),
  5513. ),
  5514. doc='com-based acceleration',
  5515. array_extent=('nbody', 6),
  5516. ),
  5517. StructFieldDecl(
  5518. name='cfrc_int',
  5519. type=PointerType(
  5520. inner_type=ValueType(name='mjtNum'),
  5521. ),
  5522. doc='com-based interaction force with parent',
  5523. array_extent=('nbody', 6),
  5524. ),
  5525. StructFieldDecl(
  5526. name='cfrc_ext',
  5527. type=PointerType(
  5528. inner_type=ValueType(name='mjtNum'),
  5529. ),
  5530. doc='com-based external force on body',
  5531. array_extent=('nbody', 6),
  5532. ),
  5533. StructFieldDecl(
  5534. name='contact',
  5535. type=PointerType(
  5536. inner_type=ValueType(name='mjContact'),
  5537. ),
  5538. doc='array of all detected contacts',
  5539. array_extent=('ncon',),
  5540. ),
  5541. StructFieldDecl(
  5542. name='efc_type',
  5543. type=PointerType(
  5544. inner_type=ValueType(name='int'),
  5545. ),
  5546. doc='constraint type (mjtConstraint)',
  5547. array_extent=('nefc',),
  5548. ),
  5549. StructFieldDecl(
  5550. name='efc_id',
  5551. type=PointerType(
  5552. inner_type=ValueType(name='int'),
  5553. ),
  5554. doc='id of object of specified type',
  5555. array_extent=('nefc',),
  5556. ),
  5557. StructFieldDecl(
  5558. name='efc_J_rownnz',
  5559. type=PointerType(
  5560. inner_type=ValueType(name='int'),
  5561. ),
  5562. doc='number of non-zeros in constraint Jacobian row',
  5563. array_extent=('nefc',),
  5564. ),
  5565. StructFieldDecl(
  5566. name='efc_J_rowadr',
  5567. type=PointerType(
  5568. inner_type=ValueType(name='int'),
  5569. ),
  5570. doc='row start address in colind array',
  5571. array_extent=('nefc',),
  5572. ),
  5573. StructFieldDecl(
  5574. name='efc_J_rowsuper',
  5575. type=PointerType(
  5576. inner_type=ValueType(name='int'),
  5577. ),
  5578. doc='number of subsequent rows in supernode',
  5579. array_extent=('nefc',),
  5580. ),
  5581. StructFieldDecl(
  5582. name='efc_J_colind',
  5583. type=PointerType(
  5584. inner_type=ValueType(name='int'),
  5585. ),
  5586. doc='column indices in constraint Jacobian',
  5587. array_extent=('nnzJ',),
  5588. ),
  5589. StructFieldDecl(
  5590. name='efc_JT_rownnz',
  5591. type=PointerType(
  5592. inner_type=ValueType(name='int'),
  5593. ),
  5594. doc='number of non-zeros in constraint Jacobian row T (nv x 1)', # pylint: disable=line-too-long
  5595. ),
  5596. StructFieldDecl(
  5597. name='efc_JT_rowadr',
  5598. type=PointerType(
  5599. inner_type=ValueType(name='int'),
  5600. ),
  5601. doc='row start address in colind array T (nv x 1)', # pylint: disable=line-too-long
  5602. ),
  5603. StructFieldDecl(
  5604. name='efc_JT_rowsuper',
  5605. type=PointerType(
  5606. inner_type=ValueType(name='int'),
  5607. ),
  5608. doc='number of subsequent rows in supernode T (nv x 1)', # pylint: disable=line-too-long
  5609. ),
  5610. StructFieldDecl(
  5611. name='efc_JT_colind',
  5612. type=PointerType(
  5613. inner_type=ValueType(name='int'),
  5614. ),
  5615. doc='column indices in constraint Jacobian T (nnzJ x 1)', # pylint: disable=line-too-long
  5616. ),
  5617. StructFieldDecl(
  5618. name='efc_J',
  5619. type=PointerType(
  5620. inner_type=ValueType(name='mjtNum'),
  5621. ),
  5622. doc='constraint Jacobian',
  5623. array_extent=('nnzJ',),
  5624. ),
  5625. StructFieldDecl(
  5626. name='efc_JT',
  5627. type=PointerType(
  5628. inner_type=ValueType(name='mjtNum'),
  5629. ),
  5630. doc='constraint Jacobian transposed',
  5631. array_extent=('nnzJ',),
  5632. ),
  5633. StructFieldDecl(
  5634. name='efc_pos',
  5635. type=PointerType(
  5636. inner_type=ValueType(name='mjtNum'),
  5637. ),
  5638. doc='constraint position (equality, contact)',
  5639. array_extent=('nefc',),
  5640. ),
  5641. StructFieldDecl(
  5642. name='efc_margin',
  5643. type=PointerType(
  5644. inner_type=ValueType(name='mjtNum'),
  5645. ),
  5646. doc='inclusion margin (contact)',
  5647. array_extent=('nefc',),
  5648. ),
  5649. StructFieldDecl(
  5650. name='efc_frictionloss',
  5651. type=PointerType(
  5652. inner_type=ValueType(name='mjtNum'),
  5653. ),
  5654. doc='frictionloss (friction)',
  5655. array_extent=('nefc',),
  5656. ),
  5657. StructFieldDecl(
  5658. name='efc_diagApprox',
  5659. type=PointerType(
  5660. inner_type=ValueType(name='mjtNum'),
  5661. ),
  5662. doc='approximation to diagonal of A',
  5663. array_extent=('nefc',),
  5664. ),
  5665. StructFieldDecl(
  5666. name='efc_KBIP',
  5667. type=PointerType(
  5668. inner_type=ValueType(name='mjtNum'),
  5669. ),
  5670. doc="stiffness, damping, impedance, imp'",
  5671. array_extent=('nefc', 4),
  5672. ),
  5673. StructFieldDecl(
  5674. name='efc_D',
  5675. type=PointerType(
  5676. inner_type=ValueType(name='mjtNum'),
  5677. ),
  5678. doc='constraint mass',
  5679. array_extent=('nefc',),
  5680. ),
  5681. StructFieldDecl(
  5682. name='efc_R',
  5683. type=PointerType(
  5684. inner_type=ValueType(name='mjtNum'),
  5685. ),
  5686. doc='inverse constraint mass',
  5687. array_extent=('nefc',),
  5688. ),
  5689. StructFieldDecl(
  5690. name='tendon_efcadr',
  5691. type=PointerType(
  5692. inner_type=ValueType(name='int'),
  5693. ),
  5694. doc='first efc address involving tendon; -1: none',
  5695. array_extent=('ntendon',),
  5696. ),
  5697. StructFieldDecl(
  5698. name='dof_island',
  5699. type=PointerType(
  5700. inner_type=ValueType(name='int'),
  5701. ),
  5702. doc='island id of this dof; -1: none',
  5703. array_extent=('nv',),
  5704. ),
  5705. StructFieldDecl(
  5706. name='island_dofnum',
  5707. type=PointerType(
  5708. inner_type=ValueType(name='int'),
  5709. ),
  5710. doc='number of dofs in island',
  5711. array_extent=('nisland',),
  5712. ),
  5713. StructFieldDecl(
  5714. name='island_dofadr',
  5715. type=PointerType(
  5716. inner_type=ValueType(name='int'),
  5717. ),
  5718. doc='start address in island_dofind',
  5719. array_extent=('nisland',),
  5720. ),
  5721. StructFieldDecl(
  5722. name='island_dofind',
  5723. type=PointerType(
  5724. inner_type=ValueType(name='int'),
  5725. ),
  5726. doc='island dof indices; -1: none',
  5727. array_extent=('nv',),
  5728. ),
  5729. StructFieldDecl(
  5730. name='dof_islandind',
  5731. type=PointerType(
  5732. inner_type=ValueType(name='int'),
  5733. ),
  5734. doc='dof island indices; -1: none',
  5735. array_extent=('nv',),
  5736. ),
  5737. StructFieldDecl(
  5738. name='efc_island',
  5739. type=PointerType(
  5740. inner_type=ValueType(name='int'),
  5741. ),
  5742. doc='island id of this constraint',
  5743. array_extent=('nefc',),
  5744. ),
  5745. StructFieldDecl(
  5746. name='island_efcnum',
  5747. type=PointerType(
  5748. inner_type=ValueType(name='int'),
  5749. ),
  5750. doc='number of constraints in island',
  5751. array_extent=('nisland',),
  5752. ),
  5753. StructFieldDecl(
  5754. name='island_efcadr',
  5755. type=PointerType(
  5756. inner_type=ValueType(name='int'),
  5757. ),
  5758. doc='start address in island_efcind',
  5759. array_extent=('nisland',),
  5760. ),
  5761. StructFieldDecl(
  5762. name='island_efcind',
  5763. type=PointerType(
  5764. inner_type=ValueType(name='int'),
  5765. ),
  5766. doc='island constraint indices',
  5767. array_extent=('nefc',),
  5768. ),
  5769. StructFieldDecl(
  5770. name='efc_AR_rownnz',
  5771. type=PointerType(
  5772. inner_type=ValueType(name='int'),
  5773. ),
  5774. doc='number of non-zeros in AR',
  5775. array_extent=('nefc',),
  5776. ),
  5777. StructFieldDecl(
  5778. name='efc_AR_rowadr',
  5779. type=PointerType(
  5780. inner_type=ValueType(name='int'),
  5781. ),
  5782. doc='row start address in colind array',
  5783. array_extent=('nefc',),
  5784. ),
  5785. StructFieldDecl(
  5786. name='efc_AR_colind',
  5787. type=PointerType(
  5788. inner_type=ValueType(name='int'),
  5789. ),
  5790. doc='column indices in sparse AR',
  5791. array_extent=('nefc', 'nefc'),
  5792. ),
  5793. StructFieldDecl(
  5794. name='efc_AR',
  5795. type=PointerType(
  5796. inner_type=ValueType(name='mjtNum'),
  5797. ),
  5798. doc="J*inv(M)*J' + R",
  5799. array_extent=('nefc', 'nefc'),
  5800. ),
  5801. StructFieldDecl(
  5802. name='efc_vel',
  5803. type=PointerType(
  5804. inner_type=ValueType(name='mjtNum'),
  5805. ),
  5806. doc='velocity in constraint space: J*qvel',
  5807. array_extent=('nefc',),
  5808. ),
  5809. StructFieldDecl(
  5810. name='efc_aref',
  5811. type=PointerType(
  5812. inner_type=ValueType(name='mjtNum'),
  5813. ),
  5814. doc='reference pseudo-acceleration',
  5815. array_extent=('nefc',),
  5816. ),
  5817. StructFieldDecl(
  5818. name='efc_b',
  5819. type=PointerType(
  5820. inner_type=ValueType(name='mjtNum'),
  5821. ),
  5822. doc='linear cost term: J*qacc_smooth - aref',
  5823. array_extent=('nefc',),
  5824. ),
  5825. StructFieldDecl(
  5826. name='efc_force',
  5827. type=PointerType(
  5828. inner_type=ValueType(name='mjtNum'),
  5829. ),
  5830. doc='constraint force in constraint space',
  5831. array_extent=('nefc',),
  5832. ),
  5833. StructFieldDecl(
  5834. name='efc_state',
  5835. type=PointerType(
  5836. inner_type=ValueType(name='int'),
  5837. ),
  5838. doc='constraint state (mjtConstraintState)',
  5839. array_extent=('nefc',),
  5840. ),
  5841. StructFieldDecl(
  5842. name='threadpool',
  5843. type=ValueType(name='uintptr_t'),
  5844. doc='thread pool pointer',
  5845. ),
  5846. ),
  5847. )),
  5848. ('mjvPerturb',
  5849. StructDecl(
  5850. name='mjvPerturb',
  5851. declname='struct mjvPerturb_',
  5852. fields=(
  5853. StructFieldDecl(
  5854. name='select',
  5855. type=ValueType(name='int'),
  5856. doc='selected body id; non-positive: none',
  5857. ),
  5858. StructFieldDecl(
  5859. name='flexselect',
  5860. type=ValueType(name='int'),
  5861. doc='selected flex id; negative: none',
  5862. ),
  5863. StructFieldDecl(
  5864. name='skinselect',
  5865. type=ValueType(name='int'),
  5866. doc='selected skin id; negative: none',
  5867. ),
  5868. StructFieldDecl(
  5869. name='active',
  5870. type=ValueType(name='int'),
  5871. doc='perturbation bitmask (mjtPertBit)',
  5872. ),
  5873. StructFieldDecl(
  5874. name='active2',
  5875. type=ValueType(name='int'),
  5876. doc='secondary perturbation bitmask (mjtPertBit)',
  5877. ),
  5878. StructFieldDecl(
  5879. name='refpos',
  5880. type=ArrayType(
  5881. inner_type=ValueType(name='mjtNum'),
  5882. extents=(3,),
  5883. ),
  5884. doc='reference position for selected object',
  5885. ),
  5886. StructFieldDecl(
  5887. name='refquat',
  5888. type=ArrayType(
  5889. inner_type=ValueType(name='mjtNum'),
  5890. extents=(4,),
  5891. ),
  5892. doc='reference orientation for selected object',
  5893. ),
  5894. StructFieldDecl(
  5895. name='refselpos',
  5896. type=ArrayType(
  5897. inner_type=ValueType(name='mjtNum'),
  5898. extents=(3,),
  5899. ),
  5900. doc='reference position for selection point',
  5901. ),
  5902. StructFieldDecl(
  5903. name='localpos',
  5904. type=ArrayType(
  5905. inner_type=ValueType(name='mjtNum'),
  5906. extents=(3,),
  5907. ),
  5908. doc='selection point in object coordinates',
  5909. ),
  5910. StructFieldDecl(
  5911. name='localmass',
  5912. type=ValueType(name='mjtNum'),
  5913. doc='spatial inertia at selection point',
  5914. ),
  5915. StructFieldDecl(
  5916. name='scale',
  5917. type=ValueType(name='mjtNum'),
  5918. doc='relative mouse motion-to-space scaling (set by initPerturb)', # pylint: disable=line-too-long
  5919. ),
  5920. ),
  5921. )),
  5922. ('mjvCamera',
  5923. StructDecl(
  5924. name='mjvCamera',
  5925. declname='struct mjvCamera_',
  5926. fields=(
  5927. StructFieldDecl(
  5928. name='type',
  5929. type=ValueType(name='int'),
  5930. doc='camera type (mjtCamera)',
  5931. ),
  5932. StructFieldDecl(
  5933. name='fixedcamid',
  5934. type=ValueType(name='int'),
  5935. doc='fixed camera id',
  5936. ),
  5937. StructFieldDecl(
  5938. name='trackbodyid',
  5939. type=ValueType(name='int'),
  5940. doc='body id to track',
  5941. ),
  5942. StructFieldDecl(
  5943. name='lookat',
  5944. type=ArrayType(
  5945. inner_type=ValueType(name='mjtNum'),
  5946. extents=(3,),
  5947. ),
  5948. doc='lookat point',
  5949. ),
  5950. StructFieldDecl(
  5951. name='distance',
  5952. type=ValueType(name='mjtNum'),
  5953. doc='distance to lookat point or tracked body',
  5954. ),
  5955. StructFieldDecl(
  5956. name='azimuth',
  5957. type=ValueType(name='mjtNum'),
  5958. doc='camera azimuth (deg)',
  5959. ),
  5960. StructFieldDecl(
  5961. name='elevation',
  5962. type=ValueType(name='mjtNum'),
  5963. doc='camera elevation (deg)',
  5964. ),
  5965. StructFieldDecl(
  5966. name='orthographic',
  5967. type=ValueType(name='int'),
  5968. doc='0: perspective; 1: orthographic',
  5969. ),
  5970. ),
  5971. )),
  5972. ('mjvGLCamera',
  5973. StructDecl(
  5974. name='mjvGLCamera',
  5975. declname='struct mjvGLCamera_',
  5976. fields=(
  5977. StructFieldDecl(
  5978. name='pos',
  5979. type=ArrayType(
  5980. inner_type=ValueType(name='float'),
  5981. extents=(3,),
  5982. ),
  5983. doc='position',
  5984. ),
  5985. StructFieldDecl(
  5986. name='forward',
  5987. type=ArrayType(
  5988. inner_type=ValueType(name='float'),
  5989. extents=(3,),
  5990. ),
  5991. doc='forward direction',
  5992. ),
  5993. StructFieldDecl(
  5994. name='up',
  5995. type=ArrayType(
  5996. inner_type=ValueType(name='float'),
  5997. extents=(3,),
  5998. ),
  5999. doc='up direction',
  6000. ),
  6001. StructFieldDecl(
  6002. name='frustum_center',
  6003. type=ValueType(name='float'),
  6004. doc='hor. center (left,right set to match aspect)',
  6005. ),
  6006. StructFieldDecl(
  6007. name='frustum_width',
  6008. type=ValueType(name='float'),
  6009. doc='width (not used for rendering)',
  6010. ),
  6011. StructFieldDecl(
  6012. name='frustum_bottom',
  6013. type=ValueType(name='float'),
  6014. doc='bottom',
  6015. ),
  6016. StructFieldDecl(
  6017. name='frustum_top',
  6018. type=ValueType(name='float'),
  6019. doc='top',
  6020. ),
  6021. StructFieldDecl(
  6022. name='frustum_near',
  6023. type=ValueType(name='float'),
  6024. doc='near',
  6025. ),
  6026. StructFieldDecl(
  6027. name='frustum_far',
  6028. type=ValueType(name='float'),
  6029. doc='far',
  6030. ),
  6031. StructFieldDecl(
  6032. name='orthographic',
  6033. type=ValueType(name='int'),
  6034. doc='0: perspective; 1: orthographic',
  6035. ),
  6036. ),
  6037. )),
  6038. ('mjvGeom',
  6039. StructDecl(
  6040. name='mjvGeom',
  6041. declname='struct mjvGeom_',
  6042. fields=(
  6043. StructFieldDecl(
  6044. name='type',
  6045. type=ValueType(name='int'),
  6046. doc='geom type (mjtGeom)',
  6047. ),
  6048. StructFieldDecl(
  6049. name='dataid',
  6050. type=ValueType(name='int'),
  6051. doc='mesh, hfield or plane id; -1: none',
  6052. ),
  6053. StructFieldDecl(
  6054. name='objtype',
  6055. type=ValueType(name='int'),
  6056. doc='mujoco object type; mjOBJ_UNKNOWN for decor',
  6057. ),
  6058. StructFieldDecl(
  6059. name='objid',
  6060. type=ValueType(name='int'),
  6061. doc='mujoco object id; -1 for decor',
  6062. ),
  6063. StructFieldDecl(
  6064. name='category',
  6065. type=ValueType(name='int'),
  6066. doc='visual category',
  6067. ),
  6068. StructFieldDecl(
  6069. name='matid',
  6070. type=ValueType(name='int'),
  6071. doc='material id; -1: no textured material',
  6072. ),
  6073. StructFieldDecl(
  6074. name='texcoord',
  6075. type=ValueType(name='int'),
  6076. doc='mesh or flex geom has texture coordinates',
  6077. ),
  6078. StructFieldDecl(
  6079. name='segid',
  6080. type=ValueType(name='int'),
  6081. doc='segmentation id; -1: not shown',
  6082. ),
  6083. StructFieldDecl(
  6084. name='size',
  6085. type=ArrayType(
  6086. inner_type=ValueType(name='float'),
  6087. extents=(3,),
  6088. ),
  6089. doc='size parameters',
  6090. ),
  6091. StructFieldDecl(
  6092. name='pos',
  6093. type=ArrayType(
  6094. inner_type=ValueType(name='float'),
  6095. extents=(3,),
  6096. ),
  6097. doc='Cartesian position',
  6098. ),
  6099. StructFieldDecl(
  6100. name='mat',
  6101. type=ArrayType(
  6102. inner_type=ValueType(name='float'),
  6103. extents=(9,),
  6104. ),
  6105. doc='Cartesian orientation',
  6106. ),
  6107. StructFieldDecl(
  6108. name='rgba',
  6109. type=ArrayType(
  6110. inner_type=ValueType(name='float'),
  6111. extents=(4,),
  6112. ),
  6113. doc='color and transparency',
  6114. ),
  6115. StructFieldDecl(
  6116. name='emission',
  6117. type=ValueType(name='float'),
  6118. doc='emission coef',
  6119. ),
  6120. StructFieldDecl(
  6121. name='specular',
  6122. type=ValueType(name='float'),
  6123. doc='specular coef',
  6124. ),
  6125. StructFieldDecl(
  6126. name='shininess',
  6127. type=ValueType(name='float'),
  6128. doc='shininess coef',
  6129. ),
  6130. StructFieldDecl(
  6131. name='reflectance',
  6132. type=ValueType(name='float'),
  6133. doc='reflectance coef',
  6134. ),
  6135. StructFieldDecl(
  6136. name='label',
  6137. type=ArrayType(
  6138. inner_type=ValueType(name='char'),
  6139. extents=(100,),
  6140. ),
  6141. doc='text label',
  6142. ),
  6143. StructFieldDecl(
  6144. name='camdist',
  6145. type=ValueType(name='float'),
  6146. doc='distance to camera (used by sorter)',
  6147. ),
  6148. StructFieldDecl(
  6149. name='modelrbound',
  6150. type=ValueType(name='float'),
  6151. doc='geom rbound from model, 0 if not model geom',
  6152. ),
  6153. StructFieldDecl(
  6154. name='transparent',
  6155. type=ValueType(name='mjtByte'),
  6156. doc='treat geom as transparent',
  6157. ),
  6158. ),
  6159. )),
  6160. ('mjvLight',
  6161. StructDecl(
  6162. name='mjvLight',
  6163. declname='struct mjvLight_',
  6164. fields=(
  6165. StructFieldDecl(
  6166. name='pos',
  6167. type=ArrayType(
  6168. inner_type=ValueType(name='float'),
  6169. extents=(3,),
  6170. ),
  6171. doc='position rel. to body frame',
  6172. ),
  6173. StructFieldDecl(
  6174. name='dir',
  6175. type=ArrayType(
  6176. inner_type=ValueType(name='float'),
  6177. extents=(3,),
  6178. ),
  6179. doc='direction rel. to body frame',
  6180. ),
  6181. StructFieldDecl(
  6182. name='attenuation',
  6183. type=ArrayType(
  6184. inner_type=ValueType(name='float'),
  6185. extents=(3,),
  6186. ),
  6187. doc='OpenGL attenuation (quadratic model)',
  6188. ),
  6189. StructFieldDecl(
  6190. name='cutoff',
  6191. type=ValueType(name='float'),
  6192. doc='OpenGL cutoff',
  6193. ),
  6194. StructFieldDecl(
  6195. name='exponent',
  6196. type=ValueType(name='float'),
  6197. doc='OpenGL exponent',
  6198. ),
  6199. StructFieldDecl(
  6200. name='ambient',
  6201. type=ArrayType(
  6202. inner_type=ValueType(name='float'),
  6203. extents=(3,),
  6204. ),
  6205. doc='ambient rgb (alpha=1)',
  6206. ),
  6207. StructFieldDecl(
  6208. name='diffuse',
  6209. type=ArrayType(
  6210. inner_type=ValueType(name='float'),
  6211. extents=(3,),
  6212. ),
  6213. doc='diffuse rgb (alpha=1)',
  6214. ),
  6215. StructFieldDecl(
  6216. name='specular',
  6217. type=ArrayType(
  6218. inner_type=ValueType(name='float'),
  6219. extents=(3,),
  6220. ),
  6221. doc='specular rgb (alpha=1)',
  6222. ),
  6223. StructFieldDecl(
  6224. name='headlight',
  6225. type=ValueType(name='mjtByte'),
  6226. doc='headlight',
  6227. ),
  6228. StructFieldDecl(
  6229. name='directional',
  6230. type=ValueType(name='mjtByte'),
  6231. doc='directional light',
  6232. ),
  6233. StructFieldDecl(
  6234. name='castshadow',
  6235. type=ValueType(name='mjtByte'),
  6236. doc='does light cast shadows',
  6237. ),
  6238. StructFieldDecl(
  6239. name='bulbradius',
  6240. type=ValueType(name='float'),
  6241. doc='bulb radius for soft shadows',
  6242. ),
  6243. ),
  6244. )),
  6245. ('mjvOption',
  6246. StructDecl(
  6247. name='mjvOption',
  6248. declname='struct mjvOption_',
  6249. fields=(
  6250. StructFieldDecl(
  6251. name='label',
  6252. type=ValueType(name='int'),
  6253. doc='what objects to label (mjtLabel)',
  6254. ),
  6255. StructFieldDecl(
  6256. name='frame',
  6257. type=ValueType(name='int'),
  6258. doc='which frame to show (mjtFrame)',
  6259. ),
  6260. StructFieldDecl(
  6261. name='geomgroup',
  6262. type=ArrayType(
  6263. inner_type=ValueType(name='mjtByte'),
  6264. extents=(6,),
  6265. ),
  6266. doc='geom visualization by group',
  6267. ),
  6268. StructFieldDecl(
  6269. name='sitegroup',
  6270. type=ArrayType(
  6271. inner_type=ValueType(name='mjtByte'),
  6272. extents=(6,),
  6273. ),
  6274. doc='site visualization by group',
  6275. ),
  6276. StructFieldDecl(
  6277. name='jointgroup',
  6278. type=ArrayType(
  6279. inner_type=ValueType(name='mjtByte'),
  6280. extents=(6,),
  6281. ),
  6282. doc='joint visualization by group',
  6283. ),
  6284. StructFieldDecl(
  6285. name='tendongroup',
  6286. type=ArrayType(
  6287. inner_type=ValueType(name='mjtByte'),
  6288. extents=(6,),
  6289. ),
  6290. doc='tendon visualization by group',
  6291. ),
  6292. StructFieldDecl(
  6293. name='actuatorgroup',
  6294. type=ArrayType(
  6295. inner_type=ValueType(name='mjtByte'),
  6296. extents=(6,),
  6297. ),
  6298. doc='actuator visualization by group',
  6299. ),
  6300. StructFieldDecl(
  6301. name='flexgroup',
  6302. type=ArrayType(
  6303. inner_type=ValueType(name='mjtByte'),
  6304. extents=(6,),
  6305. ),
  6306. doc='flex visualization by group',
  6307. ),
  6308. StructFieldDecl(
  6309. name='skingroup',
  6310. type=ArrayType(
  6311. inner_type=ValueType(name='mjtByte'),
  6312. extents=(6,),
  6313. ),
  6314. doc='skin visualization by group',
  6315. ),
  6316. StructFieldDecl(
  6317. name='flags',
  6318. type=ArrayType(
  6319. inner_type=ValueType(name='mjtByte'),
  6320. extents=(32,),
  6321. ),
  6322. doc='visualization flags (indexed by mjtVisFlag)',
  6323. ),
  6324. StructFieldDecl(
  6325. name='bvh_depth',
  6326. type=ValueType(name='int'),
  6327. doc='depth of the bounding volume hierarchy to be visualized',
  6328. ),
  6329. StructFieldDecl(
  6330. name='flex_layer',
  6331. type=ValueType(name='int'),
  6332. doc='element layer to be visualized for 3D flex',
  6333. ),
  6334. ),
  6335. )),
  6336. ('mjvScene',
  6337. StructDecl(
  6338. name='mjvScene',
  6339. declname='struct mjvScene_',
  6340. fields=(
  6341. StructFieldDecl(
  6342. name='maxgeom',
  6343. type=ValueType(name='int'),
  6344. doc='size of allocated geom buffer',
  6345. ),
  6346. StructFieldDecl(
  6347. name='ngeom',
  6348. type=ValueType(name='int'),
  6349. doc='number of geoms currently in buffer',
  6350. ),
  6351. StructFieldDecl(
  6352. name='geoms',
  6353. type=PointerType(
  6354. inner_type=ValueType(name='mjvGeom'),
  6355. ),
  6356. doc='buffer for geoms (ngeom)',
  6357. ),
  6358. StructFieldDecl(
  6359. name='geomorder',
  6360. type=PointerType(
  6361. inner_type=ValueType(name='int'),
  6362. ),
  6363. doc='buffer for ordering geoms by distance to camera (ngeom)',
  6364. ),
  6365. StructFieldDecl(
  6366. name='nflex',
  6367. type=ValueType(name='int'),
  6368. doc='number of flexes',
  6369. ),
  6370. StructFieldDecl(
  6371. name='flexedgeadr',
  6372. type=PointerType(
  6373. inner_type=ValueType(name='int'),
  6374. ),
  6375. doc='address of flex edges (nflex)',
  6376. ),
  6377. StructFieldDecl(
  6378. name='flexedgenum',
  6379. type=PointerType(
  6380. inner_type=ValueType(name='int'),
  6381. ),
  6382. doc='number of edges in flex (nflex)',
  6383. ),
  6384. StructFieldDecl(
  6385. name='flexvertadr',
  6386. type=PointerType(
  6387. inner_type=ValueType(name='int'),
  6388. ),
  6389. doc='address of flex vertices (nflex)',
  6390. ),
  6391. StructFieldDecl(
  6392. name='flexvertnum',
  6393. type=PointerType(
  6394. inner_type=ValueType(name='int'),
  6395. ),
  6396. doc='number of vertices in flex (nflex)',
  6397. ),
  6398. StructFieldDecl(
  6399. name='flexfaceadr',
  6400. type=PointerType(
  6401. inner_type=ValueType(name='int'),
  6402. ),
  6403. doc='address of flex faces (nflex)',
  6404. ),
  6405. StructFieldDecl(
  6406. name='flexfacenum',
  6407. type=PointerType(
  6408. inner_type=ValueType(name='int'),
  6409. ),
  6410. doc='number of flex faces allocated (nflex)',
  6411. ),
  6412. StructFieldDecl(
  6413. name='flexfaceused',
  6414. type=PointerType(
  6415. inner_type=ValueType(name='int'),
  6416. ),
  6417. doc='number of flex faces currently in use (nflex)',
  6418. ),
  6419. StructFieldDecl(
  6420. name='flexedge',
  6421. type=PointerType(
  6422. inner_type=ValueType(name='int'),
  6423. ),
  6424. doc='flex edge data (2*nflexedge)',
  6425. ),
  6426. StructFieldDecl(
  6427. name='flexvert',
  6428. type=PointerType(
  6429. inner_type=ValueType(name='float'),
  6430. ),
  6431. doc='flex vertices (3*nflexvert)',
  6432. ),
  6433. StructFieldDecl(
  6434. name='flexface',
  6435. type=PointerType(
  6436. inner_type=ValueType(name='float'),
  6437. ),
  6438. doc='flex faces vertices (9*sum(flexfacenum))',
  6439. ),
  6440. StructFieldDecl(
  6441. name='flexnormal',
  6442. type=PointerType(
  6443. inner_type=ValueType(name='float'),
  6444. ),
  6445. doc='flex face normals (9*sum(flexfacenum))',
  6446. ),
  6447. StructFieldDecl(
  6448. name='flextexcoord',
  6449. type=PointerType(
  6450. inner_type=ValueType(name='float'),
  6451. ),
  6452. doc='flex face texture coordinates (6*sum(flexfacenum))',
  6453. ),
  6454. StructFieldDecl(
  6455. name='flexvertopt',
  6456. type=ValueType(name='mjtByte'),
  6457. doc='copy of mjVIS_FLEXVERT mjvOption flag',
  6458. ),
  6459. StructFieldDecl(
  6460. name='flexedgeopt',
  6461. type=ValueType(name='mjtByte'),
  6462. doc='copy of mjVIS_FLEXEDGE mjvOption flag',
  6463. ),
  6464. StructFieldDecl(
  6465. name='flexfaceopt',
  6466. type=ValueType(name='mjtByte'),
  6467. doc='copy of mjVIS_FLEXFACE mjvOption flag',
  6468. ),
  6469. StructFieldDecl(
  6470. name='flexskinopt',
  6471. type=ValueType(name='mjtByte'),
  6472. doc='copy of mjVIS_FLEXSKIN mjvOption flag',
  6473. ),
  6474. StructFieldDecl(
  6475. name='nskin',
  6476. type=ValueType(name='int'),
  6477. doc='number of skins',
  6478. ),
  6479. StructFieldDecl(
  6480. name='skinfacenum',
  6481. type=PointerType(
  6482. inner_type=ValueType(name='int'),
  6483. ),
  6484. doc='number of faces in skin (nskin)',
  6485. ),
  6486. StructFieldDecl(
  6487. name='skinvertadr',
  6488. type=PointerType(
  6489. inner_type=ValueType(name='int'),
  6490. ),
  6491. doc='address of skin vertices (nskin)',
  6492. ),
  6493. StructFieldDecl(
  6494. name='skinvertnum',
  6495. type=PointerType(
  6496. inner_type=ValueType(name='int'),
  6497. ),
  6498. doc='number of vertices in skin (nskin)',
  6499. ),
  6500. StructFieldDecl(
  6501. name='skinvert',
  6502. type=PointerType(
  6503. inner_type=ValueType(name='float'),
  6504. ),
  6505. doc='skin vertex data (3*nskinvert)',
  6506. ),
  6507. StructFieldDecl(
  6508. name='skinnormal',
  6509. type=PointerType(
  6510. inner_type=ValueType(name='float'),
  6511. ),
  6512. doc='skin normal data (3*nskinvert)',
  6513. ),
  6514. StructFieldDecl(
  6515. name='nlight',
  6516. type=ValueType(name='int'),
  6517. doc='number of lights currently in buffer',
  6518. ),
  6519. StructFieldDecl(
  6520. name='lights',
  6521. type=ArrayType(
  6522. inner_type=ValueType(name='mjvLight'),
  6523. extents=(100,),
  6524. ),
  6525. doc='buffer for lights (nlight)',
  6526. ),
  6527. StructFieldDecl(
  6528. name='camera',
  6529. type=ArrayType(
  6530. inner_type=ValueType(name='mjvGLCamera'),
  6531. extents=(2,),
  6532. ),
  6533. doc='left and right camera',
  6534. ),
  6535. StructFieldDecl(
  6536. name='enabletransform',
  6537. type=ValueType(name='mjtByte'),
  6538. doc='enable model transformation',
  6539. ),
  6540. StructFieldDecl(
  6541. name='translate',
  6542. type=ArrayType(
  6543. inner_type=ValueType(name='float'),
  6544. extents=(3,),
  6545. ),
  6546. doc='model translation',
  6547. ),
  6548. StructFieldDecl(
  6549. name='rotate',
  6550. type=ArrayType(
  6551. inner_type=ValueType(name='float'),
  6552. extents=(4,),
  6553. ),
  6554. doc='model quaternion rotation',
  6555. ),
  6556. StructFieldDecl(
  6557. name='scale',
  6558. type=ValueType(name='float'),
  6559. doc='model scaling',
  6560. ),
  6561. StructFieldDecl(
  6562. name='stereo',
  6563. type=ValueType(name='int'),
  6564. doc='stereoscopic rendering (mjtStereo)',
  6565. ),
  6566. StructFieldDecl(
  6567. name='flags',
  6568. type=ArrayType(
  6569. inner_type=ValueType(name='mjtByte'),
  6570. extents=(10,),
  6571. ),
  6572. doc='rendering flags (indexed by mjtRndFlag)',
  6573. ),
  6574. StructFieldDecl(
  6575. name='framewidth',
  6576. type=ValueType(name='int'),
  6577. doc='frame pixel width; 0: disable framing',
  6578. ),
  6579. StructFieldDecl(
  6580. name='framergb',
  6581. type=ArrayType(
  6582. inner_type=ValueType(name='float'),
  6583. extents=(3,),
  6584. ),
  6585. doc='frame color',
  6586. ),
  6587. ),
  6588. )),
  6589. ('mjvFigure',
  6590. StructDecl(
  6591. name='mjvFigure',
  6592. declname='struct mjvFigure_',
  6593. fields=(
  6594. StructFieldDecl(
  6595. name='flg_legend',
  6596. type=ValueType(name='int'),
  6597. doc='show legend',
  6598. ),
  6599. StructFieldDecl(
  6600. name='flg_ticklabel',
  6601. type=ArrayType(
  6602. inner_type=ValueType(name='int'),
  6603. extents=(2,),
  6604. ),
  6605. doc='show grid tick labels (x,y)',
  6606. ),
  6607. StructFieldDecl(
  6608. name='flg_extend',
  6609. type=ValueType(name='int'),
  6610. doc='automatically extend axis ranges to fit data',
  6611. ),
  6612. StructFieldDecl(
  6613. name='flg_barplot',
  6614. type=ValueType(name='int'),
  6615. doc='isolated line segments (i.e. GL_LINES)',
  6616. ),
  6617. StructFieldDecl(
  6618. name='flg_selection',
  6619. type=ValueType(name='int'),
  6620. doc='vertical selection line',
  6621. ),
  6622. StructFieldDecl(
  6623. name='flg_symmetric',
  6624. type=ValueType(name='int'),
  6625. doc='symmetric y-axis',
  6626. ),
  6627. StructFieldDecl(
  6628. name='linewidth',
  6629. type=ValueType(name='float'),
  6630. doc='line width',
  6631. ),
  6632. StructFieldDecl(
  6633. name='gridwidth',
  6634. type=ValueType(name='float'),
  6635. doc='grid line width',
  6636. ),
  6637. StructFieldDecl(
  6638. name='gridsize',
  6639. type=ArrayType(
  6640. inner_type=ValueType(name='int'),
  6641. extents=(2,),
  6642. ),
  6643. doc='number of grid points in (x,y)',
  6644. ),
  6645. StructFieldDecl(
  6646. name='gridrgb',
  6647. type=ArrayType(
  6648. inner_type=ValueType(name='float'),
  6649. extents=(3,),
  6650. ),
  6651. doc='grid line rgb',
  6652. ),
  6653. StructFieldDecl(
  6654. name='figurergba',
  6655. type=ArrayType(
  6656. inner_type=ValueType(name='float'),
  6657. extents=(4,),
  6658. ),
  6659. doc='figure color and alpha',
  6660. ),
  6661. StructFieldDecl(
  6662. name='panergba',
  6663. type=ArrayType(
  6664. inner_type=ValueType(name='float'),
  6665. extents=(4,),
  6666. ),
  6667. doc='pane color and alpha',
  6668. ),
  6669. StructFieldDecl(
  6670. name='legendrgba',
  6671. type=ArrayType(
  6672. inner_type=ValueType(name='float'),
  6673. extents=(4,),
  6674. ),
  6675. doc='legend color and alpha',
  6676. ),
  6677. StructFieldDecl(
  6678. name='textrgb',
  6679. type=ArrayType(
  6680. inner_type=ValueType(name='float'),
  6681. extents=(3,),
  6682. ),
  6683. doc='text color',
  6684. ),
  6685. StructFieldDecl(
  6686. name='linergb',
  6687. type=ArrayType(
  6688. inner_type=ValueType(name='float'),
  6689. extents=(100, 3),
  6690. ),
  6691. doc='line colors',
  6692. ),
  6693. StructFieldDecl(
  6694. name='range',
  6695. type=ArrayType(
  6696. inner_type=ValueType(name='float'),
  6697. extents=(2, 2),
  6698. ),
  6699. doc='axis ranges; (min>=max) automatic',
  6700. ),
  6701. StructFieldDecl(
  6702. name='xformat',
  6703. type=ArrayType(
  6704. inner_type=ValueType(name='char'),
  6705. extents=(20,),
  6706. ),
  6707. doc='x-tick label format for sprintf',
  6708. ),
  6709. StructFieldDecl(
  6710. name='yformat',
  6711. type=ArrayType(
  6712. inner_type=ValueType(name='char'),
  6713. extents=(20,),
  6714. ),
  6715. doc='y-tick label format for sprintf',
  6716. ),
  6717. StructFieldDecl(
  6718. name='minwidth',
  6719. type=ArrayType(
  6720. inner_type=ValueType(name='char'),
  6721. extents=(20,),
  6722. ),
  6723. doc='string used to determine min y-tick width',
  6724. ),
  6725. StructFieldDecl(
  6726. name='title',
  6727. type=ArrayType(
  6728. inner_type=ValueType(name='char'),
  6729. extents=(1000,),
  6730. ),
  6731. doc='figure title; subplots separated with 2+ spaces',
  6732. ),
  6733. StructFieldDecl(
  6734. name='xlabel',
  6735. type=ArrayType(
  6736. inner_type=ValueType(name='char'),
  6737. extents=(100,),
  6738. ),
  6739. doc='x-axis label',
  6740. ),
  6741. StructFieldDecl(
  6742. name='linename',
  6743. type=ArrayType(
  6744. inner_type=ValueType(name='char'),
  6745. extents=(100, 100),
  6746. ),
  6747. doc='line names for legend',
  6748. ),
  6749. StructFieldDecl(
  6750. name='legendoffset',
  6751. type=ValueType(name='int'),
  6752. doc='number of lines to offset legend',
  6753. ),
  6754. StructFieldDecl(
  6755. name='subplot',
  6756. type=ValueType(name='int'),
  6757. doc='selected subplot (for title rendering)',
  6758. ),
  6759. StructFieldDecl(
  6760. name='highlight',
  6761. type=ArrayType(
  6762. inner_type=ValueType(name='int'),
  6763. extents=(2,),
  6764. ),
  6765. doc='if point is in legend rect, highlight line',
  6766. ),
  6767. StructFieldDecl(
  6768. name='highlightid',
  6769. type=ValueType(name='int'),
  6770. doc='if id>=0 and no point, highlight id',
  6771. ),
  6772. StructFieldDecl(
  6773. name='selection',
  6774. type=ValueType(name='float'),
  6775. doc='selection line x-value',
  6776. ),
  6777. StructFieldDecl(
  6778. name='linepnt',
  6779. type=ArrayType(
  6780. inner_type=ValueType(name='int'),
  6781. extents=(100,),
  6782. ),
  6783. doc='number of points in line; (0) disable',
  6784. ),
  6785. StructFieldDecl(
  6786. name='linedata',
  6787. type=ArrayType(
  6788. inner_type=ValueType(name='float'),
  6789. extents=(100, 2000),
  6790. ),
  6791. doc='line data (x,y)',
  6792. ),
  6793. StructFieldDecl(
  6794. name='xaxispixel',
  6795. type=ArrayType(
  6796. inner_type=ValueType(name='int'),
  6797. extents=(2,),
  6798. ),
  6799. doc='range of x-axis in pixels',
  6800. ),
  6801. StructFieldDecl(
  6802. name='yaxispixel',
  6803. type=ArrayType(
  6804. inner_type=ValueType(name='int'),
  6805. extents=(2,),
  6806. ),
  6807. doc='range of y-axis in pixels',
  6808. ),
  6809. StructFieldDecl(
  6810. name='xaxisdata',
  6811. type=ArrayType(
  6812. inner_type=ValueType(name='float'),
  6813. extents=(2,),
  6814. ),
  6815. doc='range of x-axis in data units',
  6816. ),
  6817. StructFieldDecl(
  6818. name='yaxisdata',
  6819. type=ArrayType(
  6820. inner_type=ValueType(name='float'),
  6821. extents=(2,),
  6822. ),
  6823. doc='range of y-axis in data units',
  6824. ),
  6825. ),
  6826. )),
  6827. ('mjvSceneState',
  6828. StructDecl(
  6829. name='mjvSceneState',
  6830. declname='struct mjvSceneState_',
  6831. fields=(
  6832. StructFieldDecl(
  6833. name='nbuffer',
  6834. type=ValueType(name='int'),
  6835. doc='size of the buffer in bytes',
  6836. ),
  6837. StructFieldDecl(
  6838. name='buffer',
  6839. type=PointerType(
  6840. inner_type=ValueType(name='void'),
  6841. ),
  6842. doc='heap-allocated memory for all arrays in this struct',
  6843. ),
  6844. StructFieldDecl(
  6845. name='maxgeom',
  6846. type=ValueType(name='int'),
  6847. doc='maximum number of mjvGeom supported by this state object',
  6848. ),
  6849. StructFieldDecl(
  6850. name='scratch',
  6851. type=ValueType(name='mjvScene'),
  6852. doc='scratch space for vis geoms inserted by the user and plugins', # pylint: disable=line-too-long
  6853. ),
  6854. StructFieldDecl(
  6855. name='model',
  6856. type=AnonymousStructDecl(
  6857. fields=(
  6858. StructFieldDecl(
  6859. name='nv',
  6860. type=ValueType(name='int'),
  6861. doc='',
  6862. ),
  6863. StructFieldDecl(
  6864. name='nu',
  6865. type=ValueType(name='int'),
  6866. doc='',
  6867. ),
  6868. StructFieldDecl(
  6869. name='na',
  6870. type=ValueType(name='int'),
  6871. doc='',
  6872. ),
  6873. StructFieldDecl(
  6874. name='nbody',
  6875. type=ValueType(name='int'),
  6876. doc='',
  6877. ),
  6878. StructFieldDecl(
  6879. name='nbvh',
  6880. type=ValueType(name='int'),
  6881. doc='',
  6882. ),
  6883. StructFieldDecl(
  6884. name='nbvhstatic',
  6885. type=ValueType(name='int'),
  6886. doc='',
  6887. ),
  6888. StructFieldDecl(
  6889. name='njnt',
  6890. type=ValueType(name='int'),
  6891. doc='',
  6892. ),
  6893. StructFieldDecl(
  6894. name='ngeom',
  6895. type=ValueType(name='int'),
  6896. doc='',
  6897. ),
  6898. StructFieldDecl(
  6899. name='nsite',
  6900. type=ValueType(name='int'),
  6901. doc='',
  6902. ),
  6903. StructFieldDecl(
  6904. name='ncam',
  6905. type=ValueType(name='int'),
  6906. doc='',
  6907. ),
  6908. StructFieldDecl(
  6909. name='nlight',
  6910. type=ValueType(name='int'),
  6911. doc='',
  6912. ),
  6913. StructFieldDecl(
  6914. name='nmesh',
  6915. type=ValueType(name='int'),
  6916. doc='',
  6917. ),
  6918. StructFieldDecl(
  6919. name='nskin',
  6920. type=ValueType(name='int'),
  6921. doc='',
  6922. ),
  6923. StructFieldDecl(
  6924. name='nflex',
  6925. type=ValueType(name='int'),
  6926. doc='',
  6927. ),
  6928. StructFieldDecl(
  6929. name='nflexvert',
  6930. type=ValueType(name='int'),
  6931. doc='',
  6932. ),
  6933. StructFieldDecl(
  6934. name='nflextexcoord',
  6935. type=ValueType(name='int'),
  6936. doc='',
  6937. ),
  6938. StructFieldDecl(
  6939. name='nskinvert',
  6940. type=ValueType(name='int'),
  6941. doc='',
  6942. ),
  6943. StructFieldDecl(
  6944. name='nskinface',
  6945. type=ValueType(name='int'),
  6946. doc='',
  6947. ),
  6948. StructFieldDecl(
  6949. name='nskinbone',
  6950. type=ValueType(name='int'),
  6951. doc='',
  6952. ),
  6953. StructFieldDecl(
  6954. name='nskinbonevert',
  6955. type=ValueType(name='int'),
  6956. doc='',
  6957. ),
  6958. StructFieldDecl(
  6959. name='nmat',
  6960. type=ValueType(name='int'),
  6961. doc='',
  6962. ),
  6963. StructFieldDecl(
  6964. name='neq',
  6965. type=ValueType(name='int'),
  6966. doc='',
  6967. ),
  6968. StructFieldDecl(
  6969. name='ntendon',
  6970. type=ValueType(name='int'),
  6971. doc='',
  6972. ),
  6973. StructFieldDecl(
  6974. name='ntree',
  6975. type=ValueType(name='int'),
  6976. doc='',
  6977. ),
  6978. StructFieldDecl(
  6979. name='nwrap',
  6980. type=ValueType(name='int'),
  6981. doc='',
  6982. ),
  6983. StructFieldDecl(
  6984. name='nsensor',
  6985. type=ValueType(name='int'),
  6986. doc='',
  6987. ),
  6988. StructFieldDecl(
  6989. name='nnames',
  6990. type=ValueType(name='int'),
  6991. doc='',
  6992. ),
  6993. StructFieldDecl(
  6994. name='npaths',
  6995. type=ValueType(name='int'),
  6996. doc='',
  6997. ),
  6998. StructFieldDecl(
  6999. name='nsensordata',
  7000. type=ValueType(name='int'),
  7001. doc='',
  7002. ),
  7003. StructFieldDecl(
  7004. name='narena',
  7005. type=ValueType(name='int'),
  7006. doc='',
  7007. ),
  7008. StructFieldDecl(
  7009. name='opt',
  7010. type=ValueType(name='mjOption'),
  7011. doc='',
  7012. ),
  7013. StructFieldDecl(
  7014. name='vis',
  7015. type=ValueType(name='mjVisual'),
  7016. doc='',
  7017. ),
  7018. StructFieldDecl(
  7019. name='stat',
  7020. type=ValueType(name='mjStatistic'),
  7021. doc='',
  7022. ),
  7023. StructFieldDecl(
  7024. name='body_parentid',
  7025. type=PointerType(
  7026. inner_type=ValueType(name='int'),
  7027. ),
  7028. doc='',
  7029. ),
  7030. StructFieldDecl(
  7031. name='body_rootid',
  7032. type=PointerType(
  7033. inner_type=ValueType(name='int'),
  7034. ),
  7035. doc='',
  7036. ),
  7037. StructFieldDecl(
  7038. name='body_weldid',
  7039. type=PointerType(
  7040. inner_type=ValueType(name='int'),
  7041. ),
  7042. doc='',
  7043. ),
  7044. StructFieldDecl(
  7045. name='body_mocapid',
  7046. type=PointerType(
  7047. inner_type=ValueType(name='int'),
  7048. ),
  7049. doc='',
  7050. ),
  7051. StructFieldDecl(
  7052. name='body_jntnum',
  7053. type=PointerType(
  7054. inner_type=ValueType(name='int'),
  7055. ),
  7056. doc='',
  7057. ),
  7058. StructFieldDecl(
  7059. name='body_jntadr',
  7060. type=PointerType(
  7061. inner_type=ValueType(name='int'),
  7062. ),
  7063. doc='',
  7064. ),
  7065. StructFieldDecl(
  7066. name='body_dofnum',
  7067. type=PointerType(
  7068. inner_type=ValueType(name='int'),
  7069. ),
  7070. doc='',
  7071. ),
  7072. StructFieldDecl(
  7073. name='body_dofadr',
  7074. type=PointerType(
  7075. inner_type=ValueType(name='int'),
  7076. ),
  7077. doc='',
  7078. ),
  7079. StructFieldDecl(
  7080. name='body_geomnum',
  7081. type=PointerType(
  7082. inner_type=ValueType(name='int'),
  7083. ),
  7084. doc='',
  7085. ),
  7086. StructFieldDecl(
  7087. name='body_geomadr',
  7088. type=PointerType(
  7089. inner_type=ValueType(name='int'),
  7090. ),
  7091. doc='',
  7092. ),
  7093. StructFieldDecl(
  7094. name='body_iquat',
  7095. type=PointerType(
  7096. inner_type=ValueType(name='mjtNum'),
  7097. ),
  7098. doc='',
  7099. ),
  7100. StructFieldDecl(
  7101. name='body_mass',
  7102. type=PointerType(
  7103. inner_type=ValueType(name='mjtNum'),
  7104. ),
  7105. doc='',
  7106. ),
  7107. StructFieldDecl(
  7108. name='body_inertia',
  7109. type=PointerType(
  7110. inner_type=ValueType(name='mjtNum'),
  7111. ),
  7112. doc='',
  7113. ),
  7114. StructFieldDecl(
  7115. name='body_bvhadr',
  7116. type=PointerType(
  7117. inner_type=ValueType(name='int'),
  7118. ),
  7119. doc='',
  7120. ),
  7121. StructFieldDecl(
  7122. name='body_bvhnum',
  7123. type=PointerType(
  7124. inner_type=ValueType(name='int'),
  7125. ),
  7126. doc='',
  7127. ),
  7128. StructFieldDecl(
  7129. name='bvh_depth',
  7130. type=PointerType(
  7131. inner_type=ValueType(name='int'),
  7132. ),
  7133. doc='',
  7134. ),
  7135. StructFieldDecl(
  7136. name='bvh_child',
  7137. type=PointerType(
  7138. inner_type=ValueType(name='int'),
  7139. ),
  7140. doc='',
  7141. ),
  7142. StructFieldDecl(
  7143. name='bvh_nodeid',
  7144. type=PointerType(
  7145. inner_type=ValueType(name='int'),
  7146. ),
  7147. doc='',
  7148. ),
  7149. StructFieldDecl(
  7150. name='bvh_aabb',
  7151. type=PointerType(
  7152. inner_type=ValueType(name='mjtNum'),
  7153. ),
  7154. doc='',
  7155. ),
  7156. StructFieldDecl(
  7157. name='jnt_type',
  7158. type=PointerType(
  7159. inner_type=ValueType(name='int'),
  7160. ),
  7161. doc='',
  7162. ),
  7163. StructFieldDecl(
  7164. name='jnt_bodyid',
  7165. type=PointerType(
  7166. inner_type=ValueType(name='int'),
  7167. ),
  7168. doc='',
  7169. ),
  7170. StructFieldDecl(
  7171. name='jnt_group',
  7172. type=PointerType(
  7173. inner_type=ValueType(name='int'),
  7174. ),
  7175. doc='',
  7176. ),
  7177. StructFieldDecl(
  7178. name='geom_type',
  7179. type=PointerType(
  7180. inner_type=ValueType(name='int'),
  7181. ),
  7182. doc='',
  7183. ),
  7184. StructFieldDecl(
  7185. name='geom_bodyid',
  7186. type=PointerType(
  7187. inner_type=ValueType(name='int'),
  7188. ),
  7189. doc='',
  7190. ),
  7191. StructFieldDecl(
  7192. name='geom_contype',
  7193. type=PointerType(
  7194. inner_type=ValueType(name='int'),
  7195. ),
  7196. doc='',
  7197. ),
  7198. StructFieldDecl(
  7199. name='geom_conaffinity',
  7200. type=PointerType(
  7201. inner_type=ValueType(name='int'),
  7202. ),
  7203. doc='',
  7204. ),
  7205. StructFieldDecl(
  7206. name='geom_dataid',
  7207. type=PointerType(
  7208. inner_type=ValueType(name='int'),
  7209. ),
  7210. doc='',
  7211. ),
  7212. StructFieldDecl(
  7213. name='geom_matid',
  7214. type=PointerType(
  7215. inner_type=ValueType(name='int'),
  7216. ),
  7217. doc='',
  7218. ),
  7219. StructFieldDecl(
  7220. name='geom_group',
  7221. type=PointerType(
  7222. inner_type=ValueType(name='int'),
  7223. ),
  7224. doc='',
  7225. ),
  7226. StructFieldDecl(
  7227. name='geom_size',
  7228. type=PointerType(
  7229. inner_type=ValueType(name='mjtNum'),
  7230. ),
  7231. doc='',
  7232. ),
  7233. StructFieldDecl(
  7234. name='geom_aabb',
  7235. type=PointerType(
  7236. inner_type=ValueType(name='mjtNum'),
  7237. ),
  7238. doc='',
  7239. ),
  7240. StructFieldDecl(
  7241. name='geom_rbound',
  7242. type=PointerType(
  7243. inner_type=ValueType(name='mjtNum'),
  7244. ),
  7245. doc='',
  7246. ),
  7247. StructFieldDecl(
  7248. name='geom_rgba',
  7249. type=PointerType(
  7250. inner_type=ValueType(name='float'),
  7251. ),
  7252. doc='',
  7253. ),
  7254. StructFieldDecl(
  7255. name='site_type',
  7256. type=PointerType(
  7257. inner_type=ValueType(name='int'),
  7258. ),
  7259. doc='',
  7260. ),
  7261. StructFieldDecl(
  7262. name='site_bodyid',
  7263. type=PointerType(
  7264. inner_type=ValueType(name='int'),
  7265. ),
  7266. doc='',
  7267. ),
  7268. StructFieldDecl(
  7269. name='site_matid',
  7270. type=PointerType(
  7271. inner_type=ValueType(name='int'),
  7272. ),
  7273. doc='',
  7274. ),
  7275. StructFieldDecl(
  7276. name='site_group',
  7277. type=PointerType(
  7278. inner_type=ValueType(name='int'),
  7279. ),
  7280. doc='',
  7281. ),
  7282. StructFieldDecl(
  7283. name='site_size',
  7284. type=PointerType(
  7285. inner_type=ValueType(name='mjtNum'),
  7286. ),
  7287. doc='',
  7288. ),
  7289. StructFieldDecl(
  7290. name='site_rgba',
  7291. type=PointerType(
  7292. inner_type=ValueType(name='float'),
  7293. ),
  7294. doc='',
  7295. ),
  7296. StructFieldDecl(
  7297. name='cam_orthographic',
  7298. type=PointerType(
  7299. inner_type=ValueType(name='int'),
  7300. ),
  7301. doc='',
  7302. ),
  7303. StructFieldDecl(
  7304. name='cam_fovy',
  7305. type=PointerType(
  7306. inner_type=ValueType(name='mjtNum'),
  7307. ),
  7308. doc='',
  7309. ),
  7310. StructFieldDecl(
  7311. name='cam_ipd',
  7312. type=PointerType(
  7313. inner_type=ValueType(name='mjtNum'),
  7314. ),
  7315. doc='',
  7316. ),
  7317. StructFieldDecl(
  7318. name='cam_resolution',
  7319. type=PointerType(
  7320. inner_type=ValueType(name='int'),
  7321. ),
  7322. doc='',
  7323. ),
  7324. StructFieldDecl(
  7325. name='cam_sensorsize',
  7326. type=PointerType(
  7327. inner_type=ValueType(name='float'),
  7328. ),
  7329. doc='',
  7330. ),
  7331. StructFieldDecl(
  7332. name='cam_intrinsic',
  7333. type=PointerType(
  7334. inner_type=ValueType(name='float'),
  7335. ),
  7336. doc='',
  7337. ),
  7338. StructFieldDecl(
  7339. name='light_directional',
  7340. type=PointerType(
  7341. inner_type=ValueType(name='mjtByte'),
  7342. ),
  7343. doc='',
  7344. ),
  7345. StructFieldDecl(
  7346. name='light_castshadow',
  7347. type=PointerType(
  7348. inner_type=ValueType(name='mjtByte'),
  7349. ),
  7350. doc='',
  7351. ),
  7352. StructFieldDecl(
  7353. name='light_bulbradius',
  7354. type=PointerType(
  7355. inner_type=ValueType(name='float'),
  7356. ),
  7357. doc='',
  7358. ),
  7359. StructFieldDecl(
  7360. name='light_active',
  7361. type=PointerType(
  7362. inner_type=ValueType(name='mjtByte'),
  7363. ),
  7364. doc='',
  7365. ),
  7366. StructFieldDecl(
  7367. name='light_attenuation',
  7368. type=PointerType(
  7369. inner_type=ValueType(name='float'),
  7370. ),
  7371. doc='',
  7372. ),
  7373. StructFieldDecl(
  7374. name='light_cutoff',
  7375. type=PointerType(
  7376. inner_type=ValueType(name='float'),
  7377. ),
  7378. doc='',
  7379. ),
  7380. StructFieldDecl(
  7381. name='light_exponent',
  7382. type=PointerType(
  7383. inner_type=ValueType(name='float'),
  7384. ),
  7385. doc='',
  7386. ),
  7387. StructFieldDecl(
  7388. name='light_ambient',
  7389. type=PointerType(
  7390. inner_type=ValueType(name='float'),
  7391. ),
  7392. doc='',
  7393. ),
  7394. StructFieldDecl(
  7395. name='light_diffuse',
  7396. type=PointerType(
  7397. inner_type=ValueType(name='float'),
  7398. ),
  7399. doc='',
  7400. ),
  7401. StructFieldDecl(
  7402. name='light_specular',
  7403. type=PointerType(
  7404. inner_type=ValueType(name='float'),
  7405. ),
  7406. doc='',
  7407. ),
  7408. StructFieldDecl(
  7409. name='flex_flatskin',
  7410. type=PointerType(
  7411. inner_type=ValueType(name='mjtByte'),
  7412. ),
  7413. doc='',
  7414. ),
  7415. StructFieldDecl(
  7416. name='flex_dim',
  7417. type=PointerType(
  7418. inner_type=ValueType(name='int'),
  7419. ),
  7420. doc='',
  7421. ),
  7422. StructFieldDecl(
  7423. name='flex_matid',
  7424. type=PointerType(
  7425. inner_type=ValueType(name='int'),
  7426. ),
  7427. doc='',
  7428. ),
  7429. StructFieldDecl(
  7430. name='flex_group',
  7431. type=PointerType(
  7432. inner_type=ValueType(name='int'),
  7433. ),
  7434. doc='',
  7435. ),
  7436. StructFieldDecl(
  7437. name='flex_vertadr',
  7438. type=PointerType(
  7439. inner_type=ValueType(name='int'),
  7440. ),
  7441. doc='',
  7442. ),
  7443. StructFieldDecl(
  7444. name='flex_vertnum',
  7445. type=PointerType(
  7446. inner_type=ValueType(name='int'),
  7447. ),
  7448. doc='',
  7449. ),
  7450. StructFieldDecl(
  7451. name='flex_elem',
  7452. type=PointerType(
  7453. inner_type=ValueType(name='int'),
  7454. ),
  7455. doc='',
  7456. ),
  7457. StructFieldDecl(
  7458. name='flex_elemlayer',
  7459. type=PointerType(
  7460. inner_type=ValueType(name='int'),
  7461. ),
  7462. doc='',
  7463. ),
  7464. StructFieldDecl(
  7465. name='flex_elemadr',
  7466. type=PointerType(
  7467. inner_type=ValueType(name='int'),
  7468. ),
  7469. doc='',
  7470. ),
  7471. StructFieldDecl(
  7472. name='flex_elemnum',
  7473. type=PointerType(
  7474. inner_type=ValueType(name='int'),
  7475. ),
  7476. doc='',
  7477. ),
  7478. StructFieldDecl(
  7479. name='flex_elemdataadr',
  7480. type=PointerType(
  7481. inner_type=ValueType(name='int'),
  7482. ),
  7483. doc='',
  7484. ),
  7485. StructFieldDecl(
  7486. name='flex_shell',
  7487. type=PointerType(
  7488. inner_type=ValueType(name='int'),
  7489. ),
  7490. doc='',
  7491. ),
  7492. StructFieldDecl(
  7493. name='flex_shellnum',
  7494. type=PointerType(
  7495. inner_type=ValueType(name='int'),
  7496. ),
  7497. doc='',
  7498. ),
  7499. StructFieldDecl(
  7500. name='flex_shelldataadr',
  7501. type=PointerType(
  7502. inner_type=ValueType(name='int'),
  7503. ),
  7504. doc='',
  7505. ),
  7506. StructFieldDecl(
  7507. name='flex_texcoordadr',
  7508. type=PointerType(
  7509. inner_type=ValueType(name='int'),
  7510. ),
  7511. doc='',
  7512. ),
  7513. StructFieldDecl(
  7514. name='flex_bvhadr',
  7515. type=PointerType(
  7516. inner_type=ValueType(name='int'),
  7517. ),
  7518. doc='',
  7519. ),
  7520. StructFieldDecl(
  7521. name='flex_bvhnum',
  7522. type=PointerType(
  7523. inner_type=ValueType(name='int'),
  7524. ),
  7525. doc='',
  7526. ),
  7527. StructFieldDecl(
  7528. name='flex_radius',
  7529. type=PointerType(
  7530. inner_type=ValueType(name='mjtNum'),
  7531. ),
  7532. doc='',
  7533. ),
  7534. StructFieldDecl(
  7535. name='flex_rgba',
  7536. type=PointerType(
  7537. inner_type=ValueType(name='float'),
  7538. ),
  7539. doc='',
  7540. ),
  7541. StructFieldDecl(
  7542. name='hfield_pathadr',
  7543. type=PointerType(
  7544. inner_type=ValueType(name='int'),
  7545. ),
  7546. doc='',
  7547. ),
  7548. StructFieldDecl(
  7549. name='mesh_bvhadr',
  7550. type=PointerType(
  7551. inner_type=ValueType(name='int'),
  7552. ),
  7553. doc='',
  7554. ),
  7555. StructFieldDecl(
  7556. name='mesh_bvhnum',
  7557. type=PointerType(
  7558. inner_type=ValueType(name='int'),
  7559. ),
  7560. doc='',
  7561. ),
  7562. StructFieldDecl(
  7563. name='mesh_texcoordadr',
  7564. type=PointerType(
  7565. inner_type=ValueType(name='int'),
  7566. ),
  7567. doc='',
  7568. ),
  7569. StructFieldDecl(
  7570. name='mesh_graphadr',
  7571. type=PointerType(
  7572. inner_type=ValueType(name='int'),
  7573. ),
  7574. doc='',
  7575. ),
  7576. StructFieldDecl(
  7577. name='mesh_pathadr',
  7578. type=PointerType(
  7579. inner_type=ValueType(name='int'),
  7580. ),
  7581. doc='',
  7582. ),
  7583. StructFieldDecl(
  7584. name='skin_matid',
  7585. type=PointerType(
  7586. inner_type=ValueType(name='int'),
  7587. ),
  7588. doc='',
  7589. ),
  7590. StructFieldDecl(
  7591. name='skin_group',
  7592. type=PointerType(
  7593. inner_type=ValueType(name='int'),
  7594. ),
  7595. doc='',
  7596. ),
  7597. StructFieldDecl(
  7598. name='skin_rgba',
  7599. type=PointerType(
  7600. inner_type=ValueType(name='float'),
  7601. ),
  7602. doc='',
  7603. ),
  7604. StructFieldDecl(
  7605. name='skin_inflate',
  7606. type=PointerType(
  7607. inner_type=ValueType(name='float'),
  7608. ),
  7609. doc='',
  7610. ),
  7611. StructFieldDecl(
  7612. name='skin_vertadr',
  7613. type=PointerType(
  7614. inner_type=ValueType(name='int'),
  7615. ),
  7616. doc='',
  7617. ),
  7618. StructFieldDecl(
  7619. name='skin_vertnum',
  7620. type=PointerType(
  7621. inner_type=ValueType(name='int'),
  7622. ),
  7623. doc='',
  7624. ),
  7625. StructFieldDecl(
  7626. name='skin_texcoordadr',
  7627. type=PointerType(
  7628. inner_type=ValueType(name='int'),
  7629. ),
  7630. doc='',
  7631. ),
  7632. StructFieldDecl(
  7633. name='skin_faceadr',
  7634. type=PointerType(
  7635. inner_type=ValueType(name='int'),
  7636. ),
  7637. doc='',
  7638. ),
  7639. StructFieldDecl(
  7640. name='skin_facenum',
  7641. type=PointerType(
  7642. inner_type=ValueType(name='int'),
  7643. ),
  7644. doc='',
  7645. ),
  7646. StructFieldDecl(
  7647. name='skin_boneadr',
  7648. type=PointerType(
  7649. inner_type=ValueType(name='int'),
  7650. ),
  7651. doc='',
  7652. ),
  7653. StructFieldDecl(
  7654. name='skin_bonenum',
  7655. type=PointerType(
  7656. inner_type=ValueType(name='int'),
  7657. ),
  7658. doc='',
  7659. ),
  7660. StructFieldDecl(
  7661. name='skin_vert',
  7662. type=PointerType(
  7663. inner_type=ValueType(name='float'),
  7664. ),
  7665. doc='',
  7666. ),
  7667. StructFieldDecl(
  7668. name='skin_face',
  7669. type=PointerType(
  7670. inner_type=ValueType(name='int'),
  7671. ),
  7672. doc='',
  7673. ),
  7674. StructFieldDecl(
  7675. name='skin_bonevertadr',
  7676. type=PointerType(
  7677. inner_type=ValueType(name='int'),
  7678. ),
  7679. doc='',
  7680. ),
  7681. StructFieldDecl(
  7682. name='skin_bonevertnum',
  7683. type=PointerType(
  7684. inner_type=ValueType(name='int'),
  7685. ),
  7686. doc='',
  7687. ),
  7688. StructFieldDecl(
  7689. name='skin_bonebindpos',
  7690. type=PointerType(
  7691. inner_type=ValueType(name='float'),
  7692. ),
  7693. doc='',
  7694. ),
  7695. StructFieldDecl(
  7696. name='skin_bonebindquat',
  7697. type=PointerType(
  7698. inner_type=ValueType(name='float'),
  7699. ),
  7700. doc='',
  7701. ),
  7702. StructFieldDecl(
  7703. name='skin_bonebodyid',
  7704. type=PointerType(
  7705. inner_type=ValueType(name='int'),
  7706. ),
  7707. doc='',
  7708. ),
  7709. StructFieldDecl(
  7710. name='skin_bonevertid',
  7711. type=PointerType(
  7712. inner_type=ValueType(name='int'),
  7713. ),
  7714. doc='',
  7715. ),
  7716. StructFieldDecl(
  7717. name='skin_bonevertweight',
  7718. type=PointerType(
  7719. inner_type=ValueType(name='float'),
  7720. ),
  7721. doc='',
  7722. ),
  7723. StructFieldDecl(
  7724. name='skin_pathadr',
  7725. type=PointerType(
  7726. inner_type=ValueType(name='int'),
  7727. ),
  7728. doc='',
  7729. ),
  7730. StructFieldDecl(
  7731. name='tex_pathadr',
  7732. type=PointerType(
  7733. inner_type=ValueType(name='int'),
  7734. ),
  7735. doc='',
  7736. ),
  7737. StructFieldDecl(
  7738. name='mat_texid',
  7739. type=PointerType(
  7740. inner_type=ValueType(name='int'),
  7741. ),
  7742. doc='',
  7743. ),
  7744. StructFieldDecl(
  7745. name='mat_texuniform',
  7746. type=PointerType(
  7747. inner_type=ValueType(name='mjtByte'),
  7748. ),
  7749. doc='',
  7750. ),
  7751. StructFieldDecl(
  7752. name='mat_texrepeat',
  7753. type=PointerType(
  7754. inner_type=ValueType(name='float'),
  7755. ),
  7756. doc='',
  7757. ),
  7758. StructFieldDecl(
  7759. name='mat_emission',
  7760. type=PointerType(
  7761. inner_type=ValueType(name='float'),
  7762. ),
  7763. doc='',
  7764. ),
  7765. StructFieldDecl(
  7766. name='mat_specular',
  7767. type=PointerType(
  7768. inner_type=ValueType(name='float'),
  7769. ),
  7770. doc='',
  7771. ),
  7772. StructFieldDecl(
  7773. name='mat_shininess',
  7774. type=PointerType(
  7775. inner_type=ValueType(name='float'),
  7776. ),
  7777. doc='',
  7778. ),
  7779. StructFieldDecl(
  7780. name='mat_reflectance',
  7781. type=PointerType(
  7782. inner_type=ValueType(name='float'),
  7783. ),
  7784. doc='',
  7785. ),
  7786. StructFieldDecl(
  7787. name='mat_metallic',
  7788. type=PointerType(
  7789. inner_type=ValueType(name='float'),
  7790. ),
  7791. doc='',
  7792. ),
  7793. StructFieldDecl(
  7794. name='mat_roughness',
  7795. type=PointerType(
  7796. inner_type=ValueType(name='float'),
  7797. ),
  7798. doc='',
  7799. ),
  7800. StructFieldDecl(
  7801. name='mat_rgba',
  7802. type=PointerType(
  7803. inner_type=ValueType(name='float'),
  7804. ),
  7805. doc='',
  7806. ),
  7807. StructFieldDecl(
  7808. name='eq_type',
  7809. type=PointerType(
  7810. inner_type=ValueType(name='int'),
  7811. ),
  7812. doc='',
  7813. ),
  7814. StructFieldDecl(
  7815. name='eq_obj1id',
  7816. type=PointerType(
  7817. inner_type=ValueType(name='int'),
  7818. ),
  7819. doc='',
  7820. ),
  7821. StructFieldDecl(
  7822. name='eq_obj2id',
  7823. type=PointerType(
  7824. inner_type=ValueType(name='int'),
  7825. ),
  7826. doc='',
  7827. ),
  7828. StructFieldDecl(
  7829. name='eq_objtype',
  7830. type=PointerType(
  7831. inner_type=ValueType(name='int'),
  7832. ),
  7833. doc='',
  7834. ),
  7835. StructFieldDecl(
  7836. name='eq_data',
  7837. type=PointerType(
  7838. inner_type=ValueType(name='mjtNum'),
  7839. ),
  7840. doc='',
  7841. ),
  7842. StructFieldDecl(
  7843. name='tendon_num',
  7844. type=PointerType(
  7845. inner_type=ValueType(name='int'),
  7846. ),
  7847. doc='',
  7848. ),
  7849. StructFieldDecl(
  7850. name='tendon_matid',
  7851. type=PointerType(
  7852. inner_type=ValueType(name='int'),
  7853. ),
  7854. doc='',
  7855. ),
  7856. StructFieldDecl(
  7857. name='tendon_group',
  7858. type=PointerType(
  7859. inner_type=ValueType(name='int'),
  7860. ),
  7861. doc='',
  7862. ),
  7863. StructFieldDecl(
  7864. name='tendon_limited',
  7865. type=PointerType(
  7866. inner_type=ValueType(name='mjtByte'),
  7867. ),
  7868. doc='',
  7869. ),
  7870. StructFieldDecl(
  7871. name='tendon_width',
  7872. type=PointerType(
  7873. inner_type=ValueType(name='mjtNum'),
  7874. ),
  7875. doc='',
  7876. ),
  7877. StructFieldDecl(
  7878. name='tendon_range',
  7879. type=PointerType(
  7880. inner_type=ValueType(name='mjtNum'),
  7881. ),
  7882. doc='',
  7883. ),
  7884. StructFieldDecl(
  7885. name='tendon_stiffness',
  7886. type=PointerType(
  7887. inner_type=ValueType(name='mjtNum'),
  7888. ),
  7889. doc='',
  7890. ),
  7891. StructFieldDecl(
  7892. name='tendon_damping',
  7893. type=PointerType(
  7894. inner_type=ValueType(name='mjtNum'),
  7895. ),
  7896. doc='',
  7897. ),
  7898. StructFieldDecl(
  7899. name='tendon_frictionloss',
  7900. type=PointerType(
  7901. inner_type=ValueType(name='mjtNum'),
  7902. ),
  7903. doc='',
  7904. ),
  7905. StructFieldDecl(
  7906. name='tendon_lengthspring',
  7907. type=PointerType(
  7908. inner_type=ValueType(name='mjtNum'),
  7909. ),
  7910. doc='',
  7911. ),
  7912. StructFieldDecl(
  7913. name='tendon_rgba',
  7914. type=PointerType(
  7915. inner_type=ValueType(name='float'),
  7916. ),
  7917. doc='',
  7918. ),
  7919. StructFieldDecl(
  7920. name='actuator_trntype',
  7921. type=PointerType(
  7922. inner_type=ValueType(name='int'),
  7923. ),
  7924. doc='',
  7925. ),
  7926. StructFieldDecl(
  7927. name='actuator_dyntype',
  7928. type=PointerType(
  7929. inner_type=ValueType(name='int'),
  7930. ),
  7931. doc='',
  7932. ),
  7933. StructFieldDecl(
  7934. name='actuator_trnid',
  7935. type=PointerType(
  7936. inner_type=ValueType(name='int'),
  7937. ),
  7938. doc='',
  7939. ),
  7940. StructFieldDecl(
  7941. name='actuator_actadr',
  7942. type=PointerType(
  7943. inner_type=ValueType(name='int'),
  7944. ),
  7945. doc='',
  7946. ),
  7947. StructFieldDecl(
  7948. name='actuator_actnum',
  7949. type=PointerType(
  7950. inner_type=ValueType(name='int'),
  7951. ),
  7952. doc='',
  7953. ),
  7954. StructFieldDecl(
  7955. name='actuator_group',
  7956. type=PointerType(
  7957. inner_type=ValueType(name='int'),
  7958. ),
  7959. doc='',
  7960. ),
  7961. StructFieldDecl(
  7962. name='actuator_ctrllimited',
  7963. type=PointerType(
  7964. inner_type=ValueType(name='mjtByte'),
  7965. ),
  7966. doc='',
  7967. ),
  7968. StructFieldDecl(
  7969. name='actuator_actlimited',
  7970. type=PointerType(
  7971. inner_type=ValueType(name='mjtByte'),
  7972. ),
  7973. doc='',
  7974. ),
  7975. StructFieldDecl(
  7976. name='actuator_ctrlrange',
  7977. type=PointerType(
  7978. inner_type=ValueType(name='mjtNum'),
  7979. ),
  7980. doc='',
  7981. ),
  7982. StructFieldDecl(
  7983. name='actuator_actrange',
  7984. type=PointerType(
  7985. inner_type=ValueType(name='mjtNum'),
  7986. ),
  7987. doc='',
  7988. ),
  7989. StructFieldDecl(
  7990. name='actuator_cranklength',
  7991. type=PointerType(
  7992. inner_type=ValueType(name='mjtNum'),
  7993. ),
  7994. doc='',
  7995. ),
  7996. StructFieldDecl(
  7997. name='sensor_type',
  7998. type=PointerType(
  7999. inner_type=ValueType(name='int'),
  8000. ),
  8001. doc='',
  8002. ),
  8003. StructFieldDecl(
  8004. name='sensor_objid',
  8005. type=PointerType(
  8006. inner_type=ValueType(name='int'),
  8007. ),
  8008. doc='',
  8009. ),
  8010. StructFieldDecl(
  8011. name='sensor_adr',
  8012. type=PointerType(
  8013. inner_type=ValueType(name='int'),
  8014. ),
  8015. doc='',
  8016. ),
  8017. StructFieldDecl(
  8018. name='name_bodyadr',
  8019. type=PointerType(
  8020. inner_type=ValueType(name='int'),
  8021. ),
  8022. doc='',
  8023. ),
  8024. StructFieldDecl(
  8025. name='name_jntadr',
  8026. type=PointerType(
  8027. inner_type=ValueType(name='int'),
  8028. ),
  8029. doc='',
  8030. ),
  8031. StructFieldDecl(
  8032. name='name_geomadr',
  8033. type=PointerType(
  8034. inner_type=ValueType(name='int'),
  8035. ),
  8036. doc='',
  8037. ),
  8038. StructFieldDecl(
  8039. name='name_siteadr',
  8040. type=PointerType(
  8041. inner_type=ValueType(name='int'),
  8042. ),
  8043. doc='',
  8044. ),
  8045. StructFieldDecl(
  8046. name='name_camadr',
  8047. type=PointerType(
  8048. inner_type=ValueType(name='int'),
  8049. ),
  8050. doc='',
  8051. ),
  8052. StructFieldDecl(
  8053. name='name_lightadr',
  8054. type=PointerType(
  8055. inner_type=ValueType(name='int'),
  8056. ),
  8057. doc='',
  8058. ),
  8059. StructFieldDecl(
  8060. name='name_eqadr',
  8061. type=PointerType(
  8062. inner_type=ValueType(name='int'),
  8063. ),
  8064. doc='',
  8065. ),
  8066. StructFieldDecl(
  8067. name='name_tendonadr',
  8068. type=PointerType(
  8069. inner_type=ValueType(name='int'),
  8070. ),
  8071. doc='',
  8072. ),
  8073. StructFieldDecl(
  8074. name='name_actuatoradr',
  8075. type=PointerType(
  8076. inner_type=ValueType(name='int'),
  8077. ),
  8078. doc='',
  8079. ),
  8080. StructFieldDecl(
  8081. name='names',
  8082. type=PointerType(
  8083. inner_type=ValueType(name='char'),
  8084. ),
  8085. doc='',
  8086. ),
  8087. StructFieldDecl(
  8088. name='paths',
  8089. type=PointerType(
  8090. inner_type=ValueType(name='char'),
  8091. ),
  8092. doc='',
  8093. ),
  8094. ),
  8095. ),
  8096. doc='',
  8097. ),
  8098. StructFieldDecl(
  8099. name='data',
  8100. type=AnonymousStructDecl(
  8101. fields=(
  8102. StructFieldDecl(
  8103. name='warning',
  8104. type=ArrayType(
  8105. inner_type=ValueType(name='mjWarningStat'),
  8106. extents=(8,),
  8107. ),
  8108. doc='',
  8109. ),
  8110. StructFieldDecl(
  8111. name='nefc',
  8112. type=ValueType(name='int'),
  8113. doc='',
  8114. ),
  8115. StructFieldDecl(
  8116. name='ncon',
  8117. type=ValueType(name='int'),
  8118. doc='',
  8119. ),
  8120. StructFieldDecl(
  8121. name='nisland',
  8122. type=ValueType(name='int'),
  8123. doc='',
  8124. ),
  8125. StructFieldDecl(
  8126. name='time',
  8127. type=ValueType(name='mjtNum'),
  8128. doc='',
  8129. ),
  8130. StructFieldDecl(
  8131. name='act',
  8132. type=PointerType(
  8133. inner_type=ValueType(name='mjtNum'),
  8134. ),
  8135. doc='',
  8136. ),
  8137. StructFieldDecl(
  8138. name='ctrl',
  8139. type=PointerType(
  8140. inner_type=ValueType(name='mjtNum'),
  8141. ),
  8142. doc='',
  8143. ),
  8144. StructFieldDecl(
  8145. name='xfrc_applied',
  8146. type=PointerType(
  8147. inner_type=ValueType(name='mjtNum'),
  8148. ),
  8149. doc='',
  8150. ),
  8151. StructFieldDecl(
  8152. name='eq_active',
  8153. type=PointerType(
  8154. inner_type=ValueType(name='mjtByte'),
  8155. ),
  8156. doc='',
  8157. ),
  8158. StructFieldDecl(
  8159. name='sensordata',
  8160. type=PointerType(
  8161. inner_type=ValueType(name='mjtNum'),
  8162. ),
  8163. doc='',
  8164. ),
  8165. StructFieldDecl(
  8166. name='xpos',
  8167. type=PointerType(
  8168. inner_type=ValueType(name='mjtNum'),
  8169. ),
  8170. doc='',
  8171. ),
  8172. StructFieldDecl(
  8173. name='xquat',
  8174. type=PointerType(
  8175. inner_type=ValueType(name='mjtNum'),
  8176. ),
  8177. doc='',
  8178. ),
  8179. StructFieldDecl(
  8180. name='xmat',
  8181. type=PointerType(
  8182. inner_type=ValueType(name='mjtNum'),
  8183. ),
  8184. doc='',
  8185. ),
  8186. StructFieldDecl(
  8187. name='xipos',
  8188. type=PointerType(
  8189. inner_type=ValueType(name='mjtNum'),
  8190. ),
  8191. doc='',
  8192. ),
  8193. StructFieldDecl(
  8194. name='ximat',
  8195. type=PointerType(
  8196. inner_type=ValueType(name='mjtNum'),
  8197. ),
  8198. doc='',
  8199. ),
  8200. StructFieldDecl(
  8201. name='xanchor',
  8202. type=PointerType(
  8203. inner_type=ValueType(name='mjtNum'),
  8204. ),
  8205. doc='',
  8206. ),
  8207. StructFieldDecl(
  8208. name='xaxis',
  8209. type=PointerType(
  8210. inner_type=ValueType(name='mjtNum'),
  8211. ),
  8212. doc='',
  8213. ),
  8214. StructFieldDecl(
  8215. name='geom_xpos',
  8216. type=PointerType(
  8217. inner_type=ValueType(name='mjtNum'),
  8218. ),
  8219. doc='',
  8220. ),
  8221. StructFieldDecl(
  8222. name='geom_xmat',
  8223. type=PointerType(
  8224. inner_type=ValueType(name='mjtNum'),
  8225. ),
  8226. doc='',
  8227. ),
  8228. StructFieldDecl(
  8229. name='site_xpos',
  8230. type=PointerType(
  8231. inner_type=ValueType(name='mjtNum'),
  8232. ),
  8233. doc='',
  8234. ),
  8235. StructFieldDecl(
  8236. name='site_xmat',
  8237. type=PointerType(
  8238. inner_type=ValueType(name='mjtNum'),
  8239. ),
  8240. doc='',
  8241. ),
  8242. StructFieldDecl(
  8243. name='cam_xpos',
  8244. type=PointerType(
  8245. inner_type=ValueType(name='mjtNum'),
  8246. ),
  8247. doc='',
  8248. ),
  8249. StructFieldDecl(
  8250. name='cam_xmat',
  8251. type=PointerType(
  8252. inner_type=ValueType(name='mjtNum'),
  8253. ),
  8254. doc='',
  8255. ),
  8256. StructFieldDecl(
  8257. name='light_xpos',
  8258. type=PointerType(
  8259. inner_type=ValueType(name='mjtNum'),
  8260. ),
  8261. doc='',
  8262. ),
  8263. StructFieldDecl(
  8264. name='light_xdir',
  8265. type=PointerType(
  8266. inner_type=ValueType(name='mjtNum'),
  8267. ),
  8268. doc='',
  8269. ),
  8270. StructFieldDecl(
  8271. name='subtree_com',
  8272. type=PointerType(
  8273. inner_type=ValueType(name='mjtNum'),
  8274. ),
  8275. doc='',
  8276. ),
  8277. StructFieldDecl(
  8278. name='ten_wrapadr',
  8279. type=PointerType(
  8280. inner_type=ValueType(name='int'),
  8281. ),
  8282. doc='',
  8283. ),
  8284. StructFieldDecl(
  8285. name='ten_wrapnum',
  8286. type=PointerType(
  8287. inner_type=ValueType(name='int'),
  8288. ),
  8289. doc='',
  8290. ),
  8291. StructFieldDecl(
  8292. name='wrap_obj',
  8293. type=PointerType(
  8294. inner_type=ValueType(name='int'),
  8295. ),
  8296. doc='',
  8297. ),
  8298. StructFieldDecl(
  8299. name='ten_length',
  8300. type=PointerType(
  8301. inner_type=ValueType(name='mjtNum'),
  8302. ),
  8303. doc='',
  8304. ),
  8305. StructFieldDecl(
  8306. name='wrap_xpos',
  8307. type=PointerType(
  8308. inner_type=ValueType(name='mjtNum'),
  8309. ),
  8310. doc='',
  8311. ),
  8312. StructFieldDecl(
  8313. name='bvh_aabb_dyn',
  8314. type=PointerType(
  8315. inner_type=ValueType(name='mjtNum'),
  8316. ),
  8317. doc='',
  8318. ),
  8319. StructFieldDecl(
  8320. name='bvh_active',
  8321. type=PointerType(
  8322. inner_type=ValueType(name='mjtByte'),
  8323. ),
  8324. doc='',
  8325. ),
  8326. StructFieldDecl(
  8327. name='island_dofadr',
  8328. type=PointerType(
  8329. inner_type=ValueType(name='int'),
  8330. ),
  8331. doc='',
  8332. ),
  8333. StructFieldDecl(
  8334. name='island_dofind',
  8335. type=PointerType(
  8336. inner_type=ValueType(name='int'),
  8337. ),
  8338. doc='',
  8339. ),
  8340. StructFieldDecl(
  8341. name='dof_island',
  8342. type=PointerType(
  8343. inner_type=ValueType(name='int'),
  8344. ),
  8345. doc='',
  8346. ),
  8347. StructFieldDecl(
  8348. name='efc_island',
  8349. type=PointerType(
  8350. inner_type=ValueType(name='int'),
  8351. ),
  8352. doc='',
  8353. ),
  8354. StructFieldDecl(
  8355. name='tendon_efcadr',
  8356. type=PointerType(
  8357. inner_type=ValueType(name='int'),
  8358. ),
  8359. doc='',
  8360. ),
  8361. StructFieldDecl(
  8362. name='flexvert_xpos',
  8363. type=PointerType(
  8364. inner_type=ValueType(name='mjtNum'),
  8365. ),
  8366. doc='',
  8367. ),
  8368. StructFieldDecl(
  8369. name='contact',
  8370. type=PointerType(
  8371. inner_type=ValueType(name='mjContact'),
  8372. ),
  8373. doc='',
  8374. ),
  8375. StructFieldDecl(
  8376. name='efc_force',
  8377. type=PointerType(
  8378. inner_type=ValueType(name='mjtNum'),
  8379. ),
  8380. doc='',
  8381. ),
  8382. StructFieldDecl(
  8383. name='arena',
  8384. type=PointerType(
  8385. inner_type=ValueType(name='void'),
  8386. ),
  8387. doc='',
  8388. ),
  8389. ),
  8390. ),
  8391. doc='',
  8392. ),
  8393. ),
  8394. )),
  8395. ('mjrRect',
  8396. StructDecl(
  8397. name='mjrRect',
  8398. declname='struct mjrRect_',
  8399. fields=(
  8400. StructFieldDecl(
  8401. name='left',
  8402. type=ValueType(name='int'),
  8403. doc='left (usually 0)',
  8404. ),
  8405. StructFieldDecl(
  8406. name='bottom',
  8407. type=ValueType(name='int'),
  8408. doc='bottom (usually 0)',
  8409. ),
  8410. StructFieldDecl(
  8411. name='width',
  8412. type=ValueType(name='int'),
  8413. doc='width (usually buffer width)',
  8414. ),
  8415. StructFieldDecl(
  8416. name='height',
  8417. type=ValueType(name='int'),
  8418. doc='height (usually buffer height)',
  8419. ),
  8420. ),
  8421. )),
  8422. ('mjrContext',
  8423. StructDecl(
  8424. name='mjrContext',
  8425. declname='struct mjrContext_',
  8426. fields=(
  8427. StructFieldDecl(
  8428. name='lineWidth',
  8429. type=ValueType(name='float'),
  8430. doc='line width for wireframe rendering',
  8431. ),
  8432. StructFieldDecl(
  8433. name='shadowClip',
  8434. type=ValueType(name='float'),
  8435. doc='clipping radius for directional lights',
  8436. ),
  8437. StructFieldDecl(
  8438. name='shadowScale',
  8439. type=ValueType(name='float'),
  8440. doc='fraction of light cutoff for spot lights',
  8441. ),
  8442. StructFieldDecl(
  8443. name='fogStart',
  8444. type=ValueType(name='float'),
  8445. doc='fog start = stat.extent * vis.map.fogstart',
  8446. ),
  8447. StructFieldDecl(
  8448. name='fogEnd',
  8449. type=ValueType(name='float'),
  8450. doc='fog end = stat.extent * vis.map.fogend',
  8451. ),
  8452. StructFieldDecl(
  8453. name='fogRGBA',
  8454. type=ArrayType(
  8455. inner_type=ValueType(name='float'),
  8456. extents=(4,),
  8457. ),
  8458. doc='fog rgba',
  8459. ),
  8460. StructFieldDecl(
  8461. name='shadowSize',
  8462. type=ValueType(name='int'),
  8463. doc='size of shadow map texture',
  8464. ),
  8465. StructFieldDecl(
  8466. name='offWidth',
  8467. type=ValueType(name='int'),
  8468. doc='width of offscreen buffer',
  8469. ),
  8470. StructFieldDecl(
  8471. name='offHeight',
  8472. type=ValueType(name='int'),
  8473. doc='height of offscreen buffer',
  8474. ),
  8475. StructFieldDecl(
  8476. name='offSamples',
  8477. type=ValueType(name='int'),
  8478. doc='number of offscreen buffer multisamples',
  8479. ),
  8480. StructFieldDecl(
  8481. name='fontScale',
  8482. type=ValueType(name='int'),
  8483. doc='font scale',
  8484. ),
  8485. StructFieldDecl(
  8486. name='auxWidth',
  8487. type=ArrayType(
  8488. inner_type=ValueType(name='int'),
  8489. extents=(10,),
  8490. ),
  8491. doc='auxiliary buffer width',
  8492. ),
  8493. StructFieldDecl(
  8494. name='auxHeight',
  8495. type=ArrayType(
  8496. inner_type=ValueType(name='int'),
  8497. extents=(10,),
  8498. ),
  8499. doc='auxiliary buffer height',
  8500. ),
  8501. StructFieldDecl(
  8502. name='auxSamples',
  8503. type=ArrayType(
  8504. inner_type=ValueType(name='int'),
  8505. extents=(10,),
  8506. ),
  8507. doc='auxiliary buffer multisamples',
  8508. ),
  8509. StructFieldDecl(
  8510. name='offFBO',
  8511. type=ValueType(name='unsigned int'),
  8512. doc='offscreen framebuffer object',
  8513. ),
  8514. StructFieldDecl(
  8515. name='offFBO_r',
  8516. type=ValueType(name='unsigned int'),
  8517. doc='offscreen framebuffer for resolving multisamples',
  8518. ),
  8519. StructFieldDecl(
  8520. name='offColor',
  8521. type=ValueType(name='unsigned int'),
  8522. doc='offscreen color buffer',
  8523. ),
  8524. StructFieldDecl(
  8525. name='offColor_r',
  8526. type=ValueType(name='unsigned int'),
  8527. doc='offscreen color buffer for resolving multisamples',
  8528. ),
  8529. StructFieldDecl(
  8530. name='offDepthStencil',
  8531. type=ValueType(name='unsigned int'),
  8532. doc='offscreen depth and stencil buffer',
  8533. ),
  8534. StructFieldDecl(
  8535. name='offDepthStencil_r',
  8536. type=ValueType(name='unsigned int'),
  8537. doc='offscreen depth and stencil buffer for multisamples',
  8538. ),
  8539. StructFieldDecl(
  8540. name='shadowFBO',
  8541. type=ValueType(name='unsigned int'),
  8542. doc='shadow map framebuffer object',
  8543. ),
  8544. StructFieldDecl(
  8545. name='shadowTex',
  8546. type=ValueType(name='unsigned int'),
  8547. doc='shadow map texture',
  8548. ),
  8549. StructFieldDecl(
  8550. name='auxFBO',
  8551. type=ArrayType(
  8552. inner_type=ValueType(name='unsigned int'),
  8553. extents=(10,),
  8554. ),
  8555. doc='auxiliary framebuffer object',
  8556. ),
  8557. StructFieldDecl(
  8558. name='auxFBO_r',
  8559. type=ArrayType(
  8560. inner_type=ValueType(name='unsigned int'),
  8561. extents=(10,),
  8562. ),
  8563. doc='auxiliary framebuffer object for resolving',
  8564. ),
  8565. StructFieldDecl(
  8566. name='auxColor',
  8567. type=ArrayType(
  8568. inner_type=ValueType(name='unsigned int'),
  8569. extents=(10,),
  8570. ),
  8571. doc='auxiliary color buffer',
  8572. ),
  8573. StructFieldDecl(
  8574. name='auxColor_r',
  8575. type=ArrayType(
  8576. inner_type=ValueType(name='unsigned int'),
  8577. extents=(10,),
  8578. ),
  8579. doc='auxiliary color buffer for resolving',
  8580. ),
  8581. StructFieldDecl(
  8582. name='mat_texid',
  8583. type=ArrayType(
  8584. inner_type=ValueType(name='int'),
  8585. extents=(10000,),
  8586. ),
  8587. doc='material texture ids (-1: no texture)',
  8588. ),
  8589. StructFieldDecl(
  8590. name='mat_texuniform',
  8591. type=ArrayType(
  8592. inner_type=ValueType(name='int'),
  8593. extents=(1000,),
  8594. ),
  8595. doc='texture repetition for 2d mapping',
  8596. ),
  8597. StructFieldDecl(
  8598. name='mat_texrepeat',
  8599. type=ArrayType(
  8600. inner_type=ValueType(name='int'),
  8601. extents=(2000,),
  8602. ),
  8603. doc='texture repetition for 2d mapping',
  8604. ),
  8605. StructFieldDecl(
  8606. name='ntexture',
  8607. type=ValueType(name='int'),
  8608. doc='number of allocated textures',
  8609. ),
  8610. StructFieldDecl(
  8611. name='textureType',
  8612. type=ArrayType(
  8613. inner_type=ValueType(name='int'),
  8614. extents=(1000,),
  8615. ),
  8616. doc='type of texture (mjtTexture) (ntexture)',
  8617. ),
  8618. StructFieldDecl(
  8619. name='texture',
  8620. type=ArrayType(
  8621. inner_type=ValueType(name='unsigned int'),
  8622. extents=(1000,),
  8623. ),
  8624. doc='texture names',
  8625. ),
  8626. StructFieldDecl(
  8627. name='basePlane',
  8628. type=ValueType(name='unsigned int'),
  8629. doc='all planes from model',
  8630. ),
  8631. StructFieldDecl(
  8632. name='baseMesh',
  8633. type=ValueType(name='unsigned int'),
  8634. doc='all meshes from model',
  8635. ),
  8636. StructFieldDecl(
  8637. name='baseHField',
  8638. type=ValueType(name='unsigned int'),
  8639. doc='all height fields from model',
  8640. ),
  8641. StructFieldDecl(
  8642. name='baseBuiltin',
  8643. type=ValueType(name='unsigned int'),
  8644. doc='all builtin geoms, with quality from model',
  8645. ),
  8646. StructFieldDecl(
  8647. name='baseFontNormal',
  8648. type=ValueType(name='unsigned int'),
  8649. doc='normal font',
  8650. ),
  8651. StructFieldDecl(
  8652. name='baseFontShadow',
  8653. type=ValueType(name='unsigned int'),
  8654. doc='shadow font',
  8655. ),
  8656. StructFieldDecl(
  8657. name='baseFontBig',
  8658. type=ValueType(name='unsigned int'),
  8659. doc='big font',
  8660. ),
  8661. StructFieldDecl(
  8662. name='rangePlane',
  8663. type=ValueType(name='int'),
  8664. doc='all planes from model',
  8665. ),
  8666. StructFieldDecl(
  8667. name='rangeMesh',
  8668. type=ValueType(name='int'),
  8669. doc='all meshes from model',
  8670. ),
  8671. StructFieldDecl(
  8672. name='rangeHField',
  8673. type=ValueType(name='int'),
  8674. doc='all hfields from model',
  8675. ),
  8676. StructFieldDecl(
  8677. name='rangeBuiltin',
  8678. type=ValueType(name='int'),
  8679. doc='all builtin geoms, with quality from model',
  8680. ),
  8681. StructFieldDecl(
  8682. name='rangeFont',
  8683. type=ValueType(name='int'),
  8684. doc='all characters in font',
  8685. ),
  8686. StructFieldDecl(
  8687. name='nskin',
  8688. type=ValueType(name='int'),
  8689. doc='number of skins',
  8690. ),
  8691. StructFieldDecl(
  8692. name='skinvertVBO',
  8693. type=PointerType(
  8694. inner_type=ValueType(name='unsigned int'),
  8695. ),
  8696. doc='skin vertex position VBOs (nskin)',
  8697. ),
  8698. StructFieldDecl(
  8699. name='skinnormalVBO',
  8700. type=PointerType(
  8701. inner_type=ValueType(name='unsigned int'),
  8702. ),
  8703. doc='skin vertex normal VBOs (nskin)',
  8704. ),
  8705. StructFieldDecl(
  8706. name='skintexcoordVBO',
  8707. type=PointerType(
  8708. inner_type=ValueType(name='unsigned int'),
  8709. ),
  8710. doc='skin vertex texture coordinate VBOs (nskin)',
  8711. ),
  8712. StructFieldDecl(
  8713. name='skinfaceVBO',
  8714. type=PointerType(
  8715. inner_type=ValueType(name='unsigned int'),
  8716. ),
  8717. doc='skin face index VBOs (nskin)',
  8718. ),
  8719. StructFieldDecl(
  8720. name='charWidth',
  8721. type=ArrayType(
  8722. inner_type=ValueType(name='int'),
  8723. extents=(127,),
  8724. ),
  8725. doc='character widths: normal and shadow',
  8726. ),
  8727. StructFieldDecl(
  8728. name='charWidthBig',
  8729. type=ArrayType(
  8730. inner_type=ValueType(name='int'),
  8731. extents=(127,),
  8732. ),
  8733. doc='chacarter widths: big',
  8734. ),
  8735. StructFieldDecl(
  8736. name='charHeight',
  8737. type=ValueType(name='int'),
  8738. doc='character heights: normal and shadow',
  8739. ),
  8740. StructFieldDecl(
  8741. name='charHeightBig',
  8742. type=ValueType(name='int'),
  8743. doc='character heights: big',
  8744. ),
  8745. StructFieldDecl(
  8746. name='glInitialized',
  8747. type=ValueType(name='int'),
  8748. doc='is OpenGL initialized',
  8749. ),
  8750. StructFieldDecl(
  8751. name='windowAvailable',
  8752. type=ValueType(name='int'),
  8753. doc='is default/window framebuffer available',
  8754. ),
  8755. StructFieldDecl(
  8756. name='windowSamples',
  8757. type=ValueType(name='int'),
  8758. doc='number of samples for default/window framebuffer',
  8759. ),
  8760. StructFieldDecl(
  8761. name='windowStereo',
  8762. type=ValueType(name='int'),
  8763. doc='is stereo available for default/window framebuffer',
  8764. ),
  8765. StructFieldDecl(
  8766. name='windowDoublebuffer',
  8767. type=ValueType(name='int'),
  8768. doc='is default/window framebuffer double buffered',
  8769. ),
  8770. StructFieldDecl(
  8771. name='currentBuffer',
  8772. type=ValueType(name='int'),
  8773. doc='currently active framebuffer: mjFB_WINDOW or mjFB_OFFSCREEN', # pylint: disable=line-too-long
  8774. ),
  8775. StructFieldDecl(
  8776. name='readPixelFormat',
  8777. type=ValueType(name='int'),
  8778. doc='default color pixel format for mjr_readPixels',
  8779. ),
  8780. StructFieldDecl(
  8781. name='readDepthMap',
  8782. type=ValueType(name='int'),
  8783. doc='depth mapping: mjDEPTH_ZERONEAR or mjDEPTH_ZEROFAR',
  8784. ),
  8785. ),
  8786. )),
  8787. ('mjsElement',
  8788. StructDecl(
  8789. name='mjsElement',
  8790. declname='struct mjsElement_',
  8791. fields=(
  8792. StructFieldDecl(
  8793. name='elemtype',
  8794. type=ValueType(name='mjtObj'),
  8795. doc='element type',
  8796. ),
  8797. ),
  8798. )),
  8799. ('mjSpec',
  8800. StructDecl(
  8801. name='mjSpec',
  8802. declname='struct mjSpec_',
  8803. fields=(
  8804. StructFieldDecl(
  8805. name='element',
  8806. type=PointerType(
  8807. inner_type=ValueType(name='mjsElement'),
  8808. ),
  8809. doc='element type',
  8810. ),
  8811. StructFieldDecl(
  8812. name='modelname',
  8813. type=PointerType(
  8814. inner_type=ValueType(name='mjString'),
  8815. ),
  8816. doc='model name',
  8817. ),
  8818. StructFieldDecl(
  8819. name='autolimits',
  8820. type=ValueType(name='mjtByte'),
  8821. doc='infer "limited" attribute based on range',
  8822. ),
  8823. StructFieldDecl(
  8824. name='boundmass',
  8825. type=ValueType(name='double'),
  8826. doc='enforce minimum body mass',
  8827. ),
  8828. StructFieldDecl(
  8829. name='boundinertia',
  8830. type=ValueType(name='double'),
  8831. doc='enforce minimum body diagonal inertia',
  8832. ),
  8833. StructFieldDecl(
  8834. name='settotalmass',
  8835. type=ValueType(name='double'),
  8836. doc='rescale masses and inertias;<=0: ignore',
  8837. ),
  8838. StructFieldDecl(
  8839. name='balanceinertia',
  8840. type=ValueType(name='mjtByte'),
  8841. doc='automatically impose A + B >= C rule',
  8842. ),
  8843. StructFieldDecl(
  8844. name='strippath',
  8845. type=ValueType(name='mjtByte'),
  8846. doc='automatically strip paths from mesh files',
  8847. ),
  8848. StructFieldDecl(
  8849. name='fitaabb',
  8850. type=ValueType(name='mjtByte'),
  8851. doc='meshfit to aabb instead of inertia box',
  8852. ),
  8853. StructFieldDecl(
  8854. name='degree',
  8855. type=ValueType(name='mjtByte'),
  8856. doc='angles in radians or degrees',
  8857. ),
  8858. StructFieldDecl(
  8859. name='eulerseq',
  8860. type=ArrayType(
  8861. inner_type=ValueType(name='char'),
  8862. extents=(3,),
  8863. ),
  8864. doc='sequence for euler rotations',
  8865. ),
  8866. StructFieldDecl(
  8867. name='meshdir',
  8868. type=PointerType(
  8869. inner_type=ValueType(name='mjString'),
  8870. ),
  8871. doc='mesh and hfield directory',
  8872. ),
  8873. StructFieldDecl(
  8874. name='texturedir',
  8875. type=PointerType(
  8876. inner_type=ValueType(name='mjString'),
  8877. ),
  8878. doc='texture directory',
  8879. ),
  8880. StructFieldDecl(
  8881. name='discardvisual',
  8882. type=ValueType(name='mjtByte'),
  8883. doc='discard visual geoms in parser',
  8884. ),
  8885. StructFieldDecl(
  8886. name='convexhull',
  8887. type=ValueType(name='mjtByte'),
  8888. doc='compute mesh convex hulls',
  8889. ),
  8890. StructFieldDecl(
  8891. name='usethread',
  8892. type=ValueType(name='mjtByte'),
  8893. doc='use multiple threads to speed up compiler',
  8894. ),
  8895. StructFieldDecl(
  8896. name='fusestatic',
  8897. type=ValueType(name='mjtByte'),
  8898. doc='fuse static bodies with parent',
  8899. ),
  8900. StructFieldDecl(
  8901. name='inertiafromgeom',
  8902. type=ValueType(name='int'),
  8903. doc='use geom inertias (mjtInertiaFromGeom)',
  8904. ),
  8905. StructFieldDecl(
  8906. name='inertiagrouprange',
  8907. type=ArrayType(
  8908. inner_type=ValueType(name='int'),
  8909. extents=(2,),
  8910. ),
  8911. doc='range of geom groups used to compute inertia',
  8912. ),
  8913. StructFieldDecl(
  8914. name='exactmeshinertia',
  8915. type=ValueType(name='mjtByte'),
  8916. doc='if false, use old formula',
  8917. ),
  8918. StructFieldDecl(
  8919. name='alignfree',
  8920. type=ValueType(name='int'),
  8921. doc='align free joints with inertial frame',
  8922. ),
  8923. StructFieldDecl(
  8924. name='LRopt',
  8925. type=ValueType(name='mjLROpt'),
  8926. doc='options for lengthrange computation',
  8927. ),
  8928. StructFieldDecl(
  8929. name='option',
  8930. type=ValueType(name='mjOption'),
  8931. doc='physics options',
  8932. ),
  8933. StructFieldDecl(
  8934. name='visual',
  8935. type=ValueType(name='mjVisual'),
  8936. doc='visual options',
  8937. ),
  8938. StructFieldDecl(
  8939. name='stat',
  8940. type=ValueType(name='mjStatistic'),
  8941. doc='statistics override (if defined)',
  8942. ),
  8943. StructFieldDecl(
  8944. name='memory',
  8945. type=ValueType(name='size_t'),
  8946. doc='number of bytes in arena+stack memory',
  8947. ),
  8948. StructFieldDecl(
  8949. name='nemax',
  8950. type=ValueType(name='int'),
  8951. doc='max number of equality constraints',
  8952. ),
  8953. StructFieldDecl(
  8954. name='nuserdata',
  8955. type=ValueType(name='int'),
  8956. doc='number of mjtNums in userdata',
  8957. ),
  8958. StructFieldDecl(
  8959. name='nuser_body',
  8960. type=ValueType(name='int'),
  8961. doc='number of mjtNums in body_user',
  8962. ),
  8963. StructFieldDecl(
  8964. name='nuser_jnt',
  8965. type=ValueType(name='int'),
  8966. doc='number of mjtNums in jnt_user',
  8967. ),
  8968. StructFieldDecl(
  8969. name='nuser_geom',
  8970. type=ValueType(name='int'),
  8971. doc='number of mjtNums in geom_user',
  8972. ),
  8973. StructFieldDecl(
  8974. name='nuser_site',
  8975. type=ValueType(name='int'),
  8976. doc='number of mjtNums in site_user',
  8977. ),
  8978. StructFieldDecl(
  8979. name='nuser_cam',
  8980. type=ValueType(name='int'),
  8981. doc='number of mjtNums in cam_user',
  8982. ),
  8983. StructFieldDecl(
  8984. name='nuser_tendon',
  8985. type=ValueType(name='int'),
  8986. doc='number of mjtNums in tendon_user',
  8987. ),
  8988. StructFieldDecl(
  8989. name='nuser_actuator',
  8990. type=ValueType(name='int'),
  8991. doc='number of mjtNums in actuator_user',
  8992. ),
  8993. StructFieldDecl(
  8994. name='nuser_sensor',
  8995. type=ValueType(name='int'),
  8996. doc='number of mjtNums in sensor_user',
  8997. ),
  8998. StructFieldDecl(
  8999. name='nkey',
  9000. type=ValueType(name='int'),
  9001. doc='number of keyframes',
  9002. ),
  9003. StructFieldDecl(
  9004. name='njmax',
  9005. type=ValueType(name='int'),
  9006. doc='(deprecated) max number of constraints',
  9007. ),
  9008. StructFieldDecl(
  9009. name='nconmax',
  9010. type=ValueType(name='int'),
  9011. doc='(deprecated) max number of detected contacts',
  9012. ),
  9013. StructFieldDecl(
  9014. name='nstack',
  9015. type=ValueType(name='size_t'),
  9016. doc='(deprecated) number of mjtNums in mjData stack',
  9017. ),
  9018. StructFieldDecl(
  9019. name='comment',
  9020. type=PointerType(
  9021. inner_type=ValueType(name='mjString'),
  9022. ),
  9023. doc='comment at top of XML',
  9024. ),
  9025. StructFieldDecl(
  9026. name='modelfiledir',
  9027. type=PointerType(
  9028. inner_type=ValueType(name='mjString'),
  9029. ),
  9030. doc='path to model file',
  9031. ),
  9032. StructFieldDecl(
  9033. name='hasImplicitPluginElem',
  9034. type=ValueType(name='mjtByte'),
  9035. doc='already encountered an implicit plugin sensor/actuator',
  9036. ),
  9037. ),
  9038. )),
  9039. ('mjsOrientation',
  9040. StructDecl(
  9041. name='mjsOrientation',
  9042. declname='struct mjsOrientation_',
  9043. fields=(
  9044. StructFieldDecl(
  9045. name='type',
  9046. type=ValueType(name='mjtOrientation'),
  9047. doc='active orientation specifier',
  9048. ),
  9049. StructFieldDecl(
  9050. name='axisangle',
  9051. type=ArrayType(
  9052. inner_type=ValueType(name='double'),
  9053. extents=(4,),
  9054. ),
  9055. doc='axis and angle',
  9056. ),
  9057. StructFieldDecl(
  9058. name='xyaxes',
  9059. type=ArrayType(
  9060. inner_type=ValueType(name='double'),
  9061. extents=(6,),
  9062. ),
  9063. doc='x and y axes',
  9064. ),
  9065. StructFieldDecl(
  9066. name='zaxis',
  9067. type=ArrayType(
  9068. inner_type=ValueType(name='double'),
  9069. extents=(3,),
  9070. ),
  9071. doc='z axis (minimal rotation)',
  9072. ),
  9073. StructFieldDecl(
  9074. name='euler',
  9075. type=ArrayType(
  9076. inner_type=ValueType(name='double'),
  9077. extents=(3,),
  9078. ),
  9079. doc='Euler angles',
  9080. ),
  9081. ),
  9082. )),
  9083. ('mjsPlugin',
  9084. StructDecl(
  9085. name='mjsPlugin',
  9086. declname='struct mjsPlugin_',
  9087. fields=(
  9088. StructFieldDecl(
  9089. name='element',
  9090. type=PointerType(
  9091. inner_type=ValueType(name='mjsElement'),
  9092. ),
  9093. doc='element type',
  9094. ),
  9095. StructFieldDecl(
  9096. name='name',
  9097. type=PointerType(
  9098. inner_type=ValueType(name='mjString'),
  9099. ),
  9100. doc='instance name',
  9101. ),
  9102. StructFieldDecl(
  9103. name='plugin_name',
  9104. type=PointerType(
  9105. inner_type=ValueType(name='mjString'),
  9106. ),
  9107. doc='plugin name',
  9108. ),
  9109. StructFieldDecl(
  9110. name='active',
  9111. type=ValueType(name='mjtByte'),
  9112. doc='is the plugin active',
  9113. ),
  9114. StructFieldDecl(
  9115. name='info',
  9116. type=PointerType(
  9117. inner_type=ValueType(name='mjString'),
  9118. ),
  9119. doc='message appended to compiler errors',
  9120. ),
  9121. ),
  9122. )),
  9123. ('mjsBody',
  9124. StructDecl(
  9125. name='mjsBody',
  9126. declname='struct mjsBody_',
  9127. fields=(
  9128. StructFieldDecl(
  9129. name='element',
  9130. type=PointerType(
  9131. inner_type=ValueType(name='mjsElement'),
  9132. ),
  9133. doc='element type',
  9134. ),
  9135. StructFieldDecl(
  9136. name='name',
  9137. type=PointerType(
  9138. inner_type=ValueType(name='mjString'),
  9139. ),
  9140. doc='name',
  9141. ),
  9142. StructFieldDecl(
  9143. name='childclass',
  9144. type=PointerType(
  9145. inner_type=ValueType(name='mjString'),
  9146. ),
  9147. doc='childclass name',
  9148. ),
  9149. StructFieldDecl(
  9150. name='pos',
  9151. type=ArrayType(
  9152. inner_type=ValueType(name='double'),
  9153. extents=(3,),
  9154. ),
  9155. doc='frame position',
  9156. ),
  9157. StructFieldDecl(
  9158. name='quat',
  9159. type=ArrayType(
  9160. inner_type=ValueType(name='double'),
  9161. extents=(4,),
  9162. ),
  9163. doc='frame orientation',
  9164. ),
  9165. StructFieldDecl(
  9166. name='alt',
  9167. type=ValueType(name='mjsOrientation'),
  9168. doc='frame alternative orientation',
  9169. ),
  9170. StructFieldDecl(
  9171. name='mass',
  9172. type=ValueType(name='double'),
  9173. doc='mass',
  9174. ),
  9175. StructFieldDecl(
  9176. name='ipos',
  9177. type=ArrayType(
  9178. inner_type=ValueType(name='double'),
  9179. extents=(3,),
  9180. ),
  9181. doc='inertial frame position',
  9182. ),
  9183. StructFieldDecl(
  9184. name='iquat',
  9185. type=ArrayType(
  9186. inner_type=ValueType(name='double'),
  9187. extents=(4,),
  9188. ),
  9189. doc='inertial frame orientation',
  9190. ),
  9191. StructFieldDecl(
  9192. name='inertia',
  9193. type=ArrayType(
  9194. inner_type=ValueType(name='double'),
  9195. extents=(3,),
  9196. ),
  9197. doc='diagonal inertia (in i-frame)',
  9198. ),
  9199. StructFieldDecl(
  9200. name='ialt',
  9201. type=ValueType(name='mjsOrientation'),
  9202. doc='inertial frame alternative orientation',
  9203. ),
  9204. StructFieldDecl(
  9205. name='fullinertia',
  9206. type=ArrayType(
  9207. inner_type=ValueType(name='double'),
  9208. extents=(6,),
  9209. ),
  9210. doc='non-axis-aligned inertia matrix',
  9211. ),
  9212. StructFieldDecl(
  9213. name='mocap',
  9214. type=ValueType(name='mjtByte'),
  9215. doc='is this a mocap body',
  9216. ),
  9217. StructFieldDecl(
  9218. name='gravcomp',
  9219. type=ValueType(name='double'),
  9220. doc='gravity compensation',
  9221. ),
  9222. StructFieldDecl(
  9223. name='userdata',
  9224. type=PointerType(
  9225. inner_type=ValueType(name='mjDoubleVec'),
  9226. ),
  9227. doc='user data',
  9228. ),
  9229. StructFieldDecl(
  9230. name='explicitinertial',
  9231. type=ValueType(name='mjtByte'),
  9232. doc='whether to save the body with explicit inertial clause',
  9233. ),
  9234. StructFieldDecl(
  9235. name='plugin',
  9236. type=ValueType(name='mjsPlugin'),
  9237. doc='passive force plugin',
  9238. ),
  9239. StructFieldDecl(
  9240. name='info',
  9241. type=PointerType(
  9242. inner_type=ValueType(name='mjString'),
  9243. ),
  9244. doc='message appended to compiler errors',
  9245. ),
  9246. ),
  9247. )),
  9248. ('mjsFrame',
  9249. StructDecl(
  9250. name='mjsFrame',
  9251. declname='struct mjsFrame_',
  9252. fields=(
  9253. StructFieldDecl(
  9254. name='element',
  9255. type=PointerType(
  9256. inner_type=ValueType(name='mjsElement'),
  9257. ),
  9258. doc='element type',
  9259. ),
  9260. StructFieldDecl(
  9261. name='name',
  9262. type=PointerType(
  9263. inner_type=ValueType(name='mjString'),
  9264. ),
  9265. doc='name',
  9266. ),
  9267. StructFieldDecl(
  9268. name='childclass',
  9269. type=PointerType(
  9270. inner_type=ValueType(name='mjString'),
  9271. ),
  9272. doc='childclass name',
  9273. ),
  9274. StructFieldDecl(
  9275. name='pos',
  9276. type=ArrayType(
  9277. inner_type=ValueType(name='double'),
  9278. extents=(3,),
  9279. ),
  9280. doc='position',
  9281. ),
  9282. StructFieldDecl(
  9283. name='quat',
  9284. type=ArrayType(
  9285. inner_type=ValueType(name='double'),
  9286. extents=(4,),
  9287. ),
  9288. doc='orientation',
  9289. ),
  9290. StructFieldDecl(
  9291. name='alt',
  9292. type=ValueType(name='mjsOrientation'),
  9293. doc='alternative orientation',
  9294. ),
  9295. StructFieldDecl(
  9296. name='info',
  9297. type=PointerType(
  9298. inner_type=ValueType(name='mjString'),
  9299. ),
  9300. doc='message appended to compiler errors',
  9301. ),
  9302. ),
  9303. )),
  9304. ('mjsJoint',
  9305. StructDecl(
  9306. name='mjsJoint',
  9307. declname='struct mjsJoint_',
  9308. fields=(
  9309. StructFieldDecl(
  9310. name='element',
  9311. type=PointerType(
  9312. inner_type=ValueType(name='mjsElement'),
  9313. ),
  9314. doc='element type',
  9315. ),
  9316. StructFieldDecl(
  9317. name='name',
  9318. type=PointerType(
  9319. inner_type=ValueType(name='mjString'),
  9320. ),
  9321. doc='name',
  9322. ),
  9323. StructFieldDecl(
  9324. name='type',
  9325. type=ValueType(name='mjtJoint'),
  9326. doc='joint type',
  9327. ),
  9328. StructFieldDecl(
  9329. name='pos',
  9330. type=ArrayType(
  9331. inner_type=ValueType(name='double'),
  9332. extents=(3,),
  9333. ),
  9334. doc='anchor position',
  9335. ),
  9336. StructFieldDecl(
  9337. name='axis',
  9338. type=ArrayType(
  9339. inner_type=ValueType(name='double'),
  9340. extents=(3,),
  9341. ),
  9342. doc='joint axis',
  9343. ),
  9344. StructFieldDecl(
  9345. name='ref',
  9346. type=ValueType(name='double'),
  9347. doc='value at reference configuration: qpos0',
  9348. ),
  9349. StructFieldDecl(
  9350. name='align',
  9351. type=ValueType(name='int'),
  9352. doc='align free joint with body com (mjtAlignFree)',
  9353. ),
  9354. StructFieldDecl(
  9355. name='stiffness',
  9356. type=ValueType(name='double'),
  9357. doc='stiffness coefficient',
  9358. ),
  9359. StructFieldDecl(
  9360. name='springref',
  9361. type=ValueType(name='double'),
  9362. doc='spring reference value: qpos_spring',
  9363. ),
  9364. StructFieldDecl(
  9365. name='springdamper',
  9366. type=ArrayType(
  9367. inner_type=ValueType(name='double'),
  9368. extents=(2,),
  9369. ),
  9370. doc='timeconst, dampratio',
  9371. ),
  9372. StructFieldDecl(
  9373. name='limited',
  9374. type=ValueType(name='int'),
  9375. doc='does joint have limits (mjtLimited)',
  9376. ),
  9377. StructFieldDecl(
  9378. name='range',
  9379. type=ArrayType(
  9380. inner_type=ValueType(name='double'),
  9381. extents=(2,),
  9382. ),
  9383. doc='joint limits',
  9384. ),
  9385. StructFieldDecl(
  9386. name='margin',
  9387. type=ValueType(name='double'),
  9388. doc='margin value for joint limit detection',
  9389. ),
  9390. StructFieldDecl(
  9391. name='solref_limit',
  9392. type=ArrayType(
  9393. inner_type=ValueType(name='mjtNum'),
  9394. extents=(2,),
  9395. ),
  9396. doc='solver reference: joint limits',
  9397. ),
  9398. StructFieldDecl(
  9399. name='solimp_limit',
  9400. type=ArrayType(
  9401. inner_type=ValueType(name='mjtNum'),
  9402. extents=(5,),
  9403. ),
  9404. doc='solver impedance: joint limits',
  9405. ),
  9406. StructFieldDecl(
  9407. name='actfrclimited',
  9408. type=ValueType(name='int'),
  9409. doc='are actuator forces on joint limited (mjtLimited)',
  9410. ),
  9411. StructFieldDecl(
  9412. name='actfrcrange',
  9413. type=ArrayType(
  9414. inner_type=ValueType(name='double'),
  9415. extents=(2,),
  9416. ),
  9417. doc='actuator force limits',
  9418. ),
  9419. StructFieldDecl(
  9420. name='armature',
  9421. type=ValueType(name='double'),
  9422. doc='armature inertia (mass for slider)',
  9423. ),
  9424. StructFieldDecl(
  9425. name='damping',
  9426. type=ValueType(name='double'),
  9427. doc='damping coefficient',
  9428. ),
  9429. StructFieldDecl(
  9430. name='frictionloss',
  9431. type=ValueType(name='double'),
  9432. doc='friction loss',
  9433. ),
  9434. StructFieldDecl(
  9435. name='solref_friction',
  9436. type=ArrayType(
  9437. inner_type=ValueType(name='mjtNum'),
  9438. extents=(2,),
  9439. ),
  9440. doc='solver reference: dof friction',
  9441. ),
  9442. StructFieldDecl(
  9443. name='solimp_friction',
  9444. type=ArrayType(
  9445. inner_type=ValueType(name='mjtNum'),
  9446. extents=(5,),
  9447. ),
  9448. doc='solver impedance: dof friction',
  9449. ),
  9450. StructFieldDecl(
  9451. name='group',
  9452. type=ValueType(name='int'),
  9453. doc='group',
  9454. ),
  9455. StructFieldDecl(
  9456. name='actgravcomp',
  9457. type=ValueType(name='mjtByte'),
  9458. doc='is gravcomp force applied via actuators',
  9459. ),
  9460. StructFieldDecl(
  9461. name='userdata',
  9462. type=PointerType(
  9463. inner_type=ValueType(name='mjDoubleVec'),
  9464. ),
  9465. doc='user data',
  9466. ),
  9467. StructFieldDecl(
  9468. name='info',
  9469. type=PointerType(
  9470. inner_type=ValueType(name='mjString'),
  9471. ),
  9472. doc='message appended to compiler errors',
  9473. ),
  9474. ),
  9475. )),
  9476. ('mjsGeom',
  9477. StructDecl(
  9478. name='mjsGeom',
  9479. declname='struct mjsGeom_',
  9480. fields=(
  9481. StructFieldDecl(
  9482. name='element',
  9483. type=PointerType(
  9484. inner_type=ValueType(name='mjsElement'),
  9485. ),
  9486. doc='element type',
  9487. ),
  9488. StructFieldDecl(
  9489. name='name',
  9490. type=PointerType(
  9491. inner_type=ValueType(name='mjString'),
  9492. ),
  9493. doc='name',
  9494. ),
  9495. StructFieldDecl(
  9496. name='type',
  9497. type=ValueType(name='mjtGeom'),
  9498. doc='geom type',
  9499. ),
  9500. StructFieldDecl(
  9501. name='pos',
  9502. type=ArrayType(
  9503. inner_type=ValueType(name='double'),
  9504. extents=(3,),
  9505. ),
  9506. doc='position',
  9507. ),
  9508. StructFieldDecl(
  9509. name='quat',
  9510. type=ArrayType(
  9511. inner_type=ValueType(name='double'),
  9512. extents=(4,),
  9513. ),
  9514. doc='orientation',
  9515. ),
  9516. StructFieldDecl(
  9517. name='alt',
  9518. type=ValueType(name='mjsOrientation'),
  9519. doc='alternative orientation',
  9520. ),
  9521. StructFieldDecl(
  9522. name='fromto',
  9523. type=ArrayType(
  9524. inner_type=ValueType(name='double'),
  9525. extents=(6,),
  9526. ),
  9527. doc='alternative for capsule, cylinder, box, ellipsoid',
  9528. ),
  9529. StructFieldDecl(
  9530. name='size',
  9531. type=ArrayType(
  9532. inner_type=ValueType(name='double'),
  9533. extents=(3,),
  9534. ),
  9535. doc='type-specific size',
  9536. ),
  9537. StructFieldDecl(
  9538. name='contype',
  9539. type=ValueType(name='int'),
  9540. doc='contact type',
  9541. ),
  9542. StructFieldDecl(
  9543. name='conaffinity',
  9544. type=ValueType(name='int'),
  9545. doc='contact affinity',
  9546. ),
  9547. StructFieldDecl(
  9548. name='condim',
  9549. type=ValueType(name='int'),
  9550. doc='contact dimensionality',
  9551. ),
  9552. StructFieldDecl(
  9553. name='priority',
  9554. type=ValueType(name='int'),
  9555. doc='contact priority',
  9556. ),
  9557. StructFieldDecl(
  9558. name='friction',
  9559. type=ArrayType(
  9560. inner_type=ValueType(name='double'),
  9561. extents=(3,),
  9562. ),
  9563. doc='one-sided friction coefficients: slide, roll, spin',
  9564. ),
  9565. StructFieldDecl(
  9566. name='solmix',
  9567. type=ValueType(name='double'),
  9568. doc='solver mixing for contact pairs',
  9569. ),
  9570. StructFieldDecl(
  9571. name='solref',
  9572. type=ArrayType(
  9573. inner_type=ValueType(name='mjtNum'),
  9574. extents=(2,),
  9575. ),
  9576. doc='solver reference',
  9577. ),
  9578. StructFieldDecl(
  9579. name='solimp',
  9580. type=ArrayType(
  9581. inner_type=ValueType(name='mjtNum'),
  9582. extents=(5,),
  9583. ),
  9584. doc='solver impedance',
  9585. ),
  9586. StructFieldDecl(
  9587. name='margin',
  9588. type=ValueType(name='double'),
  9589. doc='margin for contact detection',
  9590. ),
  9591. StructFieldDecl(
  9592. name='gap',
  9593. type=ValueType(name='double'),
  9594. doc='include in solver if dist<margin-gap',
  9595. ),
  9596. StructFieldDecl(
  9597. name='mass',
  9598. type=ValueType(name='double'),
  9599. doc='used to compute density',
  9600. ),
  9601. StructFieldDecl(
  9602. name='density',
  9603. type=ValueType(name='double'),
  9604. doc='used to compute mass and inertia from volume or surface',
  9605. ),
  9606. StructFieldDecl(
  9607. name='typeinertia',
  9608. type=ValueType(name='mjtGeomInertia'),
  9609. doc='selects between surface and volume inertia',
  9610. ),
  9611. StructFieldDecl(
  9612. name='fluid_ellipsoid',
  9613. type=ValueType(name='mjtNum'),
  9614. doc='whether ellipsoid-fluid model is active',
  9615. ),
  9616. StructFieldDecl(
  9617. name='fluid_coefs',
  9618. type=ArrayType(
  9619. inner_type=ValueType(name='mjtNum'),
  9620. extents=(5,),
  9621. ),
  9622. doc='ellipsoid-fluid interaction coefs',
  9623. ),
  9624. StructFieldDecl(
  9625. name='material',
  9626. type=PointerType(
  9627. inner_type=ValueType(name='mjString'),
  9628. ),
  9629. doc='name of material',
  9630. ),
  9631. StructFieldDecl(
  9632. name='rgba',
  9633. type=ArrayType(
  9634. inner_type=ValueType(name='float'),
  9635. extents=(4,),
  9636. ),
  9637. doc='rgba when material is omitted',
  9638. ),
  9639. StructFieldDecl(
  9640. name='group',
  9641. type=ValueType(name='int'),
  9642. doc='group',
  9643. ),
  9644. StructFieldDecl(
  9645. name='hfieldname',
  9646. type=PointerType(
  9647. inner_type=ValueType(name='mjString'),
  9648. ),
  9649. doc='heightfield attached to geom',
  9650. ),
  9651. StructFieldDecl(
  9652. name='meshname',
  9653. type=PointerType(
  9654. inner_type=ValueType(name='mjString'),
  9655. ),
  9656. doc='mesh attached to geom',
  9657. ),
  9658. StructFieldDecl(
  9659. name='fitscale',
  9660. type=ValueType(name='double'),
  9661. doc='scale mesh uniformly',
  9662. ),
  9663. StructFieldDecl(
  9664. name='userdata',
  9665. type=PointerType(
  9666. inner_type=ValueType(name='mjDoubleVec'),
  9667. ),
  9668. doc='user data',
  9669. ),
  9670. StructFieldDecl(
  9671. name='plugin',
  9672. type=ValueType(name='mjsPlugin'),
  9673. doc='sdf plugin',
  9674. ),
  9675. StructFieldDecl(
  9676. name='info',
  9677. type=PointerType(
  9678. inner_type=ValueType(name='mjString'),
  9679. ),
  9680. doc='message appended to compiler errors',
  9681. ),
  9682. ),
  9683. )),
  9684. ('mjsSite',
  9685. StructDecl(
  9686. name='mjsSite',
  9687. declname='struct mjsSite_',
  9688. fields=(
  9689. StructFieldDecl(
  9690. name='element',
  9691. type=PointerType(
  9692. inner_type=ValueType(name='mjsElement'),
  9693. ),
  9694. doc='element type',
  9695. ),
  9696. StructFieldDecl(
  9697. name='name',
  9698. type=PointerType(
  9699. inner_type=ValueType(name='mjString'),
  9700. ),
  9701. doc='name',
  9702. ),
  9703. StructFieldDecl(
  9704. name='pos',
  9705. type=ArrayType(
  9706. inner_type=ValueType(name='double'),
  9707. extents=(3,),
  9708. ),
  9709. doc='position',
  9710. ),
  9711. StructFieldDecl(
  9712. name='quat',
  9713. type=ArrayType(
  9714. inner_type=ValueType(name='double'),
  9715. extents=(4,),
  9716. ),
  9717. doc='orientation',
  9718. ),
  9719. StructFieldDecl(
  9720. name='alt',
  9721. type=ValueType(name='mjsOrientation'),
  9722. doc='alternative orientation',
  9723. ),
  9724. StructFieldDecl(
  9725. name='fromto',
  9726. type=ArrayType(
  9727. inner_type=ValueType(name='double'),
  9728. extents=(6,),
  9729. ),
  9730. doc='alternative for capsule, cylinder, box, ellipsoid',
  9731. ),
  9732. StructFieldDecl(
  9733. name='size',
  9734. type=ArrayType(
  9735. inner_type=ValueType(name='double'),
  9736. extents=(3,),
  9737. ),
  9738. doc='geom size',
  9739. ),
  9740. StructFieldDecl(
  9741. name='type',
  9742. type=ValueType(name='mjtGeom'),
  9743. doc='geom type',
  9744. ),
  9745. StructFieldDecl(
  9746. name='material',
  9747. type=PointerType(
  9748. inner_type=ValueType(name='mjString'),
  9749. ),
  9750. doc='name of material',
  9751. ),
  9752. StructFieldDecl(
  9753. name='group',
  9754. type=ValueType(name='int'),
  9755. doc='group',
  9756. ),
  9757. StructFieldDecl(
  9758. name='rgba',
  9759. type=ArrayType(
  9760. inner_type=ValueType(name='float'),
  9761. extents=(4,),
  9762. ),
  9763. doc='rgba when material is omitted',
  9764. ),
  9765. StructFieldDecl(
  9766. name='userdata',
  9767. type=PointerType(
  9768. inner_type=ValueType(name='mjDoubleVec'),
  9769. ),
  9770. doc='user data',
  9771. ),
  9772. StructFieldDecl(
  9773. name='info',
  9774. type=PointerType(
  9775. inner_type=ValueType(name='mjString'),
  9776. ),
  9777. doc='message appended to compiler errors',
  9778. ),
  9779. ),
  9780. )),
  9781. ('mjsCamera',
  9782. StructDecl(
  9783. name='mjsCamera',
  9784. declname='struct mjsCamera_',
  9785. fields=(
  9786. StructFieldDecl(
  9787. name='element',
  9788. type=PointerType(
  9789. inner_type=ValueType(name='mjsElement'),
  9790. ),
  9791. doc='element type',
  9792. ),
  9793. StructFieldDecl(
  9794. name='name',
  9795. type=PointerType(
  9796. inner_type=ValueType(name='mjString'),
  9797. ),
  9798. doc='name',
  9799. ),
  9800. StructFieldDecl(
  9801. name='pos',
  9802. type=ArrayType(
  9803. inner_type=ValueType(name='double'),
  9804. extents=(3,),
  9805. ),
  9806. doc='position',
  9807. ),
  9808. StructFieldDecl(
  9809. name='quat',
  9810. type=ArrayType(
  9811. inner_type=ValueType(name='double'),
  9812. extents=(4,),
  9813. ),
  9814. doc='orientation',
  9815. ),
  9816. StructFieldDecl(
  9817. name='alt',
  9818. type=ValueType(name='mjsOrientation'),
  9819. doc='alternative orientation',
  9820. ),
  9821. StructFieldDecl(
  9822. name='mode',
  9823. type=ValueType(name='mjtCamLight'),
  9824. doc='tracking mode',
  9825. ),
  9826. StructFieldDecl(
  9827. name='targetbody',
  9828. type=PointerType(
  9829. inner_type=ValueType(name='mjString'),
  9830. ),
  9831. doc='target body for tracking/targeting',
  9832. ),
  9833. StructFieldDecl(
  9834. name='orthographic',
  9835. type=ValueType(name='int'),
  9836. doc='is camera orthographic',
  9837. ),
  9838. StructFieldDecl(
  9839. name='fovy',
  9840. type=ValueType(name='double'),
  9841. doc='y-field of view',
  9842. ),
  9843. StructFieldDecl(
  9844. name='ipd',
  9845. type=ValueType(name='double'),
  9846. doc='inter-pupilary distance',
  9847. ),
  9848. StructFieldDecl(
  9849. name='intrinsic',
  9850. type=ArrayType(
  9851. inner_type=ValueType(name='float'),
  9852. extents=(4,),
  9853. ),
  9854. doc='camera intrinsics (length)',
  9855. ),
  9856. StructFieldDecl(
  9857. name='sensor_size',
  9858. type=ArrayType(
  9859. inner_type=ValueType(name='float'),
  9860. extents=(2,),
  9861. ),
  9862. doc='sensor size (length)',
  9863. ),
  9864. StructFieldDecl(
  9865. name='resolution',
  9866. type=ArrayType(
  9867. inner_type=ValueType(name='float'),
  9868. extents=(2,),
  9869. ),
  9870. doc='resolution (pixel)',
  9871. ),
  9872. StructFieldDecl(
  9873. name='focal_length',
  9874. type=ArrayType(
  9875. inner_type=ValueType(name='float'),
  9876. extents=(2,),
  9877. ),
  9878. doc='focal length (length)',
  9879. ),
  9880. StructFieldDecl(
  9881. name='focal_pixel',
  9882. type=ArrayType(
  9883. inner_type=ValueType(name='float'),
  9884. extents=(2,),
  9885. ),
  9886. doc='focal length (pixel)',
  9887. ),
  9888. StructFieldDecl(
  9889. name='principal_length',
  9890. type=ArrayType(
  9891. inner_type=ValueType(name='float'),
  9892. extents=(2,),
  9893. ),
  9894. doc='principal point (length)',
  9895. ),
  9896. StructFieldDecl(
  9897. name='principal_pixel',
  9898. type=ArrayType(
  9899. inner_type=ValueType(name='float'),
  9900. extents=(2,),
  9901. ),
  9902. doc='principal point (pixel)',
  9903. ),
  9904. StructFieldDecl(
  9905. name='userdata',
  9906. type=PointerType(
  9907. inner_type=ValueType(name='mjDoubleVec'),
  9908. ),
  9909. doc='user data',
  9910. ),
  9911. StructFieldDecl(
  9912. name='info',
  9913. type=PointerType(
  9914. inner_type=ValueType(name='mjString'),
  9915. ),
  9916. doc='message appended to compiler errors',
  9917. ),
  9918. ),
  9919. )),
  9920. ('mjsLight',
  9921. StructDecl(
  9922. name='mjsLight',
  9923. declname='struct mjsLight_',
  9924. fields=(
  9925. StructFieldDecl(
  9926. name='element',
  9927. type=PointerType(
  9928. inner_type=ValueType(name='mjsElement'),
  9929. ),
  9930. doc='element type',
  9931. ),
  9932. StructFieldDecl(
  9933. name='name',
  9934. type=PointerType(
  9935. inner_type=ValueType(name='mjString'),
  9936. ),
  9937. doc='name',
  9938. ),
  9939. StructFieldDecl(
  9940. name='pos',
  9941. type=ArrayType(
  9942. inner_type=ValueType(name='double'),
  9943. extents=(3,),
  9944. ),
  9945. doc='position',
  9946. ),
  9947. StructFieldDecl(
  9948. name='dir',
  9949. type=ArrayType(
  9950. inner_type=ValueType(name='double'),
  9951. extents=(3,),
  9952. ),
  9953. doc='direction',
  9954. ),
  9955. StructFieldDecl(
  9956. name='mode',
  9957. type=ValueType(name='mjtCamLight'),
  9958. doc='tracking mode',
  9959. ),
  9960. StructFieldDecl(
  9961. name='targetbody',
  9962. type=PointerType(
  9963. inner_type=ValueType(name='mjString'),
  9964. ),
  9965. doc='target body for targeting',
  9966. ),
  9967. StructFieldDecl(
  9968. name='active',
  9969. type=ValueType(name='mjtByte'),
  9970. doc='is light active',
  9971. ),
  9972. StructFieldDecl(
  9973. name='directional',
  9974. type=ValueType(name='mjtByte'),
  9975. doc='is light directional or spot',
  9976. ),
  9977. StructFieldDecl(
  9978. name='castshadow',
  9979. type=ValueType(name='mjtByte'),
  9980. doc='does light cast shadows',
  9981. ),
  9982. StructFieldDecl(
  9983. name='bulbradius',
  9984. type=ValueType(name='double'),
  9985. doc='bulb radius, for soft shadows',
  9986. ),
  9987. StructFieldDecl(
  9988. name='attenuation',
  9989. type=ArrayType(
  9990. inner_type=ValueType(name='float'),
  9991. extents=(3,),
  9992. ),
  9993. doc='OpenGL attenuation (quadratic model)',
  9994. ),
  9995. StructFieldDecl(
  9996. name='cutoff',
  9997. type=ValueType(name='float'),
  9998. doc='OpenGL cutoff',
  9999. ),
  10000. StructFieldDecl(
  10001. name='exponent',
  10002. type=ValueType(name='float'),
  10003. doc='OpenGL exponent',
  10004. ),
  10005. StructFieldDecl(
  10006. name='ambient',
  10007. type=ArrayType(
  10008. inner_type=ValueType(name='float'),
  10009. extents=(3,),
  10010. ),
  10011. doc='ambient color',
  10012. ),
  10013. StructFieldDecl(
  10014. name='diffuse',
  10015. type=ArrayType(
  10016. inner_type=ValueType(name='float'),
  10017. extents=(3,),
  10018. ),
  10019. doc='diffuse color',
  10020. ),
  10021. StructFieldDecl(
  10022. name='specular',
  10023. type=ArrayType(
  10024. inner_type=ValueType(name='float'),
  10025. extents=(3,),
  10026. ),
  10027. doc='specular color',
  10028. ),
  10029. StructFieldDecl(
  10030. name='info',
  10031. type=PointerType(
  10032. inner_type=ValueType(name='mjString'),
  10033. ),
  10034. doc='message appended to compiler errorsx',
  10035. ),
  10036. ),
  10037. )),
  10038. ('mjsFlex',
  10039. StructDecl(
  10040. name='mjsFlex',
  10041. declname='struct mjsFlex_',
  10042. fields=(
  10043. StructFieldDecl(
  10044. name='element',
  10045. type=PointerType(
  10046. inner_type=ValueType(name='mjsElement'),
  10047. ),
  10048. doc='element type',
  10049. ),
  10050. StructFieldDecl(
  10051. name='name',
  10052. type=PointerType(
  10053. inner_type=ValueType(name='mjString'),
  10054. ),
  10055. doc='name',
  10056. ),
  10057. StructFieldDecl(
  10058. name='contype',
  10059. type=ValueType(name='int'),
  10060. doc='contact type',
  10061. ),
  10062. StructFieldDecl(
  10063. name='conaffinity',
  10064. type=ValueType(name='int'),
  10065. doc='contact affinity',
  10066. ),
  10067. StructFieldDecl(
  10068. name='condim',
  10069. type=ValueType(name='int'),
  10070. doc='contact dimensionality',
  10071. ),
  10072. StructFieldDecl(
  10073. name='priority',
  10074. type=ValueType(name='int'),
  10075. doc='contact priority',
  10076. ),
  10077. StructFieldDecl(
  10078. name='friction',
  10079. type=ArrayType(
  10080. inner_type=ValueType(name='double'),
  10081. extents=(3,),
  10082. ),
  10083. doc='one-sided friction coefficients: slide, roll, spin',
  10084. ),
  10085. StructFieldDecl(
  10086. name='solmix',
  10087. type=ValueType(name='double'),
  10088. doc='solver mixing for contact pairs',
  10089. ),
  10090. StructFieldDecl(
  10091. name='solref',
  10092. type=ArrayType(
  10093. inner_type=ValueType(name='mjtNum'),
  10094. extents=(2,),
  10095. ),
  10096. doc='solver reference',
  10097. ),
  10098. StructFieldDecl(
  10099. name='solimp',
  10100. type=ArrayType(
  10101. inner_type=ValueType(name='mjtNum'),
  10102. extents=(5,),
  10103. ),
  10104. doc='solver impedance',
  10105. ),
  10106. StructFieldDecl(
  10107. name='margin',
  10108. type=ValueType(name='double'),
  10109. doc='margin for contact detection',
  10110. ),
  10111. StructFieldDecl(
  10112. name='gap',
  10113. type=ValueType(name='double'),
  10114. doc='include in solver if dist<margin-gap',
  10115. ),
  10116. StructFieldDecl(
  10117. name='dim',
  10118. type=ValueType(name='int'),
  10119. doc='element dimensionality',
  10120. ),
  10121. StructFieldDecl(
  10122. name='radius',
  10123. type=ValueType(name='double'),
  10124. doc='radius around primitive element',
  10125. ),
  10126. StructFieldDecl(
  10127. name='internal',
  10128. type=ValueType(name='mjtByte'),
  10129. doc='enable internal collisions',
  10130. ),
  10131. StructFieldDecl(
  10132. name='flatskin',
  10133. type=ValueType(name='mjtByte'),
  10134. doc='render flex skin with flat shading',
  10135. ),
  10136. StructFieldDecl(
  10137. name='selfcollide',
  10138. type=ValueType(name='int'),
  10139. doc='mode for flex self colllision',
  10140. ),
  10141. StructFieldDecl(
  10142. name='activelayers',
  10143. type=ValueType(name='int'),
  10144. doc='number of active element layers in 3D',
  10145. ),
  10146. StructFieldDecl(
  10147. name='group',
  10148. type=ValueType(name='int'),
  10149. doc='group for visualizatioh',
  10150. ),
  10151. StructFieldDecl(
  10152. name='edgestiffness',
  10153. type=ValueType(name='double'),
  10154. doc='edge stiffness',
  10155. ),
  10156. StructFieldDecl(
  10157. name='edgedamping',
  10158. type=ValueType(name='double'),
  10159. doc='edge damping',
  10160. ),
  10161. StructFieldDecl(
  10162. name='rgba',
  10163. type=ArrayType(
  10164. inner_type=ValueType(name='float'),
  10165. extents=(4,),
  10166. ),
  10167. doc='rgba when material is omitted',
  10168. ),
  10169. StructFieldDecl(
  10170. name='material',
  10171. type=PointerType(
  10172. inner_type=ValueType(name='mjString'),
  10173. ),
  10174. doc='name of material used for rendering',
  10175. ),
  10176. StructFieldDecl(
  10177. name='young',
  10178. type=ValueType(name='double'),
  10179. doc="Young's modulus",
  10180. ),
  10181. StructFieldDecl(
  10182. name='poisson',
  10183. type=ValueType(name='double'),
  10184. doc="Poisson's ratio",
  10185. ),
  10186. StructFieldDecl(
  10187. name='damping',
  10188. type=ValueType(name='double'),
  10189. doc="Rayleigh's damping",
  10190. ),
  10191. StructFieldDecl(
  10192. name='thickness',
  10193. type=ValueType(name='double'),
  10194. doc='thickness (2D only)',
  10195. ),
  10196. StructFieldDecl(
  10197. name='vertbody',
  10198. type=PointerType(
  10199. inner_type=ValueType(name='mjStringVec'),
  10200. ),
  10201. doc='vertex body names',
  10202. ),
  10203. StructFieldDecl(
  10204. name='vert',
  10205. type=PointerType(
  10206. inner_type=ValueType(name='mjDoubleVec'),
  10207. ),
  10208. doc='vertex positions',
  10209. ),
  10210. StructFieldDecl(
  10211. name='elem',
  10212. type=PointerType(
  10213. inner_type=ValueType(name='mjIntVec'),
  10214. ),
  10215. doc='element vertex ids',
  10216. ),
  10217. StructFieldDecl(
  10218. name='texcoord',
  10219. type=PointerType(
  10220. inner_type=ValueType(name='mjFloatVec'),
  10221. ),
  10222. doc='vertex texture coordinates',
  10223. ),
  10224. StructFieldDecl(
  10225. name='info',
  10226. type=PointerType(
  10227. inner_type=ValueType(name='mjString'),
  10228. ),
  10229. doc='message appended to compiler errors',
  10230. ),
  10231. ),
  10232. )),
  10233. ('mjsMesh',
  10234. StructDecl(
  10235. name='mjsMesh',
  10236. declname='struct mjsMesh_',
  10237. fields=(
  10238. StructFieldDecl(
  10239. name='element',
  10240. type=PointerType(
  10241. inner_type=ValueType(name='mjsElement'),
  10242. ),
  10243. doc='element type',
  10244. ),
  10245. StructFieldDecl(
  10246. name='name',
  10247. type=PointerType(
  10248. inner_type=ValueType(name='mjString'),
  10249. ),
  10250. doc='name',
  10251. ),
  10252. StructFieldDecl(
  10253. name='content_type',
  10254. type=PointerType(
  10255. inner_type=ValueType(name='mjString'),
  10256. ),
  10257. doc='content type of file',
  10258. ),
  10259. StructFieldDecl(
  10260. name='file',
  10261. type=PointerType(
  10262. inner_type=ValueType(name='mjString'),
  10263. ),
  10264. doc='mesh file',
  10265. ),
  10266. StructFieldDecl(
  10267. name='refpos',
  10268. type=ArrayType(
  10269. inner_type=ValueType(name='double'),
  10270. extents=(3,),
  10271. ),
  10272. doc='reference position',
  10273. ),
  10274. StructFieldDecl(
  10275. name='refquat',
  10276. type=ArrayType(
  10277. inner_type=ValueType(name='double'),
  10278. extents=(4,),
  10279. ),
  10280. doc='reference orientation',
  10281. ),
  10282. StructFieldDecl(
  10283. name='scale',
  10284. type=ArrayType(
  10285. inner_type=ValueType(name='double'),
  10286. extents=(3,),
  10287. ),
  10288. doc='rescale mesh',
  10289. ),
  10290. StructFieldDecl(
  10291. name='smoothnormal',
  10292. type=ValueType(name='mjtByte'),
  10293. doc='do not exclude large-angle faces from normals',
  10294. ),
  10295. StructFieldDecl(
  10296. name='maxhullvert',
  10297. type=ValueType(name='int'),
  10298. doc='maximum vertex count for the convex hull',
  10299. ),
  10300. StructFieldDecl(
  10301. name='uservert',
  10302. type=PointerType(
  10303. inner_type=ValueType(name='mjFloatVec'),
  10304. ),
  10305. doc='user vertex data',
  10306. ),
  10307. StructFieldDecl(
  10308. name='usernormal',
  10309. type=PointerType(
  10310. inner_type=ValueType(name='mjFloatVec'),
  10311. ),
  10312. doc='user normal data',
  10313. ),
  10314. StructFieldDecl(
  10315. name='usertexcoord',
  10316. type=PointerType(
  10317. inner_type=ValueType(name='mjFloatVec'),
  10318. ),
  10319. doc='user texcoord data',
  10320. ),
  10321. StructFieldDecl(
  10322. name='userface',
  10323. type=PointerType(
  10324. inner_type=ValueType(name='mjIntVec'),
  10325. ),
  10326. doc='user vertex indices',
  10327. ),
  10328. StructFieldDecl(
  10329. name='userfacenormal',
  10330. type=PointerType(
  10331. inner_type=ValueType(name='mjIntVec'),
  10332. ),
  10333. doc='user normal indices',
  10334. ),
  10335. StructFieldDecl(
  10336. name='userfacetexcoord',
  10337. type=PointerType(
  10338. inner_type=ValueType(name='mjIntVec'),
  10339. ),
  10340. doc='user texcoord indices',
  10341. ),
  10342. StructFieldDecl(
  10343. name='plugin',
  10344. type=ValueType(name='mjsPlugin'),
  10345. doc='sdf plugin',
  10346. ),
  10347. StructFieldDecl(
  10348. name='info',
  10349. type=PointerType(
  10350. inner_type=ValueType(name='mjString'),
  10351. ),
  10352. doc='message appended to compiler errors',
  10353. ),
  10354. ),
  10355. )),
  10356. ('mjsHField',
  10357. StructDecl(
  10358. name='mjsHField',
  10359. declname='struct mjsHField_',
  10360. fields=(
  10361. StructFieldDecl(
  10362. name='element',
  10363. type=PointerType(
  10364. inner_type=ValueType(name='mjsElement'),
  10365. ),
  10366. doc='element type',
  10367. ),
  10368. StructFieldDecl(
  10369. name='name',
  10370. type=PointerType(
  10371. inner_type=ValueType(name='mjString'),
  10372. ),
  10373. doc='name',
  10374. ),
  10375. StructFieldDecl(
  10376. name='content_type',
  10377. type=PointerType(
  10378. inner_type=ValueType(name='mjString'),
  10379. ),
  10380. doc='content type of file',
  10381. ),
  10382. StructFieldDecl(
  10383. name='file',
  10384. type=PointerType(
  10385. inner_type=ValueType(name='mjString'),
  10386. ),
  10387. doc='file: (nrow, ncol, [elevation data])',
  10388. ),
  10389. StructFieldDecl(
  10390. name='size',
  10391. type=ArrayType(
  10392. inner_type=ValueType(name='double'),
  10393. extents=(4,),
  10394. ),
  10395. doc='hfield size (ignore referencing geom size)',
  10396. ),
  10397. StructFieldDecl(
  10398. name='nrow',
  10399. type=ValueType(name='int'),
  10400. doc='number of rows',
  10401. ),
  10402. StructFieldDecl(
  10403. name='ncol',
  10404. type=ValueType(name='int'),
  10405. doc='number of columns',
  10406. ),
  10407. StructFieldDecl(
  10408. name='userdata',
  10409. type=PointerType(
  10410. inner_type=ValueType(name='mjFloatVec'),
  10411. ),
  10412. doc='user-provided elevation data',
  10413. ),
  10414. StructFieldDecl(
  10415. name='info',
  10416. type=PointerType(
  10417. inner_type=ValueType(name='mjString'),
  10418. ),
  10419. doc='message appended to compiler errors',
  10420. ),
  10421. ),
  10422. )),
  10423. ('mjsSkin',
  10424. StructDecl(
  10425. name='mjsSkin',
  10426. declname='struct mjsSkin_',
  10427. fields=(
  10428. StructFieldDecl(
  10429. name='element',
  10430. type=PointerType(
  10431. inner_type=ValueType(name='mjsElement'),
  10432. ),
  10433. doc='element type',
  10434. ),
  10435. StructFieldDecl(
  10436. name='name',
  10437. type=PointerType(
  10438. inner_type=ValueType(name='mjString'),
  10439. ),
  10440. doc='name',
  10441. ),
  10442. StructFieldDecl(
  10443. name='file',
  10444. type=PointerType(
  10445. inner_type=ValueType(name='mjString'),
  10446. ),
  10447. doc='skin file',
  10448. ),
  10449. StructFieldDecl(
  10450. name='material',
  10451. type=PointerType(
  10452. inner_type=ValueType(name='mjString'),
  10453. ),
  10454. doc='name of material used for rendering',
  10455. ),
  10456. StructFieldDecl(
  10457. name='rgba',
  10458. type=ArrayType(
  10459. inner_type=ValueType(name='float'),
  10460. extents=(4,),
  10461. ),
  10462. doc='rgba when material is omitted',
  10463. ),
  10464. StructFieldDecl(
  10465. name='inflate',
  10466. type=ValueType(name='float'),
  10467. doc='inflate in normal direction',
  10468. ),
  10469. StructFieldDecl(
  10470. name='group',
  10471. type=ValueType(name='int'),
  10472. doc='group for visualization',
  10473. ),
  10474. StructFieldDecl(
  10475. name='vert',
  10476. type=PointerType(
  10477. inner_type=ValueType(name='mjFloatVec'),
  10478. ),
  10479. doc='vertex positions',
  10480. ),
  10481. StructFieldDecl(
  10482. name='texcoord',
  10483. type=PointerType(
  10484. inner_type=ValueType(name='mjFloatVec'),
  10485. ),
  10486. doc='texture coordinates',
  10487. ),
  10488. StructFieldDecl(
  10489. name='face',
  10490. type=PointerType(
  10491. inner_type=ValueType(name='mjIntVec'),
  10492. ),
  10493. doc='faces',
  10494. ),
  10495. StructFieldDecl(
  10496. name='bodyname',
  10497. type=PointerType(
  10498. inner_type=ValueType(name='mjStringVec'),
  10499. ),
  10500. doc='body names',
  10501. ),
  10502. StructFieldDecl(
  10503. name='bindpos',
  10504. type=PointerType(
  10505. inner_type=ValueType(name='mjFloatVec'),
  10506. ),
  10507. doc='bind pos',
  10508. ),
  10509. StructFieldDecl(
  10510. name='bindquat',
  10511. type=PointerType(
  10512. inner_type=ValueType(name='mjFloatVec'),
  10513. ),
  10514. doc='bind quat',
  10515. ),
  10516. StructFieldDecl(
  10517. name='vertid',
  10518. type=PointerType(
  10519. inner_type=ValueType(name='mjIntVecVec'),
  10520. ),
  10521. doc='vertex ids',
  10522. ),
  10523. StructFieldDecl(
  10524. name='vertweight',
  10525. type=PointerType(
  10526. inner_type=ValueType(name='mjFloatVecVec'),
  10527. ),
  10528. doc='vertex weights',
  10529. ),
  10530. StructFieldDecl(
  10531. name='info',
  10532. type=PointerType(
  10533. inner_type=ValueType(name='mjString'),
  10534. ),
  10535. doc='message appended to compiler errors',
  10536. ),
  10537. ),
  10538. )),
  10539. ('mjsTexture',
  10540. StructDecl(
  10541. name='mjsTexture',
  10542. declname='struct mjsTexture_',
  10543. fields=(
  10544. StructFieldDecl(
  10545. name='element',
  10546. type=PointerType(
  10547. inner_type=ValueType(name='mjsElement'),
  10548. ),
  10549. doc='element type',
  10550. ),
  10551. StructFieldDecl(
  10552. name='name',
  10553. type=PointerType(
  10554. inner_type=ValueType(name='mjString'),
  10555. ),
  10556. doc='name',
  10557. ),
  10558. StructFieldDecl(
  10559. name='type',
  10560. type=ValueType(name='mjtTexture'),
  10561. doc='texture type',
  10562. ),
  10563. StructFieldDecl(
  10564. name='builtin',
  10565. type=ValueType(name='int'),
  10566. doc='builtin type (mjtBuiltin)',
  10567. ),
  10568. StructFieldDecl(
  10569. name='mark',
  10570. type=ValueType(name='int'),
  10571. doc='mark type (mjtMark)',
  10572. ),
  10573. StructFieldDecl(
  10574. name='rgb1',
  10575. type=ArrayType(
  10576. inner_type=ValueType(name='double'),
  10577. extents=(3,),
  10578. ),
  10579. doc='first color for builtin',
  10580. ),
  10581. StructFieldDecl(
  10582. name='rgb2',
  10583. type=ArrayType(
  10584. inner_type=ValueType(name='double'),
  10585. extents=(3,),
  10586. ),
  10587. doc='second color for builtin',
  10588. ),
  10589. StructFieldDecl(
  10590. name='markrgb',
  10591. type=ArrayType(
  10592. inner_type=ValueType(name='double'),
  10593. extents=(3,),
  10594. ),
  10595. doc='mark color',
  10596. ),
  10597. StructFieldDecl(
  10598. name='random',
  10599. type=ValueType(name='double'),
  10600. doc='probability of random dots',
  10601. ),
  10602. StructFieldDecl(
  10603. name='height',
  10604. type=ValueType(name='int'),
  10605. doc='height in pixels (square for cube and skybox)',
  10606. ),
  10607. StructFieldDecl(
  10608. name='width',
  10609. type=ValueType(name='int'),
  10610. doc='width in pixels',
  10611. ),
  10612. StructFieldDecl(
  10613. name='nchannel',
  10614. type=ValueType(name='int'),
  10615. doc='number of channels',
  10616. ),
  10617. StructFieldDecl(
  10618. name='content_type',
  10619. type=PointerType(
  10620. inner_type=ValueType(name='mjString'),
  10621. ),
  10622. doc='content type of file',
  10623. ),
  10624. StructFieldDecl(
  10625. name='file',
  10626. type=PointerType(
  10627. inner_type=ValueType(name='mjString'),
  10628. ),
  10629. doc='png file to load; use for all sides of cube',
  10630. ),
  10631. StructFieldDecl(
  10632. name='gridsize',
  10633. type=ArrayType(
  10634. inner_type=ValueType(name='int'),
  10635. extents=(2,),
  10636. ),
  10637. doc='size of grid for composite file; (1,1)-repeat',
  10638. ),
  10639. StructFieldDecl(
  10640. name='gridlayout',
  10641. type=ArrayType(
  10642. inner_type=ValueType(name='char'),
  10643. extents=(13,),
  10644. ),
  10645. doc='row-major: L,R,F,B,U,D for faces; . for unused',
  10646. ),
  10647. StructFieldDecl(
  10648. name='cubefiles',
  10649. type=PointerType(
  10650. inner_type=ValueType(name='mjStringVec'),
  10651. ),
  10652. doc='different file for each side of the cube',
  10653. ),
  10654. StructFieldDecl(
  10655. name='data',
  10656. type=PointerType(
  10657. inner_type=ValueType(name='mjByteVec'),
  10658. ),
  10659. doc='texture data',
  10660. ),
  10661. StructFieldDecl(
  10662. name='hflip',
  10663. type=ValueType(name='mjtByte'),
  10664. doc='horizontal flip',
  10665. ),
  10666. StructFieldDecl(
  10667. name='vflip',
  10668. type=ValueType(name='mjtByte'),
  10669. doc='vertical flip',
  10670. ),
  10671. StructFieldDecl(
  10672. name='info',
  10673. type=PointerType(
  10674. inner_type=ValueType(name='mjString'),
  10675. ),
  10676. doc='message appended to compiler errors',
  10677. ),
  10678. ),
  10679. )),
  10680. ('mjsMaterial',
  10681. StructDecl(
  10682. name='mjsMaterial',
  10683. declname='struct mjsMaterial_',
  10684. fields=(
  10685. StructFieldDecl(
  10686. name='element',
  10687. type=PointerType(
  10688. inner_type=ValueType(name='mjsElement'),
  10689. ),
  10690. doc='element type',
  10691. ),
  10692. StructFieldDecl(
  10693. name='name',
  10694. type=PointerType(
  10695. inner_type=ValueType(name='mjString'),
  10696. ),
  10697. doc='name',
  10698. ),
  10699. StructFieldDecl(
  10700. name='textures',
  10701. type=PointerType(
  10702. inner_type=ValueType(name='mjStringVec'),
  10703. ),
  10704. doc='names of textures (empty: none)',
  10705. ),
  10706. StructFieldDecl(
  10707. name='texuniform',
  10708. type=ValueType(name='mjtByte'),
  10709. doc='make texture cube uniform',
  10710. ),
  10711. StructFieldDecl(
  10712. name='texrepeat',
  10713. type=ArrayType(
  10714. inner_type=ValueType(name='float'),
  10715. extents=(2,),
  10716. ),
  10717. doc='texture repetition for 2D mapping',
  10718. ),
  10719. StructFieldDecl(
  10720. name='emission',
  10721. type=ValueType(name='float'),
  10722. doc='emission',
  10723. ),
  10724. StructFieldDecl(
  10725. name='specular',
  10726. type=ValueType(name='float'),
  10727. doc='specular',
  10728. ),
  10729. StructFieldDecl(
  10730. name='shininess',
  10731. type=ValueType(name='float'),
  10732. doc='shininess',
  10733. ),
  10734. StructFieldDecl(
  10735. name='reflectance',
  10736. type=ValueType(name='float'),
  10737. doc='reflectance',
  10738. ),
  10739. StructFieldDecl(
  10740. name='metallic',
  10741. type=ValueType(name='float'),
  10742. doc='metallic',
  10743. ),
  10744. StructFieldDecl(
  10745. name='roughness',
  10746. type=ValueType(name='float'),
  10747. doc='roughness',
  10748. ),
  10749. StructFieldDecl(
  10750. name='rgba',
  10751. type=ArrayType(
  10752. inner_type=ValueType(name='float'),
  10753. extents=(4,),
  10754. ),
  10755. doc='rgba',
  10756. ),
  10757. StructFieldDecl(
  10758. name='info',
  10759. type=PointerType(
  10760. inner_type=ValueType(name='mjString'),
  10761. ),
  10762. doc='message appended to compiler errors',
  10763. ),
  10764. ),
  10765. )),
  10766. ('mjsPair',
  10767. StructDecl(
  10768. name='mjsPair',
  10769. declname='struct mjsPair_',
  10770. fields=(
  10771. StructFieldDecl(
  10772. name='element',
  10773. type=PointerType(
  10774. inner_type=ValueType(name='mjsElement'),
  10775. ),
  10776. doc='element type',
  10777. ),
  10778. StructFieldDecl(
  10779. name='name',
  10780. type=PointerType(
  10781. inner_type=ValueType(name='mjString'),
  10782. ),
  10783. doc='name',
  10784. ),
  10785. StructFieldDecl(
  10786. name='geomname1',
  10787. type=PointerType(
  10788. inner_type=ValueType(name='mjString'),
  10789. ),
  10790. doc='name of geom 1',
  10791. ),
  10792. StructFieldDecl(
  10793. name='geomname2',
  10794. type=PointerType(
  10795. inner_type=ValueType(name='mjString'),
  10796. ),
  10797. doc='name of geom 2',
  10798. ),
  10799. StructFieldDecl(
  10800. name='condim',
  10801. type=ValueType(name='int'),
  10802. doc='contact dimensionality',
  10803. ),
  10804. StructFieldDecl(
  10805. name='solref',
  10806. type=ArrayType(
  10807. inner_type=ValueType(name='mjtNum'),
  10808. extents=(2,),
  10809. ),
  10810. doc='solver reference, normal direction',
  10811. ),
  10812. StructFieldDecl(
  10813. name='solreffriction',
  10814. type=ArrayType(
  10815. inner_type=ValueType(name='mjtNum'),
  10816. extents=(2,),
  10817. ),
  10818. doc='solver reference, frictional directions',
  10819. ),
  10820. StructFieldDecl(
  10821. name='solimp',
  10822. type=ArrayType(
  10823. inner_type=ValueType(name='mjtNum'),
  10824. extents=(5,),
  10825. ),
  10826. doc='solver impedance',
  10827. ),
  10828. StructFieldDecl(
  10829. name='margin',
  10830. type=ValueType(name='double'),
  10831. doc='margin for contact detection',
  10832. ),
  10833. StructFieldDecl(
  10834. name='gap',
  10835. type=ValueType(name='double'),
  10836. doc='include in solver if dist<margin-gap',
  10837. ),
  10838. StructFieldDecl(
  10839. name='friction',
  10840. type=ArrayType(
  10841. inner_type=ValueType(name='double'),
  10842. extents=(5,),
  10843. ),
  10844. doc='full contact friction',
  10845. ),
  10846. StructFieldDecl(
  10847. name='info',
  10848. type=PointerType(
  10849. inner_type=ValueType(name='mjString'),
  10850. ),
  10851. doc='message appended to errors',
  10852. ),
  10853. ),
  10854. )),
  10855. ('mjsExclude',
  10856. StructDecl(
  10857. name='mjsExclude',
  10858. declname='struct mjsExclude_',
  10859. fields=(
  10860. StructFieldDecl(
  10861. name='element',
  10862. type=PointerType(
  10863. inner_type=ValueType(name='mjsElement'),
  10864. ),
  10865. doc='element type',
  10866. ),
  10867. StructFieldDecl(
  10868. name='name',
  10869. type=PointerType(
  10870. inner_type=ValueType(name='mjString'),
  10871. ),
  10872. doc='name',
  10873. ),
  10874. StructFieldDecl(
  10875. name='bodyname1',
  10876. type=PointerType(
  10877. inner_type=ValueType(name='mjString'),
  10878. ),
  10879. doc='name of geom 1',
  10880. ),
  10881. StructFieldDecl(
  10882. name='bodyname2',
  10883. type=PointerType(
  10884. inner_type=ValueType(name='mjString'),
  10885. ),
  10886. doc='name of geom 2',
  10887. ),
  10888. StructFieldDecl(
  10889. name='info',
  10890. type=PointerType(
  10891. inner_type=ValueType(name='mjString'),
  10892. ),
  10893. doc='message appended to errors',
  10894. ),
  10895. ),
  10896. )),
  10897. ('mjsEquality',
  10898. StructDecl(
  10899. name='mjsEquality',
  10900. declname='struct mjsEquality_',
  10901. fields=(
  10902. StructFieldDecl(
  10903. name='element',
  10904. type=PointerType(
  10905. inner_type=ValueType(name='mjsElement'),
  10906. ),
  10907. doc='element type',
  10908. ),
  10909. StructFieldDecl(
  10910. name='name',
  10911. type=PointerType(
  10912. inner_type=ValueType(name='mjString'),
  10913. ),
  10914. doc='name',
  10915. ),
  10916. StructFieldDecl(
  10917. name='type',
  10918. type=ValueType(name='mjtEq'),
  10919. doc='constraint type',
  10920. ),
  10921. StructFieldDecl(
  10922. name='data',
  10923. type=ArrayType(
  10924. inner_type=ValueType(name='double'),
  10925. extents=(11,),
  10926. ),
  10927. doc='type-dependent data',
  10928. ),
  10929. StructFieldDecl(
  10930. name='active',
  10931. type=ValueType(name='mjtByte'),
  10932. doc='is equality initially active',
  10933. ),
  10934. StructFieldDecl(
  10935. name='name1',
  10936. type=PointerType(
  10937. inner_type=ValueType(name='mjString'),
  10938. ),
  10939. doc='name of object 1',
  10940. ),
  10941. StructFieldDecl(
  10942. name='name2',
  10943. type=PointerType(
  10944. inner_type=ValueType(name='mjString'),
  10945. ),
  10946. doc='name of object 2',
  10947. ),
  10948. StructFieldDecl(
  10949. name='objtype',
  10950. type=ValueType(name='mjtObj'),
  10951. doc='type of both objects',
  10952. ),
  10953. StructFieldDecl(
  10954. name='solref',
  10955. type=ArrayType(
  10956. inner_type=ValueType(name='mjtNum'),
  10957. extents=(2,),
  10958. ),
  10959. doc='solver reference',
  10960. ),
  10961. StructFieldDecl(
  10962. name='solimp',
  10963. type=ArrayType(
  10964. inner_type=ValueType(name='mjtNum'),
  10965. extents=(5,),
  10966. ),
  10967. doc='solver impedance',
  10968. ),
  10969. StructFieldDecl(
  10970. name='info',
  10971. type=PointerType(
  10972. inner_type=ValueType(name='mjString'),
  10973. ),
  10974. doc='message appended to errors',
  10975. ),
  10976. ),
  10977. )),
  10978. ('mjsTendon',
  10979. StructDecl(
  10980. name='mjsTendon',
  10981. declname='struct mjsTendon_',
  10982. fields=(
  10983. StructFieldDecl(
  10984. name='element',
  10985. type=PointerType(
  10986. inner_type=ValueType(name='mjsElement'),
  10987. ),
  10988. doc='element type',
  10989. ),
  10990. StructFieldDecl(
  10991. name='name',
  10992. type=PointerType(
  10993. inner_type=ValueType(name='mjString'),
  10994. ),
  10995. doc='name',
  10996. ),
  10997. StructFieldDecl(
  10998. name='stiffness',
  10999. type=ValueType(name='double'),
  11000. doc='stiffness coefficient',
  11001. ),
  11002. StructFieldDecl(
  11003. name='springlength',
  11004. type=ArrayType(
  11005. inner_type=ValueType(name='double'),
  11006. extents=(2,),
  11007. ),
  11008. doc='spring resting length; {-1, -1}: use qpos_spring',
  11009. ),
  11010. StructFieldDecl(
  11011. name='damping',
  11012. type=ValueType(name='double'),
  11013. doc='damping coefficient',
  11014. ),
  11015. StructFieldDecl(
  11016. name='frictionloss',
  11017. type=ValueType(name='double'),
  11018. doc='friction loss',
  11019. ),
  11020. StructFieldDecl(
  11021. name='solref_friction',
  11022. type=ArrayType(
  11023. inner_type=ValueType(name='mjtNum'),
  11024. extents=(2,),
  11025. ),
  11026. doc='solver reference: tendon friction',
  11027. ),
  11028. StructFieldDecl(
  11029. name='solimp_friction',
  11030. type=ArrayType(
  11031. inner_type=ValueType(name='mjtNum'),
  11032. extents=(5,),
  11033. ),
  11034. doc='solver impedance: tendon friction',
  11035. ),
  11036. StructFieldDecl(
  11037. name='limited',
  11038. type=ValueType(name='int'),
  11039. doc='does tendon have limits (mjtLimited)',
  11040. ),
  11041. StructFieldDecl(
  11042. name='range',
  11043. type=ArrayType(
  11044. inner_type=ValueType(name='double'),
  11045. extents=(2,),
  11046. ),
  11047. doc='length limits',
  11048. ),
  11049. StructFieldDecl(
  11050. name='margin',
  11051. type=ValueType(name='double'),
  11052. doc='margin value for tendon limit detection',
  11053. ),
  11054. StructFieldDecl(
  11055. name='solref_limit',
  11056. type=ArrayType(
  11057. inner_type=ValueType(name='mjtNum'),
  11058. extents=(2,),
  11059. ),
  11060. doc='solver reference: tendon limits',
  11061. ),
  11062. StructFieldDecl(
  11063. name='solimp_limit',
  11064. type=ArrayType(
  11065. inner_type=ValueType(name='mjtNum'),
  11066. extents=(5,),
  11067. ),
  11068. doc='solver impedance: tendon limits',
  11069. ),
  11070. StructFieldDecl(
  11071. name='material',
  11072. type=PointerType(
  11073. inner_type=ValueType(name='mjString'),
  11074. ),
  11075. doc='name of material for rendering',
  11076. ),
  11077. StructFieldDecl(
  11078. name='width',
  11079. type=ValueType(name='double'),
  11080. doc='width for rendering',
  11081. ),
  11082. StructFieldDecl(
  11083. name='rgba',
  11084. type=ArrayType(
  11085. inner_type=ValueType(name='float'),
  11086. extents=(4,),
  11087. ),
  11088. doc='rgba when material is omitted',
  11089. ),
  11090. StructFieldDecl(
  11091. name='group',
  11092. type=ValueType(name='int'),
  11093. doc='group',
  11094. ),
  11095. StructFieldDecl(
  11096. name='userdata',
  11097. type=PointerType(
  11098. inner_type=ValueType(name='mjDoubleVec'),
  11099. ),
  11100. doc='user data',
  11101. ),
  11102. StructFieldDecl(
  11103. name='info',
  11104. type=PointerType(
  11105. inner_type=ValueType(name='mjString'),
  11106. ),
  11107. doc='message appended to errors',
  11108. ),
  11109. ),
  11110. )),
  11111. ('mjsWrap',
  11112. StructDecl(
  11113. name='mjsWrap',
  11114. declname='struct mjsWrap_',
  11115. fields=(
  11116. StructFieldDecl(
  11117. name='element',
  11118. type=PointerType(
  11119. inner_type=ValueType(name='mjsElement'),
  11120. ),
  11121. doc='element type',
  11122. ),
  11123. StructFieldDecl(
  11124. name='info',
  11125. type=PointerType(
  11126. inner_type=ValueType(name='mjString'),
  11127. ),
  11128. doc='message appended to errors',
  11129. ),
  11130. ),
  11131. )),
  11132. ('mjsActuator',
  11133. StructDecl(
  11134. name='mjsActuator',
  11135. declname='struct mjsActuator_',
  11136. fields=(
  11137. StructFieldDecl(
  11138. name='element',
  11139. type=PointerType(
  11140. inner_type=ValueType(name='mjsElement'),
  11141. ),
  11142. doc='element type',
  11143. ),
  11144. StructFieldDecl(
  11145. name='name',
  11146. type=PointerType(
  11147. inner_type=ValueType(name='mjString'),
  11148. ),
  11149. doc='name',
  11150. ),
  11151. StructFieldDecl(
  11152. name='gaintype',
  11153. type=ValueType(name='mjtGain'),
  11154. doc='gain type',
  11155. ),
  11156. StructFieldDecl(
  11157. name='gainprm',
  11158. type=ArrayType(
  11159. inner_type=ValueType(name='double'),
  11160. extents=(10,),
  11161. ),
  11162. doc='gain parameters',
  11163. ),
  11164. StructFieldDecl(
  11165. name='biastype',
  11166. type=ValueType(name='mjtBias'),
  11167. doc='bias type',
  11168. ),
  11169. StructFieldDecl(
  11170. name='biasprm',
  11171. type=ArrayType(
  11172. inner_type=ValueType(name='double'),
  11173. extents=(10,),
  11174. ),
  11175. doc='bias parameters',
  11176. ),
  11177. StructFieldDecl(
  11178. name='dyntype',
  11179. type=ValueType(name='mjtDyn'),
  11180. doc='dynamics type',
  11181. ),
  11182. StructFieldDecl(
  11183. name='dynprm',
  11184. type=ArrayType(
  11185. inner_type=ValueType(name='double'),
  11186. extents=(10,),
  11187. ),
  11188. doc='dynamics parameters',
  11189. ),
  11190. StructFieldDecl(
  11191. name='actdim',
  11192. type=ValueType(name='int'),
  11193. doc='number of activation variables',
  11194. ),
  11195. StructFieldDecl(
  11196. name='actearly',
  11197. type=ValueType(name='mjtByte'),
  11198. doc='apply next activations to qfrc',
  11199. ),
  11200. StructFieldDecl(
  11201. name='trntype',
  11202. type=ValueType(name='mjtTrn'),
  11203. doc='transmission type',
  11204. ),
  11205. StructFieldDecl(
  11206. name='gear',
  11207. type=ArrayType(
  11208. inner_type=ValueType(name='double'),
  11209. extents=(6,),
  11210. ),
  11211. doc='length and transmitted force scaling',
  11212. ),
  11213. StructFieldDecl(
  11214. name='target',
  11215. type=PointerType(
  11216. inner_type=ValueType(name='mjString'),
  11217. ),
  11218. doc='name of transmission target',
  11219. ),
  11220. StructFieldDecl(
  11221. name='refsite',
  11222. type=PointerType(
  11223. inner_type=ValueType(name='mjString'),
  11224. ),
  11225. doc='reference site, for site transmission',
  11226. ),
  11227. StructFieldDecl(
  11228. name='slidersite',
  11229. type=PointerType(
  11230. inner_type=ValueType(name='mjString'),
  11231. ),
  11232. doc='site defining cylinder, for slider-crank',
  11233. ),
  11234. StructFieldDecl(
  11235. name='cranklength',
  11236. type=ValueType(name='double'),
  11237. doc='crank length, for slider-crank',
  11238. ),
  11239. StructFieldDecl(
  11240. name='lengthrange',
  11241. type=ArrayType(
  11242. inner_type=ValueType(name='double'),
  11243. extents=(2,),
  11244. ),
  11245. doc='transmission length range',
  11246. ),
  11247. StructFieldDecl(
  11248. name='inheritrange',
  11249. type=ValueType(name='double'),
  11250. doc='automatic range setting for position and intvelocity',
  11251. ),
  11252. StructFieldDecl(
  11253. name='ctrllimited',
  11254. type=ValueType(name='int'),
  11255. doc='are control limits defined (mjtLimited)',
  11256. ),
  11257. StructFieldDecl(
  11258. name='ctrlrange',
  11259. type=ArrayType(
  11260. inner_type=ValueType(name='double'),
  11261. extents=(2,),
  11262. ),
  11263. doc='control range',
  11264. ),
  11265. StructFieldDecl(
  11266. name='forcelimited',
  11267. type=ValueType(name='int'),
  11268. doc='are force limits defined (mjtLimited)',
  11269. ),
  11270. StructFieldDecl(
  11271. name='forcerange',
  11272. type=ArrayType(
  11273. inner_type=ValueType(name='double'),
  11274. extents=(2,),
  11275. ),
  11276. doc='force range',
  11277. ),
  11278. StructFieldDecl(
  11279. name='actlimited',
  11280. type=ValueType(name='int'),
  11281. doc='are activation limits defined (mjtLimited)',
  11282. ),
  11283. StructFieldDecl(
  11284. name='actrange',
  11285. type=ArrayType(
  11286. inner_type=ValueType(name='double'),
  11287. extents=(2,),
  11288. ),
  11289. doc='activation range',
  11290. ),
  11291. StructFieldDecl(
  11292. name='group',
  11293. type=ValueType(name='int'),
  11294. doc='group',
  11295. ),
  11296. StructFieldDecl(
  11297. name='userdata',
  11298. type=PointerType(
  11299. inner_type=ValueType(name='mjDoubleVec'),
  11300. ),
  11301. doc='user data',
  11302. ),
  11303. StructFieldDecl(
  11304. name='plugin',
  11305. type=ValueType(name='mjsPlugin'),
  11306. doc='actuator plugin',
  11307. ),
  11308. StructFieldDecl(
  11309. name='info',
  11310. type=PointerType(
  11311. inner_type=ValueType(name='mjString'),
  11312. ),
  11313. doc='message appended to compiler errors',
  11314. ),
  11315. ),
  11316. )),
  11317. ('mjsSensor',
  11318. StructDecl(
  11319. name='mjsSensor',
  11320. declname='struct mjsSensor_',
  11321. fields=(
  11322. StructFieldDecl(
  11323. name='element',
  11324. type=PointerType(
  11325. inner_type=ValueType(name='mjsElement'),
  11326. ),
  11327. doc='element type',
  11328. ),
  11329. StructFieldDecl(
  11330. name='name',
  11331. type=PointerType(
  11332. inner_type=ValueType(name='mjString'),
  11333. ),
  11334. doc='name',
  11335. ),
  11336. StructFieldDecl(
  11337. name='type',
  11338. type=ValueType(name='mjtSensor'),
  11339. doc='type of sensor',
  11340. ),
  11341. StructFieldDecl(
  11342. name='objtype',
  11343. type=ValueType(name='mjtObj'),
  11344. doc='type of sensorized object',
  11345. ),
  11346. StructFieldDecl(
  11347. name='objname',
  11348. type=PointerType(
  11349. inner_type=ValueType(name='mjString'),
  11350. ),
  11351. doc='name of sensorized object',
  11352. ),
  11353. StructFieldDecl(
  11354. name='reftype',
  11355. type=ValueType(name='mjtObj'),
  11356. doc='type of referenced object',
  11357. ),
  11358. StructFieldDecl(
  11359. name='refname',
  11360. type=PointerType(
  11361. inner_type=ValueType(name='mjString'),
  11362. ),
  11363. doc='name of referenced object',
  11364. ),
  11365. StructFieldDecl(
  11366. name='datatype',
  11367. type=ValueType(name='mjtDataType'),
  11368. doc='data type for sensor measurement',
  11369. ),
  11370. StructFieldDecl(
  11371. name='needstage',
  11372. type=ValueType(name='mjtStage'),
  11373. doc='compute stage needed to simulate sensor',
  11374. ),
  11375. StructFieldDecl(
  11376. name='dim',
  11377. type=ValueType(name='int'),
  11378. doc='number of scalar outputs',
  11379. ),
  11380. StructFieldDecl(
  11381. name='cutoff',
  11382. type=ValueType(name='double'),
  11383. doc='cutoff for real and positive datatypes',
  11384. ),
  11385. StructFieldDecl(
  11386. name='noise',
  11387. type=ValueType(name='double'),
  11388. doc='noise stdev',
  11389. ),
  11390. StructFieldDecl(
  11391. name='userdata',
  11392. type=PointerType(
  11393. inner_type=ValueType(name='mjDoubleVec'),
  11394. ),
  11395. doc='user data',
  11396. ),
  11397. StructFieldDecl(
  11398. name='plugin',
  11399. type=ValueType(name='mjsPlugin'),
  11400. doc='sensor plugin',
  11401. ),
  11402. StructFieldDecl(
  11403. name='info',
  11404. type=PointerType(
  11405. inner_type=ValueType(name='mjString'),
  11406. ),
  11407. doc='message appended to compiler errors',
  11408. ),
  11409. ),
  11410. )),
  11411. ('mjsNumeric',
  11412. StructDecl(
  11413. name='mjsNumeric',
  11414. declname='struct mjsNumeric_',
  11415. fields=(
  11416. StructFieldDecl(
  11417. name='element',
  11418. type=PointerType(
  11419. inner_type=ValueType(name='mjsElement'),
  11420. ),
  11421. doc='element type',
  11422. ),
  11423. StructFieldDecl(
  11424. name='name',
  11425. type=PointerType(
  11426. inner_type=ValueType(name='mjString'),
  11427. ),
  11428. doc='name',
  11429. ),
  11430. StructFieldDecl(
  11431. name='data',
  11432. type=PointerType(
  11433. inner_type=ValueType(name='mjDoubleVec'),
  11434. ),
  11435. doc='initialization data',
  11436. ),
  11437. StructFieldDecl(
  11438. name='size',
  11439. type=ValueType(name='int'),
  11440. doc='array size, can be bigger than data size',
  11441. ),
  11442. StructFieldDecl(
  11443. name='info',
  11444. type=PointerType(
  11445. inner_type=ValueType(name='mjString'),
  11446. ),
  11447. doc='message appended to compiler errors',
  11448. ),
  11449. ),
  11450. )),
  11451. ('mjsText',
  11452. StructDecl(
  11453. name='mjsText',
  11454. declname='struct mjsText_',
  11455. fields=(
  11456. StructFieldDecl(
  11457. name='element',
  11458. type=PointerType(
  11459. inner_type=ValueType(name='mjsElement'),
  11460. ),
  11461. doc='element type',
  11462. ),
  11463. StructFieldDecl(
  11464. name='name',
  11465. type=PointerType(
  11466. inner_type=ValueType(name='mjString'),
  11467. ),
  11468. doc='name',
  11469. ),
  11470. StructFieldDecl(
  11471. name='data',
  11472. type=PointerType(
  11473. inner_type=ValueType(name='mjString'),
  11474. ),
  11475. doc='text string',
  11476. ),
  11477. StructFieldDecl(
  11478. name='info',
  11479. type=PointerType(
  11480. inner_type=ValueType(name='mjString'),
  11481. ),
  11482. doc='message appended to compiler errors',
  11483. ),
  11484. ),
  11485. )),
  11486. ('mjsTuple',
  11487. StructDecl(
  11488. name='mjsTuple',
  11489. declname='struct mjsTuple_',
  11490. fields=(
  11491. StructFieldDecl(
  11492. name='element',
  11493. type=PointerType(
  11494. inner_type=ValueType(name='mjsElement'),
  11495. ),
  11496. doc='element type',
  11497. ),
  11498. StructFieldDecl(
  11499. name='name',
  11500. type=PointerType(
  11501. inner_type=ValueType(name='mjString'),
  11502. ),
  11503. doc='name',
  11504. ),
  11505. StructFieldDecl(
  11506. name='objtype',
  11507. type=PointerType(
  11508. inner_type=ValueType(name='mjIntVec'),
  11509. ),
  11510. doc='object types',
  11511. ),
  11512. StructFieldDecl(
  11513. name='objname',
  11514. type=PointerType(
  11515. inner_type=ValueType(name='mjStringVec'),
  11516. ),
  11517. doc='object names',
  11518. ),
  11519. StructFieldDecl(
  11520. name='objprm',
  11521. type=PointerType(
  11522. inner_type=ValueType(name='mjDoubleVec'),
  11523. ),
  11524. doc='object parameters',
  11525. ),
  11526. StructFieldDecl(
  11527. name='info',
  11528. type=PointerType(
  11529. inner_type=ValueType(name='mjString'),
  11530. ),
  11531. doc='message appended to compiler errors',
  11532. ),
  11533. ),
  11534. )),
  11535. ('mjsKey',
  11536. StructDecl(
  11537. name='mjsKey',
  11538. declname='struct mjsKey_',
  11539. fields=(
  11540. StructFieldDecl(
  11541. name='element',
  11542. type=PointerType(
  11543. inner_type=ValueType(name='mjsElement'),
  11544. ),
  11545. doc='element type',
  11546. ),
  11547. StructFieldDecl(
  11548. name='name',
  11549. type=PointerType(
  11550. inner_type=ValueType(name='mjString'),
  11551. ),
  11552. doc='name',
  11553. ),
  11554. StructFieldDecl(
  11555. name='time',
  11556. type=ValueType(name='double'),
  11557. doc='time',
  11558. ),
  11559. StructFieldDecl(
  11560. name='qpos',
  11561. type=PointerType(
  11562. inner_type=ValueType(name='mjDoubleVec'),
  11563. ),
  11564. doc='qpos',
  11565. ),
  11566. StructFieldDecl(
  11567. name='qvel',
  11568. type=PointerType(
  11569. inner_type=ValueType(name='mjDoubleVec'),
  11570. ),
  11571. doc='qvel',
  11572. ),
  11573. StructFieldDecl(
  11574. name='act',
  11575. type=PointerType(
  11576. inner_type=ValueType(name='mjDoubleVec'),
  11577. ),
  11578. doc='act',
  11579. ),
  11580. StructFieldDecl(
  11581. name='mpos',
  11582. type=PointerType(
  11583. inner_type=ValueType(name='mjDoubleVec'),
  11584. ),
  11585. doc='mocap pos',
  11586. ),
  11587. StructFieldDecl(
  11588. name='mquat',
  11589. type=PointerType(
  11590. inner_type=ValueType(name='mjDoubleVec'),
  11591. ),
  11592. doc='mocap quat',
  11593. ),
  11594. StructFieldDecl(
  11595. name='ctrl',
  11596. type=PointerType(
  11597. inner_type=ValueType(name='mjDoubleVec'),
  11598. ),
  11599. doc='ctrl',
  11600. ),
  11601. StructFieldDecl(
  11602. name='info',
  11603. type=PointerType(
  11604. inner_type=ValueType(name='mjString'),
  11605. ),
  11606. doc='message appended to compiler errors',
  11607. ),
  11608. ),
  11609. )),
  11610. ('mjsDefault',
  11611. StructDecl(
  11612. name='mjsDefault',
  11613. declname='struct mjsDefault_',
  11614. fields=(
  11615. StructFieldDecl(
  11616. name='element',
  11617. type=PointerType(
  11618. inner_type=ValueType(name='mjsElement'),
  11619. ),
  11620. doc='element type',
  11621. ),
  11622. StructFieldDecl(
  11623. name='name',
  11624. type=PointerType(
  11625. inner_type=ValueType(name='mjString'),
  11626. ),
  11627. doc='class name',
  11628. ),
  11629. StructFieldDecl(
  11630. name='joint',
  11631. type=PointerType(
  11632. inner_type=ValueType(name='mjsJoint'),
  11633. ),
  11634. doc='joint defaults',
  11635. ),
  11636. StructFieldDecl(
  11637. name='geom',
  11638. type=PointerType(
  11639. inner_type=ValueType(name='mjsGeom'),
  11640. ),
  11641. doc='geom defaults',
  11642. ),
  11643. StructFieldDecl(
  11644. name='site',
  11645. type=PointerType(
  11646. inner_type=ValueType(name='mjsSite'),
  11647. ),
  11648. doc='site defaults',
  11649. ),
  11650. StructFieldDecl(
  11651. name='camera',
  11652. type=PointerType(
  11653. inner_type=ValueType(name='mjsCamera'),
  11654. ),
  11655. doc='camera defaults',
  11656. ),
  11657. StructFieldDecl(
  11658. name='light',
  11659. type=PointerType(
  11660. inner_type=ValueType(name='mjsLight'),
  11661. ),
  11662. doc='light defaults',
  11663. ),
  11664. StructFieldDecl(
  11665. name='flex',
  11666. type=PointerType(
  11667. inner_type=ValueType(name='mjsFlex'),
  11668. ),
  11669. doc='flex defaults',
  11670. ),
  11671. StructFieldDecl(
  11672. name='mesh',
  11673. type=PointerType(
  11674. inner_type=ValueType(name='mjsMesh'),
  11675. ),
  11676. doc='mesh defaults',
  11677. ),
  11678. StructFieldDecl(
  11679. name='material',
  11680. type=PointerType(
  11681. inner_type=ValueType(name='mjsMaterial'),
  11682. ),
  11683. doc='material defaults',
  11684. ),
  11685. StructFieldDecl(
  11686. name='pair',
  11687. type=PointerType(
  11688. inner_type=ValueType(name='mjsPair'),
  11689. ),
  11690. doc='pair defaults',
  11691. ),
  11692. StructFieldDecl(
  11693. name='equality',
  11694. type=PointerType(
  11695. inner_type=ValueType(name='mjsEquality'),
  11696. ),
  11697. doc='equality defaults',
  11698. ),
  11699. StructFieldDecl(
  11700. name='tendon',
  11701. type=PointerType(
  11702. inner_type=ValueType(name='mjsTendon'),
  11703. ),
  11704. doc='tendon defaults',
  11705. ),
  11706. StructFieldDecl(
  11707. name='actuator',
  11708. type=PointerType(
  11709. inner_type=ValueType(name='mjsActuator'),
  11710. ),
  11711. doc='actuator defaults',
  11712. ),
  11713. ),
  11714. )),
  11715. ('mjuiState',
  11716. StructDecl(
  11717. name='mjuiState',
  11718. declname='struct mjuiState_',
  11719. fields=(
  11720. StructFieldDecl(
  11721. name='nrect',
  11722. type=ValueType(name='int'),
  11723. doc='number of rectangles used',
  11724. ),
  11725. StructFieldDecl(
  11726. name='rect',
  11727. type=ArrayType(
  11728. inner_type=ValueType(name='mjrRect'),
  11729. extents=(25,),
  11730. ),
  11731. doc='rectangles (index 0: entire window)',
  11732. ),
  11733. StructFieldDecl(
  11734. name='userdata',
  11735. type=PointerType(
  11736. inner_type=ValueType(name='void'),
  11737. ),
  11738. doc='pointer to user data (for callbacks)',
  11739. ),
  11740. StructFieldDecl(
  11741. name='type',
  11742. type=ValueType(name='int'),
  11743. doc='(type mjtEvent)',
  11744. ),
  11745. StructFieldDecl(
  11746. name='left',
  11747. type=ValueType(name='int'),
  11748. doc='is left button down',
  11749. ),
  11750. StructFieldDecl(
  11751. name='right',
  11752. type=ValueType(name='int'),
  11753. doc='is right button down',
  11754. ),
  11755. StructFieldDecl(
  11756. name='middle',
  11757. type=ValueType(name='int'),
  11758. doc='is middle button down',
  11759. ),
  11760. StructFieldDecl(
  11761. name='doubleclick',
  11762. type=ValueType(name='int'),
  11763. doc='is last press a double click',
  11764. ),
  11765. StructFieldDecl(
  11766. name='button',
  11767. type=ValueType(name='int'),
  11768. doc='which button was pressed (mjtButton)',
  11769. ),
  11770. StructFieldDecl(
  11771. name='buttontime',
  11772. type=ValueType(name='double'),
  11773. doc='time of last button press',
  11774. ),
  11775. StructFieldDecl(
  11776. name='x',
  11777. type=ValueType(name='double'),
  11778. doc='x position',
  11779. ),
  11780. StructFieldDecl(
  11781. name='y',
  11782. type=ValueType(name='double'),
  11783. doc='y position',
  11784. ),
  11785. StructFieldDecl(
  11786. name='dx',
  11787. type=ValueType(name='double'),
  11788. doc='x displacement',
  11789. ),
  11790. StructFieldDecl(
  11791. name='dy',
  11792. type=ValueType(name='double'),
  11793. doc='y displacement',
  11794. ),
  11795. StructFieldDecl(
  11796. name='sx',
  11797. type=ValueType(name='double'),
  11798. doc='x scroll',
  11799. ),
  11800. StructFieldDecl(
  11801. name='sy',
  11802. type=ValueType(name='double'),
  11803. doc='y scroll',
  11804. ),
  11805. StructFieldDecl(
  11806. name='control',
  11807. type=ValueType(name='int'),
  11808. doc='is control down',
  11809. ),
  11810. StructFieldDecl(
  11811. name='shift',
  11812. type=ValueType(name='int'),
  11813. doc='is shift down',
  11814. ),
  11815. StructFieldDecl(
  11816. name='alt',
  11817. type=ValueType(name='int'),
  11818. doc='is alt down',
  11819. ),
  11820. StructFieldDecl(
  11821. name='key',
  11822. type=ValueType(name='int'),
  11823. doc='which key was pressed',
  11824. ),
  11825. StructFieldDecl(
  11826. name='keytime',
  11827. type=ValueType(name='double'),
  11828. doc='time of last key press',
  11829. ),
  11830. StructFieldDecl(
  11831. name='mouserect',
  11832. type=ValueType(name='int'),
  11833. doc='which rectangle contains mouse',
  11834. ),
  11835. StructFieldDecl(
  11836. name='dragrect',
  11837. type=ValueType(name='int'),
  11838. doc='which rectangle is dragged with mouse',
  11839. ),
  11840. StructFieldDecl(
  11841. name='dragbutton',
  11842. type=ValueType(name='int'),
  11843. doc='which button started drag (mjtButton)',
  11844. ),
  11845. StructFieldDecl(
  11846. name='dropcount',
  11847. type=ValueType(name='int'),
  11848. doc='number of files dropped',
  11849. ),
  11850. StructFieldDecl(
  11851. name='droppaths',
  11852. type=PointerType(
  11853. inner_type=PointerType(
  11854. inner_type=ValueType(name='char', is_const=True),
  11855. ),
  11856. ),
  11857. doc='paths to files dropped',
  11858. ),
  11859. ),
  11860. )),
  11861. ('mjuiThemeSpacing',
  11862. StructDecl(
  11863. name='mjuiThemeSpacing',
  11864. declname='struct mjuiThemeSpacing_',
  11865. fields=(
  11866. StructFieldDecl(
  11867. name='total',
  11868. type=ValueType(name='int'),
  11869. doc='total width',
  11870. ),
  11871. StructFieldDecl(
  11872. name='scroll',
  11873. type=ValueType(name='int'),
  11874. doc='scrollbar width',
  11875. ),
  11876. StructFieldDecl(
  11877. name='label',
  11878. type=ValueType(name='int'),
  11879. doc='label width',
  11880. ),
  11881. StructFieldDecl(
  11882. name='section',
  11883. type=ValueType(name='int'),
  11884. doc='section gap',
  11885. ),
  11886. StructFieldDecl(
  11887. name='cornersect',
  11888. type=ValueType(name='int'),
  11889. doc='corner radius for section',
  11890. ),
  11891. StructFieldDecl(
  11892. name='cornersep',
  11893. type=ValueType(name='int'),
  11894. doc='corner radius for separator',
  11895. ),
  11896. StructFieldDecl(
  11897. name='itemside',
  11898. type=ValueType(name='int'),
  11899. doc='item side gap',
  11900. ),
  11901. StructFieldDecl(
  11902. name='itemmid',
  11903. type=ValueType(name='int'),
  11904. doc='item middle gap',
  11905. ),
  11906. StructFieldDecl(
  11907. name='itemver',
  11908. type=ValueType(name='int'),
  11909. doc='item vertical gap',
  11910. ),
  11911. StructFieldDecl(
  11912. name='texthor',
  11913. type=ValueType(name='int'),
  11914. doc='text horizontal gap',
  11915. ),
  11916. StructFieldDecl(
  11917. name='textver',
  11918. type=ValueType(name='int'),
  11919. doc='text vertical gap',
  11920. ),
  11921. StructFieldDecl(
  11922. name='linescroll',
  11923. type=ValueType(name='int'),
  11924. doc='number of pixels to scroll',
  11925. ),
  11926. StructFieldDecl(
  11927. name='samples',
  11928. type=ValueType(name='int'),
  11929. doc='number of multisamples',
  11930. ),
  11931. ),
  11932. )),
  11933. ('mjuiThemeColor',
  11934. StructDecl(
  11935. name='mjuiThemeColor',
  11936. declname='struct mjuiThemeColor_',
  11937. fields=(
  11938. StructFieldDecl(
  11939. name='master',
  11940. type=ArrayType(
  11941. inner_type=ValueType(name='float'),
  11942. extents=(3,),
  11943. ),
  11944. doc='master background',
  11945. ),
  11946. StructFieldDecl(
  11947. name='thumb',
  11948. type=ArrayType(
  11949. inner_type=ValueType(name='float'),
  11950. extents=(3,),
  11951. ),
  11952. doc='scrollbar thumb',
  11953. ),
  11954. StructFieldDecl(
  11955. name='secttitle',
  11956. type=ArrayType(
  11957. inner_type=ValueType(name='float'),
  11958. extents=(3,),
  11959. ),
  11960. doc='section title',
  11961. ),
  11962. StructFieldDecl(
  11963. name='secttitle2',
  11964. type=ArrayType(
  11965. inner_type=ValueType(name='float'),
  11966. extents=(3,),
  11967. ),
  11968. doc='section title: bottom color',
  11969. ),
  11970. StructFieldDecl(
  11971. name='secttitleuncheck',
  11972. type=ArrayType(
  11973. inner_type=ValueType(name='float'),
  11974. extents=(3,),
  11975. ),
  11976. doc='section title with unchecked box',
  11977. ),
  11978. StructFieldDecl(
  11979. name='secttitleuncheck2',
  11980. type=ArrayType(
  11981. inner_type=ValueType(name='float'),
  11982. extents=(3,),
  11983. ),
  11984. doc='section title with unchecked box: bottom color',
  11985. ),
  11986. StructFieldDecl(
  11987. name='secttitlecheck',
  11988. type=ArrayType(
  11989. inner_type=ValueType(name='float'),
  11990. extents=(3,),
  11991. ),
  11992. doc='section title with checked box',
  11993. ),
  11994. StructFieldDecl(
  11995. name='secttitlecheck2',
  11996. type=ArrayType(
  11997. inner_type=ValueType(name='float'),
  11998. extents=(3,),
  11999. ),
  12000. doc='section title with checked box: bottom color',
  12001. ),
  12002. StructFieldDecl(
  12003. name='sectfont',
  12004. type=ArrayType(
  12005. inner_type=ValueType(name='float'),
  12006. extents=(3,),
  12007. ),
  12008. doc='section font',
  12009. ),
  12010. StructFieldDecl(
  12011. name='sectsymbol',
  12012. type=ArrayType(
  12013. inner_type=ValueType(name='float'),
  12014. extents=(3,),
  12015. ),
  12016. doc='section symbol',
  12017. ),
  12018. StructFieldDecl(
  12019. name='sectpane',
  12020. type=ArrayType(
  12021. inner_type=ValueType(name='float'),
  12022. extents=(3,),
  12023. ),
  12024. doc='section pane',
  12025. ),
  12026. StructFieldDecl(
  12027. name='separator',
  12028. type=ArrayType(
  12029. inner_type=ValueType(name='float'),
  12030. extents=(3,),
  12031. ),
  12032. doc='separator title',
  12033. ),
  12034. StructFieldDecl(
  12035. name='separator2',
  12036. type=ArrayType(
  12037. inner_type=ValueType(name='float'),
  12038. extents=(3,),
  12039. ),
  12040. doc='separator title: bottom color',
  12041. ),
  12042. StructFieldDecl(
  12043. name='shortcut',
  12044. type=ArrayType(
  12045. inner_type=ValueType(name='float'),
  12046. extents=(3,),
  12047. ),
  12048. doc='shortcut background',
  12049. ),
  12050. StructFieldDecl(
  12051. name='fontactive',
  12052. type=ArrayType(
  12053. inner_type=ValueType(name='float'),
  12054. extents=(3,),
  12055. ),
  12056. doc='font active',
  12057. ),
  12058. StructFieldDecl(
  12059. name='fontinactive',
  12060. type=ArrayType(
  12061. inner_type=ValueType(name='float'),
  12062. extents=(3,),
  12063. ),
  12064. doc='font inactive',
  12065. ),
  12066. StructFieldDecl(
  12067. name='decorinactive',
  12068. type=ArrayType(
  12069. inner_type=ValueType(name='float'),
  12070. extents=(3,),
  12071. ),
  12072. doc='decor inactive',
  12073. ),
  12074. StructFieldDecl(
  12075. name='decorinactive2',
  12076. type=ArrayType(
  12077. inner_type=ValueType(name='float'),
  12078. extents=(3,),
  12079. ),
  12080. doc='inactive slider color 2',
  12081. ),
  12082. StructFieldDecl(
  12083. name='button',
  12084. type=ArrayType(
  12085. inner_type=ValueType(name='float'),
  12086. extents=(3,),
  12087. ),
  12088. doc='button',
  12089. ),
  12090. StructFieldDecl(
  12091. name='check',
  12092. type=ArrayType(
  12093. inner_type=ValueType(name='float'),
  12094. extents=(3,),
  12095. ),
  12096. doc='check',
  12097. ),
  12098. StructFieldDecl(
  12099. name='radio',
  12100. type=ArrayType(
  12101. inner_type=ValueType(name='float'),
  12102. extents=(3,),
  12103. ),
  12104. doc='radio',
  12105. ),
  12106. StructFieldDecl(
  12107. name='select',
  12108. type=ArrayType(
  12109. inner_type=ValueType(name='float'),
  12110. extents=(3,),
  12111. ),
  12112. doc='select',
  12113. ),
  12114. StructFieldDecl(
  12115. name='select2',
  12116. type=ArrayType(
  12117. inner_type=ValueType(name='float'),
  12118. extents=(3,),
  12119. ),
  12120. doc='select pane',
  12121. ),
  12122. StructFieldDecl(
  12123. name='slider',
  12124. type=ArrayType(
  12125. inner_type=ValueType(name='float'),
  12126. extents=(3,),
  12127. ),
  12128. doc='slider',
  12129. ),
  12130. StructFieldDecl(
  12131. name='slider2',
  12132. type=ArrayType(
  12133. inner_type=ValueType(name='float'),
  12134. extents=(3,),
  12135. ),
  12136. doc='slider color 2',
  12137. ),
  12138. StructFieldDecl(
  12139. name='edit',
  12140. type=ArrayType(
  12141. inner_type=ValueType(name='float'),
  12142. extents=(3,),
  12143. ),
  12144. doc='edit',
  12145. ),
  12146. StructFieldDecl(
  12147. name='edit2',
  12148. type=ArrayType(
  12149. inner_type=ValueType(name='float'),
  12150. extents=(3,),
  12151. ),
  12152. doc='edit invalid',
  12153. ),
  12154. StructFieldDecl(
  12155. name='cursor',
  12156. type=ArrayType(
  12157. inner_type=ValueType(name='float'),
  12158. extents=(3,),
  12159. ),
  12160. doc='edit cursor',
  12161. ),
  12162. ),
  12163. )),
  12164. ('mjuiItem',
  12165. StructDecl(
  12166. name='mjuiItem',
  12167. declname='struct mjuiItem_',
  12168. fields=(
  12169. StructFieldDecl(
  12170. name='type',
  12171. type=ValueType(name='int'),
  12172. doc='type (mjtItem)',
  12173. ),
  12174. StructFieldDecl(
  12175. name='name',
  12176. type=ArrayType(
  12177. inner_type=ValueType(name='char'),
  12178. extents=(40,),
  12179. ),
  12180. doc='name',
  12181. ),
  12182. StructFieldDecl(
  12183. name='state',
  12184. type=ValueType(name='int'),
  12185. doc='0: disable, 1: enable, 2+: use predicate',
  12186. ),
  12187. StructFieldDecl(
  12188. name='pdata',
  12189. type=PointerType(
  12190. inner_type=ValueType(name='void'),
  12191. ),
  12192. doc='data pointer (type-specific)',
  12193. ),
  12194. StructFieldDecl(
  12195. name='sectionid',
  12196. type=ValueType(name='int'),
  12197. doc='id of section containing item',
  12198. ),
  12199. StructFieldDecl(
  12200. name='itemid',
  12201. type=ValueType(name='int'),
  12202. doc='id of item within section',
  12203. ),
  12204. StructFieldDecl(
  12205. name='userid',
  12206. type=ValueType(name='int'),
  12207. doc='user-supplied id (for event handling)',
  12208. ),
  12209. AnonymousUnionDecl(
  12210. fields=(
  12211. StructFieldDecl(
  12212. name='single',
  12213. type=ValueType(name='struct mjuiItemSingle_'),
  12214. doc='check and button',
  12215. ),
  12216. StructFieldDecl(
  12217. name='multi',
  12218. type=ValueType(name='struct mjuiItemMulti_'),
  12219. doc='static, radio and select',
  12220. ),
  12221. StructFieldDecl(
  12222. name='slider',
  12223. type=ValueType(name='struct mjuiItemSlider_'),
  12224. doc='slider',
  12225. ),
  12226. StructFieldDecl(
  12227. name='edit',
  12228. type=ValueType(name='struct mjuiItemEdit_'),
  12229. doc='edit',
  12230. ),
  12231. ),
  12232. ),
  12233. StructFieldDecl(
  12234. name='rect',
  12235. type=ValueType(name='mjrRect'),
  12236. doc='rectangle occupied by item',
  12237. ),
  12238. StructFieldDecl(
  12239. name='skip',
  12240. type=ValueType(name='int'),
  12241. doc='item skipped due to closed separator',
  12242. ),
  12243. ),
  12244. )),
  12245. ('mjuiSection',
  12246. StructDecl(
  12247. name='mjuiSection',
  12248. declname='struct mjuiSection_',
  12249. fields=(
  12250. StructFieldDecl(
  12251. name='name',
  12252. type=ArrayType(
  12253. inner_type=ValueType(name='char'),
  12254. extents=(40,),
  12255. ),
  12256. doc='name',
  12257. ),
  12258. StructFieldDecl(
  12259. name='state',
  12260. type=ValueType(name='int'),
  12261. doc='section state (mjtSection)',
  12262. ),
  12263. StructFieldDecl(
  12264. name='modifier',
  12265. type=ValueType(name='int'),
  12266. doc='0: none, 1: control, 2: shift; 4: alt',
  12267. ),
  12268. StructFieldDecl(
  12269. name='shortcut',
  12270. type=ValueType(name='int'),
  12271. doc='shortcut key; 0: undefined',
  12272. ),
  12273. StructFieldDecl(
  12274. name='checkbox',
  12275. type=ValueType(name='int'),
  12276. doc='0: none, 1: unchecked, 2: checked',
  12277. ),
  12278. StructFieldDecl(
  12279. name='nitem',
  12280. type=ValueType(name='int'),
  12281. doc='number of items in use',
  12282. ),
  12283. StructFieldDecl(
  12284. name='item',
  12285. type=ArrayType(
  12286. inner_type=ValueType(name='mjuiItem'),
  12287. extents=(200,),
  12288. ),
  12289. doc='preallocated array of items',
  12290. ),
  12291. StructFieldDecl(
  12292. name='rtitle',
  12293. type=ValueType(name='mjrRect'),
  12294. doc='rectangle occupied by title',
  12295. ),
  12296. StructFieldDecl(
  12297. name='rcontent',
  12298. type=ValueType(name='mjrRect'),
  12299. doc='rectangle occupied by content',
  12300. ),
  12301. StructFieldDecl(
  12302. name='lastclick',
  12303. type=ValueType(name='int'),
  12304. doc='last mouse click over this section',
  12305. ),
  12306. ),
  12307. )),
  12308. ('mjUI',
  12309. StructDecl(
  12310. name='mjUI',
  12311. declname='struct mjUI_',
  12312. fields=(
  12313. StructFieldDecl(
  12314. name='spacing',
  12315. type=ValueType(name='mjuiThemeSpacing'),
  12316. doc='UI theme spacing',
  12317. ),
  12318. StructFieldDecl(
  12319. name='color',
  12320. type=ValueType(name='mjuiThemeColor'),
  12321. doc='UI theme color',
  12322. ),
  12323. StructFieldDecl(
  12324. name='predicate',
  12325. type=ValueType(name='mjfItemEnable'),
  12326. doc='callback to set item state programmatically',
  12327. ),
  12328. StructFieldDecl(
  12329. name='userdata',
  12330. type=PointerType(
  12331. inner_type=ValueType(name='void'),
  12332. ),
  12333. doc='pointer to user data (passed to predicate)',
  12334. ),
  12335. StructFieldDecl(
  12336. name='rectid',
  12337. type=ValueType(name='int'),
  12338. doc='index of this ui rectangle in mjuiState',
  12339. ),
  12340. StructFieldDecl(
  12341. name='auxid',
  12342. type=ValueType(name='int'),
  12343. doc='aux buffer index of this ui',
  12344. ),
  12345. StructFieldDecl(
  12346. name='radiocol',
  12347. type=ValueType(name='int'),
  12348. doc='number of radio columns (0 defaults to 2)',
  12349. ),
  12350. StructFieldDecl(
  12351. name='width',
  12352. type=ValueType(name='int'),
  12353. doc='width',
  12354. ),
  12355. StructFieldDecl(
  12356. name='height',
  12357. type=ValueType(name='int'),
  12358. doc='current heigth',
  12359. ),
  12360. StructFieldDecl(
  12361. name='maxheight',
  12362. type=ValueType(name='int'),
  12363. doc='height when all sections open',
  12364. ),
  12365. StructFieldDecl(
  12366. name='scroll',
  12367. type=ValueType(name='int'),
  12368. doc='scroll from top of UI',
  12369. ),
  12370. StructFieldDecl(
  12371. name='mousesect',
  12372. type=ValueType(name='int'),
  12373. doc='0: none, -1: scroll, otherwise 1+section',
  12374. ),
  12375. StructFieldDecl(
  12376. name='mouseitem',
  12377. type=ValueType(name='int'),
  12378. doc='item within section',
  12379. ),
  12380. StructFieldDecl(
  12381. name='mousehelp',
  12382. type=ValueType(name='int'),
  12383. doc='help button down: print shortcuts',
  12384. ),
  12385. StructFieldDecl(
  12386. name='mouseclicks',
  12387. type=ValueType(name='int'),
  12388. doc='number of mouse clicks over UI',
  12389. ),
  12390. StructFieldDecl(
  12391. name='mousesectcheck',
  12392. type=ValueType(name='int'),
  12393. doc='0: none, otherwise 1+section',
  12394. ),
  12395. StructFieldDecl(
  12396. name='editsect',
  12397. type=ValueType(name='int'),
  12398. doc='0: none, otherwise 1+section',
  12399. ),
  12400. StructFieldDecl(
  12401. name='edititem',
  12402. type=ValueType(name='int'),
  12403. doc='item within section',
  12404. ),
  12405. StructFieldDecl(
  12406. name='editcursor',
  12407. type=ValueType(name='int'),
  12408. doc='cursor position',
  12409. ),
  12410. StructFieldDecl(
  12411. name='editscroll',
  12412. type=ValueType(name='int'),
  12413. doc='horizontal scroll',
  12414. ),
  12415. StructFieldDecl(
  12416. name='edittext',
  12417. type=ArrayType(
  12418. inner_type=ValueType(name='char'),
  12419. extents=(300,),
  12420. ),
  12421. doc='current text',
  12422. ),
  12423. StructFieldDecl(
  12424. name='editchanged',
  12425. type=PointerType(
  12426. inner_type=ValueType(name='mjuiItem'),
  12427. ),
  12428. doc='pointer to changed edit in last mjui_event',
  12429. ),
  12430. StructFieldDecl(
  12431. name='nsect',
  12432. type=ValueType(name='int'),
  12433. doc='number of sections in use',
  12434. ),
  12435. StructFieldDecl(
  12436. name='sect',
  12437. type=ArrayType(
  12438. inner_type=ValueType(name='mjuiSection'),
  12439. extents=(10,),
  12440. ),
  12441. doc='preallocated array of sections',
  12442. ),
  12443. ),
  12444. )),
  12445. ('mjuiDef',
  12446. StructDecl(
  12447. name='mjuiDef',
  12448. declname='struct mjuiDef_',
  12449. fields=(
  12450. StructFieldDecl(
  12451. name='type',
  12452. type=ValueType(name='int'),
  12453. doc='type (mjtItem); -1: section',
  12454. ),
  12455. StructFieldDecl(
  12456. name='name',
  12457. type=ArrayType(
  12458. inner_type=ValueType(name='char'),
  12459. extents=(40,),
  12460. ),
  12461. doc='name',
  12462. ),
  12463. StructFieldDecl(
  12464. name='state',
  12465. type=ValueType(name='int'),
  12466. doc='state',
  12467. ),
  12468. StructFieldDecl(
  12469. name='pdata',
  12470. type=PointerType(
  12471. inner_type=ValueType(name='void'),
  12472. ),
  12473. doc='pointer to data',
  12474. ),
  12475. StructFieldDecl(
  12476. name='other',
  12477. type=ArrayType(
  12478. inner_type=ValueType(name='char'),
  12479. extents=(300,),
  12480. ),
  12481. doc='string with type-specific properties',
  12482. ),
  12483. StructFieldDecl(
  12484. name='otherint',
  12485. type=ValueType(name='int'),
  12486. doc='int with type-specific properties',
  12487. ),
  12488. ),
  12489. )),
  12490. ])