type_precision.hpp 55 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863
  1. /// @ref gtc_type_precision
  2. /// @file glm/gtc/type_precision.hpp
  3. ///
  4. /// @see core (dependence)
  5. /// @see gtc_quaternion (dependence)
  6. ///
  7. /// @defgroup gtc_type_precision GLM_GTC_type_precision
  8. /// @ingroup gtc
  9. ///
  10. /// Include <glm/gtc/type_precision.hpp> to use the features of this extension.
  11. ///
  12. /// Defines specific C++-based qualifier types.
  13. #pragma once
  14. // Dependency:
  15. #include "../gtc/quaternion.hpp"
  16. #include "../gtc/vec1.hpp"
  17. #include "../ext/vector_int1_sized.hpp"
  18. #include "../ext/vector_int2_sized.hpp"
  19. #include "../ext/vector_int3_sized.hpp"
  20. #include "../ext/vector_int4_sized.hpp"
  21. #include "../ext/scalar_int_sized.hpp"
  22. #include "../ext/vector_uint1_sized.hpp"
  23. #include "../ext/vector_uint2_sized.hpp"
  24. #include "../ext/vector_uint3_sized.hpp"
  25. #include "../ext/vector_uint4_sized.hpp"
  26. #include "../ext/scalar_uint_sized.hpp"
  27. #include "../detail/type_vec2.hpp"
  28. #include "../detail/type_vec3.hpp"
  29. #include "../detail/type_vec4.hpp"
  30. #include "../detail/type_mat2x2.hpp"
  31. #include "../detail/type_mat2x3.hpp"
  32. #include "../detail/type_mat2x4.hpp"
  33. #include "../detail/type_mat3x2.hpp"
  34. #include "../detail/type_mat3x3.hpp"
  35. #include "../detail/type_mat3x4.hpp"
  36. #include "../detail/type_mat4x2.hpp"
  37. #include "../detail/type_mat4x3.hpp"
  38. #include "../detail/type_mat4x4.hpp"
  39. #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
  40. # pragma message("GLM: GLM_GTC_type_precision extension included")
  41. #endif
  42. namespace glm
  43. {
  44. ///////////////////////////
  45. // Signed int vector types
  46. /// @addtogroup gtc_type_precision
  47. /// @{
  48. /// Low qualifier 8 bit signed integer type.
  49. /// @see gtc_type_precision
  50. typedef detail::int8 lowp_int8;
  51. /// Low qualifier 16 bit signed integer type.
  52. /// @see gtc_type_precision
  53. typedef detail::int16 lowp_int16;
  54. /// Low qualifier 32 bit signed integer type.
  55. /// @see gtc_type_precision
  56. typedef detail::int32 lowp_int32;
  57. /// Low qualifier 64 bit signed integer type.
  58. /// @see gtc_type_precision
  59. typedef detail::int64 lowp_int64;
  60. /// Low qualifier 8 bit signed integer type.
  61. /// @see gtc_type_precision
  62. typedef detail::int8 lowp_int8_t;
  63. /// Low qualifier 16 bit signed integer type.
  64. /// @see gtc_type_precision
  65. typedef detail::int16 lowp_int16_t;
  66. /// Low qualifier 32 bit signed integer type.
  67. /// @see gtc_type_precision
  68. typedef detail::int32 lowp_int32_t;
  69. /// Low qualifier 64 bit signed integer type.
  70. /// @see gtc_type_precision
  71. typedef detail::int64 lowp_int64_t;
  72. /// Low qualifier 8 bit signed integer type.
  73. /// @see gtc_type_precision
  74. typedef detail::int8 lowp_i8;
  75. /// Low qualifier 16 bit signed integer type.
  76. /// @see gtc_type_precision
  77. typedef detail::int16 lowp_i16;
  78. /// Low qualifier 32 bit signed integer type.
  79. /// @see gtc_type_precision
  80. typedef detail::int32 lowp_i32;
  81. /// Low qualifier 64 bit signed integer type.
  82. /// @see gtc_type_precision
  83. typedef detail::int64 lowp_i64;
  84. /// Medium qualifier 8 bit signed integer type.
  85. /// @see gtc_type_precision
  86. typedef detail::int8 mediump_int8;
  87. /// Medium qualifier 16 bit signed integer type.
  88. /// @see gtc_type_precision
  89. typedef detail::int16 mediump_int16;
  90. /// Medium qualifier 32 bit signed integer type.
  91. /// @see gtc_type_precision
  92. typedef detail::int32 mediump_int32;
  93. /// Medium qualifier 64 bit signed integer type.
  94. /// @see gtc_type_precision
  95. typedef detail::int64 mediump_int64;
  96. /// Medium qualifier 8 bit signed integer type.
  97. /// @see gtc_type_precision
  98. typedef detail::int8 mediump_int8_t;
  99. /// Medium qualifier 16 bit signed integer type.
  100. /// @see gtc_type_precision
  101. typedef detail::int16 mediump_int16_t;
  102. /// Medium qualifier 32 bit signed integer type.
  103. /// @see gtc_type_precision
  104. typedef detail::int32 mediump_int32_t;
  105. /// Medium qualifier 64 bit signed integer type.
  106. /// @see gtc_type_precision
  107. typedef detail::int64 mediump_int64_t;
  108. /// Medium qualifier 8 bit signed integer type.
  109. /// @see gtc_type_precision
  110. typedef detail::int8 mediump_i8;
  111. /// Medium qualifier 16 bit signed integer type.
  112. /// @see gtc_type_precision
  113. typedef detail::int16 mediump_i16;
  114. /// Medium qualifier 32 bit signed integer type.
  115. /// @see gtc_type_precision
  116. typedef detail::int32 mediump_i32;
  117. /// Medium qualifier 64 bit signed integer type.
  118. /// @see gtc_type_precision
  119. typedef detail::int64 mediump_i64;
  120. /// High qualifier 8 bit signed integer type.
  121. /// @see gtc_type_precision
  122. typedef detail::int8 highp_int8;
  123. /// High qualifier 16 bit signed integer type.
  124. /// @see gtc_type_precision
  125. typedef detail::int16 highp_int16;
  126. /// High qualifier 32 bit signed integer type.
  127. /// @see gtc_type_precision
  128. typedef detail::int32 highp_int32;
  129. /// High qualifier 64 bit signed integer type.
  130. /// @see gtc_type_precision
  131. typedef detail::int64 highp_int64;
  132. /// High qualifier 8 bit signed integer type.
  133. /// @see gtc_type_precision
  134. typedef detail::int8 highp_int8_t;
  135. /// High qualifier 16 bit signed integer type.
  136. /// @see gtc_type_precision
  137. typedef detail::int16 highp_int16_t;
  138. /// 32 bit signed integer type.
  139. /// @see gtc_type_precision
  140. typedef detail::int32 highp_int32_t;
  141. /// High qualifier 64 bit signed integer type.
  142. /// @see gtc_type_precision
  143. typedef detail::int64 highp_int64_t;
  144. /// High qualifier 8 bit signed integer type.
  145. /// @see gtc_type_precision
  146. typedef detail::int8 highp_i8;
  147. /// High qualifier 16 bit signed integer type.
  148. /// @see gtc_type_precision
  149. typedef detail::int16 highp_i16;
  150. /// High qualifier 32 bit signed integer type.
  151. /// @see gtc_type_precision
  152. typedef detail::int32 highp_i32;
  153. /// High qualifier 64 bit signed integer type.
  154. /// @see gtc_type_precision
  155. typedef detail::int64 highp_i64;
  156. #if GLM_HAS_EXTENDED_INTEGER_TYPE
  157. using std::int8_t;
  158. using std::int16_t;
  159. using std::int32_t;
  160. using std::int64_t;
  161. #else
  162. /// 8 bit signed integer type.
  163. /// @see gtc_type_precision
  164. typedef detail::int8 int8_t;
  165. /// 16 bit signed integer type.
  166. /// @see gtc_type_precision
  167. typedef detail::int16 int16_t;
  168. /// 32 bit signed integer type.
  169. /// @see gtc_type_precision
  170. typedef detail::int32 int32_t;
  171. /// 64 bit signed integer type.
  172. /// @see gtc_type_precision
  173. typedef detail::int64 int64_t;
  174. #endif
  175. /// 8 bit signed integer type.
  176. /// @see gtc_type_precision
  177. typedef detail::int8 i8;
  178. /// 16 bit signed integer type.
  179. /// @see gtc_type_precision
  180. typedef detail::int16 i16;
  181. /// 32 bit signed integer type.
  182. /// @see gtc_type_precision
  183. typedef detail::int32 i32;
  184. /// 64 bit signed integer type.
  185. /// @see gtc_type_precision
  186. typedef detail::int64 i64;
  187. /////////////////////////////
  188. // Unsigned int vector types
  189. /// Low qualifier 8 bit unsigned integer type.
  190. /// @see gtc_type_precision
  191. typedef detail::uint8 lowp_uint8;
  192. /// Low qualifier 16 bit unsigned integer type.
  193. /// @see gtc_type_precision
  194. typedef detail::uint16 lowp_uint16;
  195. /// Low qualifier 32 bit unsigned integer type.
  196. /// @see gtc_type_precision
  197. typedef detail::uint32 lowp_uint32;
  198. /// Low qualifier 64 bit unsigned integer type.
  199. /// @see gtc_type_precision
  200. typedef detail::uint64 lowp_uint64;
  201. /// Low qualifier 8 bit unsigned integer type.
  202. /// @see gtc_type_precision
  203. typedef detail::uint8 lowp_uint8_t;
  204. /// Low qualifier 16 bit unsigned integer type.
  205. /// @see gtc_type_precision
  206. typedef detail::uint16 lowp_uint16_t;
  207. /// Low qualifier 32 bit unsigned integer type.
  208. /// @see gtc_type_precision
  209. typedef detail::uint32 lowp_uint32_t;
  210. /// Low qualifier 64 bit unsigned integer type.
  211. /// @see gtc_type_precision
  212. typedef detail::uint64 lowp_uint64_t;
  213. /// Low qualifier 8 bit unsigned integer type.
  214. /// @see gtc_type_precision
  215. typedef detail::uint8 lowp_u8;
  216. /// Low qualifier 16 bit unsigned integer type.
  217. /// @see gtc_type_precision
  218. typedef detail::uint16 lowp_u16;
  219. /// Low qualifier 32 bit unsigned integer type.
  220. /// @see gtc_type_precision
  221. typedef detail::uint32 lowp_u32;
  222. /// Low qualifier 64 bit unsigned integer type.
  223. /// @see gtc_type_precision
  224. typedef detail::uint64 lowp_u64;
  225. /// Medium qualifier 8 bit unsigned integer type.
  226. /// @see gtc_type_precision
  227. typedef detail::uint8 mediump_uint8;
  228. /// Medium qualifier 16 bit unsigned integer type.
  229. /// @see gtc_type_precision
  230. typedef detail::uint16 mediump_uint16;
  231. /// Medium qualifier 32 bit unsigned integer type.
  232. /// @see gtc_type_precision
  233. typedef detail::uint32 mediump_uint32;
  234. /// Medium qualifier 64 bit unsigned integer type.
  235. /// @see gtc_type_precision
  236. typedef detail::uint64 mediump_uint64;
  237. /// Medium qualifier 8 bit unsigned integer type.
  238. /// @see gtc_type_precision
  239. typedef detail::uint8 mediump_uint8_t;
  240. /// Medium qualifier 16 bit unsigned integer type.
  241. /// @see gtc_type_precision
  242. typedef detail::uint16 mediump_uint16_t;
  243. /// Medium qualifier 32 bit unsigned integer type.
  244. /// @see gtc_type_precision
  245. typedef detail::uint32 mediump_uint32_t;
  246. /// Medium qualifier 64 bit unsigned integer type.
  247. /// @see gtc_type_precision
  248. typedef detail::uint64 mediump_uint64_t;
  249. /// Medium qualifier 8 bit unsigned integer type.
  250. /// @see gtc_type_precision
  251. typedef detail::uint8 mediump_u8;
  252. /// Medium qualifier 16 bit unsigned integer type.
  253. /// @see gtc_type_precision
  254. typedef detail::uint16 mediump_u16;
  255. /// Medium qualifier 32 bit unsigned integer type.
  256. /// @see gtc_type_precision
  257. typedef detail::uint32 mediump_u32;
  258. /// Medium qualifier 64 bit unsigned integer type.
  259. /// @see gtc_type_precision
  260. typedef detail::uint64 mediump_u64;
  261. /// High qualifier 8 bit unsigned integer type.
  262. /// @see gtc_type_precision
  263. typedef detail::uint8 highp_uint8;
  264. /// High qualifier 16 bit unsigned integer type.
  265. /// @see gtc_type_precision
  266. typedef detail::uint16 highp_uint16;
  267. /// High qualifier 32 bit unsigned integer type.
  268. /// @see gtc_type_precision
  269. typedef detail::uint32 highp_uint32;
  270. /// High qualifier 64 bit unsigned integer type.
  271. /// @see gtc_type_precision
  272. typedef detail::uint64 highp_uint64;
  273. /// High qualifier 8 bit unsigned integer type.
  274. /// @see gtc_type_precision
  275. typedef detail::uint8 highp_uint8_t;
  276. /// High qualifier 16 bit unsigned integer type.
  277. /// @see gtc_type_precision
  278. typedef detail::uint16 highp_uint16_t;
  279. /// High qualifier 32 bit unsigned integer type.
  280. /// @see gtc_type_precision
  281. typedef detail::uint32 highp_uint32_t;
  282. /// High qualifier 64 bit unsigned integer type.
  283. /// @see gtc_type_precision
  284. typedef detail::uint64 highp_uint64_t;
  285. /// High qualifier 8 bit unsigned integer type.
  286. /// @see gtc_type_precision
  287. typedef detail::uint8 highp_u8;
  288. /// High qualifier 16 bit unsigned integer type.
  289. /// @see gtc_type_precision
  290. typedef detail::uint16 highp_u16;
  291. /// High qualifier 32 bit unsigned integer type.
  292. /// @see gtc_type_precision
  293. typedef detail::uint32 highp_u32;
  294. /// High qualifier 64 bit unsigned integer type.
  295. /// @see gtc_type_precision
  296. typedef detail::uint64 highp_u64;
  297. #if GLM_HAS_EXTENDED_INTEGER_TYPE
  298. using std::uint8_t;
  299. using std::uint16_t;
  300. using std::uint32_t;
  301. using std::uint64_t;
  302. #else
  303. /// Default qualifier 8 bit unsigned integer type.
  304. /// @see gtc_type_precision
  305. typedef detail::uint8 uint8_t;
  306. /// Default qualifier 16 bit unsigned integer type.
  307. /// @see gtc_type_precision
  308. typedef detail::uint16 uint16_t;
  309. /// Default qualifier 32 bit unsigned integer type.
  310. /// @see gtc_type_precision
  311. typedef detail::uint32 uint32_t;
  312. /// Default qualifier 64 bit unsigned integer type.
  313. /// @see gtc_type_precision
  314. typedef detail::uint64 uint64_t;
  315. #endif
  316. /// Default qualifier 8 bit unsigned integer type.
  317. /// @see gtc_type_precision
  318. typedef detail::uint8 u8;
  319. /// Default qualifier 16 bit unsigned integer type.
  320. /// @see gtc_type_precision
  321. typedef detail::uint16 u16;
  322. /// Default qualifier 32 bit unsigned integer type.
  323. /// @see gtc_type_precision
  324. typedef detail::uint32 u32;
  325. /// Default qualifier 64 bit unsigned integer type.
  326. /// @see gtc_type_precision
  327. typedef detail::uint64 u64;
  328. //////////////////////
  329. // Float vector types
  330. /// Single-qualifier floating-point scalar.
  331. /// @see gtc_type_precision
  332. typedef float float32;
  333. /// Double-qualifier floating-point scalar.
  334. /// @see gtc_type_precision
  335. typedef double float64;
  336. /// Low 32 bit single-qualifier floating-point scalar.
  337. /// @see gtc_type_precision
  338. typedef float32 lowp_float32;
  339. /// Low 64 bit double-qualifier floating-point scalar.
  340. /// @see gtc_type_precision
  341. typedef float64 lowp_float64;
  342. /// Low 32 bit single-qualifier floating-point scalar.
  343. /// @see gtc_type_precision
  344. typedef float32 lowp_float32_t;
  345. /// Low 64 bit double-qualifier floating-point scalar.
  346. /// @see gtc_type_precision
  347. typedef float64 lowp_float64_t;
  348. /// Low 32 bit single-qualifier floating-point scalar.
  349. /// @see gtc_type_precision
  350. typedef float32 lowp_f32;
  351. /// Low 64 bit double-qualifier floating-point scalar.
  352. /// @see gtc_type_precision
  353. typedef float64 lowp_f64;
  354. /// Low 32 bit single-qualifier floating-point scalar.
  355. /// @see gtc_type_precision
  356. typedef float32 lowp_float32;
  357. /// Low 64 bit double-qualifier floating-point scalar.
  358. /// @see gtc_type_precision
  359. typedef float64 lowp_float64;
  360. /// Low 32 bit single-qualifier floating-point scalar.
  361. /// @see gtc_type_precision
  362. typedef float32 lowp_float32_t;
  363. /// Low 64 bit double-qualifier floating-point scalar.
  364. /// @see gtc_type_precision
  365. typedef float64 lowp_float64_t;
  366. /// Low 32 bit single-qualifier floating-point scalar.
  367. /// @see gtc_type_precision
  368. typedef float32 lowp_f32;
  369. /// Low 64 bit double-qualifier floating-point scalar.
  370. /// @see gtc_type_precision
  371. typedef float64 lowp_f64;
  372. /// Low 32 bit single-qualifier floating-point scalar.
  373. /// @see gtc_type_precision
  374. typedef float32 lowp_float32;
  375. /// Low 64 bit double-qualifier floating-point scalar.
  376. /// @see gtc_type_precision
  377. typedef float64 lowp_float64;
  378. /// Low 32 bit single-qualifier floating-point scalar.
  379. /// @see gtc_type_precision
  380. typedef float32 lowp_float32_t;
  381. /// Low 64 bit double-qualifier floating-point scalar.
  382. /// @see gtc_type_precision
  383. typedef float64 lowp_float64_t;
  384. /// Low 32 bit single-qualifier floating-point scalar.
  385. /// @see gtc_type_precision
  386. typedef float32 lowp_f32;
  387. /// Low 64 bit double-qualifier floating-point scalar.
  388. /// @see gtc_type_precision
  389. typedef float64 lowp_f64;
  390. /// Medium 32 bit single-qualifier floating-point scalar.
  391. /// @see gtc_type_precision
  392. typedef float32 mediump_float32;
  393. /// Medium 64 bit double-qualifier floating-point scalar.
  394. /// @see gtc_type_precision
  395. typedef float64 mediump_float64;
  396. /// Medium 32 bit single-qualifier floating-point scalar.
  397. /// @see gtc_type_precision
  398. typedef float32 mediump_float32_t;
  399. /// Medium 64 bit double-qualifier floating-point scalar.
  400. /// @see gtc_type_precision
  401. typedef float64 mediump_float64_t;
  402. /// Medium 32 bit single-qualifier floating-point scalar.
  403. /// @see gtc_type_precision
  404. typedef float32 mediump_f32;
  405. /// Medium 64 bit double-qualifier floating-point scalar.
  406. /// @see gtc_type_precision
  407. typedef float64 mediump_f64;
  408. /// High 32 bit single-qualifier floating-point scalar.
  409. /// @see gtc_type_precision
  410. typedef float32 highp_float32;
  411. /// High 64 bit double-qualifier floating-point scalar.
  412. /// @see gtc_type_precision
  413. typedef float64 highp_float64;
  414. /// High 32 bit single-qualifier floating-point scalar.
  415. /// @see gtc_type_precision
  416. typedef float32 highp_float32_t;
  417. /// High 64 bit double-qualifier floating-point scalar.
  418. /// @see gtc_type_precision
  419. typedef float64 highp_float64_t;
  420. /// High 32 bit single-qualifier floating-point scalar.
  421. /// @see gtc_type_precision
  422. typedef float32 highp_f32;
  423. /// High 64 bit double-qualifier floating-point scalar.
  424. /// @see gtc_type_precision
  425. typedef float64 highp_f64;
  426. #if(defined(GLM_PRECISION_LOWP_FLOAT))
  427. /// Default 32 bit single-qualifier floating-point scalar.
  428. /// @see gtc_type_precision
  429. typedef lowp_float32_t float32_t;
  430. /// Default 64 bit double-qualifier floating-point scalar.
  431. /// @see gtc_type_precision
  432. typedef lowp_float64_t float64_t;
  433. /// Default 32 bit single-qualifier floating-point scalar.
  434. /// @see gtc_type_precision
  435. typedef lowp_f32 f32;
  436. /// Default 64 bit double-qualifier floating-point scalar.
  437. /// @see gtc_type_precision
  438. typedef lowp_f64 f64;
  439. #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
  440. /// Default 32 bit single-qualifier floating-point scalar.
  441. /// @see gtc_type_precision
  442. typedef mediump_float32 float32_t;
  443. /// Default 64 bit double-qualifier floating-point scalar.
  444. /// @see gtc_type_precision
  445. typedef mediump_float64 float64_t;
  446. /// Default 32 bit single-qualifier floating-point scalar.
  447. /// @see gtc_type_precision
  448. typedef mediump_float32 f32;
  449. /// Default 64 bit double-qualifier floating-point scalar.
  450. /// @see gtc_type_precision
  451. typedef mediump_float64 f64;
  452. #else//(defined(GLM_PRECISION_HIGHP_FLOAT))
  453. /// Default 32 bit single-qualifier floating-point scalar.
  454. /// @see gtc_type_precision
  455. typedef highp_float32_t float32_t;
  456. /// Default 64 bit double-qualifier floating-point scalar.
  457. /// @see gtc_type_precision
  458. typedef highp_float64_t float64_t;
  459. /// Default 32 bit single-qualifier floating-point scalar.
  460. /// @see gtc_type_precision
  461. typedef highp_float32_t f32;
  462. /// Default 64 bit double-qualifier floating-point scalar.
  463. /// @see gtc_type_precision
  464. typedef highp_float64_t f64;
  465. #endif
  466. /// Low single-qualifier floating-point vector of 1 component.
  467. /// @see gtc_type_precision
  468. typedef vec<1, float, lowp> lowp_fvec1;
  469. /// Low single-qualifier floating-point vector of 2 components.
  470. /// @see gtc_type_precision
  471. typedef vec<2, float, lowp> lowp_fvec2;
  472. /// Low single-qualifier floating-point vector of 3 components.
  473. /// @see gtc_type_precision
  474. typedef vec<3, float, lowp> lowp_fvec3;
  475. /// Low single-qualifier floating-point vector of 4 components.
  476. /// @see gtc_type_precision
  477. typedef vec<4, float, lowp> lowp_fvec4;
  478. /// Medium single-qualifier floating-point vector of 1 component.
  479. /// @see gtc_type_precision
  480. typedef vec<1, float, mediump> mediump_fvec1;
  481. /// Medium Single-qualifier floating-point vector of 2 components.
  482. /// @see gtc_type_precision
  483. typedef vec<2, float, mediump> mediump_fvec2;
  484. /// Medium Single-qualifier floating-point vector of 3 components.
  485. /// @see gtc_type_precision
  486. typedef vec<3, float, mediump> mediump_fvec3;
  487. /// Medium Single-qualifier floating-point vector of 4 components.
  488. /// @see gtc_type_precision
  489. typedef vec<4, float, mediump> mediump_fvec4;
  490. /// High single-qualifier floating-point vector of 1 component.
  491. /// @see gtc_type_precision
  492. typedef vec<1, float, highp> highp_fvec1;
  493. /// High Single-qualifier floating-point vector of 2 components.
  494. /// @see core_precision
  495. typedef vec<2, float, highp> highp_fvec2;
  496. /// High Single-qualifier floating-point vector of 3 components.
  497. /// @see core_precision
  498. typedef vec<3, float, highp> highp_fvec3;
  499. /// High Single-qualifier floating-point vector of 4 components.
  500. /// @see core_precision
  501. typedef vec<4, float, highp> highp_fvec4;
  502. /// Low single-qualifier floating-point vector of 1 component.
  503. /// @see gtc_type_precision
  504. typedef vec<1, f32, lowp> lowp_f32vec1;
  505. /// Low single-qualifier floating-point vector of 2 components.
  506. /// @see core_precision
  507. typedef vec<2, f32, lowp> lowp_f32vec2;
  508. /// Low single-qualifier floating-point vector of 3 components.
  509. /// @see core_precision
  510. typedef vec<3, f32, lowp> lowp_f32vec3;
  511. /// Low single-qualifier floating-point vector of 4 components.
  512. /// @see core_precision
  513. typedef vec<4, f32, lowp> lowp_f32vec4;
  514. /// Medium single-qualifier floating-point vector of 1 component.
  515. /// @see gtc_type_precision
  516. typedef vec<1, f32, mediump> mediump_f32vec1;
  517. /// Medium single-qualifier floating-point vector of 2 components.
  518. /// @see core_precision
  519. typedef vec<2, f32, mediump> mediump_f32vec2;
  520. /// Medium single-qualifier floating-point vector of 3 components.
  521. /// @see core_precision
  522. typedef vec<3, f32, mediump> mediump_f32vec3;
  523. /// Medium single-qualifier floating-point vector of 4 components.
  524. /// @see core_precision
  525. typedef vec<4, f32, mediump> mediump_f32vec4;
  526. /// High single-qualifier floating-point vector of 1 component.
  527. /// @see gtc_type_precision
  528. typedef vec<1, f32, highp> highp_f32vec1;
  529. /// High single-qualifier floating-point vector of 2 components.
  530. /// @see gtc_type_precision
  531. typedef vec<2, f32, highp> highp_f32vec2;
  532. /// High single-qualifier floating-point vector of 3 components.
  533. /// @see gtc_type_precision
  534. typedef vec<3, f32, highp> highp_f32vec3;
  535. /// High single-qualifier floating-point vector of 4 components.
  536. /// @see gtc_type_precision
  537. typedef vec<4, f32, highp> highp_f32vec4;
  538. /// Low double-qualifier floating-point vector of 1 component.
  539. /// @see gtc_type_precision
  540. typedef vec<1, f64, lowp> lowp_f64vec1;
  541. /// Low double-qualifier floating-point vector of 2 components.
  542. /// @see gtc_type_precision
  543. typedef vec<2, f64, lowp> lowp_f64vec2;
  544. /// Low double-qualifier floating-point vector of 3 components.
  545. /// @see gtc_type_precision
  546. typedef vec<3, f64, lowp> lowp_f64vec3;
  547. /// Low double-qualifier floating-point vector of 4 components.
  548. /// @see gtc_type_precision
  549. typedef vec<4, f64, lowp> lowp_f64vec4;
  550. /// Medium double-qualifier floating-point vector of 1 component.
  551. /// @see gtc_type_precision
  552. typedef vec<1, f64, mediump> mediump_f64vec1;
  553. /// Medium double-qualifier floating-point vector of 2 components.
  554. /// @see gtc_type_precision
  555. typedef vec<2, f64, mediump> mediump_f64vec2;
  556. /// Medium double-qualifier floating-point vector of 3 components.
  557. /// @see gtc_type_precision
  558. typedef vec<3, f64, mediump> mediump_f64vec3;
  559. /// Medium double-qualifier floating-point vector of 4 components.
  560. /// @see gtc_type_precision
  561. typedef vec<4, f64, mediump> mediump_f64vec4;
  562. /// High double-qualifier floating-point vector of 1 component.
  563. /// @see gtc_type_precision
  564. typedef vec<1, f64, highp> highp_f64vec1;
  565. /// High double-qualifier floating-point vector of 2 components.
  566. /// @see gtc_type_precision
  567. typedef vec<2, f64, highp> highp_f64vec2;
  568. /// High double-qualifier floating-point vector of 3 components.
  569. /// @see gtc_type_precision
  570. typedef vec<3, f64, highp> highp_f64vec3;
  571. /// High double-qualifier floating-point vector of 4 components.
  572. /// @see gtc_type_precision
  573. typedef vec<4, f64, highp> highp_f64vec4;
  574. //////////////////////
  575. // Float matrix types
  576. /// Low single-qualifier floating-point 1x1 matrix.
  577. /// @see gtc_type_precision
  578. //typedef lowp_f32 lowp_fmat1x1;
  579. /// Low single-qualifier floating-point 2x2 matrix.
  580. /// @see gtc_type_precision
  581. typedef mat<2, 2, f32, lowp> lowp_fmat2x2;
  582. /// Low single-qualifier floating-point 2x3 matrix.
  583. /// @see gtc_type_precision
  584. typedef mat<2, 3, f32, lowp> lowp_fmat2x3;
  585. /// Low single-qualifier floating-point 2x4 matrix.
  586. /// @see gtc_type_precision
  587. typedef mat<2, 4, f32, lowp> lowp_fmat2x4;
  588. /// Low single-qualifier floating-point 3x2 matrix.
  589. /// @see gtc_type_precision
  590. typedef mat<3, 2, f32, lowp> lowp_fmat3x2;
  591. /// Low single-qualifier floating-point 3x3 matrix.
  592. /// @see gtc_type_precision
  593. typedef mat<3, 3, f32, lowp> lowp_fmat3x3;
  594. /// Low single-qualifier floating-point 3x4 matrix.
  595. /// @see gtc_type_precision
  596. typedef mat<3, 4, f32, lowp> lowp_fmat3x4;
  597. /// Low single-qualifier floating-point 4x2 matrix.
  598. /// @see gtc_type_precision
  599. typedef mat<4, 2, f32, lowp> lowp_fmat4x2;
  600. /// Low single-qualifier floating-point 4x3 matrix.
  601. /// @see gtc_type_precision
  602. typedef mat<4, 3, f32, lowp> lowp_fmat4x3;
  603. /// Low single-qualifier floating-point 4x4 matrix.
  604. /// @see gtc_type_precision
  605. typedef mat<4, 4, f32, lowp> lowp_fmat4x4;
  606. /// Low single-qualifier floating-point 1x1 matrix.
  607. /// @see gtc_type_precision
  608. //typedef lowp_fmat1x1 lowp_fmat1;
  609. /// Low single-qualifier floating-point 2x2 matrix.
  610. /// @see gtc_type_precision
  611. typedef lowp_fmat2x2 lowp_fmat2;
  612. /// Low single-qualifier floating-point 3x3 matrix.
  613. /// @see gtc_type_precision
  614. typedef lowp_fmat3x3 lowp_fmat3;
  615. /// Low single-qualifier floating-point 4x4 matrix.
  616. /// @see gtc_type_precision
  617. typedef lowp_fmat4x4 lowp_fmat4;
  618. /// Medium single-qualifier floating-point 1x1 matrix.
  619. /// @see gtc_type_precision
  620. //typedef mediump_f32 mediump_fmat1x1;
  621. /// Medium single-qualifier floating-point 2x2 matrix.
  622. /// @see gtc_type_precision
  623. typedef mat<2, 2, f32, mediump> mediump_fmat2x2;
  624. /// Medium single-qualifier floating-point 2x3 matrix.
  625. /// @see gtc_type_precision
  626. typedef mat<2, 3, f32, mediump> mediump_fmat2x3;
  627. /// Medium single-qualifier floating-point 2x4 matrix.
  628. /// @see gtc_type_precision
  629. typedef mat<2, 4, f32, mediump> mediump_fmat2x4;
  630. /// Medium single-qualifier floating-point 3x2 matrix.
  631. /// @see gtc_type_precision
  632. typedef mat<3, 2, f32, mediump> mediump_fmat3x2;
  633. /// Medium single-qualifier floating-point 3x3 matrix.
  634. /// @see gtc_type_precision
  635. typedef mat<3, 3, f32, mediump> mediump_fmat3x3;
  636. /// Medium single-qualifier floating-point 3x4 matrix.
  637. /// @see gtc_type_precision
  638. typedef mat<3, 4, f32, mediump> mediump_fmat3x4;
  639. /// Medium single-qualifier floating-point 4x2 matrix.
  640. /// @see gtc_type_precision
  641. typedef mat<4, 2, f32, mediump> mediump_fmat4x2;
  642. /// Medium single-qualifier floating-point 4x3 matrix.
  643. /// @see gtc_type_precision
  644. typedef mat<4, 3, f32, mediump> mediump_fmat4x3;
  645. /// Medium single-qualifier floating-point 4x4 matrix.
  646. /// @see gtc_type_precision
  647. typedef mat<4, 4, f32, mediump> mediump_fmat4x4;
  648. /// Medium single-qualifier floating-point 1x1 matrix.
  649. /// @see gtc_type_precision
  650. //typedef mediump_fmat1x1 mediump_fmat1;
  651. /// Medium single-qualifier floating-point 2x2 matrix.
  652. /// @see gtc_type_precision
  653. typedef mediump_fmat2x2 mediump_fmat2;
  654. /// Medium single-qualifier floating-point 3x3 matrix.
  655. /// @see gtc_type_precision
  656. typedef mediump_fmat3x3 mediump_fmat3;
  657. /// Medium single-qualifier floating-point 4x4 matrix.
  658. /// @see gtc_type_precision
  659. typedef mediump_fmat4x4 mediump_fmat4;
  660. /// High single-qualifier floating-point 1x1 matrix.
  661. /// @see gtc_type_precision
  662. //typedef highp_f32 highp_fmat1x1;
  663. /// High single-qualifier floating-point 2x2 matrix.
  664. /// @see gtc_type_precision
  665. typedef mat<2, 2, f32, highp> highp_fmat2x2;
  666. /// High single-qualifier floating-point 2x3 matrix.
  667. /// @see gtc_type_precision
  668. typedef mat<2, 3, f32, highp> highp_fmat2x3;
  669. /// High single-qualifier floating-point 2x4 matrix.
  670. /// @see gtc_type_precision
  671. typedef mat<2, 4, f32, highp> highp_fmat2x4;
  672. /// High single-qualifier floating-point 3x2 matrix.
  673. /// @see gtc_type_precision
  674. typedef mat<3, 2, f32, highp> highp_fmat3x2;
  675. /// High single-qualifier floating-point 3x3 matrix.
  676. /// @see gtc_type_precision
  677. typedef mat<3, 3, f32, highp> highp_fmat3x3;
  678. /// High single-qualifier floating-point 3x4 matrix.
  679. /// @see gtc_type_precision
  680. typedef mat<3, 4, f32, highp> highp_fmat3x4;
  681. /// High single-qualifier floating-point 4x2 matrix.
  682. /// @see gtc_type_precision
  683. typedef mat<4, 2, f32, highp> highp_fmat4x2;
  684. /// High single-qualifier floating-point 4x3 matrix.
  685. /// @see gtc_type_precision
  686. typedef mat<4, 3, f32, highp> highp_fmat4x3;
  687. /// High single-qualifier floating-point 4x4 matrix.
  688. /// @see gtc_type_precision
  689. typedef mat<4, 4, f32, highp> highp_fmat4x4;
  690. /// High single-qualifier floating-point 1x1 matrix.
  691. /// @see gtc_type_precision
  692. //typedef highp_fmat1x1 highp_fmat1;
  693. /// High single-qualifier floating-point 2x2 matrix.
  694. /// @see gtc_type_precision
  695. typedef highp_fmat2x2 highp_fmat2;
  696. /// High single-qualifier floating-point 3x3 matrix.
  697. /// @see gtc_type_precision
  698. typedef highp_fmat3x3 highp_fmat3;
  699. /// High single-qualifier floating-point 4x4 matrix.
  700. /// @see gtc_type_precision
  701. typedef highp_fmat4x4 highp_fmat4;
  702. /// Low single-qualifier floating-point 1x1 matrix.
  703. /// @see gtc_type_precision
  704. //typedef f32 lowp_f32mat1x1;
  705. /// Low single-qualifier floating-point 2x2 matrix.
  706. /// @see gtc_type_precision
  707. typedef mat<2, 2, f32, lowp> lowp_f32mat2x2;
  708. /// Low single-qualifier floating-point 2x3 matrix.
  709. /// @see gtc_type_precision
  710. typedef mat<2, 3, f32, lowp> lowp_f32mat2x3;
  711. /// Low single-qualifier floating-point 2x4 matrix.
  712. /// @see gtc_type_precision
  713. typedef mat<2, 4, f32, lowp> lowp_f32mat2x4;
  714. /// Low single-qualifier floating-point 3x2 matrix.
  715. /// @see gtc_type_precision
  716. typedef mat<3, 2, f32, lowp> lowp_f32mat3x2;
  717. /// Low single-qualifier floating-point 3x3 matrix.
  718. /// @see gtc_type_precision
  719. typedef mat<3, 3, f32, lowp> lowp_f32mat3x3;
  720. /// Low single-qualifier floating-point 3x4 matrix.
  721. /// @see gtc_type_precision
  722. typedef mat<3, 4, f32, lowp> lowp_f32mat3x4;
  723. /// Low single-qualifier floating-point 4x2 matrix.
  724. /// @see gtc_type_precision
  725. typedef mat<4, 2, f32, lowp> lowp_f32mat4x2;
  726. /// Low single-qualifier floating-point 4x3 matrix.
  727. /// @see gtc_type_precision
  728. typedef mat<4, 3, f32, lowp> lowp_f32mat4x3;
  729. /// Low single-qualifier floating-point 4x4 matrix.
  730. /// @see gtc_type_precision
  731. typedef mat<4, 4, f32, lowp> lowp_f32mat4x4;
  732. /// Low single-qualifier floating-point 1x1 matrix.
  733. /// @see gtc_type_precision
  734. //typedef detail::tmat1x1<f32, lowp> lowp_f32mat1;
  735. /// Low single-qualifier floating-point 2x2 matrix.
  736. /// @see gtc_type_precision
  737. typedef lowp_f32mat2x2 lowp_f32mat2;
  738. /// Low single-qualifier floating-point 3x3 matrix.
  739. /// @see gtc_type_precision
  740. typedef lowp_f32mat3x3 lowp_f32mat3;
  741. /// Low single-qualifier floating-point 4x4 matrix.
  742. /// @see gtc_type_precision
  743. typedef lowp_f32mat4x4 lowp_f32mat4;
  744. /// High single-qualifier floating-point 1x1 matrix.
  745. /// @see gtc_type_precision
  746. //typedef f32 mediump_f32mat1x1;
  747. /// Low single-qualifier floating-point 2x2 matrix.
  748. /// @see gtc_type_precision
  749. typedef mat<2, 2, f32, mediump> mediump_f32mat2x2;
  750. /// Medium single-qualifier floating-point 2x3 matrix.
  751. /// @see gtc_type_precision
  752. typedef mat<2, 3, f32, mediump> mediump_f32mat2x3;
  753. /// Medium single-qualifier floating-point 2x4 matrix.
  754. /// @see gtc_type_precision
  755. typedef mat<2, 4, f32, mediump> mediump_f32mat2x4;
  756. /// Medium single-qualifier floating-point 3x2 matrix.
  757. /// @see gtc_type_precision
  758. typedef mat<3, 2, f32, mediump> mediump_f32mat3x2;
  759. /// Medium single-qualifier floating-point 3x3 matrix.
  760. /// @see gtc_type_precision
  761. typedef mat<3, 3, f32, mediump> mediump_f32mat3x3;
  762. /// Medium single-qualifier floating-point 3x4 matrix.
  763. /// @see gtc_type_precision
  764. typedef mat<3, 4, f32, mediump> mediump_f32mat3x4;
  765. /// Medium single-qualifier floating-point 4x2 matrix.
  766. /// @see gtc_type_precision
  767. typedef mat<4, 2, f32, mediump> mediump_f32mat4x2;
  768. /// Medium single-qualifier floating-point 4x3 matrix.
  769. /// @see gtc_type_precision
  770. typedef mat<4, 3, f32, mediump> mediump_f32mat4x3;
  771. /// Medium single-qualifier floating-point 4x4 matrix.
  772. /// @see gtc_type_precision
  773. typedef mat<4, 4, f32, mediump> mediump_f32mat4x4;
  774. /// Medium single-qualifier floating-point 1x1 matrix.
  775. /// @see gtc_type_precision
  776. //typedef detail::tmat1x1<f32, mediump> f32mat1;
  777. /// Medium single-qualifier floating-point 2x2 matrix.
  778. /// @see gtc_type_precision
  779. typedef mediump_f32mat2x2 mediump_f32mat2;
  780. /// Medium single-qualifier floating-point 3x3 matrix.
  781. /// @see gtc_type_precision
  782. typedef mediump_f32mat3x3 mediump_f32mat3;
  783. /// Medium single-qualifier floating-point 4x4 matrix.
  784. /// @see gtc_type_precision
  785. typedef mediump_f32mat4x4 mediump_f32mat4;
  786. /// High single-qualifier floating-point 1x1 matrix.
  787. /// @see gtc_type_precision
  788. //typedef f32 highp_f32mat1x1;
  789. /// High single-qualifier floating-point 2x2 matrix.
  790. /// @see gtc_type_precision
  791. typedef mat<2, 2, f32, highp> highp_f32mat2x2;
  792. /// High single-qualifier floating-point 2x3 matrix.
  793. /// @see gtc_type_precision
  794. typedef mat<2, 3, f32, highp> highp_f32mat2x3;
  795. /// High single-qualifier floating-point 2x4 matrix.
  796. /// @see gtc_type_precision
  797. typedef mat<2, 4, f32, highp> highp_f32mat2x4;
  798. /// High single-qualifier floating-point 3x2 matrix.
  799. /// @see gtc_type_precision
  800. typedef mat<3, 2, f32, highp> highp_f32mat3x2;
  801. /// High single-qualifier floating-point 3x3 matrix.
  802. /// @see gtc_type_precision
  803. typedef mat<3, 3, f32, highp> highp_f32mat3x3;
  804. /// High single-qualifier floating-point 3x4 matrix.
  805. /// @see gtc_type_precision
  806. typedef mat<3, 4, f32, highp> highp_f32mat3x4;
  807. /// High single-qualifier floating-point 4x2 matrix.
  808. /// @see gtc_type_precision
  809. typedef mat<4, 2, f32, highp> highp_f32mat4x2;
  810. /// High single-qualifier floating-point 4x3 matrix.
  811. /// @see gtc_type_precision
  812. typedef mat<4, 3, f32, highp> highp_f32mat4x3;
  813. /// High single-qualifier floating-point 4x4 matrix.
  814. /// @see gtc_type_precision
  815. typedef mat<4, 4, f32, highp> highp_f32mat4x4;
  816. /// High single-qualifier floating-point 1x1 matrix.
  817. /// @see gtc_type_precision
  818. //typedef detail::tmat1x1<f32, highp> f32mat1;
  819. /// High single-qualifier floating-point 2x2 matrix.
  820. /// @see gtc_type_precision
  821. typedef highp_f32mat2x2 highp_f32mat2;
  822. /// High single-qualifier floating-point 3x3 matrix.
  823. /// @see gtc_type_precision
  824. typedef highp_f32mat3x3 highp_f32mat3;
  825. /// High single-qualifier floating-point 4x4 matrix.
  826. /// @see gtc_type_precision
  827. typedef highp_f32mat4x4 highp_f32mat4;
  828. /// Low double-qualifier floating-point 1x1 matrix.
  829. /// @see gtc_type_precision
  830. //typedef f64 lowp_f64mat1x1;
  831. /// Low double-qualifier floating-point 2x2 matrix.
  832. /// @see gtc_type_precision
  833. typedef mat<2, 2, f64, lowp> lowp_f64mat2x2;
  834. /// Low double-qualifier floating-point 2x3 matrix.
  835. /// @see gtc_type_precision
  836. typedef mat<2, 3, f64, lowp> lowp_f64mat2x3;
  837. /// Low double-qualifier floating-point 2x4 matrix.
  838. /// @see gtc_type_precision
  839. typedef mat<2, 4, f64, lowp> lowp_f64mat2x4;
  840. /// Low double-qualifier floating-point 3x2 matrix.
  841. /// @see gtc_type_precision
  842. typedef mat<3, 2, f64, lowp> lowp_f64mat3x2;
  843. /// Low double-qualifier floating-point 3x3 matrix.
  844. /// @see gtc_type_precision
  845. typedef mat<3, 3, f64, lowp> lowp_f64mat3x3;
  846. /// Low double-qualifier floating-point 3x4 matrix.
  847. /// @see gtc_type_precision
  848. typedef mat<3, 4, f64, lowp> lowp_f64mat3x4;
  849. /// Low double-qualifier floating-point 4x2 matrix.
  850. /// @see gtc_type_precision
  851. typedef mat<4, 2, f64, lowp> lowp_f64mat4x2;
  852. /// Low double-qualifier floating-point 4x3 matrix.
  853. /// @see gtc_type_precision
  854. typedef mat<4, 3, f64, lowp> lowp_f64mat4x3;
  855. /// Low double-qualifier floating-point 4x4 matrix.
  856. /// @see gtc_type_precision
  857. typedef mat<4, 4, f64, lowp> lowp_f64mat4x4;
  858. /// Low double-qualifier floating-point 1x1 matrix.
  859. /// @see gtc_type_precision
  860. //typedef lowp_f64mat1x1 lowp_f64mat1;
  861. /// Low double-qualifier floating-point 2x2 matrix.
  862. /// @see gtc_type_precision
  863. typedef lowp_f64mat2x2 lowp_f64mat2;
  864. /// Low double-qualifier floating-point 3x3 matrix.
  865. /// @see gtc_type_precision
  866. typedef lowp_f64mat3x3 lowp_f64mat3;
  867. /// Low double-qualifier floating-point 4x4 matrix.
  868. /// @see gtc_type_precision
  869. typedef lowp_f64mat4x4 lowp_f64mat4;
  870. /// Medium double-qualifier floating-point 1x1 matrix.
  871. /// @see gtc_type_precision
  872. //typedef f64 Highp_f64mat1x1;
  873. /// Medium double-qualifier floating-point 2x2 matrix.
  874. /// @see gtc_type_precision
  875. typedef mat<2, 2, f64, mediump> mediump_f64mat2x2;
  876. /// Medium double-qualifier floating-point 2x3 matrix.
  877. /// @see gtc_type_precision
  878. typedef mat<2, 3, f64, mediump> mediump_f64mat2x3;
  879. /// Medium double-qualifier floating-point 2x4 matrix.
  880. /// @see gtc_type_precision
  881. typedef mat<2, 4, f64, mediump> mediump_f64mat2x4;
  882. /// Medium double-qualifier floating-point 3x2 matrix.
  883. /// @see gtc_type_precision
  884. typedef mat<3, 2, f64, mediump> mediump_f64mat3x2;
  885. /// Medium double-qualifier floating-point 3x3 matrix.
  886. /// @see gtc_type_precision
  887. typedef mat<3, 3, f64, mediump> mediump_f64mat3x3;
  888. /// Medium double-qualifier floating-point 3x4 matrix.
  889. /// @see gtc_type_precision
  890. typedef mat<3, 4, f64, mediump> mediump_f64mat3x4;
  891. /// Medium double-qualifier floating-point 4x2 matrix.
  892. /// @see gtc_type_precision
  893. typedef mat<4, 2, f64, mediump> mediump_f64mat4x2;
  894. /// Medium double-qualifier floating-point 4x3 matrix.
  895. /// @see gtc_type_precision
  896. typedef mat<4, 3, f64, mediump> mediump_f64mat4x3;
  897. /// Medium double-qualifier floating-point 4x4 matrix.
  898. /// @see gtc_type_precision
  899. typedef mat<4, 4, f64, mediump> mediump_f64mat4x4;
  900. /// Medium double-qualifier floating-point 1x1 matrix.
  901. /// @see gtc_type_precision
  902. //typedef mediump_f64mat1x1 mediump_f64mat1;
  903. /// Medium double-qualifier floating-point 2x2 matrix.
  904. /// @see gtc_type_precision
  905. typedef mediump_f64mat2x2 mediump_f64mat2;
  906. /// Medium double-qualifier floating-point 3x3 matrix.
  907. /// @see gtc_type_precision
  908. typedef mediump_f64mat3x3 mediump_f64mat3;
  909. /// Medium double-qualifier floating-point 4x4 matrix.
  910. /// @see gtc_type_precision
  911. typedef mediump_f64mat4x4 mediump_f64mat4;
  912. /// High double-qualifier floating-point 1x1 matrix.
  913. /// @see gtc_type_precision
  914. //typedef f64 highp_f64mat1x1;
  915. /// High double-qualifier floating-point 2x2 matrix.
  916. /// @see gtc_type_precision
  917. typedef mat<2, 2, f64, highp> highp_f64mat2x2;
  918. /// High double-qualifier floating-point 2x3 matrix.
  919. /// @see gtc_type_precision
  920. typedef mat<2, 3, f64, highp> highp_f64mat2x3;
  921. /// High double-qualifier floating-point 2x4 matrix.
  922. /// @see gtc_type_precision
  923. typedef mat<2, 4, f64, highp> highp_f64mat2x4;
  924. /// High double-qualifier floating-point 3x2 matrix.
  925. /// @see gtc_type_precision
  926. typedef mat<3, 2, f64, highp> highp_f64mat3x2;
  927. /// High double-qualifier floating-point 3x3 matrix.
  928. /// @see gtc_type_precision
  929. typedef mat<3, 3, f64, highp> highp_f64mat3x3;
  930. /// High double-qualifier floating-point 3x4 matrix.
  931. /// @see gtc_type_precision
  932. typedef mat<3, 4, f64, highp> highp_f64mat3x4;
  933. /// High double-qualifier floating-point 4x2 matrix.
  934. /// @see gtc_type_precision
  935. typedef mat<4, 2, f64, highp> highp_f64mat4x2;
  936. /// High double-qualifier floating-point 4x3 matrix.
  937. /// @see gtc_type_precision
  938. typedef mat<4, 3, f64, highp> highp_f64mat4x3;
  939. /// High double-qualifier floating-point 4x4 matrix.
  940. /// @see gtc_type_precision
  941. typedef mat<4, 4, f64, highp> highp_f64mat4x4;
  942. /// High double-qualifier floating-point 1x1 matrix.
  943. /// @see gtc_type_precision
  944. //typedef highp_f64mat1x1 highp_f64mat1;
  945. /// High double-qualifier floating-point 2x2 matrix.
  946. /// @see gtc_type_precision
  947. typedef highp_f64mat2x2 highp_f64mat2;
  948. /// High double-qualifier floating-point 3x3 matrix.
  949. /// @see gtc_type_precision
  950. typedef highp_f64mat3x3 highp_f64mat3;
  951. /// High double-qualifier floating-point 4x4 matrix.
  952. /// @see gtc_type_precision
  953. typedef highp_f64mat4x4 highp_f64mat4;
  954. /// Low qualifier 8 bit unsigned integer scalar type.
  955. /// @see gtc_type_precision
  956. typedef vec<1, u8, lowp> lowp_u8vec1;
  957. /// Low qualifier 8 bit unsigned integer vector of 2 components type.
  958. /// @see gtc_type_precision
  959. typedef vec<2, u8, lowp> lowp_u8vec2;
  960. /// Low qualifier 8 bit unsigned integer vector of 3 components type.
  961. /// @see gtc_type_precision
  962. typedef vec<3, u8, lowp> lowp_u8vec3;
  963. /// Low qualifier 8 bit unsigned integer vector of 4 components type.
  964. /// @see gtc_type_precision
  965. typedef vec<4, u8, lowp> lowp_u8vec4;
  966. /// Medium qualifier 8 bit unsigned integer scalar type.
  967. /// @see gtc_type_precision
  968. typedef vec<1, u8, mediump> mediump_u8vec1;
  969. /// Medium qualifier 8 bit unsigned integer vector of 2 components type.
  970. /// @see gtc_type_precision
  971. typedef vec<2, u8, mediump> mediump_u8vec2;
  972. /// Medium qualifier 8 bit unsigned integer vector of 3 components type.
  973. /// @see gtc_type_precision
  974. typedef vec<3, u8, mediump> mediump_u8vec3;
  975. /// Medium qualifier 8 bit unsigned integer vector of 4 components type.
  976. /// @see gtc_type_precision
  977. typedef vec<4, u8, mediump> mediump_u8vec4;
  978. /// High qualifier 8 bit unsigned integer scalar type.
  979. /// @see gtc_type_precision
  980. typedef vec<1, u8, highp> highp_u8vec1;
  981. /// High qualifier 8 bit unsigned integer vector of 2 components type.
  982. /// @see gtc_type_precision
  983. typedef vec<2, u8, highp> highp_u8vec2;
  984. /// High qualifier 8 bit unsigned integer vector of 3 components type.
  985. /// @see gtc_type_precision
  986. typedef vec<3, u8, highp> highp_u8vec3;
  987. /// High qualifier 8 bit unsigned integer vector of 4 components type.
  988. /// @see gtc_type_precision
  989. typedef vec<4, u8, highp> highp_u8vec4;
  990. /// Default qualifier 8 bit unsigned integer scalar type.
  991. /// @see gtc_type_precision
  992. typedef vec<1, u8, defaultp> u8vec1;
  993. /// Default qualifier 8 bit unsigned integer vector of 2 components type.
  994. /// @see gtc_type_precision
  995. typedef vec<2, u8, defaultp> u8vec2;
  996. /// Default qualifier 8 bit unsigned integer vector of 3 components type.
  997. /// @see gtc_type_precision
  998. typedef vec<3, u8, defaultp> u8vec3;
  999. /// Default qualifier 8 bit unsigned integer vector of 4 components type.
  1000. /// @see gtc_type_precision
  1001. typedef vec<4, u8, defaultp> u8vec4;
  1002. /// Low qualifier 16 bit unsigned integer scalar type.
  1003. /// @see gtc_type_precision
  1004. typedef vec<1, u16, lowp> lowp_u16vec1;
  1005. /// Low qualifier 16 bit unsigned integer vector of 2 components type.
  1006. /// @see gtc_type_precision
  1007. typedef vec<2, u16, lowp> lowp_u16vec2;
  1008. /// Low qualifier 16 bit unsigned integer vector of 3 components type.
  1009. /// @see gtc_type_precision
  1010. typedef vec<3, u16, lowp> lowp_u16vec3;
  1011. /// Low qualifier 16 bit unsigned integer vector of 4 components type.
  1012. /// @see gtc_type_precision
  1013. typedef vec<4, u16, lowp> lowp_u16vec4;
  1014. /// Medium qualifier 16 bit unsigned integer scalar type.
  1015. /// @see gtc_type_precision
  1016. typedef vec<1, u16, mediump> mediump_u16vec1;
  1017. /// Medium qualifier 16 bit unsigned integer vector of 2 components type.
  1018. /// @see gtc_type_precision
  1019. typedef vec<2, u16, mediump> mediump_u16vec2;
  1020. /// Medium qualifier 16 bit unsigned integer vector of 3 components type.
  1021. /// @see gtc_type_precision
  1022. typedef vec<3, u16, mediump> mediump_u16vec3;
  1023. /// Medium qualifier 16 bit unsigned integer vector of 4 components type.
  1024. /// @see gtc_type_precision
  1025. typedef vec<4, u16, mediump> mediump_u16vec4;
  1026. /// High qualifier 16 bit unsigned integer scalar type.
  1027. /// @see gtc_type_precision
  1028. typedef vec<1, u16, highp> highp_u16vec1;
  1029. /// High qualifier 16 bit unsigned integer vector of 2 components type.
  1030. /// @see gtc_type_precision
  1031. typedef vec<2, u16, highp> highp_u16vec2;
  1032. /// High qualifier 16 bit unsigned integer vector of 3 components type.
  1033. /// @see gtc_type_precision
  1034. typedef vec<3, u16, highp> highp_u16vec3;
  1035. /// High qualifier 16 bit unsigned integer vector of 4 components type.
  1036. /// @see gtc_type_precision
  1037. typedef vec<4, u16, highp> highp_u16vec4;
  1038. /// Default qualifier 16 bit unsigned integer scalar type.
  1039. /// @see gtc_type_precision
  1040. typedef vec<1, u16, defaultp> u16vec1;
  1041. /// Default qualifier 16 bit unsigned integer vector of 2 components type.
  1042. /// @see gtc_type_precision
  1043. typedef vec<2, u16, defaultp> u16vec2;
  1044. /// Default qualifier 16 bit unsigned integer vector of 3 components type.
  1045. /// @see gtc_type_precision
  1046. typedef vec<3, u16, defaultp> u16vec3;
  1047. /// Default qualifier 16 bit unsigned integer vector of 4 components type.
  1048. /// @see gtc_type_precision
  1049. typedef vec<4, u16, defaultp> u16vec4;
  1050. /// Low qualifier 32 bit unsigned integer scalar type.
  1051. /// @see gtc_type_precision
  1052. typedef vec<1, u32, lowp> lowp_u32vec1;
  1053. /// Low qualifier 32 bit unsigned integer vector of 2 components type.
  1054. /// @see gtc_type_precision
  1055. typedef vec<2, u32, lowp> lowp_u32vec2;
  1056. /// Low qualifier 32 bit unsigned integer vector of 3 components type.
  1057. /// @see gtc_type_precision
  1058. typedef vec<3, u32, lowp> lowp_u32vec3;
  1059. /// Low qualifier 32 bit unsigned integer vector of 4 components type.
  1060. /// @see gtc_type_precision
  1061. typedef vec<4, u32, lowp> lowp_u32vec4;
  1062. /// Medium qualifier 32 bit unsigned integer scalar type.
  1063. /// @see gtc_type_precision
  1064. typedef vec<1, u32, mediump> mediump_u32vec1;
  1065. /// Medium qualifier 32 bit unsigned integer vector of 2 components type.
  1066. /// @see gtc_type_precision
  1067. typedef vec<2, u32, mediump> mediump_u32vec2;
  1068. /// Medium qualifier 32 bit unsigned integer vector of 3 components type.
  1069. /// @see gtc_type_precision
  1070. typedef vec<3, u32, mediump> mediump_u32vec3;
  1071. /// Medium qualifier 32 bit unsigned integer vector of 4 components type.
  1072. /// @see gtc_type_precision
  1073. typedef vec<4, u32, mediump> mediump_u32vec4;
  1074. /// High qualifier 32 bit unsigned integer scalar type.
  1075. /// @see gtc_type_precision
  1076. typedef vec<1, u32, highp> highp_u32vec1;
  1077. /// High qualifier 32 bit unsigned integer vector of 2 components type.
  1078. /// @see gtc_type_precision
  1079. typedef vec<2, u32, highp> highp_u32vec2;
  1080. /// High qualifier 32 bit unsigned integer vector of 3 components type.
  1081. /// @see gtc_type_precision
  1082. typedef vec<3, u32, highp> highp_u32vec3;
  1083. /// High qualifier 32 bit unsigned integer vector of 4 components type.
  1084. /// @see gtc_type_precision
  1085. typedef vec<4, u32, highp> highp_u32vec4;
  1086. /// Default qualifier 32 bit unsigned integer scalar type.
  1087. /// @see gtc_type_precision
  1088. typedef vec<1, u32, defaultp> u32vec1;
  1089. /// Default qualifier 32 bit unsigned integer vector of 2 components type.
  1090. /// @see gtc_type_precision
  1091. typedef vec<2, u32, defaultp> u32vec2;
  1092. /// Default qualifier 32 bit unsigned integer vector of 3 components type.
  1093. /// @see gtc_type_precision
  1094. typedef vec<3, u32, defaultp> u32vec3;
  1095. /// Default qualifier 32 bit unsigned integer vector of 4 components type.
  1096. /// @see gtc_type_precision
  1097. typedef vec<4, u32, defaultp> u32vec4;
  1098. /// Low qualifier 64 bit unsigned integer scalar type.
  1099. /// @see gtc_type_precision
  1100. typedef vec<1, u64, lowp> lowp_u64vec1;
  1101. /// Low qualifier 64 bit unsigned integer vector of 2 components type.
  1102. /// @see gtc_type_precision
  1103. typedef vec<2, u64, lowp> lowp_u64vec2;
  1104. /// Low qualifier 64 bit unsigned integer vector of 3 components type.
  1105. /// @see gtc_type_precision
  1106. typedef vec<3, u64, lowp> lowp_u64vec3;
  1107. /// Low qualifier 64 bit unsigned integer vector of 4 components type.
  1108. /// @see gtc_type_precision
  1109. typedef vec<4, u64, lowp> lowp_u64vec4;
  1110. /// Medium qualifier 64 bit unsigned integer scalar type.
  1111. /// @see gtc_type_precision
  1112. typedef vec<1, u64, mediump> mediump_u64vec1;
  1113. /// Medium qualifier 64 bit unsigned integer vector of 2 components type.
  1114. /// @see gtc_type_precision
  1115. typedef vec<2, u64, mediump> mediump_u64vec2;
  1116. /// Medium qualifier 64 bit unsigned integer vector of 3 components type.
  1117. /// @see gtc_type_precision
  1118. typedef vec<3, u64, mediump> mediump_u64vec3;
  1119. /// Medium qualifier 64 bit unsigned integer vector of 4 components type.
  1120. /// @see gtc_type_precision
  1121. typedef vec<4, u64, mediump> mediump_u64vec4;
  1122. /// High qualifier 64 bit unsigned integer scalar type.
  1123. /// @see gtc_type_precision
  1124. typedef vec<1, u64, highp> highp_u64vec1;
  1125. /// High qualifier 64 bit unsigned integer vector of 2 components type.
  1126. /// @see gtc_type_precision
  1127. typedef vec<2, u64, highp> highp_u64vec2;
  1128. /// High qualifier 64 bit unsigned integer vector of 3 components type.
  1129. /// @see gtc_type_precision
  1130. typedef vec<3, u64, highp> highp_u64vec3;
  1131. /// High qualifier 64 bit unsigned integer vector of 4 components type.
  1132. /// @see gtc_type_precision
  1133. typedef vec<4, u64, highp> highp_u64vec4;
  1134. /// Default qualifier 64 bit unsigned integer scalar type.
  1135. /// @see gtc_type_precision
  1136. typedef vec<1, u64, defaultp> u64vec1;
  1137. /// Default qualifier 64 bit unsigned integer vector of 2 components type.
  1138. /// @see gtc_type_precision
  1139. typedef vec<2, u64, defaultp> u64vec2;
  1140. /// Default qualifier 64 bit unsigned integer vector of 3 components type.
  1141. /// @see gtc_type_precision
  1142. typedef vec<3, u64, defaultp> u64vec3;
  1143. /// Default qualifier 64 bit unsigned integer vector of 4 components type.
  1144. /// @see gtc_type_precision
  1145. typedef vec<4, u64, defaultp> u64vec4;
  1146. //////////////////////
  1147. // Float vector types
  1148. /// 32 bit single-qualifier floating-point scalar.
  1149. /// @see gtc_type_precision
  1150. typedef float32 float32_t;
  1151. /// 32 bit single-qualifier floating-point scalar.
  1152. /// @see gtc_type_precision
  1153. typedef float32 f32;
  1154. # ifndef GLM_FORCE_SINGLE_ONLY
  1155. /// 64 bit double-qualifier floating-point scalar.
  1156. /// @see gtc_type_precision
  1157. typedef float64 float64_t;
  1158. /// 64 bit double-qualifier floating-point scalar.
  1159. /// @see gtc_type_precision
  1160. typedef float64 f64;
  1161. # endif//GLM_FORCE_SINGLE_ONLY
  1162. /// Single-qualifier floating-point vector of 1 component.
  1163. /// @see gtc_type_precision
  1164. typedef vec<1, float, defaultp> fvec1;
  1165. /// Single-qualifier floating-point vector of 2 components.
  1166. /// @see gtc_type_precision
  1167. typedef vec<2, float, defaultp> fvec2;
  1168. /// Single-qualifier floating-point vector of 3 components.
  1169. /// @see gtc_type_precision
  1170. typedef vec<3, float, defaultp> fvec3;
  1171. /// Single-qualifier floating-point vector of 4 components.
  1172. /// @see gtc_type_precision
  1173. typedef vec<4, float, defaultp> fvec4;
  1174. /// Single-qualifier floating-point vector of 1 component.
  1175. /// @see gtc_type_precision
  1176. typedef vec<1, f32, defaultp> f32vec1;
  1177. /// Single-qualifier floating-point vector of 2 components.
  1178. /// @see gtc_type_precision
  1179. typedef vec<2, f32, defaultp> f32vec2;
  1180. /// Single-qualifier floating-point vector of 3 components.
  1181. /// @see gtc_type_precision
  1182. typedef vec<3, f32, defaultp> f32vec3;
  1183. /// Single-qualifier floating-point vector of 4 components.
  1184. /// @see gtc_type_precision
  1185. typedef vec<4, f32, defaultp> f32vec4;
  1186. # ifndef GLM_FORCE_SINGLE_ONLY
  1187. /// Double-qualifier floating-point vector of 1 component.
  1188. /// @see gtc_type_precision
  1189. typedef vec<1, f64, defaultp> f64vec1;
  1190. /// Double-qualifier floating-point vector of 2 components.
  1191. /// @see gtc_type_precision
  1192. typedef vec<2, f64, defaultp> f64vec2;
  1193. /// Double-qualifier floating-point vector of 3 components.
  1194. /// @see gtc_type_precision
  1195. typedef vec<3, f64, defaultp> f64vec3;
  1196. /// Double-qualifier floating-point vector of 4 components.
  1197. /// @see gtc_type_precision
  1198. typedef vec<4, f64, defaultp> f64vec4;
  1199. # endif//GLM_FORCE_SINGLE_ONLY
  1200. //////////////////////
  1201. // Float matrix types
  1202. /// Single-qualifier floating-point 1x1 matrix.
  1203. /// @see gtc_type_precision
  1204. //typedef detail::tmat1x1<f32> fmat1;
  1205. /// Single-qualifier floating-point 2x2 matrix.
  1206. /// @see gtc_type_precision
  1207. typedef mat<2, 2, f32, defaultp> fmat2;
  1208. /// Single-qualifier floating-point 3x3 matrix.
  1209. /// @see gtc_type_precision
  1210. typedef mat<3, 3, f32, defaultp> fmat3;
  1211. /// Single-qualifier floating-point 4x4 matrix.
  1212. /// @see gtc_type_precision
  1213. typedef mat<4, 4, f32, defaultp> fmat4;
  1214. /// Single-qualifier floating-point 1x1 matrix.
  1215. /// @see gtc_type_precision
  1216. //typedef f32 fmat1x1;
  1217. /// Single-qualifier floating-point 2x2 matrix.
  1218. /// @see gtc_type_precision
  1219. typedef mat<2, 2, f32, defaultp> fmat2x2;
  1220. /// Single-qualifier floating-point 2x3 matrix.
  1221. /// @see gtc_type_precision
  1222. typedef mat<2, 3, f32, defaultp> fmat2x3;
  1223. /// Single-qualifier floating-point 2x4 matrix.
  1224. /// @see gtc_type_precision
  1225. typedef mat<2, 4, f32, defaultp> fmat2x4;
  1226. /// Single-qualifier floating-point 3x2 matrix.
  1227. /// @see gtc_type_precision
  1228. typedef mat<3, 2, f32, defaultp> fmat3x2;
  1229. /// Single-qualifier floating-point 3x3 matrix.
  1230. /// @see gtc_type_precision
  1231. typedef mat<3, 3, f32, defaultp> fmat3x3;
  1232. /// Single-qualifier floating-point 3x4 matrix.
  1233. /// @see gtc_type_precision
  1234. typedef mat<3, 4, f32, defaultp> fmat3x4;
  1235. /// Single-qualifier floating-point 4x2 matrix.
  1236. /// @see gtc_type_precision
  1237. typedef mat<4, 2, f32, defaultp> fmat4x2;
  1238. /// Single-qualifier floating-point 4x3 matrix.
  1239. /// @see gtc_type_precision
  1240. typedef mat<4, 3, f32, defaultp> fmat4x3;
  1241. /// Single-qualifier floating-point 4x4 matrix.
  1242. /// @see gtc_type_precision
  1243. typedef mat<4, 4, f32, defaultp> fmat4x4;
  1244. /// Single-qualifier floating-point 1x1 matrix.
  1245. /// @see gtc_type_precision
  1246. //typedef detail::tmat1x1<f32, defaultp> f32mat1;
  1247. /// Single-qualifier floating-point 2x2 matrix.
  1248. /// @see gtc_type_precision
  1249. typedef mat<2, 2, f32, defaultp> f32mat2;
  1250. /// Single-qualifier floating-point 3x3 matrix.
  1251. /// @see gtc_type_precision
  1252. typedef mat<3, 3, f32, defaultp> f32mat3;
  1253. /// Single-qualifier floating-point 4x4 matrix.
  1254. /// @see gtc_type_precision
  1255. typedef mat<4, 4, f32, defaultp> f32mat4;
  1256. /// Single-qualifier floating-point 1x1 matrix.
  1257. /// @see gtc_type_precision
  1258. //typedef f32 f32mat1x1;
  1259. /// Single-qualifier floating-point 2x2 matrix.
  1260. /// @see gtc_type_precision
  1261. typedef mat<2, 2, f32, defaultp> f32mat2x2;
  1262. /// Single-qualifier floating-point 2x3 matrix.
  1263. /// @see gtc_type_precision
  1264. typedef mat<2, 3, f32, defaultp> f32mat2x3;
  1265. /// Single-qualifier floating-point 2x4 matrix.
  1266. /// @see gtc_type_precision
  1267. typedef mat<2, 4, f32, defaultp> f32mat2x4;
  1268. /// Single-qualifier floating-point 3x2 matrix.
  1269. /// @see gtc_type_precision
  1270. typedef mat<3, 2, f32, defaultp> f32mat3x2;
  1271. /// Single-qualifier floating-point 3x3 matrix.
  1272. /// @see gtc_type_precision
  1273. typedef mat<3, 3, f32, defaultp> f32mat3x3;
  1274. /// Single-qualifier floating-point 3x4 matrix.
  1275. /// @see gtc_type_precision
  1276. typedef mat<3, 4, f32, defaultp> f32mat3x4;
  1277. /// Single-qualifier floating-point 4x2 matrix.
  1278. /// @see gtc_type_precision
  1279. typedef mat<4, 2, f32, defaultp> f32mat4x2;
  1280. /// Single-qualifier floating-point 4x3 matrix.
  1281. /// @see gtc_type_precision
  1282. typedef mat<4, 3, f32, defaultp> f32mat4x3;
  1283. /// Single-qualifier floating-point 4x4 matrix.
  1284. /// @see gtc_type_precision
  1285. typedef mat<4, 4, f32, defaultp> f32mat4x4;
  1286. # ifndef GLM_FORCE_SINGLE_ONLY
  1287. /// Double-qualifier floating-point 1x1 matrix.
  1288. /// @see gtc_type_precision
  1289. //typedef detail::tmat1x1<f64, defaultp> f64mat1;
  1290. /// Double-qualifier floating-point 2x2 matrix.
  1291. /// @see gtc_type_precision
  1292. typedef mat<2, 2, f64, defaultp> f64mat2;
  1293. /// Double-qualifier floating-point 3x3 matrix.
  1294. /// @see gtc_type_precision
  1295. typedef mat<3, 3, f64, defaultp> f64mat3;
  1296. /// Double-qualifier floating-point 4x4 matrix.
  1297. /// @see gtc_type_precision
  1298. typedef mat<4, 4, f64, defaultp> f64mat4;
  1299. /// Double-qualifier floating-point 1x1 matrix.
  1300. /// @see gtc_type_precision
  1301. //typedef f64 f64mat1x1;
  1302. /// Double-qualifier floating-point 2x2 matrix.
  1303. /// @see gtc_type_precision
  1304. typedef mat<2, 2, f64, defaultp> f64mat2x2;
  1305. /// Double-qualifier floating-point 2x3 matrix.
  1306. /// @see gtc_type_precision
  1307. typedef mat<2, 3, f64, defaultp> f64mat2x3;
  1308. /// Double-qualifier floating-point 2x4 matrix.
  1309. /// @see gtc_type_precision
  1310. typedef mat<2, 4, f64, defaultp> f64mat2x4;
  1311. /// Double-qualifier floating-point 3x2 matrix.
  1312. /// @see gtc_type_precision
  1313. typedef mat<3, 2, f64, defaultp> f64mat3x2;
  1314. /// Double-qualifier floating-point 3x3 matrix.
  1315. /// @see gtc_type_precision
  1316. typedef mat<3, 3, f64, defaultp> f64mat3x3;
  1317. /// Double-qualifier floating-point 3x4 matrix.
  1318. /// @see gtc_type_precision
  1319. typedef mat<3, 4, f64, defaultp> f64mat3x4;
  1320. /// Double-qualifier floating-point 4x2 matrix.
  1321. /// @see gtc_type_precision
  1322. typedef mat<4, 2, f64, defaultp> f64mat4x2;
  1323. /// Double-qualifier floating-point 4x3 matrix.
  1324. /// @see gtc_type_precision
  1325. typedef mat<4, 3, f64, defaultp> f64mat4x3;
  1326. /// Double-qualifier floating-point 4x4 matrix.
  1327. /// @see gtc_type_precision
  1328. typedef mat<4, 4, f64, defaultp> f64mat4x4;
  1329. # endif//GLM_FORCE_SINGLE_ONLY
  1330. //////////////////////////
  1331. // Quaternion types
  1332. /// Single-qualifier floating-point quaternion.
  1333. /// @see gtc_type_precision
  1334. typedef qua<f32, defaultp> f32quat;
  1335. /// Low single-qualifier floating-point quaternion.
  1336. /// @see gtc_type_precision
  1337. typedef qua<f32, lowp> lowp_f32quat;
  1338. /// Low double-qualifier floating-point quaternion.
  1339. /// @see gtc_type_precision
  1340. typedef qua<f64, lowp> lowp_f64quat;
  1341. /// Medium single-qualifier floating-point quaternion.
  1342. /// @see gtc_type_precision
  1343. typedef qua<f32, mediump> mediump_f32quat;
  1344. # ifndef GLM_FORCE_SINGLE_ONLY
  1345. /// Medium double-qualifier floating-point quaternion.
  1346. /// @see gtc_type_precision
  1347. typedef qua<f64, mediump> mediump_f64quat;
  1348. /// High single-qualifier floating-point quaternion.
  1349. /// @see gtc_type_precision
  1350. typedef qua<f32, highp> highp_f32quat;
  1351. /// High double-qualifier floating-point quaternion.
  1352. /// @see gtc_type_precision
  1353. typedef qua<f64, highp> highp_f64quat;
  1354. /// Double-qualifier floating-point quaternion.
  1355. /// @see gtc_type_precision
  1356. typedef qua<f64, defaultp> f64quat;
  1357. # endif//GLM_FORCE_SINGLE_ONLY
  1358. /// @}
  1359. }//namespace glm
  1360. #include "type_precision.inl"