| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769 |
- /// @ref gtx_vec_swizzle
- /// @file glm/gtx/vec_swizzle.hpp
- ///
- /// @see core (dependence)
- ///
- /// @defgroup gtx_vec_swizzle GLM_GTX_vec_swizzle
- /// @ingroup gtx
- ///
- /// Include <glm/gtx/vec_swizzle.hpp> to use the features of this extension.
- ///
- /// Functions to perform swizzle operation.
- #pragma once
- #include "../glm.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_vec_swizzle is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #elif GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
- # pragma message("GLM: GLM_GTX_vec_swizzle extension included")
- #endif
- namespace glm {
- /// @addtogroup gtx_vec_swizzle
- /// @{
- // xx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> xx(const glm::vec<1, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> xx(const glm::vec<2, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> xx(const glm::vec<3, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> xx(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.x);
- }
- // xy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> xy(const glm::vec<2, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> xy(const glm::vec<3, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> xy(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.y);
- }
- // xz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> xz(const glm::vec<3, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> xz(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.z);
- }
- // xw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> xw(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.w);
- }
- // yx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> yx(const glm::vec<2, T, Q> &v) {
- return glm::vec<2, T, Q>(v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> yx(const glm::vec<3, T, Q> &v) {
- return glm::vec<2, T, Q>(v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> yx(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.y, v.x);
- }
- // yy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> yy(const glm::vec<2, T, Q> &v) {
- return glm::vec<2, T, Q>(v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> yy(const glm::vec<3, T, Q> &v) {
- return glm::vec<2, T, Q>(v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> yy(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.y, v.y);
- }
- // yz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> yz(const glm::vec<3, T, Q> &v) {
- return glm::vec<2, T, Q>(v.y, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> yz(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.y, v.z);
- }
- // yw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> yw(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.y, v.w);
- }
- // zx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> zx(const glm::vec<3, T, Q> &v) {
- return glm::vec<2, T, Q>(v.z, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> zx(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.z, v.x);
- }
- // zy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> zy(const glm::vec<3, T, Q> &v) {
- return glm::vec<2, T, Q>(v.z, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> zy(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.z, v.y);
- }
- // zz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> zz(const glm::vec<3, T, Q> &v) {
- return glm::vec<2, T, Q>(v.z, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> zz(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.z, v.z);
- }
- // zw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> zw(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.z, v.w);
- }
- // wx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> wx(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.w, v.x);
- }
- // wy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> wy(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.w, v.y);
- }
- // wz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> wz(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.w, v.z);
- }
- // ww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<2, T, Q> ww(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.w, v.w);
- }
- // xxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xxx(const glm::vec<1, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xxx(const glm::vec<2, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.x);
- }
- // xxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xxy(const glm::vec<2, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.y);
- }
- // xxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.z);
- }
- // xxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.w);
- }
- // xyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xyx(const glm::vec<2, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.y, v.x);
- }
- // xyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xyy(const glm::vec<2, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.y, v.y);
- }
- // xyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.y, v.z);
- }
- // xyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.y, v.w);
- }
- // xzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.z, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.z, v.x);
- }
- // xzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.z, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.z, v.y);
- }
- // xzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.z, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.z, v.z);
- }
- // xzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.z, v.w);
- }
- // xwx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.w, v.x);
- }
- // xwy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.w, v.y);
- }
- // xwz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.w, v.z);
- }
- // xww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> xww(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.w, v.w);
- }
- // yxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yxx(const glm::vec<2, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.x, v.x);
- }
- // yxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yxy(const glm::vec<2, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.x, v.y);
- }
- // yxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.x, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.x, v.z);
- }
- // yxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.x, v.w);
- }
- // yyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yyx(const glm::vec<2, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.y, v.x);
- }
- // yyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yyy(const glm::vec<2, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.y, v.y);
- }
- // yyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.y, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.y, v.z);
- }
- // yyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.y, v.w);
- }
- // yzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.z, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.z, v.x);
- }
- // yzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.z, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.z, v.y);
- }
- // yzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.z, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.z, v.z);
- }
- // yzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.z, v.w);
- }
- // ywx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> ywx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.w, v.x);
- }
- // ywy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> ywy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.w, v.y);
- }
- // ywz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> ywz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.w, v.z);
- }
- // yww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> yww(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.w, v.w);
- }
- // zxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.x, v.x);
- }
- // zxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.x, v.y);
- }
- // zxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.x, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.x, v.z);
- }
- // zxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.x, v.w);
- }
- // zyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.y, v.x);
- }
- // zyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.y, v.y);
- }
- // zyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.y, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.y, v.z);
- }
- // zyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.y, v.w);
- }
- // zzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.z, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.z, v.x);
- }
- // zzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.z, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.z, v.y);
- }
- // zzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.z, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.z, v.z);
- }
- // zzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.z, v.w);
- }
- // zwx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.w, v.x);
- }
- // zwy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.w, v.y);
- }
- // zwz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.w, v.z);
- }
- // zww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> zww(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.w, v.w);
- }
- // wxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> wxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.x, v.x);
- }
- // wxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> wxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.x, v.y);
- }
- // wxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> wxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.x, v.z);
- }
- // wxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> wxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.x, v.w);
- }
- // wyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> wyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.y, v.x);
- }
- // wyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> wyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.y, v.y);
- }
- // wyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> wyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.y, v.z);
- }
- // wyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> wyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.y, v.w);
- }
- // wzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> wzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.z, v.x);
- }
- // wzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> wzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.z, v.y);
- }
- // wzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> wzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.z, v.z);
- }
- // wzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> wzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.z, v.w);
- }
- // wwx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> wwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.w, v.x);
- }
- // wwy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> wwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.w, v.y);
- }
- // wwz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> wwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.w, v.z);
- }
- // www
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<3, T, Q> www(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.w, v.w);
- }
- // xxxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxxx(const glm::vec<1, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxxx(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
- }
- // xxxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxxy(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.y);
- }
- // xxxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.z);
- }
- // xxxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.w);
- }
- // xxyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxyx(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.y, v.x);
- }
- // xxyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxyy(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.y, v.y);
- }
- // xxyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.y, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.y, v.z);
- }
- // xxyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.y, v.w);
- }
- // xxzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.z, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.z, v.x);
- }
- // xxzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.z, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.z, v.y);
- }
- // xxzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.z, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.z, v.z);
- }
- // xxzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.z, v.w);
- }
- // xxwx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.w, v.x);
- }
- // xxwy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.w, v.y);
- }
- // xxwz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.w, v.z);
- }
- // xxww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xxww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.w, v.w);
- }
- // xyxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyxx(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.x, v.x);
- }
- // xyxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyxy(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.x, v.y);
- }
- // xyxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.x, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.x, v.z);
- }
- // xyxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.x, v.w);
- }
- // xyyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyyx(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.y, v.x);
- }
- // xyyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyyy(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.y, v.y);
- }
- // xyyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.y, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.y, v.z);
- }
- // xyyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.y, v.w);
- }
- // xyzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.z, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.z, v.x);
- }
- // xyzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.z, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.z, v.y);
- }
- // xyzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.z, v.w);
- }
- // xywx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xywx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.w, v.x);
- }
- // xywy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xywy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.w, v.y);
- }
- // xywz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xywz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.w, v.z);
- }
- // xyww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xyww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.w, v.w);
- }
- // xzxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.x, v.x);
- }
- // xzxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.x, v.y);
- }
- // xzxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.x, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.x, v.z);
- }
- // xzxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.x, v.w);
- }
- // xzyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.y, v.x);
- }
- // xzyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.y, v.y);
- }
- // xzyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.y, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.y, v.z);
- }
- // xzyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.y, v.w);
- }
- // xzzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.z, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.z, v.x);
- }
- // xzzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.z, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.z, v.y);
- }
- // xzzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.z, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.z, v.z);
- }
- // xzzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.z, v.w);
- }
- // xzwx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.w, v.x);
- }
- // xzwy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.w, v.y);
- }
- // xzwz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.w, v.z);
- }
- // xzww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xzww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.w, v.w);
- }
- // xwxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xwxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.x, v.x);
- }
- // xwxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xwxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.x, v.y);
- }
- // xwxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xwxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.x, v.z);
- }
- // xwxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xwxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.x, v.w);
- }
- // xwyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xwyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.y, v.x);
- }
- // xwyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xwyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.y, v.y);
- }
- // xwyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xwyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.y, v.z);
- }
- // xwyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xwyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.y, v.w);
- }
- // xwzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xwzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.z, v.x);
- }
- // xwzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xwzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.z, v.y);
- }
- // xwzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xwzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.z, v.z);
- }
- // xwzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xwzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.z, v.w);
- }
- // xwwx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xwwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.w, v.x);
- }
- // xwwy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xwwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.w, v.y);
- }
- // xwwz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xwwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.w, v.z);
- }
- // xwww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> xwww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.w, v.w);
- }
- // yxxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxxx(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.x, v.x);
- }
- // yxxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxxy(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.x, v.y);
- }
- // yxxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.x, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.x, v.z);
- }
- // yxxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.x, v.w);
- }
- // yxyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxyx(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.y, v.x);
- }
- // yxyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxyy(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.y, v.y);
- }
- // yxyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.y, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.y, v.z);
- }
- // yxyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.y, v.w);
- }
- // yxzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.z, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.z, v.x);
- }
- // yxzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.z, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.z, v.y);
- }
- // yxzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.z, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.z, v.z);
- }
- // yxzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.z, v.w);
- }
- // yxwx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.w, v.x);
- }
- // yxwy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.w, v.y);
- }
- // yxwz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.w, v.z);
- }
- // yxww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yxww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.w, v.w);
- }
- // yyxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyxx(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.x, v.x);
- }
- // yyxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyxy(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.x, v.y);
- }
- // yyxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.x, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.x, v.z);
- }
- // yyxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.x, v.w);
- }
- // yyyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyyx(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.y, v.x);
- }
- // yyyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyyy(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.y, v.y);
- }
- // yyyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.y, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.y, v.z);
- }
- // yyyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.y, v.w);
- }
- // yyzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.z, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.z, v.x);
- }
- // yyzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.z, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.z, v.y);
- }
- // yyzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.z, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.z, v.z);
- }
- // yyzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.z, v.w);
- }
- // yywx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yywx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.w, v.x);
- }
- // yywy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yywy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.w, v.y);
- }
- // yywz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yywz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.w, v.z);
- }
- // yyww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yyww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.w, v.w);
- }
- // yzxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.x, v.x);
- }
- // yzxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.x, v.y);
- }
- // yzxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.x, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.x, v.z);
- }
- // yzxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.x, v.w);
- }
- // yzyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.y, v.x);
- }
- // yzyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.y, v.y);
- }
- // yzyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.y, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.y, v.z);
- }
- // yzyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.y, v.w);
- }
- // yzzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.z, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.z, v.x);
- }
- // yzzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.z, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.z, v.y);
- }
- // yzzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.z, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.z, v.z);
- }
- // yzzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.z, v.w);
- }
- // yzwx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.w, v.x);
- }
- // yzwy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.w, v.y);
- }
- // yzwz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.w, v.z);
- }
- // yzww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> yzww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.w, v.w);
- }
- // ywxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> ywxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.x, v.x);
- }
- // ywxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> ywxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.x, v.y);
- }
- // ywxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> ywxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.x, v.z);
- }
- // ywxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> ywxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.x, v.w);
- }
- // ywyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> ywyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.y, v.x);
- }
- // ywyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> ywyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.y, v.y);
- }
- // ywyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> ywyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.y, v.z);
- }
- // ywyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> ywyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.y, v.w);
- }
- // ywzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> ywzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.z, v.x);
- }
- // ywzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> ywzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.z, v.y);
- }
- // ywzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> ywzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.z, v.z);
- }
- // ywzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> ywzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.z, v.w);
- }
- // ywwx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> ywwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.w, v.x);
- }
- // ywwy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> ywwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.w, v.y);
- }
- // ywwz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> ywwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.w, v.z);
- }
- // ywww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> ywww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.w, v.w);
- }
- // zxxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.x, v.x);
- }
- // zxxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.x, v.y);
- }
- // zxxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.x, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.x, v.z);
- }
- // zxxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.x, v.w);
- }
- // zxyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.y, v.x);
- }
- // zxyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.y, v.y);
- }
- // zxyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.y, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.y, v.z);
- }
- // zxyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.y, v.w);
- }
- // zxzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.z, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.z, v.x);
- }
- // zxzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.z, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.z, v.y);
- }
- // zxzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.z, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.z, v.z);
- }
- // zxzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.z, v.w);
- }
- // zxwx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.w, v.x);
- }
- // zxwy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.w, v.y);
- }
- // zxwz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.w, v.z);
- }
- // zxww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zxww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.w, v.w);
- }
- // zyxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.x, v.x);
- }
- // zyxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.x, v.y);
- }
- // zyxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.x, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.x, v.z);
- }
- // zyxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.x, v.w);
- }
- // zyyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.y, v.x);
- }
- // zyyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.y, v.y);
- }
- // zyyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.y, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.y, v.z);
- }
- // zyyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.y, v.w);
- }
- // zyzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.z, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.z, v.x);
- }
- // zyzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.z, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.z, v.y);
- }
- // zyzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.z, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.z, v.z);
- }
- // zyzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.z, v.w);
- }
- // zywx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zywx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.w, v.x);
- }
- // zywy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zywy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.w, v.y);
- }
- // zywz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zywz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.w, v.z);
- }
- // zyww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zyww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.w, v.w);
- }
- // zzxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.x, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.x, v.x);
- }
- // zzxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.x, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.x, v.y);
- }
- // zzxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.x, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.x, v.z);
- }
- // zzxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.x, v.w);
- }
- // zzyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.y, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.y, v.x);
- }
- // zzyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.y, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.y, v.y);
- }
- // zzyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.y, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.y, v.z);
- }
- // zzyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.y, v.w);
- }
- // zzzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.z, v.x);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.z, v.x);
- }
- // zzzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.z, v.y);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.z, v.y);
- }
- // zzzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.z, v.z);
- }
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.z, v.z);
- }
- // zzzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.z, v.w);
- }
- // zzwx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.w, v.x);
- }
- // zzwy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.w, v.y);
- }
- // zzwz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.w, v.z);
- }
- // zzww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zzww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.w, v.w);
- }
- // zwxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zwxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.x, v.x);
- }
- // zwxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zwxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.x, v.y);
- }
- // zwxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zwxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.x, v.z);
- }
- // zwxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zwxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.x, v.w);
- }
- // zwyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zwyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.y, v.x);
- }
- // zwyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zwyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.y, v.y);
- }
- // zwyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zwyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.y, v.z);
- }
- // zwyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zwyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.y, v.w);
- }
- // zwzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zwzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.z, v.x);
- }
- // zwzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zwzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.z, v.y);
- }
- // zwzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zwzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.z, v.z);
- }
- // zwzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zwzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.z, v.w);
- }
- // zwwx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zwwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.w, v.x);
- }
- // zwwy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zwwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.w, v.y);
- }
- // zwwz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zwwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.w, v.z);
- }
- // zwww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> zwww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.w, v.w);
- }
- // wxxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wxxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.x, v.x);
- }
- // wxxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wxxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.x, v.y);
- }
- // wxxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wxxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.x, v.z);
- }
- // wxxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wxxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.x, v.w);
- }
- // wxyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wxyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.y, v.x);
- }
- // wxyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wxyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.y, v.y);
- }
- // wxyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wxyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.y, v.z);
- }
- // wxyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wxyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.y, v.w);
- }
- // wxzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wxzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.z, v.x);
- }
- // wxzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wxzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.z, v.y);
- }
- // wxzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wxzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.z, v.z);
- }
- // wxzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wxzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.z, v.w);
- }
- // wxwx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wxwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.w, v.x);
- }
- // wxwy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wxwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.w, v.y);
- }
- // wxwz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wxwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.w, v.z);
- }
- // wxww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wxww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.w, v.w);
- }
- // wyxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wyxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.x, v.x);
- }
- // wyxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wyxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.x, v.y);
- }
- // wyxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wyxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.x, v.z);
- }
- // wyxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wyxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.x, v.w);
- }
- // wyyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wyyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.y, v.x);
- }
- // wyyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wyyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.y, v.y);
- }
- // wyyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wyyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.y, v.z);
- }
- // wyyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wyyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.y, v.w);
- }
- // wyzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wyzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.z, v.x);
- }
- // wyzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wyzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.z, v.y);
- }
- // wyzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wyzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.z, v.z);
- }
- // wyzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wyzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.z, v.w);
- }
- // wywx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wywx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.w, v.x);
- }
- // wywy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wywy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.w, v.y);
- }
- // wywz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wywz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.w, v.z);
- }
- // wyww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wyww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.w, v.w);
- }
- // wzxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wzxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.x, v.x);
- }
- // wzxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wzxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.x, v.y);
- }
- // wzxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wzxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.x, v.z);
- }
- // wzxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wzxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.x, v.w);
- }
- // wzyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wzyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.y, v.x);
- }
- // wzyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wzyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.y, v.y);
- }
- // wzyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wzyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.y, v.z);
- }
- // wzyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wzyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.y, v.w);
- }
- // wzzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wzzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.z, v.x);
- }
- // wzzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wzzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.z, v.y);
- }
- // wzzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wzzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.z, v.z);
- }
- // wzzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wzzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.z, v.w);
- }
- // wzwx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wzwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.w, v.x);
- }
- // wzwy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wzwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.w, v.y);
- }
- // wzwz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wzwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.w, v.z);
- }
- // wzww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wzww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.w, v.w);
- }
- // wwxx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wwxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.x, v.x);
- }
- // wwxy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wwxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.x, v.y);
- }
- // wwxz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wwxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.x, v.z);
- }
- // wwxw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wwxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.x, v.w);
- }
- // wwyx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wwyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.y, v.x);
- }
- // wwyy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wwyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.y, v.y);
- }
- // wwyz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wwyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.y, v.z);
- }
- // wwyw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wwyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.y, v.w);
- }
- // wwzx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wwzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.z, v.x);
- }
- // wwzy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wwzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.z, v.y);
- }
- // wwzz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wwzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.z, v.z);
- }
- // wwzw
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wwzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.z, v.w);
- }
- // wwwx
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wwwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.w, v.x);
- }
- // wwwy
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wwwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.w, v.y);
- }
- // wwwz
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wwwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.w, v.z);
- }
- // wwww
- template<typename T, qualifier Q>
- GLM_FUNC_QUALIFIER glm::vec<4, T, Q> wwww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.w, v.w);
- }
- /// @}
- }//namespace glm
|